summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Sotoudeh <matthew@masot.net>2024-04-20 17:21:12 -0700
committerMatthew Sotoudeh <matthew@masot.net>2024-04-20 17:21:12 -0700
commitfed4f1b98d154ac4a240ed98c00a672286beeeb7 (patch)
tree492039b40582236b5109fecc6b6f24a32a7e68f7
parent378b80c38369159fe2171df80151f609c84a3863 (diff)
new self-hosting system
-rw-r--r--.gitignore2
-rwxr-xr-xc_version/10.c3551
-rwxr-xr-xc_version/11.c3527
-rwxr-xr-xc_version/12.c6248
-rwxr-xr-xc_version/13.c3522
-rwxr-xr-xc_version/14.c3464
-rwxr-xr-xc_version/15.c3447
-rwxr-xr-xc_version/16.c3485
-rwxr-xr-xc_version/17.c5112
-rwxr-xr-xc_version/6.c6232
-rwxr-xr-xc_version/7.c3512
-rwxr-xr-xc_version/8.c7238
-rwxr-xr-xc_version/9.c3457
-rw-r--r--c_version/Makefile30
-rw-r--r--old_versions/c_version/Makefile28
-rw-r--r--old_versions/c_version/README.txt (renamed from c_version/README.txt)0
-rw-r--r--old_versions/c_version/debug.c (renamed from c_version/debug.c)0
-rw-r--r--old_versions/c_version/examples/hashmap.c (renamed from c_version/examples/hashmap.c)0
-rw-r--r--old_versions/c_version/examples/just_c.c (renamed from c_version/examples/just_c.c)0
-rw-r--r--old_versions/c_version/examples/mini.c (renamed from c_version/examples/mini.c)0
-rw-r--r--old_versions/c_version/examples/simple.c (renamed from c_version/examples/simple.c)0
-rw-r--r--old_versions/c_version/examples/test_ar/.gitignore (renamed from c_version/examples/test_ar/.gitignore)0
-rw-r--r--old_versions/c_version/examples/test_ar/Makefile (renamed from c_version/examples/test_ar/Makefile)0
-rw-r--r--old_versions/c_version/examples/test_ar/main.c (renamed from c_version/examples/test_ar/main.c)0
-rw-r--r--old_versions/c_version/examples/test_ar/vector.c (renamed from c_version/examples/test_ar/vector.c)0
-rw-r--r--old_versions/c_version/examples/test_ar/vector.h (renamed from c_version/examples/test_ar/vector.h)0
-rw-r--r--old_versions/c_version/examples/transitive.c (renamed from c_version/examples/transitive.c)0
-rw-r--r--old_versions/c_version/fakeobj.c (renamed from c_version/fakeobj.c)0
-rw-r--r--old_versions/c_version/gamma.h (renamed from c_version/gamma.h)0
-rw-r--r--old_versions/c_version/instantiation_set.c (renamed from c_version/instantiation_set.c)0
-rw-r--r--old_versions/c_version/lexer.l (renamed from c_version/lexer.l)0
-rw-r--r--old_versions/c_version/main.c (renamed from c_version/main.c)0
-rw-r--r--old_versions/c_version/mangler.c (renamed from c_version/mangler.c)0
-rw-r--r--old_versions/c_version/parse_call.c (renamed from c_version/parse_call.c)0
-rw-r--r--old_versions/c_version/solve.c (renamed from c_version/solve.c)0
-rw-r--r--old_versions/c_version/uniq_string.c (renamed from c_version/uniq_string.c)0
-rw-r--r--old_versions/py_version/README.md (renamed from py_version/README.md)0
-rw-r--r--old_versions/py_version/gamma/Makefile (renamed from py_version/gamma/Makefile)0
-rw-r--r--old_versions/py_version/gamma/__init__.py (renamed from py_version/gamma/__init__.py)0
-rw-r--r--old_versions/py_version/gamma/instantiator.py (renamed from py_version/gamma/instantiator.py)0
-rw-r--r--old_versions/py_version/gamma/lexer.l (renamed from py_version/gamma/lexer.l)0
-rw-r--r--old_versions/py_version/gamma/lexer.py (renamed from py_version/gamma/lexer.py)0
-rw-r--r--old_versions/py_version/gamma/mangler.py (renamed from py_version/gamma/mangler.py)0
-rw-r--r--old_versions/py_version/gamma/parser.py (renamed from py_version/gamma/parser.py)0
-rw-r--r--old_versions/py_version/gamma/splitter.py (renamed from py_version/gamma/splitter.py)0
-rwxr-xr-xpy_version/gc83
-rwxr-xr-xself_hosting/bootstrap.sh6
-rw-r--r--update_c_version.sh10
48 files changed, 52840 insertions, 114 deletions
diff --git a/.gitignore b/.gitignore
index 1cf955d..4c70821 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,3 +6,5 @@ a.out
*.o
lexer
lexer.c
+gc
+self_hosting/gamma_to_c_version
diff --git a/c_version/10.c b/c_version/10.c
new file mode 100755
index 0000000..86c6eb0
--- /dev/null
+++ b/c_version/10.c
@@ -0,0 +1,3551 @@
+
+#line 1 "/tmp/gamma.XksNqZ/10.unfake.c"
+
+
+
+
+
+
+extern void __assert_fail (const char *__assertion, const char *__file,
+ unsigned int __line, const char *__function)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+#line 74 "/usr/include/assert.h"
+extern void __assert_perror_fail (int __errnum, const char *__file,
+ unsigned int __line, const char *__function)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+
+#line 81 "/usr/include/assert.h"
+extern void __assert (const char *__assertion, const char *__file, int __line)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+#line 86 "/usr/include/assert.h"
+typedef long int ptrdiff_t;
+
+#line 146 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h"
+typedef long unsigned int size_t;
+
+#line 215 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h"
+typedef int wchar_t;
+
+#line 330 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h"
+typedef struct {
+ long long __max_align_ll __attribute__((__aligned__(__alignof__(long long))));
+ long double __max_align_ld __attribute__((__aligned__(__alignof__(long double))));
+}
+#line 435 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h"
+max_align_t;
+
+#line 436 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h"
+
+
+typedef unsigned char __u_char;
+
+#line 32 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned short int __u_short;
+
+#line 33 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __u_int;
+
+#line 34 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __u_long;
+
+
+
+#line 37 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef signed char __int8_t;
+
+#line 38 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned char __uint8_t;
+
+#line 39 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef signed short int __int16_t;
+
+#line 40 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned short int __uint16_t;
+
+#line 41 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef signed int __int32_t;
+
+#line 42 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __uint32_t;
+
+
+#line 44 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef signed long int __int64_t;
+
+#line 45 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __uint64_t;
+
+
+
+
+
+
+
+#line 52 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __int8_t __int_least8_t;
+
+#line 53 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __uint8_t __uint_least8_t;
+
+#line 54 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __int16_t __int_least16_t;
+
+#line 55 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __uint16_t __uint_least16_t;
+
+#line 56 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __int32_t __int_least32_t;
+
+#line 57 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __uint32_t __uint_least32_t;
+
+#line 58 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __int64_t __int_least64_t;
+
+#line 59 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __uint64_t __uint_least64_t;
+
+
+
+
+#line 63 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __quad_t;
+
+#line 64 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __u_quad_t;
+
+
+
+
+
+
+
+
+#line 72 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __intmax_t;
+
+#line 73 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __uintmax_t;
+
+#line 74 "/usr/include/x86_64-linux-gnu/bits/types.h"
+
+
+typedef unsigned long int __dev_t;
+
+#line 146 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __uid_t;
+
+#line 147 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __gid_t;
+
+#line 148 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __ino_t;
+
+#line 149 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __ino64_t;
+
+#line 150 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __mode_t;
+
+#line 151 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __nlink_t;
+
+#line 152 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __off_t;
+
+#line 153 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __off64_t;
+
+#line 154 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef int __pid_t;
+
+#line 155 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef struct { int __val[2]; }
+#line 155 "/usr/include/x86_64-linux-gnu/bits/types.h"
+__fsid_t;
+
+#line 156 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __clock_t;
+
+#line 157 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __rlim_t;
+
+#line 158 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __rlim64_t;
+
+#line 159 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __id_t;
+
+#line 160 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __time_t;
+
+#line 161 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __useconds_t;
+
+#line 162 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __suseconds_t;
+
+#line 163 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __suseconds64_t;
+
+
+#line 165 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef int __daddr_t;
+
+#line 166 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef int __key_t;
+
+
+
+#line 169 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef int __clockid_t;
+
+
+
+#line 172 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef void * __timer_t;
+
+
+
+#line 175 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __blksize_t;
+
+
+
+
+
+#line 180 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __blkcnt_t;
+
+#line 181 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __blkcnt64_t;
+
+
+
+#line 184 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __fsblkcnt_t;
+
+#line 185 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __fsblkcnt64_t;
+
+
+
+#line 188 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __fsfilcnt_t;
+
+#line 189 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __fsfilcnt64_t;
+
+
+
+#line 192 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __fsword_t;
+
+
+#line 194 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __ssize_t;
+
+
+
+#line 197 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __syscall_slong_t;
+
+
+#line 199 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __syscall_ulong_t;
+
+
+
+
+#line 203 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __off64_t __loff_t;
+
+#line 204 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef char *__caddr_t;
+
+
+
+#line 207 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __intptr_t;
+
+
+
+#line 210 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __socklen_t;
+
+
+
+
+
+#line 215 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef int __sig_atomic_t;
+
+#line 216 "/usr/include/x86_64-linux-gnu/bits/types.h"
+
+
+
+
+typedef __int8_t int8_t;
+
+#line 25 "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h"
+typedef __int16_t int16_t;
+
+#line 26 "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h"
+typedef __int32_t int32_t;
+
+#line 27 "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h"
+typedef __int64_t int64_t;
+
+#line 28 "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h"
+
+
+typedef __uint8_t uint8_t;
+
+#line 25 "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h"
+typedef __uint16_t uint16_t;
+
+#line 26 "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h"
+typedef __uint32_t uint32_t;
+
+#line 27 "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h"
+typedef __uint64_t uint64_t;
+
+#line 28 "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h"
+
+
+
+
+
+typedef __int_least8_t int_least8_t;
+
+#line 44 "/usr/include/stdint.h"
+typedef __int_least16_t int_least16_t;
+
+#line 45 "/usr/include/stdint.h"
+typedef __int_least32_t int_least32_t;
+
+#line 46 "/usr/include/stdint.h"
+typedef __int_least64_t int_least64_t;
+
+
+
+#line 49 "/usr/include/stdint.h"
+typedef __uint_least8_t uint_least8_t;
+
+#line 50 "/usr/include/stdint.h"
+typedef __uint_least16_t uint_least16_t;
+
+#line 51 "/usr/include/stdint.h"
+typedef __uint_least32_t uint_least32_t;
+
+#line 52 "/usr/include/stdint.h"
+typedef __uint_least64_t uint_least64_t;
+
+
+
+
+
+
+#line 58 "/usr/include/stdint.h"
+typedef signed char int_fast8_t;
+
+
+#line 60 "/usr/include/stdint.h"
+typedef long int int_fast16_t;
+
+#line 61 "/usr/include/stdint.h"
+typedef long int int_fast32_t;
+
+#line 62 "/usr/include/stdint.h"
+typedef long int int_fast64_t;
+
+#line 63 "/usr/include/stdint.h"
+typedef unsigned char uint_fast8_t;
+
+
+#line 73 "/usr/include/stdint.h"
+typedef unsigned long int uint_fast16_t;
+
+#line 74 "/usr/include/stdint.h"
+typedef unsigned long int uint_fast32_t;
+
+#line 75 "/usr/include/stdint.h"
+typedef unsigned long int uint_fast64_t;
+
+#line 76 "/usr/include/stdint.h"
+typedef long int intptr_t;
+
+
+
+#line 90 "/usr/include/stdint.h"
+typedef unsigned long int uintptr_t;
+
+#line 91 "/usr/include/stdint.h"
+typedef __intmax_t intmax_t;
+
+#line 102 "/usr/include/stdint.h"
+typedef __uintmax_t uintmax_t;
+
+#line 103 "/usr/include/stdint.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct
+ {
+ int quot;
+ int rem;
+ }
+#line 63 "/usr/include/stdlib.h"
+div_t;
+
+
+
+
+#line 67 "/usr/include/stdlib.h"
+typedef struct
+ {
+ long int quot;
+ long int rem;
+ }
+#line 71 "/usr/include/stdlib.h"
+ldiv_t;
+
+
+
+
+
+
+#line 77 "/usr/include/stdlib.h"
+__extension__ typedef struct
+ {
+ long long int quot;
+ long long int rem;
+ }
+#line 81 "/usr/include/stdlib.h"
+lldiv_t;
+
+#line 82 "/usr/include/stdlib.h"
+extern size_t __ctype_get_mb_cur_max (void) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+#line 102 "/usr/include/stdlib.h"
+extern double atof (const char *__nptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+#line 105 "/usr/include/stdlib.h"
+extern int atoi (const char *__nptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+#line 108 "/usr/include/stdlib.h"
+extern long int atol (const char *__nptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+#line 113 "/usr/include/stdlib.h"
+__extension__ extern long long int atoll (const char *__nptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+#line 118 "/usr/include/stdlib.h"
+extern double strtod (const char *__restrict __nptr,
+ char **__restrict __endptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+#line 124 "/usr/include/stdlib.h"
+extern float strtof (const char *__restrict __nptr,
+ char **__restrict __endptr) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+#line 127 "/usr/include/stdlib.h"
+extern long double strtold (const char *__restrict __nptr,
+ char **__restrict __endptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 130 "/usr/include/stdlib.h"
+extern long int strtol (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+#line 181 "/usr/include/stdlib.h"
+extern unsigned long int strtoul (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+#line 187 "/usr/include/stdlib.h"
+__extension__
+extern long long int strtoq (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+#line 192 "/usr/include/stdlib.h"
+__extension__
+extern unsigned long long int strtouq (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+#line 200 "/usr/include/stdlib.h"
+__extension__
+extern long long int strtoll (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+#line 205 "/usr/include/stdlib.h"
+__extension__
+extern unsigned long long int strtoull (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 209 "/usr/include/stdlib.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+__attribute__ ((__nothrow__ , __leaf__)) atoi (const char *__nptr)
+{
+ return (int) strtol (__nptr, (char **) ((void *)0), 10);
+}
+
+#line 366 "/usr/include/stdlib.h"
+extern __inline __attribute__ ((__gnu_inline__)) long int
+__attribute__ ((__nothrow__ , __leaf__)) atol (const char *__nptr)
+{
+ return strtol (__nptr, (char **) ((void *)0), 10);
+}
+
+
+
+#line 373 "/usr/include/stdlib.h"
+__extension__ extern __inline __attribute__ ((__gnu_inline__)) long long int
+__attribute__ ((__nothrow__ , __leaf__)) atoll (const char *__nptr)
+{
+ return strtoll (__nptr, (char **) ((void *)0), 10);
+}
+
+#line 378 "/usr/include/stdlib.h"
+extern char *l64a (long int __n) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+#line 389 "/usr/include/stdlib.h"
+extern long int a64l (const char *__s)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+
+#line 395 "/usr/include/stdlib.h"
+
+
+
+
+
+
+typedef __u_char u_char;
+
+#line 34 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __u_short u_short;
+
+#line 35 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __u_int u_int;
+
+#line 36 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __u_long u_long;
+
+#line 37 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __quad_t quad_t;
+
+#line 38 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __u_quad_t u_quad_t;
+
+#line 39 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __fsid_t fsid_t;
+
+
+
+#line 42 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __loff_t loff_t;
+
+
+
+
+
+#line 47 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __ino_t ino_t;
+
+#line 48 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __dev_t dev_t;
+
+
+
+
+
+#line 64 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __gid_t gid_t;
+
+
+
+
+
+#line 69 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __mode_t mode_t;
+
+
+
+
+
+#line 74 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __nlink_t nlink_t;
+
+
+
+
+
+#line 79 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __uid_t uid_t;
+
+
+
+
+
+
+#line 85 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __off_t off_t;
+
+#line 86 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __pid_t pid_t;
+
+
+
+
+
+
+#line 103 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __id_t id_t;
+
+
+
+
+
+#line 108 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __ssize_t ssize_t;
+
+
+
+
+
+
+#line 114 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __daddr_t daddr_t;
+
+#line 115 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __caddr_t caddr_t;
+
+
+
+
+
+
+#line 121 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __key_t key_t;
+
+
+
+
+
+#line 126 "/usr/include/x86_64-linux-gnu/sys/types.h"
+
+
+
+
+
+
+typedef __clock_t clock_t;
+
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/clock_t.h"
+
+
+
+
+
+
+
+typedef __clockid_t clockid_t;
+
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h"
+typedef __time_t time_t;
+
+#line 11 "/usr/include/x86_64-linux-gnu/bits/types/time_t.h"
+
+
+
+
+
+
+typedef __timer_t timer_t;
+
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/timer_t.h"
+
+
+
+typedef unsigned long int ulong;
+
+#line 149 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef unsigned short int ushort;
+
+#line 150 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef unsigned int uint;
+
+
+
+
+
+
+
+
+#line 158 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __uint8_t u_int8_t;
+
+#line 159 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __uint16_t u_int16_t;
+
+#line 160 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __uint32_t u_int32_t;
+
+#line 161 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __uint64_t u_int64_t;
+
+
+
+#line 164 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef int register_t __attribute__ ((__mode__ (__word__)));
+
+#line 165 "/usr/include/x86_64-linux-gnu/sys/types.h"
+static __inline __uint16_t
+__bswap_16 (__uint16_t __bsx)
+{
+
+ return __builtin_bswap16 (__bsx);
+
+
+
+}
+
+
+
+
+
+
+
+#line 48 "/usr/include/x86_64-linux-gnu/bits/byteswap.h"
+static __inline __uint32_t
+__bswap_32 (__uint32_t __bsx)
+{
+
+ return __builtin_bswap32 (__bsx);
+
+
+
+}
+
+#line 57 "/usr/include/x86_64-linux-gnu/bits/byteswap.h"
+__extension__ static __inline __uint64_t
+__bswap_64 (__uint64_t __bsx)
+{
+
+ return __builtin_bswap64 (__bsx);
+
+
+
+}
+
+#line 78 "/usr/include/x86_64-linux-gnu/bits/byteswap.h"
+static __inline __uint16_t
+__uint16_identity (__uint16_t __x)
+{
+ return __x;
+}
+
+
+#line 38 "/usr/include/x86_64-linux-gnu/bits/uintn-identity.h"
+static __inline __uint32_t
+__uint32_identity (__uint32_t __x)
+{
+ return __x;
+}
+
+
+#line 44 "/usr/include/x86_64-linux-gnu/bits/uintn-identity.h"
+static __inline __uint64_t
+__uint64_identity (__uint64_t __x)
+{
+ return __x;
+}
+
+#line 49 "/usr/include/x86_64-linux-gnu/bits/uintn-identity.h"
+
+
+
+
+
+
+
+
+
+
+
+typedef struct
+{
+ unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))];
+}
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h"
+__sigset_t;
+
+#line 9 "/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h"
+
+
+typedef __sigset_t sigset_t;
+
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h"
+
+
+
+
+
+
+
+
+
+
+struct timeval
+{
+
+
+
+
+ __time_t tv_sec;
+ __suseconds_t tv_usec;
+
+};
+
+#line 18 "/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h"
+
+struct timespec
+{
+
+
+
+ __time_t tv_sec;
+
+
+
+
+ __syscall_slong_t tv_nsec;
+};
+
+#line 32 "/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h"
+
+
+
+typedef __suseconds_t suseconds_t;
+
+
+
+
+
+
+#line 49 "/usr/include/x86_64-linux-gnu/sys/select.h"
+typedef long int __fd_mask;
+
+#line 50 "/usr/include/x86_64-linux-gnu/sys/select.h"
+typedef struct
+ {
+
+
+
+
+
+
+ __fd_mask __fds_bits[1024 / (8 * (int) sizeof (__fd_mask))];
+
+
+ }
+#line 70 "/usr/include/x86_64-linux-gnu/sys/select.h"
+fd_set;
+
+
+
+
+
+
+
+#line 77 "/usr/include/x86_64-linux-gnu/sys/select.h"
+typedef __fd_mask fd_mask;
+
+#line 78 "/usr/include/x86_64-linux-gnu/sys/select.h"
+
+extern int select (int __nfds, fd_set *__restrict __readfds,
+ fd_set *__restrict __writefds,
+ fd_set *__restrict __exceptfds,
+ struct timeval *__restrict __timeout);
+
+#line 106 "/usr/include/x86_64-linux-gnu/sys/select.h"
+extern int pselect (int __nfds, fd_set *__restrict __readfds,
+ fd_set *__restrict __writefds,
+ fd_set *__restrict __exceptfds,
+ const struct timespec *__restrict __timeout,
+ const __sigset_t *__restrict __sigmask);
+
+#line 132 "/usr/include/x86_64-linux-gnu/sys/select.h"
+
+
+
+
+
+
+typedef __blksize_t blksize_t;
+
+
+
+
+
+
+
+#line 192 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __blkcnt_t blkcnt_t;
+
+
+
+
+#line 196 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __fsblkcnt_t fsblkcnt_t;
+
+
+
+
+#line 200 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __fsfilcnt_t fsfilcnt_t;
+
+#line 201 "/usr/include/x86_64-linux-gnu/sys/types.h"
+
+typedef union
+{
+ __extension__ unsigned long long int __value64;
+ struct
+ {
+ unsigned int __low;
+ unsigned int __high;
+ } __value32;
+}
+#line 33 "/usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h"
+__atomic_wide_counter;
+
+#line 34 "/usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h"
+
+
+
+
+typedef struct __pthread_internal_list
+{
+ struct __pthread_internal_list *__prev;
+ struct __pthread_internal_list *__next;
+}
+#line 55 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+__pthread_list_t;
+
+
+#line 57 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+typedef struct __pthread_internal_slist
+{
+ struct __pthread_internal_slist *__next;
+}
+#line 60 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+__pthread_slist_t;
+
+#line 61 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+struct __pthread_mutex_s
+{
+ int __lock;
+ unsigned int __count;
+ int __owner;
+
+ unsigned int __nusers;
+
+
+
+ int __kind;
+
+ short __spins;
+ short __elision;
+ __pthread_list_t __list;
+};
+
+#line 54 "/usr/include/x86_64-linux-gnu/bits/struct_mutex.h"
+struct __pthread_rwlock_arch_t
+{
+ unsigned int __readers;
+ unsigned int __writers;
+ unsigned int __wrphase_futex;
+ unsigned int __writers_futex;
+ unsigned int __pad3;
+ unsigned int __pad4;
+
+ int __cur_writer;
+ int __shared;
+ signed char __rwelision;
+
+
+
+
+ unsigned char __pad1[7];
+
+
+ unsigned long int __pad2;
+
+
+ unsigned int __flags;
+};
+
+#line 56 "/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h"
+
+
+
+
+struct __pthread_cond_s
+{
+ __atomic_wide_counter __wseq;
+ __atomic_wide_counter __g1_start;
+ unsigned int __g_refs[2] ;
+ unsigned int __g_size[2];
+ unsigned int __g1_orig_size;
+ unsigned int __wrefs;
+ unsigned int __g_signals[2];
+};
+
+
+#line 105 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+typedef unsigned int __tss_t;
+
+#line 106 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+typedef unsigned long int __thrd_t;
+
+
+#line 108 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+typedef struct
+{
+ int __data ;
+}
+#line 111 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+__once_flag;
+
+#line 112 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+
+
+
+typedef unsigned long int pthread_t;
+
+
+
+
+
+#line 32 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ char __size[4];
+ int __align;
+}
+#line 36 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_mutexattr_t;
+
+
+
+
+
+#line 41 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ char __size[4];
+ int __align;
+}
+#line 45 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_condattr_t;
+
+
+
+
+#line 49 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef unsigned int pthread_key_t;
+
+
+
+
+#line 53 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef int pthread_once_t;
+
+
+
+#line 56 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+union pthread_attr_t
+{
+ char __size[56];
+ long int __align;
+};
+
+
+#line 62 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union pthread_attr_t pthread_attr_t;
+
+
+
+
+
+#line 67 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ struct __pthread_mutex_s __data;
+ char __size[40];
+ long int __align;
+}
+#line 72 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_mutex_t;
+
+
+
+#line 75 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ struct __pthread_cond_s __data;
+ char __size[48];
+ __extension__ long long int __align;
+}
+#line 80 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_cond_t;
+
+
+
+
+
+
+#line 86 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ struct __pthread_rwlock_arch_t __data;
+ char __size[56];
+ long int __align;
+}
+#line 91 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_rwlock_t;
+
+
+#line 93 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ char __size[8];
+ long int __align;
+}
+#line 97 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_rwlockattr_t;
+
+
+
+
+
+
+#line 103 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef volatile int pthread_spinlock_t;
+
+
+
+
+
+#line 108 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ char __size[32];
+ long int __align;
+}
+#line 112 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_barrier_t;
+
+
+#line 114 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ char __size[4];
+ int __align;
+}
+#line 118 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_barrierattr_t;
+
+#line 119 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+
+
+
+
+
+
+
+
+
+extern long int random (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 405 "/usr/include/stdlib.h"
+extern void srandom (unsigned int __seed) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+#line 411 "/usr/include/stdlib.h"
+extern char *initstate (unsigned int __seed, char *__statebuf,
+ size_t __statelen) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+
+
+#line 416 "/usr/include/stdlib.h"
+extern char *setstate (char *__statebuf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+
+#line 424 "/usr/include/stdlib.h"
+struct random_data
+ {
+ int32_t *fptr;
+ int32_t *rptr;
+ int32_t *state;
+ int rand_type;
+ int rand_deg;
+ int rand_sep;
+ int32_t *end_ptr;
+ };
+
+
+#line 435 "/usr/include/stdlib.h"
+extern int random_r (struct random_data *__restrict __buf,
+ int32_t *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 438 "/usr/include/stdlib.h"
+extern int srandom_r (unsigned int __seed, struct random_data *__buf)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+#line 441 "/usr/include/stdlib.h"
+extern int initstate_r (unsigned int __seed, char *__restrict __statebuf,
+ size_t __statelen,
+ struct random_data *__restrict __buf)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 4)));
+
+
+#line 446 "/usr/include/stdlib.h"
+extern int setstate_r (char *__restrict __statebuf,
+ struct random_data *__restrict __buf)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+
+#line 454 "/usr/include/stdlib.h"
+extern int rand (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+#line 456 "/usr/include/stdlib.h"
+extern void srand (unsigned int __seed) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 460 "/usr/include/stdlib.h"
+extern int rand_r (unsigned int *__seed) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+
+#line 468 "/usr/include/stdlib.h"
+extern double drand48 (void) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 469 "/usr/include/stdlib.h"
+extern double erand48 (unsigned short int __xsubi[3]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+#line 472 "/usr/include/stdlib.h"
+extern long int lrand48 (void) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 473 "/usr/include/stdlib.h"
+extern long int nrand48 (unsigned short int __xsubi[3])
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+#line 477 "/usr/include/stdlib.h"
+extern long int mrand48 (void) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 478 "/usr/include/stdlib.h"
+extern long int jrand48 (unsigned short int __xsubi[3])
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+#line 482 "/usr/include/stdlib.h"
+extern void srand48 (long int __seedval) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 483 "/usr/include/stdlib.h"
+extern unsigned short int *seed48 (unsigned short int __seed16v[3])
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 485 "/usr/include/stdlib.h"
+extern void lcong48 (unsigned short int __param[7]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+#line 491 "/usr/include/stdlib.h"
+struct drand48_data
+ {
+ unsigned short int __x[3];
+ unsigned short int __old_x[3];
+ unsigned short int __c;
+ unsigned short int __init;
+ __extension__ unsigned long long int __a;
+
+ };
+
+
+
+#line 502 "/usr/include/stdlib.h"
+extern int drand48_r (struct drand48_data *__restrict __buffer,
+ double *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 504 "/usr/include/stdlib.h"
+extern int erand48_r (unsigned short int __xsubi[3],
+ struct drand48_data *__restrict __buffer,
+ double *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 509 "/usr/include/stdlib.h"
+extern int lrand48_r (struct drand48_data *__restrict __buffer,
+ long int *__restrict __result)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 512 "/usr/include/stdlib.h"
+extern int nrand48_r (unsigned short int __xsubi[3],
+ struct drand48_data *__restrict __buffer,
+ long int *__restrict __result)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 518 "/usr/include/stdlib.h"
+extern int mrand48_r (struct drand48_data *__restrict __buffer,
+ long int *__restrict __result)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 521 "/usr/include/stdlib.h"
+extern int jrand48_r (unsigned short int __xsubi[3],
+ struct drand48_data *__restrict __buffer,
+ long int *__restrict __result)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 527 "/usr/include/stdlib.h"
+extern int srand48_r (long int __seedval, struct drand48_data *__buffer)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+#line 530 "/usr/include/stdlib.h"
+extern int seed48_r (unsigned short int __seed16v[3],
+ struct drand48_data *__buffer) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 533 "/usr/include/stdlib.h"
+extern int lcong48_r (unsigned short int __param[7],
+ struct drand48_data *__buffer)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 538 "/usr/include/stdlib.h"
+extern __uint32_t arc4random (void)
+ __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+#line 542 "/usr/include/stdlib.h"
+extern void arc4random_buf (void *__buf, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+#line 547 "/usr/include/stdlib.h"
+extern __uint32_t arc4random_uniform (__uint32_t __upper_bound)
+ __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+#line 553 "/usr/include/stdlib.h"
+extern void *malloc (size_t __size) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__))
+ __attribute__ ((__alloc_size__ (1))) ;
+
+
+#line 556 "/usr/include/stdlib.h"
+extern void *calloc (size_t __nmemb, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__alloc_size__ (1, 2))) ;
+
+
+
+
+
+
+
+#line 564 "/usr/include/stdlib.h"
+extern void *realloc (void *__ptr, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)) __attribute__ ((__alloc_size__ (2)));
+
+
+
+#line 568 "/usr/include/stdlib.h"
+extern void free (void *__ptr) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+
+#line 576 "/usr/include/stdlib.h"
+extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__))
+ __attribute__ ((__alloc_size__ (2, 3)))
+ __attribute__ ((__malloc__ (__builtin_free, 1)));
+
+
+
+#line 582 "/usr/include/stdlib.h"
+extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__ (reallocarray, 1)));
+
+
+
+
+#line 587 "/usr/include/stdlib.h"
+
+
+
+
+
+
+
+extern void *alloca (size_t __size) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+#line 39 "/usr/include/alloca.h"
+
+
+
+
+
+extern void *valloc (size_t __size) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__))
+ __attribute__ ((__alloc_size__ (1))) ;
+
+
+
+
+
+#line 599 "/usr/include/stdlib.h"
+extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+
+#line 605 "/usr/include/stdlib.h"
+extern void *aligned_alloc (size_t __alignment, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__alloc_align__ (1)))
+ __attribute__ ((__alloc_size__ (2))) ;
+
+
+
+
+#line 611 "/usr/include/stdlib.h"
+extern void abort (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+#line 615 "/usr/include/stdlib.h"
+extern int atexit (void (*__func) (void)) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+
+#line 623 "/usr/include/stdlib.h"
+extern int at_quick_exit (void (*__func) (void)) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+#line 630 "/usr/include/stdlib.h"
+extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+#line 637 "/usr/include/stdlib.h"
+extern void exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+
+
+#line 643 "/usr/include/stdlib.h"
+extern void quick_exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+
+
+#line 649 "/usr/include/stdlib.h"
+extern void _Exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+
+#line 654 "/usr/include/stdlib.h"
+extern char *getenv (const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+#line 655 "/usr/include/stdlib.h"
+extern int putenv (char *__string) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+#line 673 "/usr/include/stdlib.h"
+extern int setenv (const char *__name, const char *__value, int __replace)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+
+#line 677 "/usr/include/stdlib.h"
+extern int unsetenv (const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+#line 684 "/usr/include/stdlib.h"
+extern int clearenv (void) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 685 "/usr/include/stdlib.h"
+extern char *mktemp (char *__template) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 696 "/usr/include/stdlib.h"
+extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) ;
+
+#line 709 "/usr/include/stdlib.h"
+extern int mkstemps (char *__template, int __suffixlen) __attribute__ ((__nonnull__ (1))) ;
+
+#line 731 "/usr/include/stdlib.h"
+extern char *mkdtemp (char *__template) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+#line 752 "/usr/include/stdlib.h"
+extern int system (const char *__command) ;
+
+#line 805 "/usr/include/stdlib.h"
+extern char *realpath (const char *__restrict __name,
+ char *__restrict __resolved) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+
+
+#line 829 "/usr/include/stdlib.h"
+typedef int (*__compar_fn_t) (const void *, const void *);
+
+#line 830 "/usr/include/stdlib.h"
+extern void *bsearch (const void *__key, const void *__base,
+ size_t __nmemb, size_t __size, __compar_fn_t __compar)
+ __attribute__ ((__nonnull__ (1, 2, 5))) ;
+
+
+
+#line 846 "/usr/include/stdlib.h"
+extern __inline __attribute__ ((__gnu_inline__)) void *
+bsearch (const void *__key, const void *__base, size_t __nmemb, size_t __size,
+ __compar_fn_t __compar)
+{
+ size_t __l, __u, __idx;
+ const void *__p;
+ int __comparison;
+
+ __l = 0;
+ __u = __nmemb;
+ while (__l < __u)
+ {
+ __idx = (__l + __u) / 2;
+ __p = (const void *) (((const char *) __base) + (__idx * __size));
+ __comparison = (*__compar) (__key, __p);
+ if (__comparison < 0)
+ __u = __idx;
+ else if (__comparison > 0)
+ __l = __idx + 1;
+ else
+ {
+
+
+ return (void *) __p;
+
+
+ }
+ }
+
+ return ((void *)0);
+}
+
+#line 29 "-Wcast-qual"
+
+
+
+
+extern void qsort (void *__base, size_t __nmemb, size_t __size,
+ __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4)));
+
+#line 853 "/usr/include/stdlib.h"
+extern int abs (int __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+#line 862 "/usr/include/stdlib.h"
+extern long int labs (long int __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+
+
+#line 865 "/usr/include/stdlib.h"
+__extension__ extern long long int llabs (long long int __x)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+
+
+
+
+
+
+#line 873 "/usr/include/stdlib.h"
+extern div_t div (int __numer, int __denom)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+#line 875 "/usr/include/stdlib.h"
+extern ldiv_t ldiv (long int __numer, long int __denom)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+
+
+#line 879 "/usr/include/stdlib.h"
+__extension__ extern lldiv_t lldiv (long long int __numer,
+ long long int __denom)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+#line 882 "/usr/include/stdlib.h"
+extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt,
+ int *__restrict __sign) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ;
+
+
+
+
+
+#line 899 "/usr/include/stdlib.h"
+extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt,
+ int *__restrict __sign) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ;
+
+
+
+
+
+#line 905 "/usr/include/stdlib.h"
+extern char *gcvt (double __value, int __ndigit, char *__buf)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3))) ;
+
+
+
+
+
+#line 911 "/usr/include/stdlib.h"
+extern char *qecvt (long double __value, int __ndigit,
+ int *__restrict __decpt, int *__restrict __sign)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ;
+
+#line 914 "/usr/include/stdlib.h"
+extern char *qfcvt (long double __value, int __ndigit,
+ int *__restrict __decpt, int *__restrict __sign)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ;
+
+#line 917 "/usr/include/stdlib.h"
+extern char *qgcvt (long double __value, int __ndigit, char *__buf)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3))) ;
+
+
+
+
+
+#line 923 "/usr/include/stdlib.h"
+extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt,
+ int *__restrict __sign, char *__restrict __buf,
+ size_t __len) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
+
+#line 926 "/usr/include/stdlib.h"
+extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt,
+ int *__restrict __sign, char *__restrict __buf,
+ size_t __len) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
+
+
+#line 930 "/usr/include/stdlib.h"
+extern int qecvt_r (long double __value, int __ndigit,
+ int *__restrict __decpt, int *__restrict __sign,
+ char *__restrict __buf, size_t __len)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
+
+#line 934 "/usr/include/stdlib.h"
+extern int qfcvt_r (long double __value, int __ndigit,
+ int *__restrict __decpt, int *__restrict __sign,
+ char *__restrict __buf, size_t __len)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
+
+
+
+
+
+
+#line 943 "/usr/include/stdlib.h"
+extern int mblen (const char *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 946 "/usr/include/stdlib.h"
+extern int mbtowc (wchar_t *__restrict __pwc,
+ const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 950 "/usr/include/stdlib.h"
+extern int wctomb (char *__s, wchar_t __wchar) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 954 "/usr/include/stdlib.h"
+extern size_t mbstowcs (wchar_t *__restrict __pwcs,
+ const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__access__ (__read_only__, 2)));
+
+
+#line 958 "/usr/include/stdlib.h"
+extern size_t wcstombs (char *__restrict __s,
+ const wchar_t *__restrict __pwcs, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__access__ (__write_only__, 1, 3)))
+ __attribute__ ((__access__ (__read_only__, 2)));
+
+
+
+
+
+
+
+#line 969 "/usr/include/stdlib.h"
+extern int rpmatch (const char *__response) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+#line 970 "/usr/include/stdlib.h"
+extern int getsubopt (char **__restrict __optionp,
+ char *const *__restrict __tokens,
+ char **__restrict __valuep)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2, 3))) ;
+
+#line 984 "/usr/include/stdlib.h"
+extern int getloadavg (double __loadavg[], int __nelem)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 1028 "/usr/include/stdlib.h"
+extern __inline __attribute__ ((__gnu_inline__)) double
+__attribute__ ((__nothrow__ , __leaf__)) atof (const char *__nptr)
+{
+ return strtod (__nptr, (char **) ((void *)0));
+}
+
+#line 29 "/usr/include/x86_64-linux-gnu/bits/stdlib-float.h"
+
+
+enum
+{
+ _ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)),
+ _ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)),
+ _ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)),
+ _ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)),
+ _ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)),
+ _ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)),
+ _ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)),
+ _ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)),
+ _ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)),
+ _IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)),
+ _ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)),
+ _ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8))
+};
+
+#line 61 "/usr/include/ctype.h"
+extern const unsigned short int **__ctype_b_loc (void)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+#line 81 "/usr/include/ctype.h"
+extern const __int32_t **__ctype_tolower_loc (void)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+#line 83 "/usr/include/ctype.h"
+extern const __int32_t **__ctype_toupper_loc (void)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+#line 85 "/usr/include/ctype.h"
+extern int isalnum (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 109 "/usr/include/ctype.h"
+extern int isalpha (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 110 "/usr/include/ctype.h"
+extern int iscntrl (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 111 "/usr/include/ctype.h"
+extern int isdigit (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 112 "/usr/include/ctype.h"
+extern int islower (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 113 "/usr/include/ctype.h"
+extern int isgraph (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 114 "/usr/include/ctype.h"
+extern int isprint (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 115 "/usr/include/ctype.h"
+extern int ispunct (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 116 "/usr/include/ctype.h"
+extern int isspace (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 117 "/usr/include/ctype.h"
+extern int isupper (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 118 "/usr/include/ctype.h"
+extern int isxdigit (int) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 122 "/usr/include/ctype.h"
+extern int tolower (int __c) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 125 "/usr/include/ctype.h"
+extern int toupper (int __c) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+#line 130 "/usr/include/ctype.h"
+extern int isblank (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 131 "/usr/include/ctype.h"
+extern int isascii (int __c) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 146 "/usr/include/ctype.h"
+extern int toascii (int __c) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 150 "/usr/include/ctype.h"
+extern int _toupper (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 151 "/usr/include/ctype.h"
+extern int _tolower (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 152 "/usr/include/ctype.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+__attribute__ ((__nothrow__ , __leaf__)) tolower (int __c)
+{
+ return __c >= -128 && __c < 256 ? (*__ctype_tolower_loc ())[__c] : __c;
+}
+
+
+#line 212 "/usr/include/ctype.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+__attribute__ ((__nothrow__ , __leaf__)) toupper (int __c)
+{
+ return __c >= -128 && __c < 256 ? (*__ctype_toupper_loc ())[__c] : __c;
+}
+
+#line 217 "/usr/include/ctype.h"
+struct __locale_struct
+{
+
+ struct __locale_data *__locales[13];
+
+
+ const unsigned short int *__ctype_b;
+ const int *__ctype_tolower;
+ const int *__ctype_toupper;
+
+
+ const char *__names[13];
+};
+
+
+#line 41 "/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h"
+typedef struct __locale_struct *__locale_t;
+
+#line 42 "/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h"
+
+typedef __locale_t locale_t;
+
+#line 25 "/usr/include/x86_64-linux-gnu/bits/types/locale_t.h"
+extern int isalnum_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 252 "/usr/include/ctype.h"
+extern int isalpha_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 253 "/usr/include/ctype.h"
+extern int iscntrl_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 254 "/usr/include/ctype.h"
+extern int isdigit_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 255 "/usr/include/ctype.h"
+extern int islower_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 256 "/usr/include/ctype.h"
+extern int isgraph_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 257 "/usr/include/ctype.h"
+extern int isprint_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 258 "/usr/include/ctype.h"
+extern int ispunct_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 259 "/usr/include/ctype.h"
+extern int isspace_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 260 "/usr/include/ctype.h"
+extern int isupper_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 261 "/usr/include/ctype.h"
+extern int isxdigit_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+
+#line 263 "/usr/include/ctype.h"
+extern int isblank_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 267 "/usr/include/ctype.h"
+extern int __tolower_l (int __c, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 268 "/usr/include/ctype.h"
+extern int tolower_l (int __c, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 271 "/usr/include/ctype.h"
+extern int __toupper_l (int __c, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 272 "/usr/include/ctype.h"
+extern int toupper_l (int __c, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 273 "/usr/include/ctype.h"
+
+
+
+
+
+
+
+extern void *memcpy (void *__restrict __dest, const void *__restrict __src,
+ size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 47 "/usr/include/string.h"
+extern void *memmove (void *__dest, const void *__src, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+
+#line 54 "/usr/include/string.h"
+extern void *memccpy (void *__restrict __dest, const void *__restrict __src,
+ int __c, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__access__ (__write_only__, 1, 4)));
+
+
+
+
+
+#line 61 "/usr/include/string.h"
+extern void *memset (void *__s, int __c, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+#line 64 "/usr/include/string.h"
+extern int memcmp (const void *__s1, const void *__s2, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 66 "/usr/include/string.h"
+extern int __memcmpeq (const void *__s1, const void *__s2, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 82 "/usr/include/string.h"
+extern void *memchr (const void *__s, int __c, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+#line 109 "/usr/include/string.h"
+extern char *strcpy (char *__restrict __dest, const char *__restrict __src)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 144 "/usr/include/string.h"
+extern char *strncpy (char *__restrict __dest,
+ const char *__restrict __src, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 149 "/usr/include/string.h"
+extern char *strcat (char *__restrict __dest, const char *__restrict __src)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 152 "/usr/include/string.h"
+extern char *strncat (char *__restrict __dest, const char *__restrict __src,
+ size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 156 "/usr/include/string.h"
+extern int strcmp (const char *__s1, const char *__s2)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 159 "/usr/include/string.h"
+extern int strncmp (const char *__s1, const char *__s2, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 163 "/usr/include/string.h"
+extern int strcoll (const char *__s1, const char *__s2)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 166 "/usr/include/string.h"
+extern size_t strxfrm (char *__restrict __dest,
+ const char *__restrict __src, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))) __attribute__ ((__access__ (__write_only__, 1, 3)));
+
+
+
+
+
+
+
+#line 175 "/usr/include/string.h"
+extern int strcoll_l (const char *__s1, const char *__s2, locale_t __l)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));
+
+
+
+#line 179 "/usr/include/string.h"
+extern size_t strxfrm_l (char *__dest, const char *__src, size_t __n,
+ locale_t __l) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 4)))
+ __attribute__ ((__access__ (__write_only__, 1, 3)));
+
+
+
+
+
+
+#line 187 "/usr/include/string.h"
+extern char *strdup (const char *__s)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+#line 195 "/usr/include/string.h"
+extern char *strndup (const char *__string, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
+
+#line 197 "/usr/include/string.h"
+extern char *strchr (const char *__s, int __c)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+#line 248 "/usr/include/string.h"
+extern char *strrchr (const char *__s, int __c)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+#line 275 "/usr/include/string.h"
+extern size_t strcspn (const char *__s, const char *__reject)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 297 "/usr/include/string.h"
+extern size_t strspn (const char *__s, const char *__accept)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 299 "/usr/include/string.h"
+extern char *strpbrk (const char *__s, const char *__accept)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 325 "/usr/include/string.h"
+extern char *strstr (const char *__haystack, const char *__needle)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+#line 356 "/usr/include/string.h"
+extern char *strtok (char *__restrict __s, const char *__restrict __delim)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+
+
+#line 361 "/usr/include/string.h"
+extern char *__strtok_r (char *__restrict __s,
+ const char *__restrict __delim,
+ char **__restrict __save_ptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3)));
+
+
+#line 366 "/usr/include/string.h"
+extern char *strtok_r (char *__restrict __s, const char *__restrict __delim,
+ char **__restrict __save_ptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3)));
+
+#line 369 "/usr/include/string.h"
+extern size_t strlen (const char *__s)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+#line 413 "/usr/include/string.h"
+extern size_t strnlen (const char *__string, size_t __maxlen)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+#line 419 "/usr/include/string.h"
+extern char *strerror (int __errnum) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 420 "/usr/include/string.h"
+extern int strerror_r (int __errnum, char *__buf, size_t __buflen) __asm__ ("" "__xpg_strerror_r") __attribute__ ((__nothrow__ , __leaf__))
+
+ __attribute__ ((__nonnull__ (2)))
+ __attribute__ ((__access__ (__write_only__, 2, 3)));
+
+#line 436 "/usr/include/string.h"
+extern char *strerror_l (int __errnum, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 462 "/usr/include/string.h"
+
+
+
+
+
+
+
+
+
+
+extern int bcmp (const void *__s1, const void *__s2, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 38 "/usr/include/strings.h"
+extern void bcopy (const void *__src, void *__dest, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 42 "/usr/include/strings.h"
+extern void bzero (void *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 43 "/usr/include/strings.h"
+extern char *index (const char *__s, int __c)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+#line 70 "/usr/include/strings.h"
+extern char *rindex (const char *__s, int __c)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+#line 104 "/usr/include/strings.h"
+extern int ffs (int __i) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+
+
+
+
+
+#line 110 "/usr/include/strings.h"
+extern int ffsl (long int __l) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+#line 111 "/usr/include/strings.h"
+__extension__ extern int ffsll (long long int __ll)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+
+
+
+#line 116 "/usr/include/strings.h"
+extern int strcasecmp (const char *__s1, const char *__s2)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 120 "/usr/include/strings.h"
+extern int strncasecmp (const char *__s1, const char *__s2, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+
+
+#line 128 "/usr/include/strings.h"
+extern int strcasecmp_l (const char *__s1, const char *__s2, locale_t __loc)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));
+
+
+
+
+#line 133 "/usr/include/strings.h"
+extern int strncasecmp_l (const char *__s1, const char *__s2,
+ size_t __n, locale_t __loc)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 4)));
+
+
+
+
+#line 139 "/usr/include/strings.h"
+
+
+
+extern void explicit_bzero (void *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)))
+ __attribute__ ((__access__ (__write_only__, 1, 2)));
+
+
+
+
+#line 471 "/usr/include/string.h"
+extern char *strsep (char **__restrict __stringp,
+ const char *__restrict __delim)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+#line 478 "/usr/include/string.h"
+extern char *strsignal (int __sig) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 479 "/usr/include/string.h"
+extern char *__stpcpy (char *__restrict __dest, const char *__restrict __src)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 491 "/usr/include/string.h"
+extern char *stpcpy (char *__restrict __dest, const char *__restrict __src)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+#line 496 "/usr/include/string.h"
+extern char *__stpncpy (char *__restrict __dest,
+ const char *__restrict __src, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 499 "/usr/include/string.h"
+extern char *stpncpy (char *__restrict __dest,
+ const char *__restrict __src, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 502 "/usr/include/string.h"
+
+
+
+
+
+
+
+
+typedef __builtin_va_list __gnuc_va_list;
+
+#line 41 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stdarg.h"
+
+
+
+
+
+
+typedef struct
+{
+ int __count;
+ union
+ {
+ unsigned int __wch;
+ char __wchb[4];
+ } __value;
+}
+#line 21 "/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h"
+__mbstate_t;
+
+#line 22 "/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h"
+
+
+
+
+typedef struct _G_fpos_t
+{
+ __off_t __pos;
+ __mbstate_t __state;
+}
+#line 14 "/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h"
+__fpos_t;
+
+#line 15 "/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h"
+typedef struct _G_fpos64_t
+{
+ __off64_t __pos;
+ __mbstate_t __state;
+}
+#line 14 "/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h"
+__fpos64_t;
+
+#line 15 "/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h"
+
+
+
+struct _IO_FILE;
+
+#line 5 "/usr/include/x86_64-linux-gnu/bits/types/__FILE.h"
+typedef struct _IO_FILE __FILE;
+
+#line 6 "/usr/include/x86_64-linux-gnu/bits/types/__FILE.h"
+
+
+
+struct _IO_FILE;
+
+
+
+#line 7 "/usr/include/x86_64-linux-gnu/bits/types/FILE.h"
+typedef struct _IO_FILE FILE;
+
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/FILE.h"
+struct _IO_FILE;
+
+#line 36 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+struct _IO_marker;
+
+#line 37 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+struct _IO_codecvt;
+
+#line 38 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+struct _IO_wide_data;
+
+
+
+
+
+#line 43 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+typedef void _IO_lock_t;
+
+
+
+
+
+
+#line 49 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+struct _IO_FILE
+{
+ int _flags;
+
+
+ char *_IO_read_ptr;
+ char *_IO_read_end;
+ char *_IO_read_base;
+ char *_IO_write_base;
+ char *_IO_write_ptr;
+ char *_IO_write_end;
+ char *_IO_buf_base;
+ char *_IO_buf_end;
+
+
+ char *_IO_save_base;
+ char *_IO_backup_base;
+ char *_IO_save_end;
+
+ struct _IO_marker *_markers;
+
+ struct _IO_FILE *_chain;
+
+ int _fileno;
+ int _flags2;
+ __off_t _old_offset;
+
+
+ unsigned short _cur_column;
+ signed char _vtable_offset;
+ char _shortbuf[1];
+
+ _IO_lock_t *_lock;
+
+
+
+
+
+
+
+ __off64_t _offset;
+
+ struct _IO_codecvt *_codecvt;
+ struct _IO_wide_data *_wide_data;
+ struct _IO_FILE *_freeres_list;
+ void *_freeres_buf;
+ size_t __pad5;
+ int _mode;
+
+ char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)];
+};
+
+#line 100 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+typedef __gnuc_va_list va_list;
+
+#line 53 "/usr/include/stdio.h"
+typedef __fpos_t fpos_t;
+
+#line 85 "/usr/include/stdio.h"
+extern FILE *stdin;
+
+#line 144 "/usr/include/stdio.h"
+extern FILE *stdout;
+
+#line 145 "/usr/include/stdio.h"
+extern FILE *stderr;
+
+
+
+
+
+
+
+#line 152 "/usr/include/stdio.h"
+extern int remove (const char *__filename) __attribute__ ((__nothrow__ , __leaf__));
+
+
+#line 154 "/usr/include/stdio.h"
+extern int rename (const char *__old, const char *__new) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 158 "/usr/include/stdio.h"
+extern int renameat (int __oldfd, const char *__old, int __newfd,
+ const char *__new) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 160 "/usr/include/stdio.h"
+extern int fclose (FILE *__stream);
+
+#line 179 "/usr/include/stdio.h"
+extern FILE *tmpfile (void)
+ __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ;
+
+#line 190 "/usr/include/stdio.h"
+extern char *tmpnam (char[20]) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+#line 210 "/usr/include/stdio.h"
+extern char *tmpnam_r (char __s[20]) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+#line 211 "/usr/include/stdio.h"
+extern char *tempnam (const char *__dir, const char *__pfx)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (__builtin_free, 1)));
+
+
+
+
+
+
+
+#line 230 "/usr/include/stdio.h"
+extern int fflush (FILE *__stream);
+
+#line 231 "/usr/include/stdio.h"
+extern int fflush_unlocked (FILE *__stream);
+
+#line 240 "/usr/include/stdio.h"
+extern FILE *fopen (const char *__restrict __filename,
+ const char *__restrict __modes)
+ __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ;
+
+
+
+
+
+#line 265 "/usr/include/stdio.h"
+extern FILE *freopen (const char *__restrict __filename,
+ const char *__restrict __modes,
+ FILE *__restrict __stream) ;
+
+#line 268 "/usr/include/stdio.h"
+extern FILE *fdopen (int __fd, const char *__modes) __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ;
+
+#line 295 "/usr/include/stdio.h"
+extern FILE *fmemopen (void *__s, size_t __len, const char *__modes)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ;
+
+
+
+
+
+#line 314 "/usr/include/stdio.h"
+extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ;
+
+#line 316 "/usr/include/stdio.h"
+extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 332 "/usr/include/stdio.h"
+extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf,
+ int __modes, size_t __n) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+#line 338 "/usr/include/stdio.h"
+extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf,
+ size_t __size) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 342 "/usr/include/stdio.h"
+extern void setlinebuf (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+
+#line 350 "/usr/include/stdio.h"
+extern int fprintf (FILE *__restrict __stream,
+ const char *__restrict __format, ...);
+
+
+
+
+
+#line 356 "/usr/include/stdio.h"
+extern int printf (const char *__restrict __format, ...);
+
+
+#line 358 "/usr/include/stdio.h"
+extern int sprintf (char *__restrict __s,
+ const char *__restrict __format, ...) __attribute__ ((__nothrow__));
+
+
+
+
+
+
+#line 365 "/usr/include/stdio.h"
+extern int vfprintf (FILE *__restrict __s, const char *__restrict __format,
+ __gnuc_va_list __arg);
+
+
+
+
+
+#line 371 "/usr/include/stdio.h"
+extern int vprintf (const char *__restrict __format, __gnuc_va_list __arg);
+
+
+#line 373 "/usr/include/stdio.h"
+extern int vsprintf (char *__restrict __s, const char *__restrict __format,
+ __gnuc_va_list __arg) __attribute__ ((__nothrow__));
+
+
+
+
+#line 378 "/usr/include/stdio.h"
+extern int snprintf (char *__restrict __s, size_t __maxlen,
+ const char *__restrict __format, ...)
+ __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 4)));
+
+
+#line 382 "/usr/include/stdio.h"
+extern int vsnprintf (char *__restrict __s, size_t __maxlen,
+ const char *__restrict __format, __gnuc_va_list __arg)
+ __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 0)));
+
+#line 385 "/usr/include/stdio.h"
+extern int vdprintf (int __fd, const char *__restrict __fmt,
+ __gnuc_va_list __arg)
+ __attribute__ ((__format__ (__printf__, 2, 0)));
+
+#line 406 "/usr/include/stdio.h"
+extern int dprintf (int __fd, const char *__restrict __fmt, ...)
+ __attribute__ ((__format__ (__printf__, 2, 3)));
+
+
+
+
+
+
+
+
+#line 415 "/usr/include/stdio.h"
+extern int fscanf (FILE *__restrict __stream,
+ const char *__restrict __format, ...) ;
+
+
+
+
+
+#line 421 "/usr/include/stdio.h"
+extern int scanf (const char *__restrict __format, ...) ;
+
+
+#line 423 "/usr/include/stdio.h"
+extern int sscanf (const char *__restrict __s,
+ const char *__restrict __format, ...) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 425 "/usr/include/stdio.h"
+extern int fscanf (FILE *__restrict __stream, const char *__restrict __format, ...) __asm__ ("" "__isoc99_fscanf")
+
+ ;
+
+#line 437 "/usr/include/stdio.h"
+extern int scanf (const char *__restrict __format, ...) __asm__ ("" "__isoc99_scanf")
+ ;
+
+#line 439 "/usr/include/stdio.h"
+extern int sscanf (const char *__restrict __s, const char *__restrict __format, ...) __asm__ ("" "__isoc99_sscanf") __attribute__ ((__nothrow__ , __leaf__))
+
+ ;
+
+#line 442 "/usr/include/stdio.h"
+extern int vfscanf (FILE *__restrict __s, const char *__restrict __format,
+ __gnuc_va_list __arg)
+ __attribute__ ((__format__ (__scanf__, 2, 0))) ;
+
+
+
+
+
+
+#line 467 "/usr/include/stdio.h"
+extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg)
+ __attribute__ ((__format__ (__scanf__, 1, 0))) ;
+
+
+
+#line 471 "/usr/include/stdio.h"
+extern int vsscanf (const char *__restrict __s,
+ const char *__restrict __format, __gnuc_va_list __arg)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__format__ (__scanf__, 2, 0)));
+
+
+
+
+
+
+#line 479 "/usr/include/stdio.h"
+extern int vfscanf (FILE *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vfscanf")
+
+
+
+ __attribute__ ((__format__ (__scanf__, 2, 0))) ;
+
+#line 484 "/usr/include/stdio.h"
+extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vscanf")
+
+ __attribute__ ((__format__ (__scanf__, 1, 0))) ;
+
+#line 487 "/usr/include/stdio.h"
+extern int vsscanf (const char *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vsscanf") __attribute__ ((__nothrow__ , __leaf__))
+
+
+
+ __attribute__ ((__format__ (__scanf__, 2, 0)));
+
+#line 492 "/usr/include/stdio.h"
+extern int fgetc (FILE *__stream);
+
+#line 514 "/usr/include/stdio.h"
+extern int getc (FILE *__stream);
+
+
+
+
+
+
+#line 520 "/usr/include/stdio.h"
+extern int getchar (void);
+
+
+
+
+
+
+
+#line 527 "/usr/include/stdio.h"
+extern int getc_unlocked (FILE *__stream);
+
+#line 528 "/usr/include/stdio.h"
+extern int getchar_unlocked (void);
+
+#line 529 "/usr/include/stdio.h"
+extern int fgetc_unlocked (FILE *__stream);
+
+#line 539 "/usr/include/stdio.h"
+extern int fputc (int __c, FILE *__stream);
+
+#line 550 "/usr/include/stdio.h"
+extern int putc (int __c, FILE *__stream);
+
+
+
+
+
+
+#line 556 "/usr/include/stdio.h"
+extern int putchar (int __c);
+
+#line 557 "/usr/include/stdio.h"
+extern int fputc_unlocked (int __c, FILE *__stream);
+
+
+
+
+
+
+
+
+#line 573 "/usr/include/stdio.h"
+extern int putc_unlocked (int __c, FILE *__stream);
+
+#line 574 "/usr/include/stdio.h"
+extern int putchar_unlocked (int __c);
+
+
+
+
+
+
+
+#line 581 "/usr/include/stdio.h"
+extern int getw (FILE *__stream);
+
+
+
+#line 584 "/usr/include/stdio.h"
+extern int putw (int __w, FILE *__stream);
+
+
+
+
+
+
+
+
+#line 592 "/usr/include/stdio.h"
+extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream)
+ __attribute__ ((__access__ (__write_only__, 1, 2)));
+
+#line 594 "/usr/include/stdio.h"
+extern __ssize_t __getdelim (char **__restrict __lineptr,
+ size_t *__restrict __n, int __delimiter,
+ FILE *__restrict __stream) ;
+
+#line 635 "/usr/include/stdio.h"
+extern __ssize_t getdelim (char **__restrict __lineptr,
+ size_t *__restrict __n, int __delimiter,
+ FILE *__restrict __stream) ;
+
+
+
+
+
+
+
+
+#line 645 "/usr/include/stdio.h"
+extern __ssize_t getline (char **__restrict __lineptr,
+ size_t *__restrict __n,
+ FILE *__restrict __stream) ;
+
+
+
+
+
+
+
+
+#line 655 "/usr/include/stdio.h"
+extern int fputs (const char *__restrict __s, FILE *__restrict __stream);
+
+
+
+
+
+
+#line 661 "/usr/include/stdio.h"
+extern int puts (const char *__s);
+
+
+
+
+
+
+
+#line 668 "/usr/include/stdio.h"
+extern int ungetc (int __c, FILE *__stream);
+
+
+
+
+
+
+
+#line 675 "/usr/include/stdio.h"
+extern size_t fread (void *__restrict __ptr, size_t __size,
+ size_t __n, FILE *__restrict __stream) ;
+
+
+
+
+
+#line 681 "/usr/include/stdio.h"
+extern size_t fwrite (const void *__restrict __ptr, size_t __size,
+ size_t __n, FILE *__restrict __s);
+
+#line 683 "/usr/include/stdio.h"
+extern size_t fread_unlocked (void *__restrict __ptr, size_t __size,
+ size_t __n, FILE *__restrict __stream) ;
+
+#line 704 "/usr/include/stdio.h"
+extern size_t fwrite_unlocked (const void *__restrict __ptr, size_t __size,
+ size_t __n, FILE *__restrict __stream);
+
+
+
+
+
+
+
+
+#line 713 "/usr/include/stdio.h"
+extern int fseek (FILE *__stream, long int __off, int __whence);
+
+
+
+
+
+#line 718 "/usr/include/stdio.h"
+extern long int ftell (FILE *__stream) ;
+
+
+
+
+
+#line 723 "/usr/include/stdio.h"
+extern void rewind (FILE *__stream);
+
+#line 724 "/usr/include/stdio.h"
+extern int fseeko (FILE *__stream, __off_t __off, int __whence);
+
+
+
+
+
+#line 741 "/usr/include/stdio.h"
+extern __off_t ftello (FILE *__stream) ;
+
+#line 742 "/usr/include/stdio.h"
+extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos);
+
+
+
+
+
+#line 765 "/usr/include/stdio.h"
+extern int fsetpos (FILE *__stream, const fpos_t *__pos);
+
+#line 766 "/usr/include/stdio.h"
+extern void clearerr (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
+
+
+#line 788 "/usr/include/stdio.h"
+extern int feof (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+#line 790 "/usr/include/stdio.h"
+extern int ferror (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+#line 794 "/usr/include/stdio.h"
+extern void clearerr_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 795 "/usr/include/stdio.h"
+extern int feof_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+#line 796 "/usr/include/stdio.h"
+extern int ferror_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+
+
+
+#line 804 "/usr/include/stdio.h"
+extern void perror (const char *__s);
+
+
+
+
+
+#line 809 "/usr/include/stdio.h"
+extern int fileno (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+#line 814 "/usr/include/stdio.h"
+extern int fileno_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+#line 815 "/usr/include/stdio.h"
+extern int pclose (FILE *__stream);
+
+
+
+
+
+
+#line 829 "/usr/include/stdio.h"
+extern FILE *popen (const char *__command, const char *__modes)
+ __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (pclose, 1))) ;
+
+
+
+
+
+
+
+#line 837 "/usr/include/stdio.h"
+extern char *ctermid (char *__s) __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__access__ (__write_only__, 1)));
+
+#line 839 "/usr/include/stdio.h"
+extern void flockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 871 "/usr/include/stdio.h"
+extern int ftrylockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+#line 874 "/usr/include/stdio.h"
+extern void funlockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 875 "/usr/include/stdio.h"
+extern int __uflow (FILE *);
+
+#line 886 "/usr/include/stdio.h"
+extern int __overflow (FILE *, int);
+
+#line 887 "/usr/include/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+vprintf (const char *__restrict __fmt, __gnuc_va_list __arg)
+{
+ return vfprintf (stdout, __fmt, __arg);
+}
+
+
+
+
+#line 46 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+getchar (void)
+{
+ return getc (stdin);
+}
+
+
+
+
+
+#line 55 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+fgetc_unlocked (FILE *__fp)
+{
+ return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++);
+}
+
+
+
+
+
+
+#line 65 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+getc_unlocked (FILE *__fp)
+{
+ return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++);
+}
+
+
+
+#line 72 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+getchar_unlocked (void)
+{
+ return (__builtin_expect (((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end), 0) ? __uflow (stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++);
+}
+
+
+
+
+
+#line 81 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+putchar (int __c)
+{
+ return putc (__c, stdout);
+}
+
+
+
+
+
+#line 90 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+fputc_unlocked (int __c, FILE *__stream)
+{
+ return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
+}
+
+
+
+
+
+
+#line 100 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+putc_unlocked (int __c, FILE *__stream)
+{
+ return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
+}
+
+
+
+#line 107 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+putchar_unlocked (int __c)
+{
+ return (__builtin_expect (((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end), 0) ? __overflow (stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c)));
+}
+
+#line 112 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+__attribute__ ((__nothrow__ , __leaf__)) feof_unlocked (FILE *__stream)
+{
+ return (((__stream)->_flags & 0x0010) != 0);
+}
+
+
+
+#line 134 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+__attribute__ ((__nothrow__ , __leaf__)) ferror_unlocked (FILE *__stream)
+{
+ return (((__stream)->_flags & 0x0020) != 0);
+}
+
+#line 139 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+
+
+
+
+
+
+
+
+
+struct hashmap_other__other__comma_struct_other_uniq_other_string {
+ struct uniq_string **data;
+ size_t count;
+ size_t cap;
+};
+
+
+#line 139 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+
+
+
+
+
+
+
+
+
+struct hashmap_other__other__comma_struct_other_call {
+ struct call **data;
+ size_t count;
+ size_t cap;
+};
+
+
+#line 17 "gamma.h"
+uint32_t hashmap_other_hash_other__other__comma_struct_other_call(struct call *item);
+
+#line 17 "gamma.h"
+uint32_t hashmap_other_hash_other__other__comma_struct_other_uniq_other_string(struct uniq_string *item);
+
+#line 18 "gamma.h"
+int hashmap_other_eq_other__other__comma_struct_other_call(struct call *A, struct call *B);
+
+
+#line 18 "gamma.h"
+int hashmap_other_eq_other__other__comma_struct_other_uniq_other_string(struct uniq_string *A, struct uniq_string *B);
+
+
+#line 20 "gamma.h"
+struct uniq_string *hashmap_other_lookup_other__other__comma_struct_other_uniq_other_string(struct hashmap_other__other__comma_struct_other_uniq_other_string *hashmap, struct uniq_string *item);
+
+#line 21 "gamma.h"
+struct uniq_string *hashmap_other_lookup_other_weak_other__other__comma_struct_other_uniq_other_string(struct hashmap_other__other__comma_struct_other_uniq_other_string *hashmap, struct uniq_string *item);
+
+#line 21 "gamma.h"
+struct call *hashmap_other_lookup_other_weak_other__other__comma_struct_other_call(struct hashmap_other__other__comma_struct_other_call *hashmap, struct call *item);
+
+#line 22 "gamma.h"
+int hashmap_other_contains_other__other__comma_struct_other_call(struct hashmap_other__other__comma_struct_other_call *hashmap, struct call *item);
+
+#line 23 "gamma.h"
+void hashmap_other_insert_other__other__comma_struct_other_uniq_other_string(struct hashmap_other__other__comma_struct_other_uniq_other_string *hashmap, struct uniq_string *item);
+
+#line 23 "gamma.h"
+void hashmap_other_insert_other__other__comma_struct_other_call(struct hashmap_other__other__comma_struct_other_call *hashmap, struct call *item);
+
+#line 24 "gamma.h"
+struct uniq_string *heapify_other__other__comma_struct_other_uniq_other_string(struct uniq_string item);
+
+
+#line 26 "gamma.h"
+struct vector_other__other__comma_struct_other_call_other__star_ {
+ struct call * *data;
+ size_t count;
+ size_t cap;
+};
+
+#line 31 "gamma.h"
+uint32_t vector_other_push_other__other__comma_struct_other_call_other__star_(struct vector_other__other__comma_struct_other_call_other__star_ *vector, struct call * item);
+
+#line 32 "gamma.h"
+struct call * vector_other_pop_other__other__comma_struct_other_call_other__star_(struct vector_other__other__comma_struct_other_call_other__star_ *vector);
+
+#line 33 "gamma.h"
+struct vector_other__other__comma_struct_other_call_other__star_ *init_other_vector_other__other__comma_struct_other_call_other__star_();
+
+
+#line 35 "gamma.h"
+struct uniq_string {
+ char *string;
+ size_t len;
+
+ struct vector_other__other__comma_struct_other_call_other__star_ instantiations;
+
+ struct chunk *definitions;
+};
+
+
+#line 44 "gamma.h"
+struct arg {
+ char *start;
+ struct uniq_string *string;
+ int is_concrete;
+};
+
+
+#line 50 "gamma.h"
+struct call {
+ char *start;
+ char *end;
+ struct uniq_string *name;
+ struct arg *args;
+ size_t n_args;
+ struct call *next;
+};
+
+
+#line 59 "gamma.h"
+struct chunk {
+ char *start;
+ char *end;
+
+ char *line_filename;
+ size_t line;
+
+ struct call *defining_call;
+ struct call *calls;
+ struct chunk *next;
+ struct chunk *next_definition;
+};
+
+
+#line 72 "gamma.h"
+struct chunked_file {
+ char *contents;
+ char *end;
+ size_t id;
+ struct chunk *chunks;
+ struct chunked_file *next;
+};
+
+
+#line 80 "gamma.h"
+struct chunked_file *chunk(const char *path);
+
+#line 81 "gamma.h"
+struct uniq_string *lookup(char *string, size_t len);
+
+#line 82 "gamma.h"
+struct uniq_string *weak_lookup(char *string, size_t len);
+
+
+
+
+#line 86 "gamma.h"
+struct instantiation_set {
+ struct call **data;
+ size_t n;
+ size_t cap;
+};
+
+
+#line 92 "gamma.h"
+void parse_call(struct call *call);
+
+#line 93 "gamma.h"
+void print_state(struct chunked_file *file);
+
+#line 94 "gamma.h"
+void solve(struct chunked_file *files);
+
+#line 95 "gamma.h"
+void print_string(struct uniq_string *string);
+
+#line 96 "gamma.h"
+void print_call(struct call *call);
+
+#line 97 "gamma.h"
+void print_set(struct instantiation_set *set);
+
+#line 98 "gamma.h"
+void print_chunk(struct chunk *chunk, struct call *instantiation, FILE *out);
+
+#line 99 "gamma.h"
+struct call *replace_variables(struct call *container, struct call *container_instantiation, struct call *call);
+
+#line 100 "gamma.h"
+void fprint_string(FILE *out, struct uniq_string *string);
+
+#line 101 "gamma.h"
+char **read_fakeobj(char *path, char *c_dst);
+
+#line 102 "gamma.h"
+void write_fakeobj(char *src, char *dst, int i);
+
+#line 103 "gamma.h"
+void gamma_sendfile(int dst_fd, int src_fd);
+
+#line 104 "gamma.h"
+void copy_file(char *dst, char *src);
+
+
+#line 106 "gamma.h"
+extern char **ARGV;
+
+#line 107 "gamma.h"
+extern int ARGC;
+
+#line 108 "gamma.h"
+extern char *TMPDIR;
+
+#line 109 "gamma.h"
+extern int GAMMA_TO_C;
+
+#line 110 "gamma.h"
+
+int is_instantiation(struct call *call) {
+ for (size_t i = 0; i < call->n_args; i++)
+ if (!call->args[i].is_concrete)
+ return 0;
+ return 1;
+}
+
+
+
+#line 11 "solve.c"
+struct call *replace_variables(struct call *container, struct call *container_instantiation, struct call *call) {
+ struct call *new = calloc(1, sizeof *new);
+ memcpy(new, call, sizeof *new);
+ new->args = calloc(new->n_args, sizeof(new->args[0]));
+ memcpy(new->args, call->args, new->n_args * sizeof(new->args[0]));
+ for (size_t i = 0; i < call->n_args; i++) {
+ if (call->args[i].is_concrete) continue;
+
+
+ ((void) sizeof ((
+ container->n_args == container_instantiation->n_args
+ ) ? 1 : 0), __extension__ ({ if (
+ container->n_args == container_instantiation->n_args
+ ) ; else __assert_fail (
+ "container->n_args == container_instantiation->n_args"
+ , "solve.c", 19, __extension__ __PRETTY_FUNCTION__); }))
+ ;
+ for (size_t j = 0; j < container->n_args; j++) {
+ if (call->args[i].string == container->args[j].string) {
+ new->args[i] = container_instantiation->args[j];
+ break;
+ }
+ }
+ if (!(new->args[i].is_concrete)) {
+ free(new->args);
+ free(new);
+ return 0;
+ }
+ }
+ return new;
+}
+
+
+#line 35 "solve.c"
+void solve(struct chunked_file *files) {
+
+ for (struct chunked_file *file = files; file; file = file->next) {
+ for (struct chunk *chunk = file->chunks; chunk; chunk = chunk->next) {
+ if (!(chunk->defining_call)) continue;
+ for (struct call *call = chunk->calls; call; call = call->next) {
+ for (size_t i = 0; i < call->n_args; i++) {
+ if (!(call->args[i].is_concrete)) continue;
+ for (size_t j = 0; j < chunk->defining_call->n_args; j++) {
+ if (chunk->defining_call->args[j].is_concrete) continue;
+ if (call->args[i].string == chunk->defining_call->args[j].string) {
+ call->args[i].is_concrete = 0;
+ break;
+ }
+ }
+ }
+ }
+ }
+ }
+
+
+ for (struct chunked_file *file = files; file; file = file->next)
+ for (struct chunk *chunk = file->chunks; chunk; chunk = chunk->next) {
+ if (!chunk->defining_call) continue;
+ struct uniq_string *name = chunk->defining_call->name;
+ chunk->next_definition = name->definitions;
+ name->definitions = chunk;
+ }
+
+
+ struct hashmap_other__other__comma_struct_other_call *memo = calloc(1, sizeof(*memo));
+ struct vector_other__other__comma_struct_other_call_other__star_ *queue = init_other_vector_other__other__comma_struct_other_call_other__star_();
+ for (struct chunked_file *file = files; file; file = file->next)
+ for (struct chunk *chunk = file->chunks; chunk; chunk = chunk->next)
+ for (struct call *call = chunk->calls; call; call = call->next) {
+ if (is_instantiation(call) && !hashmap_other_contains_other__other__comma_struct_other_call(memo, call)) {
+ hashmap_other_insert_other__other__comma_struct_other_call(memo, call);
+ vector_other_push_other__other__comma_struct_other_call_other__star_(queue, call);
+ }
+ }
+
+
+ while (queue->count) {
+ struct call *instantiation = vector_other_pop_other__other__comma_struct_other_call_other__star_(queue);
+ vector_other_push_other__other__comma_struct_other_call_other__star_(&(instantiation->name->instantiations),
+ instantiation);
+ for (struct chunk *chunk = instantiation->name->definitions;
+ chunk; chunk = chunk->next_definition) {
+
+ ((void) sizeof ((
+ chunk->defining_call
+ ) ? 1 : 0), __extension__ ({ if (
+ chunk->defining_call
+ ) ; else __assert_fail (
+ "chunk->defining_call"
+ , "solve.c", 83, __extension__ __PRETTY_FUNCTION__); }))
+ ;
+
+ ((void) sizeof ((
+ chunk->defining_call->name == instantiation->name
+ ) ? 1 : 0), __extension__ ({ if (
+ chunk->defining_call->name == instantiation->name
+ ) ; else __assert_fail (
+ "chunk->defining_call->name == instantiation->name"
+ , "solve.c", 84, __extension__ __PRETTY_FUNCTION__); }))
+ ;
+ for (struct call *call = chunk->calls; call; call = call->next) {
+ struct call *new = replace_variables(chunk->defining_call, instantiation, call);
+ if (!new) continue;
+ if (hashmap_other_contains_other__other__comma_struct_other_call(memo, new)) {
+ free(new->args);
+ free(new);
+ continue;
+ }
+ hashmap_other_insert_other__other__comma_struct_other_call(memo, new);
+ vector_other_push_other__other__comma_struct_other_call_other__star_(queue, new);
+ }
+ }
+ }
+}
+
+#line 99 "solve.c"
diff --git a/c_version/11.c b/c_version/11.c
new file mode 100755
index 0000000..61554d2
--- /dev/null
+++ b/c_version/11.c
@@ -0,0 +1,3527 @@
+
+#line 1 "/tmp/gamma.XksNqZ/11.unfake.c"
+
+
+
+
+
+
+extern void __assert_fail (const char *__assertion, const char *__file,
+ unsigned int __line, const char *__function)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+#line 74 "/usr/include/assert.h"
+extern void __assert_perror_fail (int __errnum, const char *__file,
+ unsigned int __line, const char *__function)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+
+#line 81 "/usr/include/assert.h"
+extern void __assert (const char *__assertion, const char *__file, int __line)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+#line 86 "/usr/include/assert.h"
+typedef long int ptrdiff_t;
+
+#line 146 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h"
+typedef long unsigned int size_t;
+
+#line 215 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h"
+typedef int wchar_t;
+
+#line 330 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h"
+typedef struct {
+ long long __max_align_ll __attribute__((__aligned__(__alignof__(long long))));
+ long double __max_align_ld __attribute__((__aligned__(__alignof__(long double))));
+}
+#line 435 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h"
+max_align_t;
+
+#line 436 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h"
+
+
+typedef unsigned char __u_char;
+
+#line 32 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned short int __u_short;
+
+#line 33 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __u_int;
+
+#line 34 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __u_long;
+
+
+
+#line 37 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef signed char __int8_t;
+
+#line 38 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned char __uint8_t;
+
+#line 39 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef signed short int __int16_t;
+
+#line 40 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned short int __uint16_t;
+
+#line 41 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef signed int __int32_t;
+
+#line 42 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __uint32_t;
+
+
+#line 44 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef signed long int __int64_t;
+
+#line 45 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __uint64_t;
+
+
+
+
+
+
+
+#line 52 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __int8_t __int_least8_t;
+
+#line 53 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __uint8_t __uint_least8_t;
+
+#line 54 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __int16_t __int_least16_t;
+
+#line 55 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __uint16_t __uint_least16_t;
+
+#line 56 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __int32_t __int_least32_t;
+
+#line 57 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __uint32_t __uint_least32_t;
+
+#line 58 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __int64_t __int_least64_t;
+
+#line 59 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __uint64_t __uint_least64_t;
+
+
+
+
+#line 63 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __quad_t;
+
+#line 64 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __u_quad_t;
+
+
+
+
+
+
+
+
+#line 72 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __intmax_t;
+
+#line 73 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __uintmax_t;
+
+#line 74 "/usr/include/x86_64-linux-gnu/bits/types.h"
+
+
+typedef unsigned long int __dev_t;
+
+#line 146 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __uid_t;
+
+#line 147 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __gid_t;
+
+#line 148 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __ino_t;
+
+#line 149 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __ino64_t;
+
+#line 150 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __mode_t;
+
+#line 151 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __nlink_t;
+
+#line 152 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __off_t;
+
+#line 153 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __off64_t;
+
+#line 154 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef int __pid_t;
+
+#line 155 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef struct { int __val[2]; }
+#line 155 "/usr/include/x86_64-linux-gnu/bits/types.h"
+__fsid_t;
+
+#line 156 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __clock_t;
+
+#line 157 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __rlim_t;
+
+#line 158 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __rlim64_t;
+
+#line 159 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __id_t;
+
+#line 160 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __time_t;
+
+#line 161 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __useconds_t;
+
+#line 162 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __suseconds_t;
+
+#line 163 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __suseconds64_t;
+
+
+#line 165 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef int __daddr_t;
+
+#line 166 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef int __key_t;
+
+
+
+#line 169 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef int __clockid_t;
+
+
+
+#line 172 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef void * __timer_t;
+
+
+
+#line 175 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __blksize_t;
+
+
+
+
+
+#line 180 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __blkcnt_t;
+
+#line 181 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __blkcnt64_t;
+
+
+
+#line 184 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __fsblkcnt_t;
+
+#line 185 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __fsblkcnt64_t;
+
+
+
+#line 188 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __fsfilcnt_t;
+
+#line 189 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __fsfilcnt64_t;
+
+
+
+#line 192 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __fsword_t;
+
+
+#line 194 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __ssize_t;
+
+
+
+#line 197 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __syscall_slong_t;
+
+
+#line 199 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __syscall_ulong_t;
+
+
+
+
+#line 203 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __off64_t __loff_t;
+
+#line 204 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef char *__caddr_t;
+
+
+
+#line 207 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __intptr_t;
+
+
+
+#line 210 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __socklen_t;
+
+
+
+
+
+#line 215 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef int __sig_atomic_t;
+
+#line 216 "/usr/include/x86_64-linux-gnu/bits/types.h"
+
+
+
+
+typedef __int8_t int8_t;
+
+#line 25 "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h"
+typedef __int16_t int16_t;
+
+#line 26 "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h"
+typedef __int32_t int32_t;
+
+#line 27 "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h"
+typedef __int64_t int64_t;
+
+#line 28 "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h"
+
+
+typedef __uint8_t uint8_t;
+
+#line 25 "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h"
+typedef __uint16_t uint16_t;
+
+#line 26 "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h"
+typedef __uint32_t uint32_t;
+
+#line 27 "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h"
+typedef __uint64_t uint64_t;
+
+#line 28 "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h"
+
+
+
+
+
+typedef __int_least8_t int_least8_t;
+
+#line 44 "/usr/include/stdint.h"
+typedef __int_least16_t int_least16_t;
+
+#line 45 "/usr/include/stdint.h"
+typedef __int_least32_t int_least32_t;
+
+#line 46 "/usr/include/stdint.h"
+typedef __int_least64_t int_least64_t;
+
+
+
+#line 49 "/usr/include/stdint.h"
+typedef __uint_least8_t uint_least8_t;
+
+#line 50 "/usr/include/stdint.h"
+typedef __uint_least16_t uint_least16_t;
+
+#line 51 "/usr/include/stdint.h"
+typedef __uint_least32_t uint_least32_t;
+
+#line 52 "/usr/include/stdint.h"
+typedef __uint_least64_t uint_least64_t;
+
+
+
+
+
+
+#line 58 "/usr/include/stdint.h"
+typedef signed char int_fast8_t;
+
+
+#line 60 "/usr/include/stdint.h"
+typedef long int int_fast16_t;
+
+#line 61 "/usr/include/stdint.h"
+typedef long int int_fast32_t;
+
+#line 62 "/usr/include/stdint.h"
+typedef long int int_fast64_t;
+
+#line 63 "/usr/include/stdint.h"
+typedef unsigned char uint_fast8_t;
+
+
+#line 73 "/usr/include/stdint.h"
+typedef unsigned long int uint_fast16_t;
+
+#line 74 "/usr/include/stdint.h"
+typedef unsigned long int uint_fast32_t;
+
+#line 75 "/usr/include/stdint.h"
+typedef unsigned long int uint_fast64_t;
+
+#line 76 "/usr/include/stdint.h"
+typedef long int intptr_t;
+
+
+
+#line 90 "/usr/include/stdint.h"
+typedef unsigned long int uintptr_t;
+
+#line 91 "/usr/include/stdint.h"
+typedef __intmax_t intmax_t;
+
+#line 102 "/usr/include/stdint.h"
+typedef __uintmax_t uintmax_t;
+
+#line 103 "/usr/include/stdint.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct
+ {
+ int quot;
+ int rem;
+ }
+#line 63 "/usr/include/stdlib.h"
+div_t;
+
+
+
+
+#line 67 "/usr/include/stdlib.h"
+typedef struct
+ {
+ long int quot;
+ long int rem;
+ }
+#line 71 "/usr/include/stdlib.h"
+ldiv_t;
+
+
+
+
+
+
+#line 77 "/usr/include/stdlib.h"
+__extension__ typedef struct
+ {
+ long long int quot;
+ long long int rem;
+ }
+#line 81 "/usr/include/stdlib.h"
+lldiv_t;
+
+#line 82 "/usr/include/stdlib.h"
+extern size_t __ctype_get_mb_cur_max (void) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+#line 102 "/usr/include/stdlib.h"
+extern double atof (const char *__nptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+#line 105 "/usr/include/stdlib.h"
+extern int atoi (const char *__nptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+#line 108 "/usr/include/stdlib.h"
+extern long int atol (const char *__nptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+#line 113 "/usr/include/stdlib.h"
+__extension__ extern long long int atoll (const char *__nptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+#line 118 "/usr/include/stdlib.h"
+extern double strtod (const char *__restrict __nptr,
+ char **__restrict __endptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+#line 124 "/usr/include/stdlib.h"
+extern float strtof (const char *__restrict __nptr,
+ char **__restrict __endptr) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+#line 127 "/usr/include/stdlib.h"
+extern long double strtold (const char *__restrict __nptr,
+ char **__restrict __endptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 130 "/usr/include/stdlib.h"
+extern long int strtol (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+#line 181 "/usr/include/stdlib.h"
+extern unsigned long int strtoul (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+#line 187 "/usr/include/stdlib.h"
+__extension__
+extern long long int strtoq (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+#line 192 "/usr/include/stdlib.h"
+__extension__
+extern unsigned long long int strtouq (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+#line 200 "/usr/include/stdlib.h"
+__extension__
+extern long long int strtoll (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+#line 205 "/usr/include/stdlib.h"
+__extension__
+extern unsigned long long int strtoull (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 209 "/usr/include/stdlib.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+__attribute__ ((__nothrow__ , __leaf__)) atoi (const char *__nptr)
+{
+ return (int) strtol (__nptr, (char **) ((void *)0), 10);
+}
+
+#line 366 "/usr/include/stdlib.h"
+extern __inline __attribute__ ((__gnu_inline__)) long int
+__attribute__ ((__nothrow__ , __leaf__)) atol (const char *__nptr)
+{
+ return strtol (__nptr, (char **) ((void *)0), 10);
+}
+
+
+
+#line 373 "/usr/include/stdlib.h"
+__extension__ extern __inline __attribute__ ((__gnu_inline__)) long long int
+__attribute__ ((__nothrow__ , __leaf__)) atoll (const char *__nptr)
+{
+ return strtoll (__nptr, (char **) ((void *)0), 10);
+}
+
+#line 378 "/usr/include/stdlib.h"
+extern char *l64a (long int __n) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+#line 389 "/usr/include/stdlib.h"
+extern long int a64l (const char *__s)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+
+#line 395 "/usr/include/stdlib.h"
+
+
+
+
+
+
+typedef __u_char u_char;
+
+#line 34 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __u_short u_short;
+
+#line 35 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __u_int u_int;
+
+#line 36 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __u_long u_long;
+
+#line 37 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __quad_t quad_t;
+
+#line 38 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __u_quad_t u_quad_t;
+
+#line 39 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __fsid_t fsid_t;
+
+
+
+#line 42 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __loff_t loff_t;
+
+
+
+
+
+#line 47 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __ino_t ino_t;
+
+#line 48 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __dev_t dev_t;
+
+
+
+
+
+#line 64 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __gid_t gid_t;
+
+
+
+
+
+#line 69 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __mode_t mode_t;
+
+
+
+
+
+#line 74 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __nlink_t nlink_t;
+
+
+
+
+
+#line 79 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __uid_t uid_t;
+
+
+
+
+
+
+#line 85 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __off_t off_t;
+
+#line 86 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __pid_t pid_t;
+
+
+
+
+
+
+#line 103 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __id_t id_t;
+
+
+
+
+
+#line 108 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __ssize_t ssize_t;
+
+
+
+
+
+
+#line 114 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __daddr_t daddr_t;
+
+#line 115 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __caddr_t caddr_t;
+
+
+
+
+
+
+#line 121 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __key_t key_t;
+
+
+
+
+
+#line 126 "/usr/include/x86_64-linux-gnu/sys/types.h"
+
+
+
+
+
+
+typedef __clock_t clock_t;
+
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/clock_t.h"
+
+
+
+
+
+
+
+typedef __clockid_t clockid_t;
+
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h"
+typedef __time_t time_t;
+
+#line 11 "/usr/include/x86_64-linux-gnu/bits/types/time_t.h"
+
+
+
+
+
+
+typedef __timer_t timer_t;
+
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/timer_t.h"
+
+
+
+typedef unsigned long int ulong;
+
+#line 149 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef unsigned short int ushort;
+
+#line 150 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef unsigned int uint;
+
+
+
+
+
+
+
+
+#line 158 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __uint8_t u_int8_t;
+
+#line 159 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __uint16_t u_int16_t;
+
+#line 160 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __uint32_t u_int32_t;
+
+#line 161 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __uint64_t u_int64_t;
+
+
+
+#line 164 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef int register_t __attribute__ ((__mode__ (__word__)));
+
+#line 165 "/usr/include/x86_64-linux-gnu/sys/types.h"
+static __inline __uint16_t
+__bswap_16 (__uint16_t __bsx)
+{
+
+ return __builtin_bswap16 (__bsx);
+
+
+
+}
+
+
+
+
+
+
+
+#line 48 "/usr/include/x86_64-linux-gnu/bits/byteswap.h"
+static __inline __uint32_t
+__bswap_32 (__uint32_t __bsx)
+{
+
+ return __builtin_bswap32 (__bsx);
+
+
+
+}
+
+#line 57 "/usr/include/x86_64-linux-gnu/bits/byteswap.h"
+__extension__ static __inline __uint64_t
+__bswap_64 (__uint64_t __bsx)
+{
+
+ return __builtin_bswap64 (__bsx);
+
+
+
+}
+
+#line 78 "/usr/include/x86_64-linux-gnu/bits/byteswap.h"
+static __inline __uint16_t
+__uint16_identity (__uint16_t __x)
+{
+ return __x;
+}
+
+
+#line 38 "/usr/include/x86_64-linux-gnu/bits/uintn-identity.h"
+static __inline __uint32_t
+__uint32_identity (__uint32_t __x)
+{
+ return __x;
+}
+
+
+#line 44 "/usr/include/x86_64-linux-gnu/bits/uintn-identity.h"
+static __inline __uint64_t
+__uint64_identity (__uint64_t __x)
+{
+ return __x;
+}
+
+#line 49 "/usr/include/x86_64-linux-gnu/bits/uintn-identity.h"
+
+
+
+
+
+
+
+
+
+
+
+typedef struct
+{
+ unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))];
+}
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h"
+__sigset_t;
+
+#line 9 "/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h"
+
+
+typedef __sigset_t sigset_t;
+
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h"
+
+
+
+
+
+
+
+
+
+
+struct timeval
+{
+
+
+
+
+ __time_t tv_sec;
+ __suseconds_t tv_usec;
+
+};
+
+#line 18 "/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h"
+
+struct timespec
+{
+
+
+
+ __time_t tv_sec;
+
+
+
+
+ __syscall_slong_t tv_nsec;
+};
+
+#line 32 "/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h"
+
+
+
+typedef __suseconds_t suseconds_t;
+
+
+
+
+
+
+#line 49 "/usr/include/x86_64-linux-gnu/sys/select.h"
+typedef long int __fd_mask;
+
+#line 50 "/usr/include/x86_64-linux-gnu/sys/select.h"
+typedef struct
+ {
+
+
+
+
+
+
+ __fd_mask __fds_bits[1024 / (8 * (int) sizeof (__fd_mask))];
+
+
+ }
+#line 70 "/usr/include/x86_64-linux-gnu/sys/select.h"
+fd_set;
+
+
+
+
+
+
+
+#line 77 "/usr/include/x86_64-linux-gnu/sys/select.h"
+typedef __fd_mask fd_mask;
+
+#line 78 "/usr/include/x86_64-linux-gnu/sys/select.h"
+
+extern int select (int __nfds, fd_set *__restrict __readfds,
+ fd_set *__restrict __writefds,
+ fd_set *__restrict __exceptfds,
+ struct timeval *__restrict __timeout);
+
+#line 106 "/usr/include/x86_64-linux-gnu/sys/select.h"
+extern int pselect (int __nfds, fd_set *__restrict __readfds,
+ fd_set *__restrict __writefds,
+ fd_set *__restrict __exceptfds,
+ const struct timespec *__restrict __timeout,
+ const __sigset_t *__restrict __sigmask);
+
+#line 132 "/usr/include/x86_64-linux-gnu/sys/select.h"
+
+
+
+
+
+
+typedef __blksize_t blksize_t;
+
+
+
+
+
+
+
+#line 192 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __blkcnt_t blkcnt_t;
+
+
+
+
+#line 196 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __fsblkcnt_t fsblkcnt_t;
+
+
+
+
+#line 200 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __fsfilcnt_t fsfilcnt_t;
+
+#line 201 "/usr/include/x86_64-linux-gnu/sys/types.h"
+
+typedef union
+{
+ __extension__ unsigned long long int __value64;
+ struct
+ {
+ unsigned int __low;
+ unsigned int __high;
+ } __value32;
+}
+#line 33 "/usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h"
+__atomic_wide_counter;
+
+#line 34 "/usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h"
+
+
+
+
+typedef struct __pthread_internal_list
+{
+ struct __pthread_internal_list *__prev;
+ struct __pthread_internal_list *__next;
+}
+#line 55 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+__pthread_list_t;
+
+
+#line 57 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+typedef struct __pthread_internal_slist
+{
+ struct __pthread_internal_slist *__next;
+}
+#line 60 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+__pthread_slist_t;
+
+#line 61 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+struct __pthread_mutex_s
+{
+ int __lock;
+ unsigned int __count;
+ int __owner;
+
+ unsigned int __nusers;
+
+
+
+ int __kind;
+
+ short __spins;
+ short __elision;
+ __pthread_list_t __list;
+};
+
+#line 54 "/usr/include/x86_64-linux-gnu/bits/struct_mutex.h"
+struct __pthread_rwlock_arch_t
+{
+ unsigned int __readers;
+ unsigned int __writers;
+ unsigned int __wrphase_futex;
+ unsigned int __writers_futex;
+ unsigned int __pad3;
+ unsigned int __pad4;
+
+ int __cur_writer;
+ int __shared;
+ signed char __rwelision;
+
+
+
+
+ unsigned char __pad1[7];
+
+
+ unsigned long int __pad2;
+
+
+ unsigned int __flags;
+};
+
+#line 56 "/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h"
+
+
+
+
+struct __pthread_cond_s
+{
+ __atomic_wide_counter __wseq;
+ __atomic_wide_counter __g1_start;
+ unsigned int __g_refs[2] ;
+ unsigned int __g_size[2];
+ unsigned int __g1_orig_size;
+ unsigned int __wrefs;
+ unsigned int __g_signals[2];
+};
+
+
+#line 105 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+typedef unsigned int __tss_t;
+
+#line 106 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+typedef unsigned long int __thrd_t;
+
+
+#line 108 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+typedef struct
+{
+ int __data ;
+}
+#line 111 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+__once_flag;
+
+#line 112 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+
+
+
+typedef unsigned long int pthread_t;
+
+
+
+
+
+#line 32 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ char __size[4];
+ int __align;
+}
+#line 36 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_mutexattr_t;
+
+
+
+
+
+#line 41 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ char __size[4];
+ int __align;
+}
+#line 45 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_condattr_t;
+
+
+
+
+#line 49 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef unsigned int pthread_key_t;
+
+
+
+
+#line 53 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef int pthread_once_t;
+
+
+
+#line 56 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+union pthread_attr_t
+{
+ char __size[56];
+ long int __align;
+};
+
+
+#line 62 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union pthread_attr_t pthread_attr_t;
+
+
+
+
+
+#line 67 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ struct __pthread_mutex_s __data;
+ char __size[40];
+ long int __align;
+}
+#line 72 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_mutex_t;
+
+
+
+#line 75 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ struct __pthread_cond_s __data;
+ char __size[48];
+ __extension__ long long int __align;
+}
+#line 80 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_cond_t;
+
+
+
+
+
+
+#line 86 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ struct __pthread_rwlock_arch_t __data;
+ char __size[56];
+ long int __align;
+}
+#line 91 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_rwlock_t;
+
+
+#line 93 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ char __size[8];
+ long int __align;
+}
+#line 97 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_rwlockattr_t;
+
+
+
+
+
+
+#line 103 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef volatile int pthread_spinlock_t;
+
+
+
+
+
+#line 108 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ char __size[32];
+ long int __align;
+}
+#line 112 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_barrier_t;
+
+
+#line 114 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ char __size[4];
+ int __align;
+}
+#line 118 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_barrierattr_t;
+
+#line 119 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+
+
+
+
+
+
+
+
+
+extern long int random (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 405 "/usr/include/stdlib.h"
+extern void srandom (unsigned int __seed) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+#line 411 "/usr/include/stdlib.h"
+extern char *initstate (unsigned int __seed, char *__statebuf,
+ size_t __statelen) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+
+
+#line 416 "/usr/include/stdlib.h"
+extern char *setstate (char *__statebuf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+
+#line 424 "/usr/include/stdlib.h"
+struct random_data
+ {
+ int32_t *fptr;
+ int32_t *rptr;
+ int32_t *state;
+ int rand_type;
+ int rand_deg;
+ int rand_sep;
+ int32_t *end_ptr;
+ };
+
+
+#line 435 "/usr/include/stdlib.h"
+extern int random_r (struct random_data *__restrict __buf,
+ int32_t *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 438 "/usr/include/stdlib.h"
+extern int srandom_r (unsigned int __seed, struct random_data *__buf)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+#line 441 "/usr/include/stdlib.h"
+extern int initstate_r (unsigned int __seed, char *__restrict __statebuf,
+ size_t __statelen,
+ struct random_data *__restrict __buf)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 4)));
+
+
+#line 446 "/usr/include/stdlib.h"
+extern int setstate_r (char *__restrict __statebuf,
+ struct random_data *__restrict __buf)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+
+#line 454 "/usr/include/stdlib.h"
+extern int rand (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+#line 456 "/usr/include/stdlib.h"
+extern void srand (unsigned int __seed) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 460 "/usr/include/stdlib.h"
+extern int rand_r (unsigned int *__seed) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+
+#line 468 "/usr/include/stdlib.h"
+extern double drand48 (void) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 469 "/usr/include/stdlib.h"
+extern double erand48 (unsigned short int __xsubi[3]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+#line 472 "/usr/include/stdlib.h"
+extern long int lrand48 (void) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 473 "/usr/include/stdlib.h"
+extern long int nrand48 (unsigned short int __xsubi[3])
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+#line 477 "/usr/include/stdlib.h"
+extern long int mrand48 (void) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 478 "/usr/include/stdlib.h"
+extern long int jrand48 (unsigned short int __xsubi[3])
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+#line 482 "/usr/include/stdlib.h"
+extern void srand48 (long int __seedval) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 483 "/usr/include/stdlib.h"
+extern unsigned short int *seed48 (unsigned short int __seed16v[3])
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 485 "/usr/include/stdlib.h"
+extern void lcong48 (unsigned short int __param[7]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+#line 491 "/usr/include/stdlib.h"
+struct drand48_data
+ {
+ unsigned short int __x[3];
+ unsigned short int __old_x[3];
+ unsigned short int __c;
+ unsigned short int __init;
+ __extension__ unsigned long long int __a;
+
+ };
+
+
+
+#line 502 "/usr/include/stdlib.h"
+extern int drand48_r (struct drand48_data *__restrict __buffer,
+ double *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 504 "/usr/include/stdlib.h"
+extern int erand48_r (unsigned short int __xsubi[3],
+ struct drand48_data *__restrict __buffer,
+ double *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 509 "/usr/include/stdlib.h"
+extern int lrand48_r (struct drand48_data *__restrict __buffer,
+ long int *__restrict __result)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 512 "/usr/include/stdlib.h"
+extern int nrand48_r (unsigned short int __xsubi[3],
+ struct drand48_data *__restrict __buffer,
+ long int *__restrict __result)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 518 "/usr/include/stdlib.h"
+extern int mrand48_r (struct drand48_data *__restrict __buffer,
+ long int *__restrict __result)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 521 "/usr/include/stdlib.h"
+extern int jrand48_r (unsigned short int __xsubi[3],
+ struct drand48_data *__restrict __buffer,
+ long int *__restrict __result)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 527 "/usr/include/stdlib.h"
+extern int srand48_r (long int __seedval, struct drand48_data *__buffer)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+#line 530 "/usr/include/stdlib.h"
+extern int seed48_r (unsigned short int __seed16v[3],
+ struct drand48_data *__buffer) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 533 "/usr/include/stdlib.h"
+extern int lcong48_r (unsigned short int __param[7],
+ struct drand48_data *__buffer)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 538 "/usr/include/stdlib.h"
+extern __uint32_t arc4random (void)
+ __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+#line 542 "/usr/include/stdlib.h"
+extern void arc4random_buf (void *__buf, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+#line 547 "/usr/include/stdlib.h"
+extern __uint32_t arc4random_uniform (__uint32_t __upper_bound)
+ __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+#line 553 "/usr/include/stdlib.h"
+extern void *malloc (size_t __size) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__))
+ __attribute__ ((__alloc_size__ (1))) ;
+
+
+#line 556 "/usr/include/stdlib.h"
+extern void *calloc (size_t __nmemb, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__alloc_size__ (1, 2))) ;
+
+
+
+
+
+
+
+#line 564 "/usr/include/stdlib.h"
+extern void *realloc (void *__ptr, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)) __attribute__ ((__alloc_size__ (2)));
+
+
+
+#line 568 "/usr/include/stdlib.h"
+extern void free (void *__ptr) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+
+#line 576 "/usr/include/stdlib.h"
+extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__))
+ __attribute__ ((__alloc_size__ (2, 3)))
+ __attribute__ ((__malloc__ (__builtin_free, 1)));
+
+
+
+#line 582 "/usr/include/stdlib.h"
+extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__ (reallocarray, 1)));
+
+
+
+
+#line 587 "/usr/include/stdlib.h"
+
+
+
+
+
+
+
+extern void *alloca (size_t __size) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+#line 39 "/usr/include/alloca.h"
+
+
+
+
+
+extern void *valloc (size_t __size) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__))
+ __attribute__ ((__alloc_size__ (1))) ;
+
+
+
+
+
+#line 599 "/usr/include/stdlib.h"
+extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+
+#line 605 "/usr/include/stdlib.h"
+extern void *aligned_alloc (size_t __alignment, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__alloc_align__ (1)))
+ __attribute__ ((__alloc_size__ (2))) ;
+
+
+
+
+#line 611 "/usr/include/stdlib.h"
+extern void abort (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+#line 615 "/usr/include/stdlib.h"
+extern int atexit (void (*__func) (void)) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+
+#line 623 "/usr/include/stdlib.h"
+extern int at_quick_exit (void (*__func) (void)) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+#line 630 "/usr/include/stdlib.h"
+extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+#line 637 "/usr/include/stdlib.h"
+extern void exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+
+
+#line 643 "/usr/include/stdlib.h"
+extern void quick_exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+
+
+#line 649 "/usr/include/stdlib.h"
+extern void _Exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+
+#line 654 "/usr/include/stdlib.h"
+extern char *getenv (const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+#line 655 "/usr/include/stdlib.h"
+extern int putenv (char *__string) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+#line 673 "/usr/include/stdlib.h"
+extern int setenv (const char *__name, const char *__value, int __replace)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+
+#line 677 "/usr/include/stdlib.h"
+extern int unsetenv (const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+#line 684 "/usr/include/stdlib.h"
+extern int clearenv (void) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 685 "/usr/include/stdlib.h"
+extern char *mktemp (char *__template) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 696 "/usr/include/stdlib.h"
+extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) ;
+
+#line 709 "/usr/include/stdlib.h"
+extern int mkstemps (char *__template, int __suffixlen) __attribute__ ((__nonnull__ (1))) ;
+
+#line 731 "/usr/include/stdlib.h"
+extern char *mkdtemp (char *__template) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+#line 752 "/usr/include/stdlib.h"
+extern int system (const char *__command) ;
+
+#line 805 "/usr/include/stdlib.h"
+extern char *realpath (const char *__restrict __name,
+ char *__restrict __resolved) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+
+
+#line 829 "/usr/include/stdlib.h"
+typedef int (*__compar_fn_t) (const void *, const void *);
+
+#line 830 "/usr/include/stdlib.h"
+extern void *bsearch (const void *__key, const void *__base,
+ size_t __nmemb, size_t __size, __compar_fn_t __compar)
+ __attribute__ ((__nonnull__ (1, 2, 5))) ;
+
+
+
+#line 846 "/usr/include/stdlib.h"
+extern __inline __attribute__ ((__gnu_inline__)) void *
+bsearch (const void *__key, const void *__base, size_t __nmemb, size_t __size,
+ __compar_fn_t __compar)
+{
+ size_t __l, __u, __idx;
+ const void *__p;
+ int __comparison;
+
+ __l = 0;
+ __u = __nmemb;
+ while (__l < __u)
+ {
+ __idx = (__l + __u) / 2;
+ __p = (const void *) (((const char *) __base) + (__idx * __size));
+ __comparison = (*__compar) (__key, __p);
+ if (__comparison < 0)
+ __u = __idx;
+ else if (__comparison > 0)
+ __l = __idx + 1;
+ else
+ {
+
+
+ return (void *) __p;
+
+
+ }
+ }
+
+ return ((void *)0);
+}
+
+#line 29 "-Wcast-qual"
+
+
+
+
+extern void qsort (void *__base, size_t __nmemb, size_t __size,
+ __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4)));
+
+#line 853 "/usr/include/stdlib.h"
+extern int abs (int __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+#line 862 "/usr/include/stdlib.h"
+extern long int labs (long int __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+
+
+#line 865 "/usr/include/stdlib.h"
+__extension__ extern long long int llabs (long long int __x)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+
+
+
+
+
+
+#line 873 "/usr/include/stdlib.h"
+extern div_t div (int __numer, int __denom)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+#line 875 "/usr/include/stdlib.h"
+extern ldiv_t ldiv (long int __numer, long int __denom)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+
+
+#line 879 "/usr/include/stdlib.h"
+__extension__ extern lldiv_t lldiv (long long int __numer,
+ long long int __denom)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+#line 882 "/usr/include/stdlib.h"
+extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt,
+ int *__restrict __sign) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ;
+
+
+
+
+
+#line 899 "/usr/include/stdlib.h"
+extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt,
+ int *__restrict __sign) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ;
+
+
+
+
+
+#line 905 "/usr/include/stdlib.h"
+extern char *gcvt (double __value, int __ndigit, char *__buf)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3))) ;
+
+
+
+
+
+#line 911 "/usr/include/stdlib.h"
+extern char *qecvt (long double __value, int __ndigit,
+ int *__restrict __decpt, int *__restrict __sign)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ;
+
+#line 914 "/usr/include/stdlib.h"
+extern char *qfcvt (long double __value, int __ndigit,
+ int *__restrict __decpt, int *__restrict __sign)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ;
+
+#line 917 "/usr/include/stdlib.h"
+extern char *qgcvt (long double __value, int __ndigit, char *__buf)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3))) ;
+
+
+
+
+
+#line 923 "/usr/include/stdlib.h"
+extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt,
+ int *__restrict __sign, char *__restrict __buf,
+ size_t __len) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
+
+#line 926 "/usr/include/stdlib.h"
+extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt,
+ int *__restrict __sign, char *__restrict __buf,
+ size_t __len) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
+
+
+#line 930 "/usr/include/stdlib.h"
+extern int qecvt_r (long double __value, int __ndigit,
+ int *__restrict __decpt, int *__restrict __sign,
+ char *__restrict __buf, size_t __len)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
+
+#line 934 "/usr/include/stdlib.h"
+extern int qfcvt_r (long double __value, int __ndigit,
+ int *__restrict __decpt, int *__restrict __sign,
+ char *__restrict __buf, size_t __len)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
+
+
+
+
+
+
+#line 943 "/usr/include/stdlib.h"
+extern int mblen (const char *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 946 "/usr/include/stdlib.h"
+extern int mbtowc (wchar_t *__restrict __pwc,
+ const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 950 "/usr/include/stdlib.h"
+extern int wctomb (char *__s, wchar_t __wchar) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 954 "/usr/include/stdlib.h"
+extern size_t mbstowcs (wchar_t *__restrict __pwcs,
+ const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__access__ (__read_only__, 2)));
+
+
+#line 958 "/usr/include/stdlib.h"
+extern size_t wcstombs (char *__restrict __s,
+ const wchar_t *__restrict __pwcs, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__access__ (__write_only__, 1, 3)))
+ __attribute__ ((__access__ (__read_only__, 2)));
+
+
+
+
+
+
+
+#line 969 "/usr/include/stdlib.h"
+extern int rpmatch (const char *__response) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+#line 970 "/usr/include/stdlib.h"
+extern int getsubopt (char **__restrict __optionp,
+ char *const *__restrict __tokens,
+ char **__restrict __valuep)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2, 3))) ;
+
+#line 984 "/usr/include/stdlib.h"
+extern int getloadavg (double __loadavg[], int __nelem)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 1028 "/usr/include/stdlib.h"
+extern __inline __attribute__ ((__gnu_inline__)) double
+__attribute__ ((__nothrow__ , __leaf__)) atof (const char *__nptr)
+{
+ return strtod (__nptr, (char **) ((void *)0));
+}
+
+#line 29 "/usr/include/x86_64-linux-gnu/bits/stdlib-float.h"
+
+
+enum
+{
+ _ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)),
+ _ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)),
+ _ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)),
+ _ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)),
+ _ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)),
+ _ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)),
+ _ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)),
+ _ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)),
+ _ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)),
+ _IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)),
+ _ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)),
+ _ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8))
+};
+
+#line 61 "/usr/include/ctype.h"
+extern const unsigned short int **__ctype_b_loc (void)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+#line 81 "/usr/include/ctype.h"
+extern const __int32_t **__ctype_tolower_loc (void)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+#line 83 "/usr/include/ctype.h"
+extern const __int32_t **__ctype_toupper_loc (void)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+#line 85 "/usr/include/ctype.h"
+extern int isalnum (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 109 "/usr/include/ctype.h"
+extern int isalpha (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 110 "/usr/include/ctype.h"
+extern int iscntrl (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 111 "/usr/include/ctype.h"
+extern int isdigit (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 112 "/usr/include/ctype.h"
+extern int islower (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 113 "/usr/include/ctype.h"
+extern int isgraph (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 114 "/usr/include/ctype.h"
+extern int isprint (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 115 "/usr/include/ctype.h"
+extern int ispunct (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 116 "/usr/include/ctype.h"
+extern int isspace (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 117 "/usr/include/ctype.h"
+extern int isupper (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 118 "/usr/include/ctype.h"
+extern int isxdigit (int) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 122 "/usr/include/ctype.h"
+extern int tolower (int __c) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 125 "/usr/include/ctype.h"
+extern int toupper (int __c) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+#line 130 "/usr/include/ctype.h"
+extern int isblank (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 131 "/usr/include/ctype.h"
+extern int isascii (int __c) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 146 "/usr/include/ctype.h"
+extern int toascii (int __c) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 150 "/usr/include/ctype.h"
+extern int _toupper (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 151 "/usr/include/ctype.h"
+extern int _tolower (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 152 "/usr/include/ctype.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+__attribute__ ((__nothrow__ , __leaf__)) tolower (int __c)
+{
+ return __c >= -128 && __c < 256 ? (*__ctype_tolower_loc ())[__c] : __c;
+}
+
+
+#line 212 "/usr/include/ctype.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+__attribute__ ((__nothrow__ , __leaf__)) toupper (int __c)
+{
+ return __c >= -128 && __c < 256 ? (*__ctype_toupper_loc ())[__c] : __c;
+}
+
+#line 217 "/usr/include/ctype.h"
+struct __locale_struct
+{
+
+ struct __locale_data *__locales[13];
+
+
+ const unsigned short int *__ctype_b;
+ const int *__ctype_tolower;
+ const int *__ctype_toupper;
+
+
+ const char *__names[13];
+};
+
+
+#line 41 "/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h"
+typedef struct __locale_struct *__locale_t;
+
+#line 42 "/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h"
+
+typedef __locale_t locale_t;
+
+#line 25 "/usr/include/x86_64-linux-gnu/bits/types/locale_t.h"
+extern int isalnum_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 252 "/usr/include/ctype.h"
+extern int isalpha_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 253 "/usr/include/ctype.h"
+extern int iscntrl_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 254 "/usr/include/ctype.h"
+extern int isdigit_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 255 "/usr/include/ctype.h"
+extern int islower_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 256 "/usr/include/ctype.h"
+extern int isgraph_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 257 "/usr/include/ctype.h"
+extern int isprint_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 258 "/usr/include/ctype.h"
+extern int ispunct_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 259 "/usr/include/ctype.h"
+extern int isspace_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 260 "/usr/include/ctype.h"
+extern int isupper_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 261 "/usr/include/ctype.h"
+extern int isxdigit_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+
+#line 263 "/usr/include/ctype.h"
+extern int isblank_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 267 "/usr/include/ctype.h"
+extern int __tolower_l (int __c, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 268 "/usr/include/ctype.h"
+extern int tolower_l (int __c, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 271 "/usr/include/ctype.h"
+extern int __toupper_l (int __c, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 272 "/usr/include/ctype.h"
+extern int toupper_l (int __c, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 273 "/usr/include/ctype.h"
+
+
+
+
+
+
+
+extern void *memcpy (void *__restrict __dest, const void *__restrict __src,
+ size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 47 "/usr/include/string.h"
+extern void *memmove (void *__dest, const void *__src, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+
+#line 54 "/usr/include/string.h"
+extern void *memccpy (void *__restrict __dest, const void *__restrict __src,
+ int __c, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__access__ (__write_only__, 1, 4)));
+
+
+
+
+
+#line 61 "/usr/include/string.h"
+extern void *memset (void *__s, int __c, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+#line 64 "/usr/include/string.h"
+extern int memcmp (const void *__s1, const void *__s2, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 66 "/usr/include/string.h"
+extern int __memcmpeq (const void *__s1, const void *__s2, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 82 "/usr/include/string.h"
+extern void *memchr (const void *__s, int __c, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+#line 109 "/usr/include/string.h"
+extern char *strcpy (char *__restrict __dest, const char *__restrict __src)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 144 "/usr/include/string.h"
+extern char *strncpy (char *__restrict __dest,
+ const char *__restrict __src, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 149 "/usr/include/string.h"
+extern char *strcat (char *__restrict __dest, const char *__restrict __src)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 152 "/usr/include/string.h"
+extern char *strncat (char *__restrict __dest, const char *__restrict __src,
+ size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 156 "/usr/include/string.h"
+extern int strcmp (const char *__s1, const char *__s2)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 159 "/usr/include/string.h"
+extern int strncmp (const char *__s1, const char *__s2, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 163 "/usr/include/string.h"
+extern int strcoll (const char *__s1, const char *__s2)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 166 "/usr/include/string.h"
+extern size_t strxfrm (char *__restrict __dest,
+ const char *__restrict __src, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))) __attribute__ ((__access__ (__write_only__, 1, 3)));
+
+
+
+
+
+
+
+#line 175 "/usr/include/string.h"
+extern int strcoll_l (const char *__s1, const char *__s2, locale_t __l)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));
+
+
+
+#line 179 "/usr/include/string.h"
+extern size_t strxfrm_l (char *__dest, const char *__src, size_t __n,
+ locale_t __l) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 4)))
+ __attribute__ ((__access__ (__write_only__, 1, 3)));
+
+
+
+
+
+
+#line 187 "/usr/include/string.h"
+extern char *strdup (const char *__s)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+#line 195 "/usr/include/string.h"
+extern char *strndup (const char *__string, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
+
+#line 197 "/usr/include/string.h"
+extern char *strchr (const char *__s, int __c)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+#line 248 "/usr/include/string.h"
+extern char *strrchr (const char *__s, int __c)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+#line 275 "/usr/include/string.h"
+extern size_t strcspn (const char *__s, const char *__reject)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 297 "/usr/include/string.h"
+extern size_t strspn (const char *__s, const char *__accept)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 299 "/usr/include/string.h"
+extern char *strpbrk (const char *__s, const char *__accept)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 325 "/usr/include/string.h"
+extern char *strstr (const char *__haystack, const char *__needle)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+#line 356 "/usr/include/string.h"
+extern char *strtok (char *__restrict __s, const char *__restrict __delim)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+
+
+#line 361 "/usr/include/string.h"
+extern char *__strtok_r (char *__restrict __s,
+ const char *__restrict __delim,
+ char **__restrict __save_ptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3)));
+
+
+#line 366 "/usr/include/string.h"
+extern char *strtok_r (char *__restrict __s, const char *__restrict __delim,
+ char **__restrict __save_ptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3)));
+
+#line 369 "/usr/include/string.h"
+extern size_t strlen (const char *__s)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+#line 413 "/usr/include/string.h"
+extern size_t strnlen (const char *__string, size_t __maxlen)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+#line 419 "/usr/include/string.h"
+extern char *strerror (int __errnum) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 420 "/usr/include/string.h"
+extern int strerror_r (int __errnum, char *__buf, size_t __buflen) __asm__ ("" "__xpg_strerror_r") __attribute__ ((__nothrow__ , __leaf__))
+
+ __attribute__ ((__nonnull__ (2)))
+ __attribute__ ((__access__ (__write_only__, 2, 3)));
+
+#line 436 "/usr/include/string.h"
+extern char *strerror_l (int __errnum, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 462 "/usr/include/string.h"
+
+
+
+
+
+
+
+
+
+
+extern int bcmp (const void *__s1, const void *__s2, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 38 "/usr/include/strings.h"
+extern void bcopy (const void *__src, void *__dest, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 42 "/usr/include/strings.h"
+extern void bzero (void *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 43 "/usr/include/strings.h"
+extern char *index (const char *__s, int __c)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+#line 70 "/usr/include/strings.h"
+extern char *rindex (const char *__s, int __c)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+#line 104 "/usr/include/strings.h"
+extern int ffs (int __i) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+
+
+
+
+
+#line 110 "/usr/include/strings.h"
+extern int ffsl (long int __l) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+#line 111 "/usr/include/strings.h"
+__extension__ extern int ffsll (long long int __ll)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+
+
+
+#line 116 "/usr/include/strings.h"
+extern int strcasecmp (const char *__s1, const char *__s2)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 120 "/usr/include/strings.h"
+extern int strncasecmp (const char *__s1, const char *__s2, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+
+
+#line 128 "/usr/include/strings.h"
+extern int strcasecmp_l (const char *__s1, const char *__s2, locale_t __loc)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));
+
+
+
+
+#line 133 "/usr/include/strings.h"
+extern int strncasecmp_l (const char *__s1, const char *__s2,
+ size_t __n, locale_t __loc)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 4)));
+
+
+
+
+#line 139 "/usr/include/strings.h"
+
+
+
+extern void explicit_bzero (void *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)))
+ __attribute__ ((__access__ (__write_only__, 1, 2)));
+
+
+
+
+#line 471 "/usr/include/string.h"
+extern char *strsep (char **__restrict __stringp,
+ const char *__restrict __delim)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+#line 478 "/usr/include/string.h"
+extern char *strsignal (int __sig) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 479 "/usr/include/string.h"
+extern char *__stpcpy (char *__restrict __dest, const char *__restrict __src)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 491 "/usr/include/string.h"
+extern char *stpcpy (char *__restrict __dest, const char *__restrict __src)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+#line 496 "/usr/include/string.h"
+extern char *__stpncpy (char *__restrict __dest,
+ const char *__restrict __src, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 499 "/usr/include/string.h"
+extern char *stpncpy (char *__restrict __dest,
+ const char *__restrict __src, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 502 "/usr/include/string.h"
+
+
+
+
+
+
+
+
+typedef __builtin_va_list __gnuc_va_list;
+
+#line 41 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stdarg.h"
+
+
+
+
+
+
+typedef struct
+{
+ int __count;
+ union
+ {
+ unsigned int __wch;
+ char __wchb[4];
+ } __value;
+}
+#line 21 "/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h"
+__mbstate_t;
+
+#line 22 "/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h"
+
+
+
+
+typedef struct _G_fpos_t
+{
+ __off_t __pos;
+ __mbstate_t __state;
+}
+#line 14 "/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h"
+__fpos_t;
+
+#line 15 "/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h"
+typedef struct _G_fpos64_t
+{
+ __off64_t __pos;
+ __mbstate_t __state;
+}
+#line 14 "/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h"
+__fpos64_t;
+
+#line 15 "/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h"
+
+
+
+struct _IO_FILE;
+
+#line 5 "/usr/include/x86_64-linux-gnu/bits/types/__FILE.h"
+typedef struct _IO_FILE __FILE;
+
+#line 6 "/usr/include/x86_64-linux-gnu/bits/types/__FILE.h"
+
+
+
+struct _IO_FILE;
+
+
+
+#line 7 "/usr/include/x86_64-linux-gnu/bits/types/FILE.h"
+typedef struct _IO_FILE FILE;
+
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/FILE.h"
+struct _IO_FILE;
+
+#line 36 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+struct _IO_marker;
+
+#line 37 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+struct _IO_codecvt;
+
+#line 38 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+struct _IO_wide_data;
+
+
+
+
+
+#line 43 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+typedef void _IO_lock_t;
+
+
+
+
+
+
+#line 49 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+struct _IO_FILE
+{
+ int _flags;
+
+
+ char *_IO_read_ptr;
+ char *_IO_read_end;
+ char *_IO_read_base;
+ char *_IO_write_base;
+ char *_IO_write_ptr;
+ char *_IO_write_end;
+ char *_IO_buf_base;
+ char *_IO_buf_end;
+
+
+ char *_IO_save_base;
+ char *_IO_backup_base;
+ char *_IO_save_end;
+
+ struct _IO_marker *_markers;
+
+ struct _IO_FILE *_chain;
+
+ int _fileno;
+ int _flags2;
+ __off_t _old_offset;
+
+
+ unsigned short _cur_column;
+ signed char _vtable_offset;
+ char _shortbuf[1];
+
+ _IO_lock_t *_lock;
+
+
+
+
+
+
+
+ __off64_t _offset;
+
+ struct _IO_codecvt *_codecvt;
+ struct _IO_wide_data *_wide_data;
+ struct _IO_FILE *_freeres_list;
+ void *_freeres_buf;
+ size_t __pad5;
+ int _mode;
+
+ char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)];
+};
+
+#line 100 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+typedef __gnuc_va_list va_list;
+
+#line 53 "/usr/include/stdio.h"
+typedef __fpos_t fpos_t;
+
+#line 85 "/usr/include/stdio.h"
+extern FILE *stdin;
+
+#line 144 "/usr/include/stdio.h"
+extern FILE *stdout;
+
+#line 145 "/usr/include/stdio.h"
+extern FILE *stderr;
+
+
+
+
+
+
+
+#line 152 "/usr/include/stdio.h"
+extern int remove (const char *__filename) __attribute__ ((__nothrow__ , __leaf__));
+
+
+#line 154 "/usr/include/stdio.h"
+extern int rename (const char *__old, const char *__new) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 158 "/usr/include/stdio.h"
+extern int renameat (int __oldfd, const char *__old, int __newfd,
+ const char *__new) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 160 "/usr/include/stdio.h"
+extern int fclose (FILE *__stream);
+
+#line 179 "/usr/include/stdio.h"
+extern FILE *tmpfile (void)
+ __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ;
+
+#line 190 "/usr/include/stdio.h"
+extern char *tmpnam (char[20]) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+#line 210 "/usr/include/stdio.h"
+extern char *tmpnam_r (char __s[20]) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+#line 211 "/usr/include/stdio.h"
+extern char *tempnam (const char *__dir, const char *__pfx)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (__builtin_free, 1)));
+
+
+
+
+
+
+
+#line 230 "/usr/include/stdio.h"
+extern int fflush (FILE *__stream);
+
+#line 231 "/usr/include/stdio.h"
+extern int fflush_unlocked (FILE *__stream);
+
+#line 240 "/usr/include/stdio.h"
+extern FILE *fopen (const char *__restrict __filename,
+ const char *__restrict __modes)
+ __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ;
+
+
+
+
+
+#line 265 "/usr/include/stdio.h"
+extern FILE *freopen (const char *__restrict __filename,
+ const char *__restrict __modes,
+ FILE *__restrict __stream) ;
+
+#line 268 "/usr/include/stdio.h"
+extern FILE *fdopen (int __fd, const char *__modes) __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ;
+
+#line 295 "/usr/include/stdio.h"
+extern FILE *fmemopen (void *__s, size_t __len, const char *__modes)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ;
+
+
+
+
+
+#line 314 "/usr/include/stdio.h"
+extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ;
+
+#line 316 "/usr/include/stdio.h"
+extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 332 "/usr/include/stdio.h"
+extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf,
+ int __modes, size_t __n) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+#line 338 "/usr/include/stdio.h"
+extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf,
+ size_t __size) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 342 "/usr/include/stdio.h"
+extern void setlinebuf (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+
+#line 350 "/usr/include/stdio.h"
+extern int fprintf (FILE *__restrict __stream,
+ const char *__restrict __format, ...);
+
+
+
+
+
+#line 356 "/usr/include/stdio.h"
+extern int printf (const char *__restrict __format, ...);
+
+
+#line 358 "/usr/include/stdio.h"
+extern int sprintf (char *__restrict __s,
+ const char *__restrict __format, ...) __attribute__ ((__nothrow__));
+
+
+
+
+
+
+#line 365 "/usr/include/stdio.h"
+extern int vfprintf (FILE *__restrict __s, const char *__restrict __format,
+ __gnuc_va_list __arg);
+
+
+
+
+
+#line 371 "/usr/include/stdio.h"
+extern int vprintf (const char *__restrict __format, __gnuc_va_list __arg);
+
+
+#line 373 "/usr/include/stdio.h"
+extern int vsprintf (char *__restrict __s, const char *__restrict __format,
+ __gnuc_va_list __arg) __attribute__ ((__nothrow__));
+
+
+
+
+#line 378 "/usr/include/stdio.h"
+extern int snprintf (char *__restrict __s, size_t __maxlen,
+ const char *__restrict __format, ...)
+ __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 4)));
+
+
+#line 382 "/usr/include/stdio.h"
+extern int vsnprintf (char *__restrict __s, size_t __maxlen,
+ const char *__restrict __format, __gnuc_va_list __arg)
+ __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 0)));
+
+#line 385 "/usr/include/stdio.h"
+extern int vdprintf (int __fd, const char *__restrict __fmt,
+ __gnuc_va_list __arg)
+ __attribute__ ((__format__ (__printf__, 2, 0)));
+
+#line 406 "/usr/include/stdio.h"
+extern int dprintf (int __fd, const char *__restrict __fmt, ...)
+ __attribute__ ((__format__ (__printf__, 2, 3)));
+
+
+
+
+
+
+
+
+#line 415 "/usr/include/stdio.h"
+extern int fscanf (FILE *__restrict __stream,
+ const char *__restrict __format, ...) ;
+
+
+
+
+
+#line 421 "/usr/include/stdio.h"
+extern int scanf (const char *__restrict __format, ...) ;
+
+
+#line 423 "/usr/include/stdio.h"
+extern int sscanf (const char *__restrict __s,
+ const char *__restrict __format, ...) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 425 "/usr/include/stdio.h"
+extern int fscanf (FILE *__restrict __stream, const char *__restrict __format, ...) __asm__ ("" "__isoc99_fscanf")
+
+ ;
+
+#line 437 "/usr/include/stdio.h"
+extern int scanf (const char *__restrict __format, ...) __asm__ ("" "__isoc99_scanf")
+ ;
+
+#line 439 "/usr/include/stdio.h"
+extern int sscanf (const char *__restrict __s, const char *__restrict __format, ...) __asm__ ("" "__isoc99_sscanf") __attribute__ ((__nothrow__ , __leaf__))
+
+ ;
+
+#line 442 "/usr/include/stdio.h"
+extern int vfscanf (FILE *__restrict __s, const char *__restrict __format,
+ __gnuc_va_list __arg)
+ __attribute__ ((__format__ (__scanf__, 2, 0))) ;
+
+
+
+
+
+
+#line 467 "/usr/include/stdio.h"
+extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg)
+ __attribute__ ((__format__ (__scanf__, 1, 0))) ;
+
+
+
+#line 471 "/usr/include/stdio.h"
+extern int vsscanf (const char *__restrict __s,
+ const char *__restrict __format, __gnuc_va_list __arg)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__format__ (__scanf__, 2, 0)));
+
+
+
+
+
+
+#line 479 "/usr/include/stdio.h"
+extern int vfscanf (FILE *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vfscanf")
+
+
+
+ __attribute__ ((__format__ (__scanf__, 2, 0))) ;
+
+#line 484 "/usr/include/stdio.h"
+extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vscanf")
+
+ __attribute__ ((__format__ (__scanf__, 1, 0))) ;
+
+#line 487 "/usr/include/stdio.h"
+extern int vsscanf (const char *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vsscanf") __attribute__ ((__nothrow__ , __leaf__))
+
+
+
+ __attribute__ ((__format__ (__scanf__, 2, 0)));
+
+#line 492 "/usr/include/stdio.h"
+extern int fgetc (FILE *__stream);
+
+#line 514 "/usr/include/stdio.h"
+extern int getc (FILE *__stream);
+
+
+
+
+
+
+#line 520 "/usr/include/stdio.h"
+extern int getchar (void);
+
+
+
+
+
+
+
+#line 527 "/usr/include/stdio.h"
+extern int getc_unlocked (FILE *__stream);
+
+#line 528 "/usr/include/stdio.h"
+extern int getchar_unlocked (void);
+
+#line 529 "/usr/include/stdio.h"
+extern int fgetc_unlocked (FILE *__stream);
+
+#line 539 "/usr/include/stdio.h"
+extern int fputc (int __c, FILE *__stream);
+
+#line 550 "/usr/include/stdio.h"
+extern int putc (int __c, FILE *__stream);
+
+
+
+
+
+
+#line 556 "/usr/include/stdio.h"
+extern int putchar (int __c);
+
+#line 557 "/usr/include/stdio.h"
+extern int fputc_unlocked (int __c, FILE *__stream);
+
+
+
+
+
+
+
+
+#line 573 "/usr/include/stdio.h"
+extern int putc_unlocked (int __c, FILE *__stream);
+
+#line 574 "/usr/include/stdio.h"
+extern int putchar_unlocked (int __c);
+
+
+
+
+
+
+
+#line 581 "/usr/include/stdio.h"
+extern int getw (FILE *__stream);
+
+
+
+#line 584 "/usr/include/stdio.h"
+extern int putw (int __w, FILE *__stream);
+
+
+
+
+
+
+
+
+#line 592 "/usr/include/stdio.h"
+extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream)
+ __attribute__ ((__access__ (__write_only__, 1, 2)));
+
+#line 594 "/usr/include/stdio.h"
+extern __ssize_t __getdelim (char **__restrict __lineptr,
+ size_t *__restrict __n, int __delimiter,
+ FILE *__restrict __stream) ;
+
+#line 635 "/usr/include/stdio.h"
+extern __ssize_t getdelim (char **__restrict __lineptr,
+ size_t *__restrict __n, int __delimiter,
+ FILE *__restrict __stream) ;
+
+
+
+
+
+
+
+
+#line 645 "/usr/include/stdio.h"
+extern __ssize_t getline (char **__restrict __lineptr,
+ size_t *__restrict __n,
+ FILE *__restrict __stream) ;
+
+
+
+
+
+
+
+
+#line 655 "/usr/include/stdio.h"
+extern int fputs (const char *__restrict __s, FILE *__restrict __stream);
+
+
+
+
+
+
+#line 661 "/usr/include/stdio.h"
+extern int puts (const char *__s);
+
+
+
+
+
+
+
+#line 668 "/usr/include/stdio.h"
+extern int ungetc (int __c, FILE *__stream);
+
+
+
+
+
+
+
+#line 675 "/usr/include/stdio.h"
+extern size_t fread (void *__restrict __ptr, size_t __size,
+ size_t __n, FILE *__restrict __stream) ;
+
+
+
+
+
+#line 681 "/usr/include/stdio.h"
+extern size_t fwrite (const void *__restrict __ptr, size_t __size,
+ size_t __n, FILE *__restrict __s);
+
+#line 683 "/usr/include/stdio.h"
+extern size_t fread_unlocked (void *__restrict __ptr, size_t __size,
+ size_t __n, FILE *__restrict __stream) ;
+
+#line 704 "/usr/include/stdio.h"
+extern size_t fwrite_unlocked (const void *__restrict __ptr, size_t __size,
+ size_t __n, FILE *__restrict __stream);
+
+
+
+
+
+
+
+
+#line 713 "/usr/include/stdio.h"
+extern int fseek (FILE *__stream, long int __off, int __whence);
+
+
+
+
+
+#line 718 "/usr/include/stdio.h"
+extern long int ftell (FILE *__stream) ;
+
+
+
+
+
+#line 723 "/usr/include/stdio.h"
+extern void rewind (FILE *__stream);
+
+#line 724 "/usr/include/stdio.h"
+extern int fseeko (FILE *__stream, __off_t __off, int __whence);
+
+
+
+
+
+#line 741 "/usr/include/stdio.h"
+extern __off_t ftello (FILE *__stream) ;
+
+#line 742 "/usr/include/stdio.h"
+extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos);
+
+
+
+
+
+#line 765 "/usr/include/stdio.h"
+extern int fsetpos (FILE *__stream, const fpos_t *__pos);
+
+#line 766 "/usr/include/stdio.h"
+extern void clearerr (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
+
+
+#line 788 "/usr/include/stdio.h"
+extern int feof (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+#line 790 "/usr/include/stdio.h"
+extern int ferror (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+#line 794 "/usr/include/stdio.h"
+extern void clearerr_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 795 "/usr/include/stdio.h"
+extern int feof_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+#line 796 "/usr/include/stdio.h"
+extern int ferror_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+
+
+
+#line 804 "/usr/include/stdio.h"
+extern void perror (const char *__s);
+
+
+
+
+
+#line 809 "/usr/include/stdio.h"
+extern int fileno (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+#line 814 "/usr/include/stdio.h"
+extern int fileno_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+#line 815 "/usr/include/stdio.h"
+extern int pclose (FILE *__stream);
+
+
+
+
+
+
+#line 829 "/usr/include/stdio.h"
+extern FILE *popen (const char *__command, const char *__modes)
+ __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (pclose, 1))) ;
+
+
+
+
+
+
+
+#line 837 "/usr/include/stdio.h"
+extern char *ctermid (char *__s) __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__access__ (__write_only__, 1)));
+
+#line 839 "/usr/include/stdio.h"
+extern void flockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 871 "/usr/include/stdio.h"
+extern int ftrylockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+#line 874 "/usr/include/stdio.h"
+extern void funlockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 875 "/usr/include/stdio.h"
+extern int __uflow (FILE *);
+
+#line 886 "/usr/include/stdio.h"
+extern int __overflow (FILE *, int);
+
+#line 887 "/usr/include/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+vprintf (const char *__restrict __fmt, __gnuc_va_list __arg)
+{
+ return vfprintf (stdout, __fmt, __arg);
+}
+
+
+
+
+#line 46 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+getchar (void)
+{
+ return getc (stdin);
+}
+
+
+
+
+
+#line 55 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+fgetc_unlocked (FILE *__fp)
+{
+ return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++);
+}
+
+
+
+
+
+
+#line 65 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+getc_unlocked (FILE *__fp)
+{
+ return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++);
+}
+
+
+
+#line 72 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+getchar_unlocked (void)
+{
+ return (__builtin_expect (((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end), 0) ? __uflow (stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++);
+}
+
+
+
+
+
+#line 81 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+putchar (int __c)
+{
+ return putc (__c, stdout);
+}
+
+
+
+
+
+#line 90 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+fputc_unlocked (int __c, FILE *__stream)
+{
+ return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
+}
+
+
+
+
+
+
+#line 100 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+putc_unlocked (int __c, FILE *__stream)
+{
+ return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
+}
+
+
+
+#line 107 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+putchar_unlocked (int __c)
+{
+ return (__builtin_expect (((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end), 0) ? __overflow (stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c)));
+}
+
+#line 112 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+__attribute__ ((__nothrow__ , __leaf__)) feof_unlocked (FILE *__stream)
+{
+ return (((__stream)->_flags & 0x0010) != 0);
+}
+
+
+
+#line 134 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+__attribute__ ((__nothrow__ , __leaf__)) ferror_unlocked (FILE *__stream)
+{
+ return (((__stream)->_flags & 0x0020) != 0);
+}
+
+#line 139 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+
+
+
+
+
+
+
+
+
+struct hashmap_other__other__comma_struct_other_uniq_other_string {
+ struct uniq_string **data;
+ size_t count;
+ size_t cap;
+};
+
+
+#line 139 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+
+
+
+
+
+
+
+
+
+struct hashmap_other__other__comma_struct_other_call {
+ struct call **data;
+ size_t count;
+ size_t cap;
+};
+
+
+#line 17 "gamma.h"
+uint32_t hashmap_other_hash_other__other__comma_struct_other_call(struct call *item);
+
+#line 17 "gamma.h"
+uint32_t hashmap_other_hash_other__other__comma_struct_other_uniq_other_string(struct uniq_string *item);
+
+#line 18 "gamma.h"
+int hashmap_other_eq_other__other__comma_struct_other_call(struct call *A, struct call *B);
+
+
+#line 18 "gamma.h"
+int hashmap_other_eq_other__other__comma_struct_other_uniq_other_string(struct uniq_string *A, struct uniq_string *B);
+
+
+#line 20 "gamma.h"
+struct uniq_string *hashmap_other_lookup_other__other__comma_struct_other_uniq_other_string(struct hashmap_other__other__comma_struct_other_uniq_other_string *hashmap, struct uniq_string *item);
+
+#line 21 "gamma.h"
+struct uniq_string *hashmap_other_lookup_other_weak_other__other__comma_struct_other_uniq_other_string(struct hashmap_other__other__comma_struct_other_uniq_other_string *hashmap, struct uniq_string *item);
+
+#line 21 "gamma.h"
+struct call *hashmap_other_lookup_other_weak_other__other__comma_struct_other_call(struct hashmap_other__other__comma_struct_other_call *hashmap, struct call *item);
+
+#line 22 "gamma.h"
+int hashmap_other_contains_other__other__comma_struct_other_call(struct hashmap_other__other__comma_struct_other_call *hashmap, struct call *item);
+
+#line 23 "gamma.h"
+void hashmap_other_insert_other__other__comma_struct_other_uniq_other_string(struct hashmap_other__other__comma_struct_other_uniq_other_string *hashmap, struct uniq_string *item);
+
+#line 23 "gamma.h"
+void hashmap_other_insert_other__other__comma_struct_other_call(struct hashmap_other__other__comma_struct_other_call *hashmap, struct call *item);
+
+#line 24 "gamma.h"
+struct uniq_string *heapify_other__other__comma_struct_other_uniq_other_string(struct uniq_string item);
+
+
+#line 26 "gamma.h"
+struct vector_other__other__comma_struct_other_call_other__star_ {
+ struct call * *data;
+ size_t count;
+ size_t cap;
+};
+
+#line 31 "gamma.h"
+uint32_t vector_other_push_other__other__comma_struct_other_call_other__star_(struct vector_other__other__comma_struct_other_call_other__star_ *vector, struct call * item);
+
+#line 32 "gamma.h"
+struct call * vector_other_pop_other__other__comma_struct_other_call_other__star_(struct vector_other__other__comma_struct_other_call_other__star_ *vector);
+
+#line 33 "gamma.h"
+struct vector_other__other__comma_struct_other_call_other__star_ *init_other_vector_other__other__comma_struct_other_call_other__star_();
+
+
+#line 35 "gamma.h"
+struct uniq_string {
+ char *string;
+ size_t len;
+
+ struct vector_other__other__comma_struct_other_call_other__star_ instantiations;
+
+ struct chunk *definitions;
+};
+
+
+#line 44 "gamma.h"
+struct arg {
+ char *start;
+ struct uniq_string *string;
+ int is_concrete;
+};
+
+
+#line 50 "gamma.h"
+struct call {
+ char *start;
+ char *end;
+ struct uniq_string *name;
+ struct arg *args;
+ size_t n_args;
+ struct call *next;
+};
+
+
+#line 59 "gamma.h"
+struct chunk {
+ char *start;
+ char *end;
+
+ char *line_filename;
+ size_t line;
+
+ struct call *defining_call;
+ struct call *calls;
+ struct chunk *next;
+ struct chunk *next_definition;
+};
+
+
+#line 72 "gamma.h"
+struct chunked_file {
+ char *contents;
+ char *end;
+ size_t id;
+ struct chunk *chunks;
+ struct chunked_file *next;
+};
+
+
+#line 80 "gamma.h"
+struct chunked_file *chunk(const char *path);
+
+#line 81 "gamma.h"
+struct uniq_string *lookup(char *string, size_t len);
+
+#line 82 "gamma.h"
+struct uniq_string *weak_lookup(char *string, size_t len);
+
+
+
+
+#line 86 "gamma.h"
+struct instantiation_set {
+ struct call **data;
+ size_t n;
+ size_t cap;
+};
+
+
+#line 92 "gamma.h"
+void parse_call(struct call *call);
+
+#line 93 "gamma.h"
+void print_state(struct chunked_file *file);
+
+#line 94 "gamma.h"
+void solve(struct chunked_file *files);
+
+#line 95 "gamma.h"
+void print_string(struct uniq_string *string);
+
+#line 96 "gamma.h"
+void print_call(struct call *call);
+
+#line 97 "gamma.h"
+void print_set(struct instantiation_set *set);
+
+#line 98 "gamma.h"
+void print_chunk(struct chunk *chunk, struct call *instantiation, FILE *out);
+
+#line 99 "gamma.h"
+struct call *replace_variables(struct call *container, struct call *container_instantiation, struct call *call);
+
+#line 100 "gamma.h"
+void fprint_string(FILE *out, struct uniq_string *string);
+
+#line 101 "gamma.h"
+char **read_fakeobj(char *path, char *c_dst);
+
+#line 102 "gamma.h"
+void write_fakeobj(char *src, char *dst, int i);
+
+#line 103 "gamma.h"
+void gamma_sendfile(int dst_fd, int src_fd);
+
+#line 104 "gamma.h"
+void copy_file(char *dst, char *src);
+
+
+#line 106 "gamma.h"
+extern char **ARGV;
+
+#line 107 "gamma.h"
+extern int ARGC;
+
+#line 108 "gamma.h"
+extern char *TMPDIR;
+
+#line 109 "gamma.h"
+extern int GAMMA_TO_C;
+
+#line 110 "gamma.h"
+
+void print_string_mangled(struct uniq_string *string, FILE *out) {
+ for (size_t i = 0; i < string->len; i++) {
+ if (
+ ((*__ctype_b_loc ())[(int) ((
+ string->string[i]
+ ))] & (unsigned short int) _ISalnum)
+ )
+ fprintf(out, "%c", string->string[i]);
+ else switch (string->string[i]) {
+ case '!': fprintf(out, "_bang_"); break;
+ case '*': fprintf(out, "_star_"); break;
+ case '.': fprintf(out, "_dot_"); break;
+ default: fprintf(out, "_other_"); break;
+ }
+ }
+}
+
+
+#line 16 "mangler.c"
+void print_mangled(struct call *call, FILE *out) {
+ print_string_mangled(call->name, out);
+ for (size_t i = 0; i < call->n_args; i++) {
+ fprintf(out, "_comma_");
+ print_string_mangled(call->args[i].string, out);
+ }
+}
+
+
+#line 24 "mangler.c"
+struct uniq_string *read_ident(char *start, char *end, size_t *len) {
+ char *c = start;
+ for (; c < end; c++)
+ if (!(
+ ((*__ctype_b_loc ())[(int) ((
+ *c
+ ))] & (unsigned short int) _ISalnum)
+ || *c == '_'))
+ break;
+ *len = c - start;
+ return weak_lookup(start, c - start);
+}
+
+
+#line 33 "mangler.c"
+void print_chunk(struct chunk *chunk, struct call *instantiation, FILE *out) {
+ struct call *call = chunk->calls;
+ fprintf(out, "\n#line %lu \"%s\"\n", chunk->line, chunk->line_filename);
+ for (char *c = chunk->start; c != chunk->end; c++) {
+ if (call && c == call->start) {
+ if (chunk->defining_call) {
+ struct call *instantiated
+ = replace_variables(chunk->defining_call, instantiation, call);
+ print_mangled(instantiated, out);
+ free(instantiated->args);
+ free(instantiated);
+ } else {
+ print_mangled(call, out);
+ }
+ c = call->end - 1;
+ call = call->next;
+ } else if (*c == '#' && (c == chunk->start || *(c-1) == '\n')) {
+ while (*c != '\n') c++;
+ } else if (
+ ((*__ctype_b_loc ())[(int) ((
+ *c
+ ))] & (unsigned short int) _ISalpha)
+ && chunk->defining_call) {
+
+ size_t len = 0;
+ struct uniq_string *string = read_ident(c, chunk->end, &len);
+ if (!string) goto print_token;
+ for (size_t i = 0; i < chunk->defining_call->n_args; i++) {
+ if (!chunk->defining_call->args[i].is_concrete
+ && chunk->defining_call->args[i].string == string) {
+
+ ((void) sizeof ((
+ i < instantiation->n_args
+ ) ? 1 : 0), __extension__ ({ if (
+ i < instantiation->n_args
+ ) ; else __assert_fail (
+ "i < instantiation->n_args"
+ , "mangler.c", 59, __extension__ __PRETTY_FUNCTION__); }))
+ ;
+ fprint_string(out, instantiation->args[i].string);
+ break;
+ }
+ if ((i+1) == chunk->defining_call->n_args) goto print_token;
+ }
+ c += len - 1;
+ continue;
+print_token:
+ for (size_t i = 0; i < len; i++)
+ putc(c[i], out);
+ c += len - 1;
+ } else {
+
+ putc(*c, out);
+ }
+ }
+}
+
+#line 77 "mangler.c"
diff --git a/c_version/12.c b/c_version/12.c
new file mode 100755
index 0000000..9fc0a84
--- /dev/null
+++ b/c_version/12.c
@@ -0,0 +1,6248 @@
+
+#line 1 "/tmp/gamma.XksNqZ/12.unfake.c"
+
+
+
+
+
+
+extern void __assert_fail (const char *__assertion, const char *__file,
+ unsigned int __line, const char *__function)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+#line 74 "/usr/include/assert.h"
+extern void __assert_perror_fail (int __errnum, const char *__file,
+ unsigned int __line, const char *__function)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+
+#line 81 "/usr/include/assert.h"
+extern void __assert (const char *__assertion, const char *__file, int __line)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+#line 86 "/usr/include/assert.h"
+typedef long int ptrdiff_t;
+
+#line 146 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h"
+typedef long unsigned int size_t;
+
+#line 215 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h"
+typedef int wchar_t;
+
+#line 330 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h"
+typedef struct {
+ long long __max_align_ll __attribute__((__aligned__(__alignof__(long long))));
+ long double __max_align_ld __attribute__((__aligned__(__alignof__(long double))));
+}
+#line 435 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h"
+max_align_t;
+
+#line 436 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h"
+
+
+typedef unsigned char __u_char;
+
+#line 32 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned short int __u_short;
+
+#line 33 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __u_int;
+
+#line 34 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __u_long;
+
+
+
+#line 37 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef signed char __int8_t;
+
+#line 38 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned char __uint8_t;
+
+#line 39 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef signed short int __int16_t;
+
+#line 40 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned short int __uint16_t;
+
+#line 41 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef signed int __int32_t;
+
+#line 42 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __uint32_t;
+
+
+#line 44 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef signed long int __int64_t;
+
+#line 45 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __uint64_t;
+
+
+
+
+
+
+
+#line 52 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __int8_t __int_least8_t;
+
+#line 53 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __uint8_t __uint_least8_t;
+
+#line 54 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __int16_t __int_least16_t;
+
+#line 55 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __uint16_t __uint_least16_t;
+
+#line 56 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __int32_t __int_least32_t;
+
+#line 57 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __uint32_t __uint_least32_t;
+
+#line 58 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __int64_t __int_least64_t;
+
+#line 59 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __uint64_t __uint_least64_t;
+
+
+
+
+#line 63 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __quad_t;
+
+#line 64 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __u_quad_t;
+
+
+
+
+
+
+
+
+#line 72 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __intmax_t;
+
+#line 73 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __uintmax_t;
+
+#line 74 "/usr/include/x86_64-linux-gnu/bits/types.h"
+
+
+typedef unsigned long int __dev_t;
+
+#line 146 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __uid_t;
+
+#line 147 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __gid_t;
+
+#line 148 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __ino_t;
+
+#line 149 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __ino64_t;
+
+#line 150 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __mode_t;
+
+#line 151 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __nlink_t;
+
+#line 152 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __off_t;
+
+#line 153 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __off64_t;
+
+#line 154 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef int __pid_t;
+
+#line 155 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef struct { int __val[2]; }
+#line 155 "/usr/include/x86_64-linux-gnu/bits/types.h"
+__fsid_t;
+
+#line 156 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __clock_t;
+
+#line 157 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __rlim_t;
+
+#line 158 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __rlim64_t;
+
+#line 159 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __id_t;
+
+#line 160 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __time_t;
+
+#line 161 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __useconds_t;
+
+#line 162 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __suseconds_t;
+
+#line 163 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __suseconds64_t;
+
+
+#line 165 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef int __daddr_t;
+
+#line 166 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef int __key_t;
+
+
+
+#line 169 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef int __clockid_t;
+
+
+
+#line 172 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef void * __timer_t;
+
+
+
+#line 175 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __blksize_t;
+
+
+
+
+
+#line 180 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __blkcnt_t;
+
+#line 181 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __blkcnt64_t;
+
+
+
+#line 184 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __fsblkcnt_t;
+
+#line 185 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __fsblkcnt64_t;
+
+
+
+#line 188 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __fsfilcnt_t;
+
+#line 189 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __fsfilcnt64_t;
+
+
+
+#line 192 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __fsword_t;
+
+
+#line 194 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __ssize_t;
+
+
+
+#line 197 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __syscall_slong_t;
+
+
+#line 199 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __syscall_ulong_t;
+
+
+
+
+#line 203 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __off64_t __loff_t;
+
+#line 204 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef char *__caddr_t;
+
+
+
+#line 207 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __intptr_t;
+
+
+
+#line 210 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __socklen_t;
+
+
+
+
+
+#line 215 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef int __sig_atomic_t;
+
+#line 216 "/usr/include/x86_64-linux-gnu/bits/types.h"
+
+
+
+
+typedef __int8_t int8_t;
+
+#line 25 "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h"
+typedef __int16_t int16_t;
+
+#line 26 "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h"
+typedef __int32_t int32_t;
+
+#line 27 "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h"
+typedef __int64_t int64_t;
+
+#line 28 "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h"
+
+
+typedef __uint8_t uint8_t;
+
+#line 25 "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h"
+typedef __uint16_t uint16_t;
+
+#line 26 "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h"
+typedef __uint32_t uint32_t;
+
+#line 27 "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h"
+typedef __uint64_t uint64_t;
+
+#line 28 "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h"
+
+
+
+
+
+typedef __int_least8_t int_least8_t;
+
+#line 44 "/usr/include/stdint.h"
+typedef __int_least16_t int_least16_t;
+
+#line 45 "/usr/include/stdint.h"
+typedef __int_least32_t int_least32_t;
+
+#line 46 "/usr/include/stdint.h"
+typedef __int_least64_t int_least64_t;
+
+
+
+#line 49 "/usr/include/stdint.h"
+typedef __uint_least8_t uint_least8_t;
+
+#line 50 "/usr/include/stdint.h"
+typedef __uint_least16_t uint_least16_t;
+
+#line 51 "/usr/include/stdint.h"
+typedef __uint_least32_t uint_least32_t;
+
+#line 52 "/usr/include/stdint.h"
+typedef __uint_least64_t uint_least64_t;
+
+
+
+
+
+
+#line 58 "/usr/include/stdint.h"
+typedef signed char int_fast8_t;
+
+
+#line 60 "/usr/include/stdint.h"
+typedef long int int_fast16_t;
+
+#line 61 "/usr/include/stdint.h"
+typedef long int int_fast32_t;
+
+#line 62 "/usr/include/stdint.h"
+typedef long int int_fast64_t;
+
+#line 63 "/usr/include/stdint.h"
+typedef unsigned char uint_fast8_t;
+
+
+#line 73 "/usr/include/stdint.h"
+typedef unsigned long int uint_fast16_t;
+
+#line 74 "/usr/include/stdint.h"
+typedef unsigned long int uint_fast32_t;
+
+#line 75 "/usr/include/stdint.h"
+typedef unsigned long int uint_fast64_t;
+
+#line 76 "/usr/include/stdint.h"
+typedef long int intptr_t;
+
+
+
+#line 90 "/usr/include/stdint.h"
+typedef unsigned long int uintptr_t;
+
+#line 91 "/usr/include/stdint.h"
+typedef __intmax_t intmax_t;
+
+#line 102 "/usr/include/stdint.h"
+typedef __uintmax_t uintmax_t;
+
+#line 103 "/usr/include/stdint.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct
+ {
+ int quot;
+ int rem;
+ }
+#line 63 "/usr/include/stdlib.h"
+div_t;
+
+
+
+
+#line 67 "/usr/include/stdlib.h"
+typedef struct
+ {
+ long int quot;
+ long int rem;
+ }
+#line 71 "/usr/include/stdlib.h"
+ldiv_t;
+
+
+
+
+
+
+#line 77 "/usr/include/stdlib.h"
+__extension__ typedef struct
+ {
+ long long int quot;
+ long long int rem;
+ }
+#line 81 "/usr/include/stdlib.h"
+lldiv_t;
+
+#line 82 "/usr/include/stdlib.h"
+extern size_t __ctype_get_mb_cur_max (void) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+#line 102 "/usr/include/stdlib.h"
+extern double atof (const char *__nptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+#line 105 "/usr/include/stdlib.h"
+extern int atoi (const char *__nptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+#line 108 "/usr/include/stdlib.h"
+extern long int atol (const char *__nptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+#line 113 "/usr/include/stdlib.h"
+__extension__ extern long long int atoll (const char *__nptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+#line 118 "/usr/include/stdlib.h"
+extern double strtod (const char *__restrict __nptr,
+ char **__restrict __endptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+#line 124 "/usr/include/stdlib.h"
+extern float strtof (const char *__restrict __nptr,
+ char **__restrict __endptr) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+#line 127 "/usr/include/stdlib.h"
+extern long double strtold (const char *__restrict __nptr,
+ char **__restrict __endptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 130 "/usr/include/stdlib.h"
+extern long int strtol (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+#line 181 "/usr/include/stdlib.h"
+extern unsigned long int strtoul (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+#line 187 "/usr/include/stdlib.h"
+__extension__
+extern long long int strtoq (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+#line 192 "/usr/include/stdlib.h"
+__extension__
+extern unsigned long long int strtouq (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+#line 200 "/usr/include/stdlib.h"
+__extension__
+extern long long int strtoll (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+#line 205 "/usr/include/stdlib.h"
+__extension__
+extern unsigned long long int strtoull (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 209 "/usr/include/stdlib.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+__attribute__ ((__nothrow__ , __leaf__)) atoi (const char *__nptr)
+{
+ return (int) strtol (__nptr, (char **) ((void *)0), 10);
+}
+
+#line 366 "/usr/include/stdlib.h"
+extern __inline __attribute__ ((__gnu_inline__)) long int
+__attribute__ ((__nothrow__ , __leaf__)) atol (const char *__nptr)
+{
+ return strtol (__nptr, (char **) ((void *)0), 10);
+}
+
+
+
+#line 373 "/usr/include/stdlib.h"
+__extension__ extern __inline __attribute__ ((__gnu_inline__)) long long int
+__attribute__ ((__nothrow__ , __leaf__)) atoll (const char *__nptr)
+{
+ return strtoll (__nptr, (char **) ((void *)0), 10);
+}
+
+#line 378 "/usr/include/stdlib.h"
+extern char *l64a (long int __n) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+#line 389 "/usr/include/stdlib.h"
+extern long int a64l (const char *__s)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+
+#line 395 "/usr/include/stdlib.h"
+
+
+
+
+
+
+typedef __u_char u_char;
+
+#line 34 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __u_short u_short;
+
+#line 35 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __u_int u_int;
+
+#line 36 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __u_long u_long;
+
+#line 37 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __quad_t quad_t;
+
+#line 38 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __u_quad_t u_quad_t;
+
+#line 39 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __fsid_t fsid_t;
+
+
+
+#line 42 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __loff_t loff_t;
+
+
+
+
+
+#line 47 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __ino_t ino_t;
+
+#line 48 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __dev_t dev_t;
+
+
+
+
+
+#line 64 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __gid_t gid_t;
+
+
+
+
+
+#line 69 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __mode_t mode_t;
+
+
+
+
+
+#line 74 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __nlink_t nlink_t;
+
+
+
+
+
+#line 79 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __uid_t uid_t;
+
+
+
+
+
+
+#line 85 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __off_t off_t;
+
+#line 86 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __pid_t pid_t;
+
+
+
+
+
+
+#line 103 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __id_t id_t;
+
+
+
+
+
+#line 108 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __ssize_t ssize_t;
+
+
+
+
+
+
+#line 114 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __daddr_t daddr_t;
+
+#line 115 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __caddr_t caddr_t;
+
+
+
+
+
+
+#line 121 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __key_t key_t;
+
+
+
+
+
+#line 126 "/usr/include/x86_64-linux-gnu/sys/types.h"
+
+
+
+
+
+
+typedef __clock_t clock_t;
+
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/clock_t.h"
+
+
+
+
+
+
+
+typedef __clockid_t clockid_t;
+
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h"
+typedef __time_t time_t;
+
+#line 11 "/usr/include/x86_64-linux-gnu/bits/types/time_t.h"
+
+
+
+
+
+
+typedef __timer_t timer_t;
+
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/timer_t.h"
+
+
+
+typedef unsigned long int ulong;
+
+#line 149 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef unsigned short int ushort;
+
+#line 150 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef unsigned int uint;
+
+
+
+
+
+
+
+
+#line 158 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __uint8_t u_int8_t;
+
+#line 159 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __uint16_t u_int16_t;
+
+#line 160 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __uint32_t u_int32_t;
+
+#line 161 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __uint64_t u_int64_t;
+
+
+
+#line 164 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef int register_t __attribute__ ((__mode__ (__word__)));
+
+#line 165 "/usr/include/x86_64-linux-gnu/sys/types.h"
+static __inline __uint16_t
+__bswap_16 (__uint16_t __bsx)
+{
+
+ return __builtin_bswap16 (__bsx);
+
+
+
+}
+
+
+
+
+
+
+
+#line 48 "/usr/include/x86_64-linux-gnu/bits/byteswap.h"
+static __inline __uint32_t
+__bswap_32 (__uint32_t __bsx)
+{
+
+ return __builtin_bswap32 (__bsx);
+
+
+
+}
+
+#line 57 "/usr/include/x86_64-linux-gnu/bits/byteswap.h"
+__extension__ static __inline __uint64_t
+__bswap_64 (__uint64_t __bsx)
+{
+
+ return __builtin_bswap64 (__bsx);
+
+
+
+}
+
+#line 78 "/usr/include/x86_64-linux-gnu/bits/byteswap.h"
+static __inline __uint16_t
+__uint16_identity (__uint16_t __x)
+{
+ return __x;
+}
+
+
+#line 38 "/usr/include/x86_64-linux-gnu/bits/uintn-identity.h"
+static __inline __uint32_t
+__uint32_identity (__uint32_t __x)
+{
+ return __x;
+}
+
+
+#line 44 "/usr/include/x86_64-linux-gnu/bits/uintn-identity.h"
+static __inline __uint64_t
+__uint64_identity (__uint64_t __x)
+{
+ return __x;
+}
+
+#line 49 "/usr/include/x86_64-linux-gnu/bits/uintn-identity.h"
+
+
+
+
+
+
+
+
+
+
+
+typedef struct
+{
+ unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))];
+}
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h"
+__sigset_t;
+
+#line 9 "/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h"
+
+
+typedef __sigset_t sigset_t;
+
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h"
+
+
+
+
+
+
+
+
+
+
+struct timeval
+{
+
+
+
+
+ __time_t tv_sec;
+ __suseconds_t tv_usec;
+
+};
+
+#line 18 "/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h"
+
+struct timespec
+{
+
+
+
+ __time_t tv_sec;
+
+
+
+
+ __syscall_slong_t tv_nsec;
+};
+
+#line 32 "/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h"
+
+
+
+typedef __suseconds_t suseconds_t;
+
+
+
+
+
+
+#line 49 "/usr/include/x86_64-linux-gnu/sys/select.h"
+typedef long int __fd_mask;
+
+#line 50 "/usr/include/x86_64-linux-gnu/sys/select.h"
+typedef struct
+ {
+
+
+
+
+
+
+ __fd_mask __fds_bits[1024 / (8 * (int) sizeof (__fd_mask))];
+
+
+ }
+#line 70 "/usr/include/x86_64-linux-gnu/sys/select.h"
+fd_set;
+
+
+
+
+
+
+
+#line 77 "/usr/include/x86_64-linux-gnu/sys/select.h"
+typedef __fd_mask fd_mask;
+
+#line 78 "/usr/include/x86_64-linux-gnu/sys/select.h"
+
+extern int select (int __nfds, fd_set *__restrict __readfds,
+ fd_set *__restrict __writefds,
+ fd_set *__restrict __exceptfds,
+ struct timeval *__restrict __timeout);
+
+#line 106 "/usr/include/x86_64-linux-gnu/sys/select.h"
+extern int pselect (int __nfds, fd_set *__restrict __readfds,
+ fd_set *__restrict __writefds,
+ fd_set *__restrict __exceptfds,
+ const struct timespec *__restrict __timeout,
+ const __sigset_t *__restrict __sigmask);
+
+#line 132 "/usr/include/x86_64-linux-gnu/sys/select.h"
+
+
+
+
+
+
+typedef __blksize_t blksize_t;
+
+
+
+
+
+
+
+#line 192 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __blkcnt_t blkcnt_t;
+
+
+
+
+#line 196 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __fsblkcnt_t fsblkcnt_t;
+
+
+
+
+#line 200 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __fsfilcnt_t fsfilcnt_t;
+
+#line 201 "/usr/include/x86_64-linux-gnu/sys/types.h"
+
+typedef union
+{
+ __extension__ unsigned long long int __value64;
+ struct
+ {
+ unsigned int __low;
+ unsigned int __high;
+ } __value32;
+}
+#line 33 "/usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h"
+__atomic_wide_counter;
+
+#line 34 "/usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h"
+
+
+
+
+typedef struct __pthread_internal_list
+{
+ struct __pthread_internal_list *__prev;
+ struct __pthread_internal_list *__next;
+}
+#line 55 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+__pthread_list_t;
+
+
+#line 57 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+typedef struct __pthread_internal_slist
+{
+ struct __pthread_internal_slist *__next;
+}
+#line 60 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+__pthread_slist_t;
+
+#line 61 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+struct __pthread_mutex_s
+{
+ int __lock;
+ unsigned int __count;
+ int __owner;
+
+ unsigned int __nusers;
+
+
+
+ int __kind;
+
+ short __spins;
+ short __elision;
+ __pthread_list_t __list;
+};
+
+#line 54 "/usr/include/x86_64-linux-gnu/bits/struct_mutex.h"
+struct __pthread_rwlock_arch_t
+{
+ unsigned int __readers;
+ unsigned int __writers;
+ unsigned int __wrphase_futex;
+ unsigned int __writers_futex;
+ unsigned int __pad3;
+ unsigned int __pad4;
+
+ int __cur_writer;
+ int __shared;
+ signed char __rwelision;
+
+
+
+
+ unsigned char __pad1[7];
+
+
+ unsigned long int __pad2;
+
+
+ unsigned int __flags;
+};
+
+#line 56 "/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h"
+
+
+
+
+struct __pthread_cond_s
+{
+ __atomic_wide_counter __wseq;
+ __atomic_wide_counter __g1_start;
+ unsigned int __g_refs[2] ;
+ unsigned int __g_size[2];
+ unsigned int __g1_orig_size;
+ unsigned int __wrefs;
+ unsigned int __g_signals[2];
+};
+
+
+#line 105 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+typedef unsigned int __tss_t;
+
+#line 106 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+typedef unsigned long int __thrd_t;
+
+
+#line 108 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+typedef struct
+{
+ int __data ;
+}
+#line 111 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+__once_flag;
+
+#line 112 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+
+
+
+typedef unsigned long int pthread_t;
+
+
+
+
+
+#line 32 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ char __size[4];
+ int __align;
+}
+#line 36 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_mutexattr_t;
+
+
+
+
+
+#line 41 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ char __size[4];
+ int __align;
+}
+#line 45 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_condattr_t;
+
+
+
+
+#line 49 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef unsigned int pthread_key_t;
+
+
+
+
+#line 53 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef int pthread_once_t;
+
+
+
+#line 56 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+union pthread_attr_t
+{
+ char __size[56];
+ long int __align;
+};
+
+
+#line 62 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union pthread_attr_t pthread_attr_t;
+
+
+
+
+
+#line 67 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ struct __pthread_mutex_s __data;
+ char __size[40];
+ long int __align;
+}
+#line 72 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_mutex_t;
+
+
+
+#line 75 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ struct __pthread_cond_s __data;
+ char __size[48];
+ __extension__ long long int __align;
+}
+#line 80 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_cond_t;
+
+
+
+
+
+
+#line 86 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ struct __pthread_rwlock_arch_t __data;
+ char __size[56];
+ long int __align;
+}
+#line 91 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_rwlock_t;
+
+
+#line 93 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ char __size[8];
+ long int __align;
+}
+#line 97 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_rwlockattr_t;
+
+
+
+
+
+
+#line 103 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef volatile int pthread_spinlock_t;
+
+
+
+
+
+#line 108 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ char __size[32];
+ long int __align;
+}
+#line 112 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_barrier_t;
+
+
+#line 114 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ char __size[4];
+ int __align;
+}
+#line 118 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_barrierattr_t;
+
+#line 119 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+
+
+
+
+
+
+
+
+
+extern long int random (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 405 "/usr/include/stdlib.h"
+extern void srandom (unsigned int __seed) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+#line 411 "/usr/include/stdlib.h"
+extern char *initstate (unsigned int __seed, char *__statebuf,
+ size_t __statelen) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+
+
+#line 416 "/usr/include/stdlib.h"
+extern char *setstate (char *__statebuf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+
+#line 424 "/usr/include/stdlib.h"
+struct random_data
+ {
+ int32_t *fptr;
+ int32_t *rptr;
+ int32_t *state;
+ int rand_type;
+ int rand_deg;
+ int rand_sep;
+ int32_t *end_ptr;
+ };
+
+
+#line 435 "/usr/include/stdlib.h"
+extern int random_r (struct random_data *__restrict __buf,
+ int32_t *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 438 "/usr/include/stdlib.h"
+extern int srandom_r (unsigned int __seed, struct random_data *__buf)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+#line 441 "/usr/include/stdlib.h"
+extern int initstate_r (unsigned int __seed, char *__restrict __statebuf,
+ size_t __statelen,
+ struct random_data *__restrict __buf)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 4)));
+
+
+#line 446 "/usr/include/stdlib.h"
+extern int setstate_r (char *__restrict __statebuf,
+ struct random_data *__restrict __buf)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+
+#line 454 "/usr/include/stdlib.h"
+extern int rand (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+#line 456 "/usr/include/stdlib.h"
+extern void srand (unsigned int __seed) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 460 "/usr/include/stdlib.h"
+extern int rand_r (unsigned int *__seed) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+
+#line 468 "/usr/include/stdlib.h"
+extern double drand48 (void) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 469 "/usr/include/stdlib.h"
+extern double erand48 (unsigned short int __xsubi[3]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+#line 472 "/usr/include/stdlib.h"
+extern long int lrand48 (void) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 473 "/usr/include/stdlib.h"
+extern long int nrand48 (unsigned short int __xsubi[3])
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+#line 477 "/usr/include/stdlib.h"
+extern long int mrand48 (void) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 478 "/usr/include/stdlib.h"
+extern long int jrand48 (unsigned short int __xsubi[3])
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+#line 482 "/usr/include/stdlib.h"
+extern void srand48 (long int __seedval) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 483 "/usr/include/stdlib.h"
+extern unsigned short int *seed48 (unsigned short int __seed16v[3])
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 485 "/usr/include/stdlib.h"
+extern void lcong48 (unsigned short int __param[7]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+#line 491 "/usr/include/stdlib.h"
+struct drand48_data
+ {
+ unsigned short int __x[3];
+ unsigned short int __old_x[3];
+ unsigned short int __c;
+ unsigned short int __init;
+ __extension__ unsigned long long int __a;
+
+ };
+
+
+
+#line 502 "/usr/include/stdlib.h"
+extern int drand48_r (struct drand48_data *__restrict __buffer,
+ double *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 504 "/usr/include/stdlib.h"
+extern int erand48_r (unsigned short int __xsubi[3],
+ struct drand48_data *__restrict __buffer,
+ double *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 509 "/usr/include/stdlib.h"
+extern int lrand48_r (struct drand48_data *__restrict __buffer,
+ long int *__restrict __result)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 512 "/usr/include/stdlib.h"
+extern int nrand48_r (unsigned short int __xsubi[3],
+ struct drand48_data *__restrict __buffer,
+ long int *__restrict __result)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 518 "/usr/include/stdlib.h"
+extern int mrand48_r (struct drand48_data *__restrict __buffer,
+ long int *__restrict __result)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 521 "/usr/include/stdlib.h"
+extern int jrand48_r (unsigned short int __xsubi[3],
+ struct drand48_data *__restrict __buffer,
+ long int *__restrict __result)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 527 "/usr/include/stdlib.h"
+extern int srand48_r (long int __seedval, struct drand48_data *__buffer)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+#line 530 "/usr/include/stdlib.h"
+extern int seed48_r (unsigned short int __seed16v[3],
+ struct drand48_data *__buffer) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 533 "/usr/include/stdlib.h"
+extern int lcong48_r (unsigned short int __param[7],
+ struct drand48_data *__buffer)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 538 "/usr/include/stdlib.h"
+extern __uint32_t arc4random (void)
+ __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+#line 542 "/usr/include/stdlib.h"
+extern void arc4random_buf (void *__buf, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+#line 547 "/usr/include/stdlib.h"
+extern __uint32_t arc4random_uniform (__uint32_t __upper_bound)
+ __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+#line 553 "/usr/include/stdlib.h"
+extern void *malloc (size_t __size) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__))
+ __attribute__ ((__alloc_size__ (1))) ;
+
+
+#line 556 "/usr/include/stdlib.h"
+extern void *calloc (size_t __nmemb, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__alloc_size__ (1, 2))) ;
+
+
+
+
+
+
+
+#line 564 "/usr/include/stdlib.h"
+extern void *realloc (void *__ptr, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)) __attribute__ ((__alloc_size__ (2)));
+
+
+
+#line 568 "/usr/include/stdlib.h"
+extern void free (void *__ptr) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+
+#line 576 "/usr/include/stdlib.h"
+extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__))
+ __attribute__ ((__alloc_size__ (2, 3)))
+ __attribute__ ((__malloc__ (__builtin_free, 1)));
+
+
+
+#line 582 "/usr/include/stdlib.h"
+extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__ (reallocarray, 1)));
+
+
+
+
+#line 587 "/usr/include/stdlib.h"
+
+
+
+
+
+
+
+extern void *alloca (size_t __size) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+#line 39 "/usr/include/alloca.h"
+
+
+
+
+
+extern void *valloc (size_t __size) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__))
+ __attribute__ ((__alloc_size__ (1))) ;
+
+
+
+
+
+#line 599 "/usr/include/stdlib.h"
+extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+
+#line 605 "/usr/include/stdlib.h"
+extern void *aligned_alloc (size_t __alignment, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__alloc_align__ (1)))
+ __attribute__ ((__alloc_size__ (2))) ;
+
+
+
+
+#line 611 "/usr/include/stdlib.h"
+extern void abort (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+#line 615 "/usr/include/stdlib.h"
+extern int atexit (void (*__func) (void)) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+
+#line 623 "/usr/include/stdlib.h"
+extern int at_quick_exit (void (*__func) (void)) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+#line 630 "/usr/include/stdlib.h"
+extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+#line 637 "/usr/include/stdlib.h"
+extern void exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+
+
+#line 643 "/usr/include/stdlib.h"
+extern void quick_exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+
+
+#line 649 "/usr/include/stdlib.h"
+extern void _Exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+
+#line 654 "/usr/include/stdlib.h"
+extern char *getenv (const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+#line 655 "/usr/include/stdlib.h"
+extern int putenv (char *__string) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+#line 673 "/usr/include/stdlib.h"
+extern int setenv (const char *__name, const char *__value, int __replace)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+
+#line 677 "/usr/include/stdlib.h"
+extern int unsetenv (const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+#line 684 "/usr/include/stdlib.h"
+extern int clearenv (void) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 685 "/usr/include/stdlib.h"
+extern char *mktemp (char *__template) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 696 "/usr/include/stdlib.h"
+extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) ;
+
+#line 709 "/usr/include/stdlib.h"
+extern int mkstemps (char *__template, int __suffixlen) __attribute__ ((__nonnull__ (1))) ;
+
+#line 731 "/usr/include/stdlib.h"
+extern char *mkdtemp (char *__template) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+#line 752 "/usr/include/stdlib.h"
+extern int system (const char *__command) ;
+
+#line 805 "/usr/include/stdlib.h"
+extern char *realpath (const char *__restrict __name,
+ char *__restrict __resolved) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+
+
+#line 829 "/usr/include/stdlib.h"
+typedef int (*__compar_fn_t) (const void *, const void *);
+
+#line 830 "/usr/include/stdlib.h"
+extern void *bsearch (const void *__key, const void *__base,
+ size_t __nmemb, size_t __size, __compar_fn_t __compar)
+ __attribute__ ((__nonnull__ (1, 2, 5))) ;
+
+
+
+#line 846 "/usr/include/stdlib.h"
+extern __inline __attribute__ ((__gnu_inline__)) void *
+bsearch (const void *__key, const void *__base, size_t __nmemb, size_t __size,
+ __compar_fn_t __compar)
+{
+ size_t __l, __u, __idx;
+ const void *__p;
+ int __comparison;
+
+ __l = 0;
+ __u = __nmemb;
+ while (__l < __u)
+ {
+ __idx = (__l + __u) / 2;
+ __p = (const void *) (((const char *) __base) + (__idx * __size));
+ __comparison = (*__compar) (__key, __p);
+ if (__comparison < 0)
+ __u = __idx;
+ else if (__comparison > 0)
+ __l = __idx + 1;
+ else
+ {
+
+
+ return (void *) __p;
+
+
+ }
+ }
+
+ return ((void *)0);
+}
+
+#line 29 "-Wcast-qual"
+
+
+
+
+extern void qsort (void *__base, size_t __nmemb, size_t __size,
+ __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4)));
+
+#line 853 "/usr/include/stdlib.h"
+extern int abs (int __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+#line 862 "/usr/include/stdlib.h"
+extern long int labs (long int __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+
+
+#line 865 "/usr/include/stdlib.h"
+__extension__ extern long long int llabs (long long int __x)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+
+
+
+
+
+
+#line 873 "/usr/include/stdlib.h"
+extern div_t div (int __numer, int __denom)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+#line 875 "/usr/include/stdlib.h"
+extern ldiv_t ldiv (long int __numer, long int __denom)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+
+
+#line 879 "/usr/include/stdlib.h"
+__extension__ extern lldiv_t lldiv (long long int __numer,
+ long long int __denom)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+#line 882 "/usr/include/stdlib.h"
+extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt,
+ int *__restrict __sign) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ;
+
+
+
+
+
+#line 899 "/usr/include/stdlib.h"
+extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt,
+ int *__restrict __sign) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ;
+
+
+
+
+
+#line 905 "/usr/include/stdlib.h"
+extern char *gcvt (double __value, int __ndigit, char *__buf)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3))) ;
+
+
+
+
+
+#line 911 "/usr/include/stdlib.h"
+extern char *qecvt (long double __value, int __ndigit,
+ int *__restrict __decpt, int *__restrict __sign)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ;
+
+#line 914 "/usr/include/stdlib.h"
+extern char *qfcvt (long double __value, int __ndigit,
+ int *__restrict __decpt, int *__restrict __sign)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ;
+
+#line 917 "/usr/include/stdlib.h"
+extern char *qgcvt (long double __value, int __ndigit, char *__buf)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3))) ;
+
+
+
+
+
+#line 923 "/usr/include/stdlib.h"
+extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt,
+ int *__restrict __sign, char *__restrict __buf,
+ size_t __len) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
+
+#line 926 "/usr/include/stdlib.h"
+extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt,
+ int *__restrict __sign, char *__restrict __buf,
+ size_t __len) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
+
+
+#line 930 "/usr/include/stdlib.h"
+extern int qecvt_r (long double __value, int __ndigit,
+ int *__restrict __decpt, int *__restrict __sign,
+ char *__restrict __buf, size_t __len)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
+
+#line 934 "/usr/include/stdlib.h"
+extern int qfcvt_r (long double __value, int __ndigit,
+ int *__restrict __decpt, int *__restrict __sign,
+ char *__restrict __buf, size_t __len)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
+
+
+
+
+
+
+#line 943 "/usr/include/stdlib.h"
+extern int mblen (const char *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 946 "/usr/include/stdlib.h"
+extern int mbtowc (wchar_t *__restrict __pwc,
+ const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 950 "/usr/include/stdlib.h"
+extern int wctomb (char *__s, wchar_t __wchar) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 954 "/usr/include/stdlib.h"
+extern size_t mbstowcs (wchar_t *__restrict __pwcs,
+ const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__access__ (__read_only__, 2)));
+
+
+#line 958 "/usr/include/stdlib.h"
+extern size_t wcstombs (char *__restrict __s,
+ const wchar_t *__restrict __pwcs, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__access__ (__write_only__, 1, 3)))
+ __attribute__ ((__access__ (__read_only__, 2)));
+
+
+
+
+
+
+
+#line 969 "/usr/include/stdlib.h"
+extern int rpmatch (const char *__response) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+#line 970 "/usr/include/stdlib.h"
+extern int getsubopt (char **__restrict __optionp,
+ char *const *__restrict __tokens,
+ char **__restrict __valuep)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2, 3))) ;
+
+#line 984 "/usr/include/stdlib.h"
+extern int getloadavg (double __loadavg[], int __nelem)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 1028 "/usr/include/stdlib.h"
+extern __inline __attribute__ ((__gnu_inline__)) double
+__attribute__ ((__nothrow__ , __leaf__)) atof (const char *__nptr)
+{
+ return strtod (__nptr, (char **) ((void *)0));
+}
+
+#line 29 "/usr/include/x86_64-linux-gnu/bits/stdlib-float.h"
+
+
+enum
+{
+ _ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)),
+ _ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)),
+ _ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)),
+ _ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)),
+ _ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)),
+ _ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)),
+ _ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)),
+ _ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)),
+ _ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)),
+ _IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)),
+ _ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)),
+ _ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8))
+};
+
+#line 61 "/usr/include/ctype.h"
+extern const unsigned short int **__ctype_b_loc (void)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+#line 81 "/usr/include/ctype.h"
+extern const __int32_t **__ctype_tolower_loc (void)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+#line 83 "/usr/include/ctype.h"
+extern const __int32_t **__ctype_toupper_loc (void)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+#line 85 "/usr/include/ctype.h"
+extern int isalnum (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 109 "/usr/include/ctype.h"
+extern int isalpha (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 110 "/usr/include/ctype.h"
+extern int iscntrl (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 111 "/usr/include/ctype.h"
+extern int isdigit (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 112 "/usr/include/ctype.h"
+extern int islower (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 113 "/usr/include/ctype.h"
+extern int isgraph (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 114 "/usr/include/ctype.h"
+extern int isprint (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 115 "/usr/include/ctype.h"
+extern int ispunct (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 116 "/usr/include/ctype.h"
+extern int isspace (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 117 "/usr/include/ctype.h"
+extern int isupper (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 118 "/usr/include/ctype.h"
+extern int isxdigit (int) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 122 "/usr/include/ctype.h"
+extern int tolower (int __c) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 125 "/usr/include/ctype.h"
+extern int toupper (int __c) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+#line 130 "/usr/include/ctype.h"
+extern int isblank (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 131 "/usr/include/ctype.h"
+extern int isascii (int __c) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 146 "/usr/include/ctype.h"
+extern int toascii (int __c) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 150 "/usr/include/ctype.h"
+extern int _toupper (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 151 "/usr/include/ctype.h"
+extern int _tolower (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 152 "/usr/include/ctype.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+__attribute__ ((__nothrow__ , __leaf__)) tolower (int __c)
+{
+ return __c >= -128 && __c < 256 ? (*__ctype_tolower_loc ())[__c] : __c;
+}
+
+
+#line 212 "/usr/include/ctype.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+__attribute__ ((__nothrow__ , __leaf__)) toupper (int __c)
+{
+ return __c >= -128 && __c < 256 ? (*__ctype_toupper_loc ())[__c] : __c;
+}
+
+#line 217 "/usr/include/ctype.h"
+struct __locale_struct
+{
+
+ struct __locale_data *__locales[13];
+
+
+ const unsigned short int *__ctype_b;
+ const int *__ctype_tolower;
+ const int *__ctype_toupper;
+
+
+ const char *__names[13];
+};
+
+
+#line 41 "/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h"
+typedef struct __locale_struct *__locale_t;
+
+#line 42 "/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h"
+
+typedef __locale_t locale_t;
+
+#line 25 "/usr/include/x86_64-linux-gnu/bits/types/locale_t.h"
+extern int isalnum_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 252 "/usr/include/ctype.h"
+extern int isalpha_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 253 "/usr/include/ctype.h"
+extern int iscntrl_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 254 "/usr/include/ctype.h"
+extern int isdigit_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 255 "/usr/include/ctype.h"
+extern int islower_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 256 "/usr/include/ctype.h"
+extern int isgraph_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 257 "/usr/include/ctype.h"
+extern int isprint_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 258 "/usr/include/ctype.h"
+extern int ispunct_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 259 "/usr/include/ctype.h"
+extern int isspace_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 260 "/usr/include/ctype.h"
+extern int isupper_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 261 "/usr/include/ctype.h"
+extern int isxdigit_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+
+#line 263 "/usr/include/ctype.h"
+extern int isblank_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 267 "/usr/include/ctype.h"
+extern int __tolower_l (int __c, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 268 "/usr/include/ctype.h"
+extern int tolower_l (int __c, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 271 "/usr/include/ctype.h"
+extern int __toupper_l (int __c, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 272 "/usr/include/ctype.h"
+extern int toupper_l (int __c, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 273 "/usr/include/ctype.h"
+
+
+
+
+
+
+
+extern void *memcpy (void *__restrict __dest, const void *__restrict __src,
+ size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 47 "/usr/include/string.h"
+extern void *memmove (void *__dest, const void *__src, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+
+#line 54 "/usr/include/string.h"
+extern void *memccpy (void *__restrict __dest, const void *__restrict __src,
+ int __c, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__access__ (__write_only__, 1, 4)));
+
+
+
+
+
+#line 61 "/usr/include/string.h"
+extern void *memset (void *__s, int __c, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+#line 64 "/usr/include/string.h"
+extern int memcmp (const void *__s1, const void *__s2, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 66 "/usr/include/string.h"
+extern int __memcmpeq (const void *__s1, const void *__s2, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 82 "/usr/include/string.h"
+extern void *memchr (const void *__s, int __c, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+#line 109 "/usr/include/string.h"
+extern char *strcpy (char *__restrict __dest, const char *__restrict __src)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 144 "/usr/include/string.h"
+extern char *strncpy (char *__restrict __dest,
+ const char *__restrict __src, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 149 "/usr/include/string.h"
+extern char *strcat (char *__restrict __dest, const char *__restrict __src)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 152 "/usr/include/string.h"
+extern char *strncat (char *__restrict __dest, const char *__restrict __src,
+ size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 156 "/usr/include/string.h"
+extern int strcmp (const char *__s1, const char *__s2)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 159 "/usr/include/string.h"
+extern int strncmp (const char *__s1, const char *__s2, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 163 "/usr/include/string.h"
+extern int strcoll (const char *__s1, const char *__s2)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 166 "/usr/include/string.h"
+extern size_t strxfrm (char *__restrict __dest,
+ const char *__restrict __src, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))) __attribute__ ((__access__ (__write_only__, 1, 3)));
+
+
+
+
+
+
+
+#line 175 "/usr/include/string.h"
+extern int strcoll_l (const char *__s1, const char *__s2, locale_t __l)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));
+
+
+
+#line 179 "/usr/include/string.h"
+extern size_t strxfrm_l (char *__dest, const char *__src, size_t __n,
+ locale_t __l) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 4)))
+ __attribute__ ((__access__ (__write_only__, 1, 3)));
+
+
+
+
+
+
+#line 187 "/usr/include/string.h"
+extern char *strdup (const char *__s)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+#line 195 "/usr/include/string.h"
+extern char *strndup (const char *__string, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
+
+#line 197 "/usr/include/string.h"
+extern char *strchr (const char *__s, int __c)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+#line 248 "/usr/include/string.h"
+extern char *strrchr (const char *__s, int __c)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+#line 275 "/usr/include/string.h"
+extern size_t strcspn (const char *__s, const char *__reject)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 297 "/usr/include/string.h"
+extern size_t strspn (const char *__s, const char *__accept)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 299 "/usr/include/string.h"
+extern char *strpbrk (const char *__s, const char *__accept)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 325 "/usr/include/string.h"
+extern char *strstr (const char *__haystack, const char *__needle)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+#line 356 "/usr/include/string.h"
+extern char *strtok (char *__restrict __s, const char *__restrict __delim)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+
+
+#line 361 "/usr/include/string.h"
+extern char *__strtok_r (char *__restrict __s,
+ const char *__restrict __delim,
+ char **__restrict __save_ptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3)));
+
+
+#line 366 "/usr/include/string.h"
+extern char *strtok_r (char *__restrict __s, const char *__restrict __delim,
+ char **__restrict __save_ptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3)));
+
+#line 369 "/usr/include/string.h"
+extern size_t strlen (const char *__s)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+#line 413 "/usr/include/string.h"
+extern size_t strnlen (const char *__string, size_t __maxlen)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+#line 419 "/usr/include/string.h"
+extern char *strerror (int __errnum) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 420 "/usr/include/string.h"
+extern int strerror_r (int __errnum, char *__buf, size_t __buflen) __asm__ ("" "__xpg_strerror_r") __attribute__ ((__nothrow__ , __leaf__))
+
+ __attribute__ ((__nonnull__ (2)))
+ __attribute__ ((__access__ (__write_only__, 2, 3)));
+
+#line 436 "/usr/include/string.h"
+extern char *strerror_l (int __errnum, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 462 "/usr/include/string.h"
+
+
+
+
+
+
+
+
+
+
+extern int bcmp (const void *__s1, const void *__s2, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 38 "/usr/include/strings.h"
+extern void bcopy (const void *__src, void *__dest, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 42 "/usr/include/strings.h"
+extern void bzero (void *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 43 "/usr/include/strings.h"
+extern char *index (const char *__s, int __c)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+#line 70 "/usr/include/strings.h"
+extern char *rindex (const char *__s, int __c)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+#line 104 "/usr/include/strings.h"
+extern int ffs (int __i) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+
+
+
+
+
+#line 110 "/usr/include/strings.h"
+extern int ffsl (long int __l) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+#line 111 "/usr/include/strings.h"
+__extension__ extern int ffsll (long long int __ll)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+
+
+
+#line 116 "/usr/include/strings.h"
+extern int strcasecmp (const char *__s1, const char *__s2)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 120 "/usr/include/strings.h"
+extern int strncasecmp (const char *__s1, const char *__s2, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+
+
+#line 128 "/usr/include/strings.h"
+extern int strcasecmp_l (const char *__s1, const char *__s2, locale_t __loc)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));
+
+
+
+
+#line 133 "/usr/include/strings.h"
+extern int strncasecmp_l (const char *__s1, const char *__s2,
+ size_t __n, locale_t __loc)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 4)));
+
+
+
+
+#line 139 "/usr/include/strings.h"
+
+
+
+extern void explicit_bzero (void *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)))
+ __attribute__ ((__access__ (__write_only__, 1, 2)));
+
+
+
+
+#line 471 "/usr/include/string.h"
+extern char *strsep (char **__restrict __stringp,
+ const char *__restrict __delim)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+#line 478 "/usr/include/string.h"
+extern char *strsignal (int __sig) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 479 "/usr/include/string.h"
+extern char *__stpcpy (char *__restrict __dest, const char *__restrict __src)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 491 "/usr/include/string.h"
+extern char *stpcpy (char *__restrict __dest, const char *__restrict __src)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+#line 496 "/usr/include/string.h"
+extern char *__stpncpy (char *__restrict __dest,
+ const char *__restrict __src, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 499 "/usr/include/string.h"
+extern char *stpncpy (char *__restrict __dest,
+ const char *__restrict __src, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 502 "/usr/include/string.h"
+
+
+
+
+
+
+
+
+typedef __builtin_va_list __gnuc_va_list;
+
+#line 41 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stdarg.h"
+
+
+
+
+
+
+typedef struct
+{
+ int __count;
+ union
+ {
+ unsigned int __wch;
+ char __wchb[4];
+ } __value;
+}
+#line 21 "/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h"
+__mbstate_t;
+
+#line 22 "/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h"
+
+
+
+
+typedef struct _G_fpos_t
+{
+ __off_t __pos;
+ __mbstate_t __state;
+}
+#line 14 "/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h"
+__fpos_t;
+
+#line 15 "/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h"
+typedef struct _G_fpos64_t
+{
+ __off64_t __pos;
+ __mbstate_t __state;
+}
+#line 14 "/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h"
+__fpos64_t;
+
+#line 15 "/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h"
+
+
+
+struct _IO_FILE;
+
+#line 5 "/usr/include/x86_64-linux-gnu/bits/types/__FILE.h"
+typedef struct _IO_FILE __FILE;
+
+#line 6 "/usr/include/x86_64-linux-gnu/bits/types/__FILE.h"
+
+
+
+struct _IO_FILE;
+
+
+
+#line 7 "/usr/include/x86_64-linux-gnu/bits/types/FILE.h"
+typedef struct _IO_FILE FILE;
+
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/FILE.h"
+struct _IO_FILE;
+
+#line 36 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+struct _IO_marker;
+
+#line 37 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+struct _IO_codecvt;
+
+#line 38 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+struct _IO_wide_data;
+
+
+
+
+
+#line 43 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+typedef void _IO_lock_t;
+
+
+
+
+
+
+#line 49 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+struct _IO_FILE
+{
+ int _flags;
+
+
+ char *_IO_read_ptr;
+ char *_IO_read_end;
+ char *_IO_read_base;
+ char *_IO_write_base;
+ char *_IO_write_ptr;
+ char *_IO_write_end;
+ char *_IO_buf_base;
+ char *_IO_buf_end;
+
+
+ char *_IO_save_base;
+ char *_IO_backup_base;
+ char *_IO_save_end;
+
+ struct _IO_marker *_markers;
+
+ struct _IO_FILE *_chain;
+
+ int _fileno;
+ int _flags2;
+ __off_t _old_offset;
+
+
+ unsigned short _cur_column;
+ signed char _vtable_offset;
+ char _shortbuf[1];
+
+ _IO_lock_t *_lock;
+
+
+
+
+
+
+
+ __off64_t _offset;
+
+ struct _IO_codecvt *_codecvt;
+ struct _IO_wide_data *_wide_data;
+ struct _IO_FILE *_freeres_list;
+ void *_freeres_buf;
+ size_t __pad5;
+ int _mode;
+
+ char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)];
+};
+
+#line 100 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+typedef __gnuc_va_list va_list;
+
+#line 53 "/usr/include/stdio.h"
+typedef __fpos_t fpos_t;
+
+#line 85 "/usr/include/stdio.h"
+extern FILE *stdin;
+
+#line 144 "/usr/include/stdio.h"
+extern FILE *stdout;
+
+#line 145 "/usr/include/stdio.h"
+extern FILE *stderr;
+
+
+
+
+
+
+
+#line 152 "/usr/include/stdio.h"
+extern int remove (const char *__filename) __attribute__ ((__nothrow__ , __leaf__));
+
+
+#line 154 "/usr/include/stdio.h"
+extern int rename (const char *__old, const char *__new) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 158 "/usr/include/stdio.h"
+extern int renameat (int __oldfd, const char *__old, int __newfd,
+ const char *__new) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 160 "/usr/include/stdio.h"
+extern int fclose (FILE *__stream);
+
+#line 179 "/usr/include/stdio.h"
+extern FILE *tmpfile (void)
+ __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ;
+
+#line 190 "/usr/include/stdio.h"
+extern char *tmpnam (char[20]) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+#line 210 "/usr/include/stdio.h"
+extern char *tmpnam_r (char __s[20]) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+#line 211 "/usr/include/stdio.h"
+extern char *tempnam (const char *__dir, const char *__pfx)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (__builtin_free, 1)));
+
+
+
+
+
+
+
+#line 230 "/usr/include/stdio.h"
+extern int fflush (FILE *__stream);
+
+#line 231 "/usr/include/stdio.h"
+extern int fflush_unlocked (FILE *__stream);
+
+#line 240 "/usr/include/stdio.h"
+extern FILE *fopen (const char *__restrict __filename,
+ const char *__restrict __modes)
+ __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ;
+
+
+
+
+
+#line 265 "/usr/include/stdio.h"
+extern FILE *freopen (const char *__restrict __filename,
+ const char *__restrict __modes,
+ FILE *__restrict __stream) ;
+
+#line 268 "/usr/include/stdio.h"
+extern FILE *fdopen (int __fd, const char *__modes) __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ;
+
+#line 295 "/usr/include/stdio.h"
+extern FILE *fmemopen (void *__s, size_t __len, const char *__modes)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ;
+
+
+
+
+
+#line 314 "/usr/include/stdio.h"
+extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ;
+
+#line 316 "/usr/include/stdio.h"
+extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 332 "/usr/include/stdio.h"
+extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf,
+ int __modes, size_t __n) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+#line 338 "/usr/include/stdio.h"
+extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf,
+ size_t __size) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 342 "/usr/include/stdio.h"
+extern void setlinebuf (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+
+#line 350 "/usr/include/stdio.h"
+extern int fprintf (FILE *__restrict __stream,
+ const char *__restrict __format, ...);
+
+
+
+
+
+#line 356 "/usr/include/stdio.h"
+extern int printf (const char *__restrict __format, ...);
+
+
+#line 358 "/usr/include/stdio.h"
+extern int sprintf (char *__restrict __s,
+ const char *__restrict __format, ...) __attribute__ ((__nothrow__));
+
+
+
+
+
+
+#line 365 "/usr/include/stdio.h"
+extern int vfprintf (FILE *__restrict __s, const char *__restrict __format,
+ __gnuc_va_list __arg);
+
+
+
+
+
+#line 371 "/usr/include/stdio.h"
+extern int vprintf (const char *__restrict __format, __gnuc_va_list __arg);
+
+
+#line 373 "/usr/include/stdio.h"
+extern int vsprintf (char *__restrict __s, const char *__restrict __format,
+ __gnuc_va_list __arg) __attribute__ ((__nothrow__));
+
+
+
+
+#line 378 "/usr/include/stdio.h"
+extern int snprintf (char *__restrict __s, size_t __maxlen,
+ const char *__restrict __format, ...)
+ __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 4)));
+
+
+#line 382 "/usr/include/stdio.h"
+extern int vsnprintf (char *__restrict __s, size_t __maxlen,
+ const char *__restrict __format, __gnuc_va_list __arg)
+ __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 0)));
+
+#line 385 "/usr/include/stdio.h"
+extern int vdprintf (int __fd, const char *__restrict __fmt,
+ __gnuc_va_list __arg)
+ __attribute__ ((__format__ (__printf__, 2, 0)));
+
+#line 406 "/usr/include/stdio.h"
+extern int dprintf (int __fd, const char *__restrict __fmt, ...)
+ __attribute__ ((__format__ (__printf__, 2, 3)));
+
+
+
+
+
+
+
+
+#line 415 "/usr/include/stdio.h"
+extern int fscanf (FILE *__restrict __stream,
+ const char *__restrict __format, ...) ;
+
+
+
+
+
+#line 421 "/usr/include/stdio.h"
+extern int scanf (const char *__restrict __format, ...) ;
+
+
+#line 423 "/usr/include/stdio.h"
+extern int sscanf (const char *__restrict __s,
+ const char *__restrict __format, ...) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 425 "/usr/include/stdio.h"
+extern int fscanf (FILE *__restrict __stream, const char *__restrict __format, ...) __asm__ ("" "__isoc99_fscanf")
+
+ ;
+
+#line 437 "/usr/include/stdio.h"
+extern int scanf (const char *__restrict __format, ...) __asm__ ("" "__isoc99_scanf")
+ ;
+
+#line 439 "/usr/include/stdio.h"
+extern int sscanf (const char *__restrict __s, const char *__restrict __format, ...) __asm__ ("" "__isoc99_sscanf") __attribute__ ((__nothrow__ , __leaf__))
+
+ ;
+
+#line 442 "/usr/include/stdio.h"
+extern int vfscanf (FILE *__restrict __s, const char *__restrict __format,
+ __gnuc_va_list __arg)
+ __attribute__ ((__format__ (__scanf__, 2, 0))) ;
+
+
+
+
+
+
+#line 467 "/usr/include/stdio.h"
+extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg)
+ __attribute__ ((__format__ (__scanf__, 1, 0))) ;
+
+
+
+#line 471 "/usr/include/stdio.h"
+extern int vsscanf (const char *__restrict __s,
+ const char *__restrict __format, __gnuc_va_list __arg)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__format__ (__scanf__, 2, 0)));
+
+
+
+
+
+
+#line 479 "/usr/include/stdio.h"
+extern int vfscanf (FILE *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vfscanf")
+
+
+
+ __attribute__ ((__format__ (__scanf__, 2, 0))) ;
+
+#line 484 "/usr/include/stdio.h"
+extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vscanf")
+
+ __attribute__ ((__format__ (__scanf__, 1, 0))) ;
+
+#line 487 "/usr/include/stdio.h"
+extern int vsscanf (const char *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vsscanf") __attribute__ ((__nothrow__ , __leaf__))
+
+
+
+ __attribute__ ((__format__ (__scanf__, 2, 0)));
+
+#line 492 "/usr/include/stdio.h"
+extern int fgetc (FILE *__stream);
+
+#line 514 "/usr/include/stdio.h"
+extern int getc (FILE *__stream);
+
+
+
+
+
+
+#line 520 "/usr/include/stdio.h"
+extern int getchar (void);
+
+
+
+
+
+
+
+#line 527 "/usr/include/stdio.h"
+extern int getc_unlocked (FILE *__stream);
+
+#line 528 "/usr/include/stdio.h"
+extern int getchar_unlocked (void);
+
+#line 529 "/usr/include/stdio.h"
+extern int fgetc_unlocked (FILE *__stream);
+
+#line 539 "/usr/include/stdio.h"
+extern int fputc (int __c, FILE *__stream);
+
+#line 550 "/usr/include/stdio.h"
+extern int putc (int __c, FILE *__stream);
+
+
+
+
+
+
+#line 556 "/usr/include/stdio.h"
+extern int putchar (int __c);
+
+#line 557 "/usr/include/stdio.h"
+extern int fputc_unlocked (int __c, FILE *__stream);
+
+
+
+
+
+
+
+
+#line 573 "/usr/include/stdio.h"
+extern int putc_unlocked (int __c, FILE *__stream);
+
+#line 574 "/usr/include/stdio.h"
+extern int putchar_unlocked (int __c);
+
+
+
+
+
+
+
+#line 581 "/usr/include/stdio.h"
+extern int getw (FILE *__stream);
+
+
+
+#line 584 "/usr/include/stdio.h"
+extern int putw (int __w, FILE *__stream);
+
+
+
+
+
+
+
+
+#line 592 "/usr/include/stdio.h"
+extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream)
+ __attribute__ ((__access__ (__write_only__, 1, 2)));
+
+#line 594 "/usr/include/stdio.h"
+extern __ssize_t __getdelim (char **__restrict __lineptr,
+ size_t *__restrict __n, int __delimiter,
+ FILE *__restrict __stream) ;
+
+#line 635 "/usr/include/stdio.h"
+extern __ssize_t getdelim (char **__restrict __lineptr,
+ size_t *__restrict __n, int __delimiter,
+ FILE *__restrict __stream) ;
+
+
+
+
+
+
+
+
+#line 645 "/usr/include/stdio.h"
+extern __ssize_t getline (char **__restrict __lineptr,
+ size_t *__restrict __n,
+ FILE *__restrict __stream) ;
+
+
+
+
+
+
+
+
+#line 655 "/usr/include/stdio.h"
+extern int fputs (const char *__restrict __s, FILE *__restrict __stream);
+
+
+
+
+
+
+#line 661 "/usr/include/stdio.h"
+extern int puts (const char *__s);
+
+
+
+
+
+
+
+#line 668 "/usr/include/stdio.h"
+extern int ungetc (int __c, FILE *__stream);
+
+
+
+
+
+
+
+#line 675 "/usr/include/stdio.h"
+extern size_t fread (void *__restrict __ptr, size_t __size,
+ size_t __n, FILE *__restrict __stream) ;
+
+
+
+
+
+#line 681 "/usr/include/stdio.h"
+extern size_t fwrite (const void *__restrict __ptr, size_t __size,
+ size_t __n, FILE *__restrict __s);
+
+#line 683 "/usr/include/stdio.h"
+extern size_t fread_unlocked (void *__restrict __ptr, size_t __size,
+ size_t __n, FILE *__restrict __stream) ;
+
+#line 704 "/usr/include/stdio.h"
+extern size_t fwrite_unlocked (const void *__restrict __ptr, size_t __size,
+ size_t __n, FILE *__restrict __stream);
+
+
+
+
+
+
+
+
+#line 713 "/usr/include/stdio.h"
+extern int fseek (FILE *__stream, long int __off, int __whence);
+
+
+
+
+
+#line 718 "/usr/include/stdio.h"
+extern long int ftell (FILE *__stream) ;
+
+
+
+
+
+#line 723 "/usr/include/stdio.h"
+extern void rewind (FILE *__stream);
+
+#line 724 "/usr/include/stdio.h"
+extern int fseeko (FILE *__stream, __off_t __off, int __whence);
+
+
+
+
+
+#line 741 "/usr/include/stdio.h"
+extern __off_t ftello (FILE *__stream) ;
+
+#line 742 "/usr/include/stdio.h"
+extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos);
+
+
+
+
+
+#line 765 "/usr/include/stdio.h"
+extern int fsetpos (FILE *__stream, const fpos_t *__pos);
+
+#line 766 "/usr/include/stdio.h"
+extern void clearerr (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
+
+
+#line 788 "/usr/include/stdio.h"
+extern int feof (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+#line 790 "/usr/include/stdio.h"
+extern int ferror (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+#line 794 "/usr/include/stdio.h"
+extern void clearerr_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 795 "/usr/include/stdio.h"
+extern int feof_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+#line 796 "/usr/include/stdio.h"
+extern int ferror_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+
+
+
+#line 804 "/usr/include/stdio.h"
+extern void perror (const char *__s);
+
+
+
+
+
+#line 809 "/usr/include/stdio.h"
+extern int fileno (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+#line 814 "/usr/include/stdio.h"
+extern int fileno_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+#line 815 "/usr/include/stdio.h"
+extern int pclose (FILE *__stream);
+
+
+
+
+
+
+#line 829 "/usr/include/stdio.h"
+extern FILE *popen (const char *__command, const char *__modes)
+ __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (pclose, 1))) ;
+
+
+
+
+
+
+
+#line 837 "/usr/include/stdio.h"
+extern char *ctermid (char *__s) __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__access__ (__write_only__, 1)));
+
+#line 839 "/usr/include/stdio.h"
+extern void flockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 871 "/usr/include/stdio.h"
+extern int ftrylockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+#line 874 "/usr/include/stdio.h"
+extern void funlockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 875 "/usr/include/stdio.h"
+extern int __uflow (FILE *);
+
+#line 886 "/usr/include/stdio.h"
+extern int __overflow (FILE *, int);
+
+#line 887 "/usr/include/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+vprintf (const char *__restrict __fmt, __gnuc_va_list __arg)
+{
+ return vfprintf (stdout, __fmt, __arg);
+}
+
+
+
+
+#line 46 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+getchar (void)
+{
+ return getc (stdin);
+}
+
+
+
+
+
+#line 55 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+fgetc_unlocked (FILE *__fp)
+{
+ return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++);
+}
+
+
+
+
+
+
+#line 65 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+getc_unlocked (FILE *__fp)
+{
+ return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++);
+}
+
+
+
+#line 72 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+getchar_unlocked (void)
+{
+ return (__builtin_expect (((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end), 0) ? __uflow (stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++);
+}
+
+
+
+
+
+#line 81 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+putchar (int __c)
+{
+ return putc (__c, stdout);
+}
+
+
+
+
+
+#line 90 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+fputc_unlocked (int __c, FILE *__stream)
+{
+ return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
+}
+
+
+
+
+
+
+#line 100 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+putc_unlocked (int __c, FILE *__stream)
+{
+ return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
+}
+
+
+
+#line 107 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+putchar_unlocked (int __c)
+{
+ return (__builtin_expect (((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end), 0) ? __overflow (stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c)));
+}
+
+#line 112 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+__attribute__ ((__nothrow__ , __leaf__)) feof_unlocked (FILE *__stream)
+{
+ return (((__stream)->_flags & 0x0010) != 0);
+}
+
+
+
+#line 134 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+__attribute__ ((__nothrow__ , __leaf__)) ferror_unlocked (FILE *__stream)
+{
+ return (((__stream)->_flags & 0x0020) != 0);
+}
+
+#line 139 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+
+
+
+
+
+
+
+
+
+struct hashmap_other__other__comma_struct_other_uniq_other_string {
+ struct uniq_string **data;
+ size_t count;
+ size_t cap;
+};
+
+
+#line 139 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+
+
+
+
+
+
+
+
+
+struct hashmap_other__other__comma_struct_other_call {
+ struct call **data;
+ size_t count;
+ size_t cap;
+};
+
+
+#line 17 "gamma.h"
+uint32_t hashmap_other_hash_other__other__comma_struct_other_call(struct call *item);
+
+#line 17 "gamma.h"
+uint32_t hashmap_other_hash_other__other__comma_struct_other_uniq_other_string(struct uniq_string *item);
+
+#line 18 "gamma.h"
+int hashmap_other_eq_other__other__comma_struct_other_call(struct call *A, struct call *B);
+
+
+#line 18 "gamma.h"
+int hashmap_other_eq_other__other__comma_struct_other_uniq_other_string(struct uniq_string *A, struct uniq_string *B);
+
+
+#line 20 "gamma.h"
+struct uniq_string *hashmap_other_lookup_other__other__comma_struct_other_uniq_other_string(struct hashmap_other__other__comma_struct_other_uniq_other_string *hashmap, struct uniq_string *item);
+
+#line 21 "gamma.h"
+struct uniq_string *hashmap_other_lookup_other_weak_other__other__comma_struct_other_uniq_other_string(struct hashmap_other__other__comma_struct_other_uniq_other_string *hashmap, struct uniq_string *item);
+
+#line 21 "gamma.h"
+struct call *hashmap_other_lookup_other_weak_other__other__comma_struct_other_call(struct hashmap_other__other__comma_struct_other_call *hashmap, struct call *item);
+
+#line 22 "gamma.h"
+int hashmap_other_contains_other__other__comma_struct_other_call(struct hashmap_other__other__comma_struct_other_call *hashmap, struct call *item);
+
+#line 23 "gamma.h"
+void hashmap_other_insert_other__other__comma_struct_other_uniq_other_string(struct hashmap_other__other__comma_struct_other_uniq_other_string *hashmap, struct uniq_string *item);
+
+#line 23 "gamma.h"
+void hashmap_other_insert_other__other__comma_struct_other_call(struct hashmap_other__other__comma_struct_other_call *hashmap, struct call *item);
+
+#line 24 "gamma.h"
+struct uniq_string *heapify_other__other__comma_struct_other_uniq_other_string(struct uniq_string item);
+
+
+#line 26 "gamma.h"
+struct vector_other__other__comma_struct_other_call_other__star_ {
+ struct call * *data;
+ size_t count;
+ size_t cap;
+};
+
+#line 31 "gamma.h"
+uint32_t vector_other_push_other__other__comma_struct_other_call_other__star_(struct vector_other__other__comma_struct_other_call_other__star_ *vector, struct call * item);
+
+#line 32 "gamma.h"
+struct call * vector_other_pop_other__other__comma_struct_other_call_other__star_(struct vector_other__other__comma_struct_other_call_other__star_ *vector);
+
+#line 33 "gamma.h"
+struct vector_other__other__comma_struct_other_call_other__star_ *init_other_vector_other__other__comma_struct_other_call_other__star_();
+
+
+#line 35 "gamma.h"
+struct uniq_string {
+ char *string;
+ size_t len;
+
+ struct vector_other__other__comma_struct_other_call_other__star_ instantiations;
+
+ struct chunk *definitions;
+};
+
+
+#line 44 "gamma.h"
+struct arg {
+ char *start;
+ struct uniq_string *string;
+ int is_concrete;
+};
+
+
+#line 50 "gamma.h"
+struct call {
+ char *start;
+ char *end;
+ struct uniq_string *name;
+ struct arg *args;
+ size_t n_args;
+ struct call *next;
+};
+
+
+#line 59 "gamma.h"
+struct chunk {
+ char *start;
+ char *end;
+
+ char *line_filename;
+ size_t line;
+
+ struct call *defining_call;
+ struct call *calls;
+ struct chunk *next;
+ struct chunk *next_definition;
+};
+
+
+#line 72 "gamma.h"
+struct chunked_file {
+ char *contents;
+ char *end;
+ size_t id;
+ struct chunk *chunks;
+ struct chunked_file *next;
+};
+
+
+#line 80 "gamma.h"
+struct chunked_file *chunk(const char *path);
+
+#line 81 "gamma.h"
+struct uniq_string *lookup(char *string, size_t len);
+
+#line 82 "gamma.h"
+struct uniq_string *weak_lookup(char *string, size_t len);
+
+
+
+
+#line 86 "gamma.h"
+struct instantiation_set {
+ struct call **data;
+ size_t n;
+ size_t cap;
+};
+
+
+#line 92 "gamma.h"
+void parse_call(struct call *call);
+
+#line 93 "gamma.h"
+void print_state(struct chunked_file *file);
+
+#line 94 "gamma.h"
+void solve(struct chunked_file *files);
+
+#line 95 "gamma.h"
+void print_string(struct uniq_string *string);
+
+#line 96 "gamma.h"
+void print_call(struct call *call);
+
+#line 97 "gamma.h"
+void print_set(struct instantiation_set *set);
+
+#line 98 "gamma.h"
+void print_chunk(struct chunk *chunk, struct call *instantiation, FILE *out);
+
+#line 99 "gamma.h"
+struct call *replace_variables(struct call *container, struct call *container_instantiation, struct call *call);
+
+#line 100 "gamma.h"
+void fprint_string(FILE *out, struct uniq_string *string);
+
+#line 101 "gamma.h"
+char **read_fakeobj(char *path, char *c_dst);
+
+#line 102 "gamma.h"
+void write_fakeobj(char *src, char *dst, int i);
+
+#line 103 "gamma.h"
+void gamma_sendfile(int dst_fd, int src_fd);
+
+#line 104 "gamma.h"
+void copy_file(char *dst, char *src);
+
+
+#line 106 "gamma.h"
+extern char **ARGV;
+
+#line 107 "gamma.h"
+extern int ARGC;
+
+#line 108 "gamma.h"
+extern char *TMPDIR;
+
+#line 109 "gamma.h"
+extern int GAMMA_TO_C;
+
+#line 110 "gamma.h"
+
+
+
+
+
+typedef __useconds_t useconds_t;
+
+#line 256 "/usr/include/unistd.h"
+typedef __socklen_t socklen_t;
+
+#line 275 "/usr/include/unistd.h"
+extern int access (const char *__name, int __type) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 288 "/usr/include/unistd.h"
+extern int faccessat (int __fd, const char *__file, int __type, int __flag)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))) ;
+
+#line 311 "/usr/include/unistd.h"
+extern __off_t lseek (int __fd, __off_t __offset, int __whence) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 340 "/usr/include/unistd.h"
+extern int close (int __fd);
+
+
+
+
+
+#line 363 "/usr/include/unistd.h"
+extern void closefrom (int __lowfd) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+
+#line 371 "/usr/include/unistd.h"
+extern ssize_t read (int __fd, void *__buf, size_t __nbytes)
+ __attribute__ ((__access__ (__write_only__, 2, 3)));
+
+
+
+
+
+
+#line 378 "/usr/include/unistd.h"
+extern ssize_t write (int __fd, const void *__buf, size_t __n)
+ __attribute__ ((__access__ (__read_only__, 2, 3)));
+
+#line 380 "/usr/include/unistd.h"
+extern ssize_t pread (int __fd, void *__buf, size_t __nbytes,
+ __off_t __offset)
+ __attribute__ ((__access__ (__write_only__, 2, 3)));
+
+
+
+
+
+
+
+#line 398 "/usr/include/unistd.h"
+extern ssize_t pwrite (int __fd, const void *__buf, size_t __n,
+ __off_t __offset)
+ __attribute__ ((__access__ (__read_only__, 2, 3)));
+
+#line 401 "/usr/include/unistd.h"
+extern int pipe (int __pipedes[2]) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+#line 438 "/usr/include/unistd.h"
+extern unsigned int alarm (unsigned int __seconds) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 453 "/usr/include/unistd.h"
+extern unsigned int sleep (unsigned int __seconds);
+
+
+
+
+
+
+
+
+#line 472 "/usr/include/unistd.h"
+extern __useconds_t ualarm (__useconds_t __value, __useconds_t __interval)
+ __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+#line 480 "/usr/include/unistd.h"
+extern int usleep (__useconds_t __useconds);
+
+#line 481 "/usr/include/unistd.h"
+extern int pause (void);
+
+
+
+
+#line 493 "/usr/include/unistd.h"
+extern int chown (const char *__file, __uid_t __owner, __gid_t __group)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+#line 498 "/usr/include/unistd.h"
+extern int fchown (int __fd, __uid_t __owner, __gid_t __group) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+#line 503 "/usr/include/unistd.h"
+extern int lchown (const char *__file, __uid_t __owner, __gid_t __group)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+
+
+
+#line 511 "/usr/include/unistd.h"
+extern int fchownat (int __fd, const char *__file, __uid_t __owner,
+ __gid_t __group, int __flag)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))) ;
+
+
+
+
+#line 517 "/usr/include/unistd.h"
+extern int chdir (const char *__path) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+#line 521 "/usr/include/unistd.h"
+extern int fchdir (int __fd) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+#line 522 "/usr/include/unistd.h"
+extern char *getcwd (char *__buf, size_t __size) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+#line 532 "/usr/include/unistd.h"
+extern char *getwd (char *__buf)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__))
+ __attribute__ ((__access__ (__write_only__, 1)));
+
+
+
+
+
+#line 552 "/usr/include/unistd.h"
+extern int dup (int __fd) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+#line 555 "/usr/include/unistd.h"
+extern int dup2 (int __fd, int __fd2) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 556 "/usr/include/unistd.h"
+extern char **__environ;
+
+
+
+
+
+
+
+
+#line 572 "/usr/include/unistd.h"
+extern int execve (const char *__path, char *const __argv[],
+ char *const __envp[]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+#line 578 "/usr/include/unistd.h"
+extern int fexecve (int __fd, char *const __argv[], char *const __envp[])
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+
+
+
+#line 584 "/usr/include/unistd.h"
+extern int execv (const char *__path, char *const __argv[])
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+#line 589 "/usr/include/unistd.h"
+extern int execle (const char *__path, const char *__arg, ...)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+#line 594 "/usr/include/unistd.h"
+extern int execl (const char *__path, const char *__arg, ...)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+#line 599 "/usr/include/unistd.h"
+extern int execvp (const char *__file, char *const __argv[])
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+#line 605 "/usr/include/unistd.h"
+extern int execlp (const char *__file, const char *__arg, ...)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 607 "/usr/include/unistd.h"
+extern int nice (int __inc) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+#line 624 "/usr/include/unistd.h"
+extern void _exit (int __status) __attribute__ ((__noreturn__));
+
+
+
+
+
+
+#line 630 "/usr/include/unistd.h"
+enum
+ {
+ _PC_LINK_MAX,
+
+ _PC_MAX_CANON,
+
+ _PC_MAX_INPUT,
+
+ _PC_NAME_MAX,
+
+ _PC_PATH_MAX,
+
+ _PC_PIPE_BUF,
+
+ _PC_CHOWN_RESTRICTED,
+
+ _PC_NO_TRUNC,
+
+ _PC_VDISABLE,
+
+ _PC_SYNC_IO,
+
+ _PC_ASYNC_IO,
+
+ _PC_PRIO_IO,
+
+ _PC_SOCK_MAXBUF,
+
+ _PC_FILESIZEBITS,
+
+ _PC_REC_INCR_XFER_SIZE,
+
+ _PC_REC_MAX_XFER_SIZE,
+
+ _PC_REC_MIN_XFER_SIZE,
+
+ _PC_REC_XFER_ALIGN,
+
+ _PC_ALLOC_SIZE_MIN,
+
+ _PC_SYMLINK_MAX,
+
+ _PC_2_SYMLINKS
+
+ };
+
+
+
+#line 71 "/usr/include/x86_64-linux-gnu/bits/confname.h"
+enum
+ {
+ _SC_ARG_MAX,
+
+ _SC_CHILD_MAX,
+
+ _SC_CLK_TCK,
+
+ _SC_NGROUPS_MAX,
+
+ _SC_OPEN_MAX,
+
+ _SC_STREAM_MAX,
+
+ _SC_TZNAME_MAX,
+
+ _SC_JOB_CONTROL,
+
+ _SC_SAVED_IDS,
+
+ _SC_REALTIME_SIGNALS,
+
+ _SC_PRIORITY_SCHEDULING,
+
+ _SC_TIMERS,
+
+ _SC_ASYNCHRONOUS_IO,
+
+ _SC_PRIORITIZED_IO,
+
+ _SC_SYNCHRONIZED_IO,
+
+ _SC_FSYNC,
+
+ _SC_MAPPED_FILES,
+
+ _SC_MEMLOCK,
+
+ _SC_MEMLOCK_RANGE,
+
+ _SC_MEMORY_PROTECTION,
+
+ _SC_MESSAGE_PASSING,
+
+ _SC_SEMAPHORES,
+
+ _SC_SHARED_MEMORY_OBJECTS,
+
+ _SC_AIO_LISTIO_MAX,
+
+ _SC_AIO_MAX,
+
+ _SC_AIO_PRIO_DELTA_MAX,
+
+ _SC_DELAYTIMER_MAX,
+
+ _SC_MQ_OPEN_MAX,
+
+ _SC_MQ_PRIO_MAX,
+
+ _SC_VERSION,
+
+ _SC_PAGESIZE,
+
+
+ _SC_RTSIG_MAX,
+
+ _SC_SEM_NSEMS_MAX,
+
+ _SC_SEM_VALUE_MAX,
+
+ _SC_SIGQUEUE_MAX,
+
+ _SC_TIMER_MAX,
+
+
+
+
+ _SC_BC_BASE_MAX,
+
+ _SC_BC_DIM_MAX,
+
+ _SC_BC_SCALE_MAX,
+
+ _SC_BC_STRING_MAX,
+
+ _SC_COLL_WEIGHTS_MAX,
+
+ _SC_EQUIV_CLASS_MAX,
+
+ _SC_EXPR_NEST_MAX,
+
+ _SC_LINE_MAX,
+
+ _SC_RE_DUP_MAX,
+
+ _SC_CHARCLASS_NAME_MAX,
+
+
+ _SC_2_VERSION,
+
+ _SC_2_C_BIND,
+
+ _SC_2_C_DEV,
+
+ _SC_2_FORT_DEV,
+
+ _SC_2_FORT_RUN,
+
+ _SC_2_SW_DEV,
+
+ _SC_2_LOCALEDEF,
+
+
+ _SC_PII,
+
+ _SC_PII_XTI,
+
+ _SC_PII_SOCKET,
+
+ _SC_PII_INTERNET,
+
+ _SC_PII_OSI,
+
+ _SC_POLL,
+
+ _SC_SELECT,
+
+ _SC_UIO_MAXIOV,
+
+ _SC_IOV_MAX = _SC_UIO_MAXIOV,
+
+ _SC_PII_INTERNET_STREAM,
+
+ _SC_PII_INTERNET_DGRAM,
+
+ _SC_PII_OSI_COTS,
+
+ _SC_PII_OSI_CLTS,
+
+ _SC_PII_OSI_M,
+
+ _SC_T_IOV_MAX,
+
+
+
+ _SC_THREADS,
+
+ _SC_THREAD_SAFE_FUNCTIONS,
+
+ _SC_GETGR_R_SIZE_MAX,
+
+ _SC_GETPW_R_SIZE_MAX,
+
+ _SC_LOGIN_NAME_MAX,
+
+ _SC_TTY_NAME_MAX,
+
+ _SC_THREAD_DESTRUCTOR_ITERATIONS,
+
+ _SC_THREAD_KEYS_MAX,
+
+ _SC_THREAD_STACK_MIN,
+
+ _SC_THREAD_THREADS_MAX,
+
+ _SC_THREAD_ATTR_STACKADDR,
+
+ _SC_THREAD_ATTR_STACKSIZE,
+
+ _SC_THREAD_PRIORITY_SCHEDULING,
+
+ _SC_THREAD_PRIO_INHERIT,
+
+ _SC_THREAD_PRIO_PROTECT,
+
+ _SC_THREAD_PROCESS_SHARED,
+
+
+ _SC_NPROCESSORS_CONF,
+
+ _SC_NPROCESSORS_ONLN,
+
+ _SC_PHYS_PAGES,
+
+ _SC_AVPHYS_PAGES,
+
+ _SC_ATEXIT_MAX,
+
+ _SC_PASS_MAX,
+
+
+ _SC_XOPEN_VERSION,
+
+ _SC_XOPEN_XCU_VERSION,
+
+ _SC_XOPEN_UNIX,
+
+ _SC_XOPEN_CRYPT,
+
+ _SC_XOPEN_ENH_I18N,
+
+ _SC_XOPEN_SHM,
+
+
+ _SC_2_CHAR_TERM,
+
+ _SC_2_C_VERSION,
+
+ _SC_2_UPE,
+
+
+ _SC_XOPEN_XPG2,
+
+ _SC_XOPEN_XPG3,
+
+ _SC_XOPEN_XPG4,
+
+
+ _SC_CHAR_BIT,
+
+ _SC_CHAR_MAX,
+
+ _SC_CHAR_MIN,
+
+ _SC_INT_MAX,
+
+ _SC_INT_MIN,
+
+ _SC_LONG_BIT,
+
+ _SC_WORD_BIT,
+
+ _SC_MB_LEN_MAX,
+
+ _SC_NZERO,
+
+ _SC_SSIZE_MAX,
+
+ _SC_SCHAR_MAX,
+
+ _SC_SCHAR_MIN,
+
+ _SC_SHRT_MAX,
+
+ _SC_SHRT_MIN,
+
+ _SC_UCHAR_MAX,
+
+ _SC_UINT_MAX,
+
+ _SC_ULONG_MAX,
+
+ _SC_USHRT_MAX,
+
+
+ _SC_NL_ARGMAX,
+
+ _SC_NL_LANGMAX,
+
+ _SC_NL_MSGMAX,
+
+ _SC_NL_NMAX,
+
+ _SC_NL_SETMAX,
+
+ _SC_NL_TEXTMAX,
+
+
+ _SC_XBS5_ILP32_OFF32,
+
+ _SC_XBS5_ILP32_OFFBIG,
+
+ _SC_XBS5_LP64_OFF64,
+
+ _SC_XBS5_LPBIG_OFFBIG,
+
+
+ _SC_XOPEN_LEGACY,
+
+ _SC_XOPEN_REALTIME,
+
+ _SC_XOPEN_REALTIME_THREADS,
+
+
+ _SC_ADVISORY_INFO,
+
+ _SC_BARRIERS,
+
+ _SC_BASE,
+
+ _SC_C_LANG_SUPPORT,
+
+ _SC_C_LANG_SUPPORT_R,
+
+ _SC_CLOCK_SELECTION,
+
+ _SC_CPUTIME,
+
+ _SC_THREAD_CPUTIME,
+
+ _SC_DEVICE_IO,
+
+ _SC_DEVICE_SPECIFIC,
+
+ _SC_DEVICE_SPECIFIC_R,
+
+ _SC_FD_MGMT,
+
+ _SC_FIFO,
+
+ _SC_PIPE,
+
+ _SC_FILE_ATTRIBUTES,
+
+ _SC_FILE_LOCKING,
+
+ _SC_FILE_SYSTEM,
+
+ _SC_MONOTONIC_CLOCK,
+
+ _SC_MULTI_PROCESS,
+
+ _SC_SINGLE_PROCESS,
+
+ _SC_NETWORKING,
+
+ _SC_READER_WRITER_LOCKS,
+
+ _SC_SPIN_LOCKS,
+
+ _SC_REGEXP,
+
+ _SC_REGEX_VERSION,
+
+ _SC_SHELL,
+
+ _SC_SIGNALS,
+
+ _SC_SPAWN,
+
+ _SC_SPORADIC_SERVER,
+
+ _SC_THREAD_SPORADIC_SERVER,
+
+ _SC_SYSTEM_DATABASE,
+
+ _SC_SYSTEM_DATABASE_R,
+
+ _SC_TIMEOUTS,
+
+ _SC_TYPED_MEMORY_OBJECTS,
+
+ _SC_USER_GROUPS,
+
+ _SC_USER_GROUPS_R,
+
+ _SC_2_PBS,
+
+ _SC_2_PBS_ACCOUNTING,
+
+ _SC_2_PBS_LOCATE,
+
+ _SC_2_PBS_MESSAGE,
+
+ _SC_2_PBS_TRACK,
+
+ _SC_SYMLOOP_MAX,
+
+ _SC_STREAMS,
+
+ _SC_2_PBS_CHECKPOINT,
+
+
+ _SC_V6_ILP32_OFF32,
+
+ _SC_V6_ILP32_OFFBIG,
+
+ _SC_V6_LP64_OFF64,
+
+ _SC_V6_LPBIG_OFFBIG,
+
+
+ _SC_HOST_NAME_MAX,
+
+ _SC_TRACE,
+
+ _SC_TRACE_EVENT_FILTER,
+
+ _SC_TRACE_INHERIT,
+
+ _SC_TRACE_LOG,
+
+
+ _SC_LEVEL1_ICACHE_SIZE,
+
+ _SC_LEVEL1_ICACHE_ASSOC,
+
+ _SC_LEVEL1_ICACHE_LINESIZE,
+
+ _SC_LEVEL1_DCACHE_SIZE,
+
+ _SC_LEVEL1_DCACHE_ASSOC,
+
+ _SC_LEVEL1_DCACHE_LINESIZE,
+
+ _SC_LEVEL2_CACHE_SIZE,
+
+ _SC_LEVEL2_CACHE_ASSOC,
+
+ _SC_LEVEL2_CACHE_LINESIZE,
+
+ _SC_LEVEL3_CACHE_SIZE,
+
+ _SC_LEVEL3_CACHE_ASSOC,
+
+ _SC_LEVEL3_CACHE_LINESIZE,
+
+ _SC_LEVEL4_CACHE_SIZE,
+
+ _SC_LEVEL4_CACHE_ASSOC,
+
+ _SC_LEVEL4_CACHE_LINESIZE,
+
+
+
+ _SC_IPV6 = _SC_LEVEL1_ICACHE_SIZE + 50,
+
+ _SC_RAW_SOCKETS,
+
+
+ _SC_V7_ILP32_OFF32,
+
+ _SC_V7_ILP32_OFFBIG,
+
+ _SC_V7_LP64_OFF64,
+
+ _SC_V7_LPBIG_OFFBIG,
+
+
+ _SC_SS_REPL_MAX,
+
+
+ _SC_TRACE_EVENT_NAME_MAX,
+
+ _SC_TRACE_NAME_MAX,
+
+ _SC_TRACE_SYS_MAX,
+
+ _SC_TRACE_USER_EVENT_MAX,
+
+
+ _SC_XOPEN_STREAMS,
+
+
+ _SC_THREAD_ROBUST_PRIO_INHERIT,
+
+ _SC_THREAD_ROBUST_PRIO_PROTECT,
+
+
+ _SC_MINSIGSTKSZ,
+
+
+ _SC_SIGSTKSZ
+
+ };
+
+
+
+#line 539 "/usr/include/x86_64-linux-gnu/bits/confname.h"
+enum
+ {
+ _CS_PATH,
+
+
+ _CS_V6_WIDTH_RESTRICTED_ENVS,
+
+
+
+ _CS_GNU_LIBC_VERSION,
+
+ _CS_GNU_LIBPTHREAD_VERSION,
+
+
+ _CS_V5_WIDTH_RESTRICTED_ENVS,
+
+
+
+ _CS_V7_WIDTH_RESTRICTED_ENVS,
+
+
+
+ _CS_LFS_CFLAGS = 1000,
+
+ _CS_LFS_LDFLAGS,
+
+ _CS_LFS_LIBS,
+
+ _CS_LFS_LINTFLAGS,
+
+ _CS_LFS64_CFLAGS,
+
+ _CS_LFS64_LDFLAGS,
+
+ _CS_LFS64_LIBS,
+
+ _CS_LFS64_LINTFLAGS,
+
+
+ _CS_XBS5_ILP32_OFF32_CFLAGS = 1100,
+
+ _CS_XBS5_ILP32_OFF32_LDFLAGS,
+
+ _CS_XBS5_ILP32_OFF32_LIBS,
+
+ _CS_XBS5_ILP32_OFF32_LINTFLAGS,
+
+ _CS_XBS5_ILP32_OFFBIG_CFLAGS,
+
+ _CS_XBS5_ILP32_OFFBIG_LDFLAGS,
+
+ _CS_XBS5_ILP32_OFFBIG_LIBS,
+
+ _CS_XBS5_ILP32_OFFBIG_LINTFLAGS,
+
+ _CS_XBS5_LP64_OFF64_CFLAGS,
+
+ _CS_XBS5_LP64_OFF64_LDFLAGS,
+
+ _CS_XBS5_LP64_OFF64_LIBS,
+
+ _CS_XBS5_LP64_OFF64_LINTFLAGS,
+
+ _CS_XBS5_LPBIG_OFFBIG_CFLAGS,
+
+ _CS_XBS5_LPBIG_OFFBIG_LDFLAGS,
+
+ _CS_XBS5_LPBIG_OFFBIG_LIBS,
+
+ _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS,
+
+
+ _CS_POSIX_V6_ILP32_OFF32_CFLAGS,
+
+ _CS_POSIX_V6_ILP32_OFF32_LDFLAGS,
+
+ _CS_POSIX_V6_ILP32_OFF32_LIBS,
+
+ _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS,
+
+ _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS,
+
+ _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS,
+
+ _CS_POSIX_V6_ILP32_OFFBIG_LIBS,
+
+ _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS,
+
+ _CS_POSIX_V6_LP64_OFF64_CFLAGS,
+
+ _CS_POSIX_V6_LP64_OFF64_LDFLAGS,
+
+ _CS_POSIX_V6_LP64_OFF64_LIBS,
+
+ _CS_POSIX_V6_LP64_OFF64_LINTFLAGS,
+
+ _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS,
+
+ _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS,
+
+ _CS_POSIX_V6_LPBIG_OFFBIG_LIBS,
+
+ _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS,
+
+
+ _CS_POSIX_V7_ILP32_OFF32_CFLAGS,
+
+ _CS_POSIX_V7_ILP32_OFF32_LDFLAGS,
+
+ _CS_POSIX_V7_ILP32_OFF32_LIBS,
+
+ _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS,
+
+ _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS,
+
+ _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS,
+
+ _CS_POSIX_V7_ILP32_OFFBIG_LIBS,
+
+ _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS,
+
+ _CS_POSIX_V7_LP64_OFF64_CFLAGS,
+
+ _CS_POSIX_V7_LP64_OFF64_LDFLAGS,
+
+ _CS_POSIX_V7_LP64_OFF64_LIBS,
+
+ _CS_POSIX_V7_LP64_OFF64_LINTFLAGS,
+
+ _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS,
+
+ _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS,
+
+ _CS_POSIX_V7_LPBIG_OFFBIG_LIBS,
+
+ _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS,
+
+
+ _CS_V6_ENV,
+
+ _CS_V7_ENV
+
+ };
+
+#line 682 "/usr/include/x86_64-linux-gnu/bits/confname.h"
+
+
+extern long int pathconf (const char *__path, int __name)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+#line 637 "/usr/include/unistd.h"
+extern long int fpathconf (int __fd, int __name) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 640 "/usr/include/unistd.h"
+extern long int sysconf (int __name) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 644 "/usr/include/unistd.h"
+extern size_t confstr (int __name, char *__buf, size_t __len) __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__access__ (__write_only__, 2, 3)));
+
+
+
+
+
+#line 650 "/usr/include/unistd.h"
+extern __pid_t getpid (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 653 "/usr/include/unistd.h"
+extern __pid_t getppid (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 656 "/usr/include/unistd.h"
+extern __pid_t getpgrp (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 659 "/usr/include/unistd.h"
+extern __pid_t __getpgid (__pid_t __pid) __attribute__ ((__nothrow__ , __leaf__));
+
+
+#line 661 "/usr/include/unistd.h"
+extern __pid_t getpgid (__pid_t __pid) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+#line 668 "/usr/include/unistd.h"
+extern int setpgid (__pid_t __pid, __pid_t __pgid) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 669 "/usr/include/unistd.h"
+extern int setpgrp (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+#line 689 "/usr/include/unistd.h"
+extern __pid_t setsid (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 693 "/usr/include/unistd.h"
+extern __pid_t getsid (__pid_t __pid) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 697 "/usr/include/unistd.h"
+extern __uid_t getuid (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 700 "/usr/include/unistd.h"
+extern __uid_t geteuid (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 703 "/usr/include/unistd.h"
+extern __gid_t getgid (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 706 "/usr/include/unistd.h"
+extern __gid_t getegid (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+#line 711 "/usr/include/unistd.h"
+extern int getgroups (int __size, __gid_t __list[]) __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__access__ (__write_only__, 2, 1)));
+
+#line 713 "/usr/include/unistd.h"
+extern int setuid (__uid_t __uid) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+#line 727 "/usr/include/unistd.h"
+extern int setreuid (__uid_t __ruid, __uid_t __euid) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+#line 732 "/usr/include/unistd.h"
+extern int seteuid (__uid_t __uid) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+
+
+#line 739 "/usr/include/unistd.h"
+extern int setgid (__gid_t __gid) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+#line 744 "/usr/include/unistd.h"
+extern int setregid (__gid_t __rgid, __gid_t __egid) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+#line 749 "/usr/include/unistd.h"
+extern int setegid (__gid_t __gid) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+#line 750 "/usr/include/unistd.h"
+extern __pid_t fork (void) __attribute__ ((__nothrow__));
+
+
+
+
+
+
+
+
+#line 786 "/usr/include/unistd.h"
+extern __pid_t vfork (void) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 787 "/usr/include/unistd.h"
+extern char *ttyname (int __fd) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 803 "/usr/include/unistd.h"
+extern int ttyname_r (int __fd, char *__buf, size_t __buflen)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)))
+ __attribute__ ((__access__ (__write_only__, 2, 3)));
+
+
+
+
+#line 809 "/usr/include/unistd.h"
+extern int isatty (int __fd) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+#line 814 "/usr/include/unistd.h"
+extern int ttyslot (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+#line 819 "/usr/include/unistd.h"
+extern int link (const char *__from, const char *__to)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))) ;
+
+
+
+
+
+#line 825 "/usr/include/unistd.h"
+extern int linkat (int __fromfd, const char *__from, int __tofd,
+ const char *__to, int __flags)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 4))) ;
+
+
+
+
+
+#line 832 "/usr/include/unistd.h"
+extern int symlink (const char *__from, const char *__to)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))) ;
+
+
+
+
+
+#line 838 "/usr/include/unistd.h"
+extern ssize_t readlink (const char *__restrict __path,
+ char *__restrict __buf, size_t __len)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)))
+ __attribute__ ((__access__ (__write_only__, 2, 3)));
+
+
+
+
+
+
+#line 847 "/usr/include/unistd.h"
+extern int symlinkat (const char *__from, int __tofd,
+ const char *__to) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 3))) ;
+
+
+
+#line 851 "/usr/include/unistd.h"
+extern ssize_t readlinkat (int __fd, const char *__restrict __path,
+ char *__restrict __buf, size_t __len)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3)))
+ __attribute__ ((__access__ (__write_only__, 3, 4)));
+
+
+
+
+#line 858 "/usr/include/unistd.h"
+extern int unlink (const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+#line 862 "/usr/include/unistd.h"
+extern int unlinkat (int __fd, const char *__name, int __flag)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+
+
+#line 867 "/usr/include/unistd.h"
+extern int rmdir (const char *__path) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+#line 871 "/usr/include/unistd.h"
+extern __pid_t tcgetpgrp (int __fd) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 874 "/usr/include/unistd.h"
+extern int tcsetpgrp (int __fd, __pid_t __pgrp_id) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+#line 881 "/usr/include/unistd.h"
+extern char *getlogin (void);
+
+
+
+
+
+
+
+
+#line 889 "/usr/include/unistd.h"
+extern int getlogin_r (char *__name, size_t __name_len) __attribute__ ((__nonnull__ (1)))
+ __attribute__ ((__access__ (__write_only__, 1, 2)));
+
+
+
+
+
+#line 895 "/usr/include/unistd.h"
+extern int setlogin (const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+
+#line 903 "/usr/include/unistd.h"
+
+
+
+
+
+
+
+
+extern char *optarg;
+
+#line 37 "/usr/include/x86_64-linux-gnu/bits/getopt_core.h"
+extern int optind;
+
+
+
+
+
+#line 55 "/usr/include/x86_64-linux-gnu/bits/getopt_core.h"
+extern int opterr;
+
+
+
+
+#line 59 "/usr/include/x86_64-linux-gnu/bits/getopt_core.h"
+extern int optopt;
+
+#line 60 "/usr/include/x86_64-linux-gnu/bits/getopt_core.h"
+extern int getopt (int ___argc, char *const *___argv, const char *__shortopts)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3)));
+
+
+
+#line 95 "/usr/include/x86_64-linux-gnu/bits/getopt_core.h"
+
+
+
+
+
+
+
+
+
+
+extern int gethostname (char *__name, size_t __len) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)))
+ __attribute__ ((__access__ (__write_only__, 1, 2)));
+
+
+
+
+
+
+
+#line 919 "/usr/include/unistd.h"
+extern int sethostname (const char *__name, size_t __len)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__access__ (__read_only__, 1, 2)));
+
+
+
+
+#line 924 "/usr/include/unistd.h"
+extern int sethostid (long int __id) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+
+#line 930 "/usr/include/unistd.h"
+extern int getdomainname (char *__name, size_t __len)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)))
+ __attribute__ ((__access__ (__write_only__, 1, 2)));
+
+#line 933 "/usr/include/unistd.h"
+extern int setdomainname (const char *__name, size_t __len)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__access__ (__read_only__, 1, 2)));
+
+
+
+
+
+#line 939 "/usr/include/unistd.h"
+extern int vhangup (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 942 "/usr/include/unistd.h"
+extern int revoke (const char *__file) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+
+
+
+
+#line 950 "/usr/include/unistd.h"
+extern int profil (unsigned short int *__sample_buffer, size_t __size,
+ size_t __offset, unsigned int __scale)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+#line 958 "/usr/include/unistd.h"
+extern int acct (const char *__name) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 962 "/usr/include/unistd.h"
+extern char *getusershell (void) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 963 "/usr/include/unistd.h"
+extern void endusershell (void) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 964 "/usr/include/unistd.h"
+extern void setusershell (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+#line 970 "/usr/include/unistd.h"
+extern int daemon (int __nochdir, int __noclose) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+
+
+#line 977 "/usr/include/unistd.h"
+extern int chroot (const char *__path) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+#line 981 "/usr/include/unistd.h"
+extern char *getpass (const char *__prompt) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+
+#line 989 "/usr/include/unistd.h"
+extern int fsync (int __fd);
+
+#line 990 "/usr/include/unistd.h"
+extern long int gethostid (void);
+
+
+
+#line 1005 "/usr/include/unistd.h"
+extern void sync (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+#line 1011 "/usr/include/unistd.h"
+extern int getpagesize (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+
+
+
+
+#line 1016 "/usr/include/unistd.h"
+extern int getdtablesize (void) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 1017 "/usr/include/unistd.h"
+extern int truncate (const char *__file, __off_t __length)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+#line 1028 "/usr/include/unistd.h"
+extern int ftruncate (int __fd, __off_t __length) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+#line 1050 "/usr/include/unistd.h"
+extern int brk (void *__addr) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+
+#line 1076 "/usr/include/unistd.h"
+extern void *sbrk (intptr_t __delta) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 1077 "/usr/include/unistd.h"
+extern long int syscall (long int __sysno, ...) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 1092 "/usr/include/unistd.h"
+extern int lockf (int __fd, int __cmd, __off_t __len) ;
+
+#line 1115 "/usr/include/unistd.h"
+extern int fdatasync (int __fildes);
+
+#line 1151 "/usr/include/unistd.h"
+extern char *crypt (const char *__key, const char *__salt)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 1161 "/usr/include/unistd.h"
+int getentropy (void *__buffer, size_t __length)
+ __attribute__ ((__access__ (__write_only__, 1, 2)));
+
+#line 1200 "/usr/include/unistd.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef __sig_atomic_t sig_atomic_t;
+
+#line 9 "/usr/include/x86_64-linux-gnu/bits/types/sig_atomic_t.h"
+
+
+
+
+union sigval
+{
+ int sival_int;
+ void *sival_ptr;
+};
+
+
+#line 30 "/usr/include/x86_64-linux-gnu/bits/types/__sigval_t.h"
+typedef union sigval __sigval_t;
+
+#line 31 "/usr/include/x86_64-linux-gnu/bits/types/__sigval_t.h"
+typedef struct
+ {
+ int si_signo;
+
+ int si_errno;
+
+ int si_code;
+
+
+
+
+
+ int __pad0;
+
+
+ union
+ {
+ int _pad[((128 / sizeof (int)) - 4)];
+
+
+ struct
+ {
+ __pid_t si_pid;
+ __uid_t si_uid;
+ } _kill;
+
+
+ struct
+ {
+ int si_tid;
+ int si_overrun;
+ __sigval_t si_sigval;
+ } _timer;
+
+
+ struct
+ {
+ __pid_t si_pid;
+ __uid_t si_uid;
+ __sigval_t si_sigval;
+ } _rt;
+
+
+ struct
+ {
+ __pid_t si_pid;
+ __uid_t si_uid;
+ int si_status;
+ __clock_t si_utime;
+ __clock_t si_stime;
+ } _sigchld;
+
+
+ struct
+ {
+ void *si_addr;
+
+ short int si_addr_lsb;
+ union
+ {
+
+ struct
+ {
+ void *_lower;
+ void *_upper;
+ } _addr_bnd;
+
+ __uint32_t _pkey;
+ } _bounds;
+ } _sigfault;
+
+
+ struct
+ {
+ long int si_band;
+ int si_fd;
+ } _sigpoll;
+
+
+
+ struct
+ {
+ void *_call_addr;
+ int _syscall;
+ unsigned int _arch;
+ } _sigsys;
+
+ } _sifields;
+ }
+#line 124 "/usr/include/x86_64-linux-gnu/bits/types/siginfo_t.h"
+siginfo_t ;
+
+#line 125 "/usr/include/x86_64-linux-gnu/bits/types/siginfo_t.h"
+enum
+{
+ SI_ASYNCNL = -60,
+ SI_DETHREAD = -7,
+
+ SI_TKILL,
+ SI_SIGIO,
+
+ SI_ASYNCIO,
+ SI_MESGQ,
+ SI_TIMER,
+
+
+
+
+
+ SI_QUEUE,
+ SI_USER,
+ SI_KERNEL = 0x80
+};
+
+
+
+
+
+#line 71 "/usr/include/x86_64-linux-gnu/bits/siginfo-consts.h"
+enum
+{
+ ILL_ILLOPC = 1,
+
+ ILL_ILLOPN,
+
+ ILL_ILLADR,
+
+ ILL_ILLTRP,
+
+ ILL_PRVOPC,
+
+ ILL_PRVREG,
+
+ ILL_COPROC,
+
+ ILL_BADSTK,
+
+ ILL_BADIADDR
+
+};
+
+
+
+#line 94 "/usr/include/x86_64-linux-gnu/bits/siginfo-consts.h"
+enum
+{
+ FPE_INTDIV = 1,
+
+ FPE_INTOVF,
+
+ FPE_FLTDIV,
+
+ FPE_FLTOVF,
+
+ FPE_FLTUND,
+
+ FPE_FLTRES,
+
+ FPE_FLTINV,
+
+ FPE_FLTSUB,
+
+ FPE_FLTUNK = 14,
+
+ FPE_CONDTRAP
+
+};
+
+
+
+#line 119 "/usr/include/x86_64-linux-gnu/bits/siginfo-consts.h"
+enum
+{
+ SEGV_MAPERR = 1,
+
+ SEGV_ACCERR,
+
+ SEGV_BNDERR,
+
+ SEGV_PKUERR,
+
+ SEGV_ACCADI,
+
+ SEGV_ADIDERR,
+
+ SEGV_ADIPERR,
+
+ SEGV_MTEAERR,
+
+ SEGV_MTESERR
+
+};
+
+
+
+#line 142 "/usr/include/x86_64-linux-gnu/bits/siginfo-consts.h"
+enum
+{
+ BUS_ADRALN = 1,
+
+ BUS_ADRERR,
+
+ BUS_OBJERR,
+
+ BUS_MCEERR_AR,
+
+ BUS_MCEERR_AO
+
+};
+
+#line 155 "/usr/include/x86_64-linux-gnu/bits/siginfo-consts.h"
+enum
+{
+ CLD_EXITED = 1,
+
+ CLD_KILLED,
+
+ CLD_DUMPED,
+
+ CLD_TRAPPED,
+
+ CLD_STOPPED,
+
+ CLD_CONTINUED
+
+};
+
+
+
+#line 193 "/usr/include/x86_64-linux-gnu/bits/siginfo-consts.h"
+enum
+{
+ POLL_IN = 1,
+
+ POLL_OUT,
+
+ POLL_MSG,
+
+ POLL_ERR,
+
+ POLL_PRI,
+
+ POLL_HUP
+
+};
+
+#line 208 "/usr/include/x86_64-linux-gnu/bits/siginfo-consts.h"
+
+
+
+typedef __sigval_t sigval_t;
+
+#line 17 "/usr/include/x86_64-linux-gnu/bits/types/sigval_t.h"
+
+
+
+
+
+
+typedef struct sigevent
+ {
+ __sigval_t sigev_value;
+ int sigev_signo;
+ int sigev_notify;
+
+ union
+ {
+ int _pad[((64 / sizeof (int)) - 4)];
+
+
+
+ __pid_t _tid;
+
+ struct
+ {
+ void (*_function) (__sigval_t);
+ pthread_attr_t *_attribute;
+ } _sigev_thread;
+ } _sigev_un;
+ }
+#line 42 "/usr/include/x86_64-linux-gnu/bits/types/sigevent_t.h"
+sigevent_t;
+
+#line 43 "/usr/include/x86_64-linux-gnu/bits/types/sigevent_t.h"
+enum
+{
+ SIGEV_SIGNAL = 0,
+
+ SIGEV_NONE,
+
+ SIGEV_THREAD,
+
+
+ SIGEV_THREAD_ID = 4
+
+
+};
+
+#line 40 "/usr/include/x86_64-linux-gnu/bits/sigevent-consts.h"
+
+
+
+
+typedef void (*__sighandler_t) (int);
+
+
+
+
+
+#line 77 "/usr/include/signal.h"
+extern __sighandler_t __sysv_signal (int __sig, __sighandler_t __handler)
+ __attribute__ ((__nothrow__ , __leaf__));
+
+#line 79 "/usr/include/signal.h"
+extern __sighandler_t signal (int __sig, __sighandler_t __handler)
+ __attribute__ ((__nothrow__ , __leaf__));
+
+#line 90 "/usr/include/signal.h"
+extern int kill (__pid_t __pid, int __sig) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+#line 119 "/usr/include/signal.h"
+extern int killpg (__pid_t __pgrp, int __sig) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 123 "/usr/include/signal.h"
+extern int raise (int __sig) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 127 "/usr/include/signal.h"
+extern __sighandler_t ssignal (int __sig, __sighandler_t __handler)
+ __attribute__ ((__nothrow__ , __leaf__));
+
+#line 129 "/usr/include/signal.h"
+extern int gsignal (int __sig) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+#line 134 "/usr/include/signal.h"
+extern void psignal (int __sig, const char *__s);
+
+
+
+#line 137 "/usr/include/signal.h"
+extern void psiginfo (const siginfo_t *__pinfo, const char *__s);
+
+#line 138 "/usr/include/signal.h"
+extern int sigblock (int __mask) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__deprecated__));
+
+
+
+#line 176 "/usr/include/signal.h"
+extern int sigsetmask (int __mask) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__deprecated__));
+
+
+
+#line 179 "/usr/include/signal.h"
+extern int siggetmask (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__deprecated__));
+
+#line 180 "/usr/include/signal.h"
+typedef __sighandler_t sig_t;
+
+
+
+
+
+
+#line 199 "/usr/include/signal.h"
+extern int sigemptyset (sigset_t *__set) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+#line 202 "/usr/include/signal.h"
+extern int sigfillset (sigset_t *__set) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+#line 205 "/usr/include/signal.h"
+extern int sigaddset (sigset_t *__set, int __signo) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+#line 208 "/usr/include/signal.h"
+extern int sigdelset (sigset_t *__set, int __signo) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+#line 211 "/usr/include/signal.h"
+extern int sigismember (const sigset_t *__set, int __signo)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 213 "/usr/include/signal.h"
+struct sigaction
+ {
+
+
+ union
+ {
+
+ __sighandler_t sa_handler;
+
+ void (*sa_sigaction) (int, siginfo_t *, void *);
+ }
+ __sigaction_handler;
+
+
+
+
+
+
+
+ __sigset_t sa_mask;
+
+
+ int sa_flags;
+
+
+ void (*sa_restorer) (void);
+ };
+
+#line 54 "/usr/include/x86_64-linux-gnu/bits/sigaction.h"
+
+
+extern int sigprocmask (int __how, const sigset_t *__restrict __set,
+ sigset_t *__restrict __oset) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+#line 240 "/usr/include/signal.h"
+extern int sigsuspend (const sigset_t *__set) __attribute__ ((__nonnull__ (1)));
+
+
+
+#line 243 "/usr/include/signal.h"
+extern int sigaction (int __sig, const struct sigaction *__restrict __act,
+ struct sigaction *__restrict __oact) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 247 "/usr/include/signal.h"
+extern int sigpending (sigset_t *__set) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+
+#line 255 "/usr/include/signal.h"
+extern int sigwait (const sigset_t *__restrict __set, int *__restrict __sig)
+ __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+
+
+
+#line 264 "/usr/include/signal.h"
+extern int sigwaitinfo (const sigset_t *__restrict __set,
+ siginfo_t *__restrict __info) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+
+#line 273 "/usr/include/signal.h"
+extern int sigtimedwait (const sigset_t *__restrict __set,
+ siginfo_t *__restrict __info,
+ const struct timespec *__restrict __timeout)
+ __attribute__ ((__nonnull__ (1)));
+
+#line 277 "/usr/include/signal.h"
+extern int sigqueue (__pid_t __pid, int __sig, const union sigval __val)
+ __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+
+#line 301 "/usr/include/signal.h"
+struct _fpx_sw_bytes
+{
+ __uint32_t magic1;
+ __uint32_t extended_size;
+ __uint64_t xstate_bv;
+ __uint32_t xstate_size;
+ __uint32_t __glibc_reserved1[7];
+};
+
+
+#line 40 "/usr/include/x86_64-linux-gnu/bits/sigcontext.h"
+struct _fpreg
+{
+ unsigned short significand[4];
+ unsigned short exponent;
+};
+
+
+#line 46 "/usr/include/x86_64-linux-gnu/bits/sigcontext.h"
+struct _fpxreg
+{
+ unsigned short significand[4];
+ unsigned short exponent;
+ unsigned short __glibc_reserved1[3];
+};
+
+
+#line 53 "/usr/include/x86_64-linux-gnu/bits/sigcontext.h"
+struct _xmmreg
+{
+ __uint32_t element[4];
+};
+
+#line 57 "/usr/include/x86_64-linux-gnu/bits/sigcontext.h"
+struct _fpstate
+{
+
+ __uint16_t cwd;
+ __uint16_t swd;
+ __uint16_t ftw;
+ __uint16_t fop;
+ __uint64_t rip;
+ __uint64_t rdp;
+ __uint32_t mxcsr;
+ __uint32_t mxcr_mask;
+ struct _fpxreg _st[8];
+ struct _xmmreg _xmm[16];
+ __uint32_t __glibc_reserved1[24];
+};
+
+
+#line 139 "/usr/include/x86_64-linux-gnu/bits/sigcontext.h"
+struct sigcontext
+{
+ __uint64_t r8;
+ __uint64_t r9;
+ __uint64_t r10;
+ __uint64_t r11;
+ __uint64_t r12;
+ __uint64_t r13;
+ __uint64_t r14;
+ __uint64_t r15;
+ __uint64_t rdi;
+ __uint64_t rsi;
+ __uint64_t rbp;
+ __uint64_t rbx;
+ __uint64_t rdx;
+ __uint64_t rax;
+ __uint64_t rcx;
+ __uint64_t rsp;
+ __uint64_t rip;
+ __uint64_t eflags;
+ unsigned short cs;
+ unsigned short gs;
+ unsigned short fs;
+ unsigned short __pad0;
+ __uint64_t err;
+ __uint64_t trapno;
+ __uint64_t oldmask;
+ __uint64_t cr2;
+ __extension__ union
+ {
+ struct _fpstate * fpstate;
+ __uint64_t __fpstate_word;
+ };
+ __uint64_t __reserved1 [8];
+};
+
+
+
+
+#line 177 "/usr/include/x86_64-linux-gnu/bits/sigcontext.h"
+struct _xsave_hdr
+{
+ __uint64_t xstate_bv;
+ __uint64_t __glibc_reserved1[2];
+ __uint64_t __glibc_reserved2[5];
+};
+
+
+#line 184 "/usr/include/x86_64-linux-gnu/bits/sigcontext.h"
+struct _ymmh_state
+{
+ __uint32_t ymmh_space[64];
+};
+
+
+#line 189 "/usr/include/x86_64-linux-gnu/bits/sigcontext.h"
+struct _xstate
+{
+ struct _fpstate fpstate;
+ struct _xsave_hdr xstate_hdr;
+ struct _ymmh_state ymmh;
+};
+
+#line 195 "/usr/include/x86_64-linux-gnu/bits/sigcontext.h"
+
+
+extern int sigreturn (struct sigcontext *__scp) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+#line 311 "/usr/include/signal.h"
+
+
+
+typedef struct
+ {
+ void *ss_sp;
+ int ss_flags;
+ size_t ss_size;
+ }
+#line 31 "/usr/include/x86_64-linux-gnu/bits/types/stack_t.h"
+stack_t;
+
+#line 32 "/usr/include/x86_64-linux-gnu/bits/types/stack_t.h"
+
+
+__extension__ typedef long long int greg_t;
+
+#line 38 "/usr/include/x86_64-linux-gnu/sys/ucontext.h"
+typedef greg_t gregset_t[23];
+
+#line 47 "/usr/include/x86_64-linux-gnu/sys/ucontext.h"
+struct _libc_fpxreg
+{
+ unsigned short int significand[4];
+ unsigned short int exponent;
+ unsigned short int __glibc_reserved1[3];
+};
+
+
+#line 108 "/usr/include/x86_64-linux-gnu/sys/ucontext.h"
+struct _libc_xmmreg
+{
+ __uint32_t element[4];
+};
+
+
+#line 113 "/usr/include/x86_64-linux-gnu/sys/ucontext.h"
+struct _libc_fpstate
+{
+
+ __uint16_t cwd;
+ __uint16_t swd;
+ __uint16_t ftw;
+ __uint16_t fop;
+ __uint64_t rip;
+ __uint64_t rdp;
+ __uint32_t mxcsr;
+ __uint32_t mxcr_mask;
+ struct _libc_fpxreg _st[8];
+ struct _libc_xmmreg _xmm[16];
+ __uint32_t __glibc_reserved1[24];
+};
+
+
+
+#line 130 "/usr/include/x86_64-linux-gnu/sys/ucontext.h"
+typedef struct _libc_fpstate *fpregset_t;
+
+
+
+#line 133 "/usr/include/x86_64-linux-gnu/sys/ucontext.h"
+typedef struct
+ {
+ gregset_t gregs;
+
+ fpregset_t fpregs;
+ __extension__ unsigned long long __reserved1 [8];
+}
+#line 139 "/usr/include/x86_64-linux-gnu/sys/ucontext.h"
+mcontext_t;
+
+
+
+#line 142 "/usr/include/x86_64-linux-gnu/sys/ucontext.h"
+typedef struct ucontext_t
+ {
+ unsigned long int uc_flags;
+ struct ucontext_t *uc_link;
+ stack_t uc_stack;
+ mcontext_t uc_mcontext;
+ sigset_t uc_sigmask;
+ struct _libc_fpstate __fpregs_mem;
+ __extension__ unsigned long long int __ssp[4];
+ }
+#line 151 "/usr/include/x86_64-linux-gnu/sys/ucontext.h"
+ucontext_t;
+
+#line 152 "/usr/include/x86_64-linux-gnu/sys/ucontext.h"
+
+
+
+
+
+
+
+extern int siginterrupt (int __sig, int __interrupt) __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__deprecated__ ("Use sigaction with SA_RESTART instead")));
+
+
+#line 327 "/usr/include/signal.h"
+enum
+{
+ SS_ONSTACK = 1,
+
+ SS_DISABLE
+
+};
+
+#line 34 "/usr/include/x86_64-linux-gnu/bits/ss_flags.h"
+
+
+
+extern int sigaltstack (const stack_t *__restrict __ss,
+ stack_t *__restrict __oss) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+#line 339 "/usr/include/signal.h"
+struct sigstack
+ {
+ void *ss_sp;
+ int ss_onstack;
+ };
+
+#line 28 "/usr/include/x86_64-linux-gnu/bits/types/struct_sigstack.h"
+
+
+
+
+
+
+
+extern int sigstack (struct sigstack *__ss, struct sigstack *__oss)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__deprecated__));
+
+#line 349 "/usr/include/signal.h"
+extern int pthread_sigmask (int __how,
+ const __sigset_t *__restrict __newmask,
+ __sigset_t *__restrict __oldmask)__attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 36 "/usr/include/x86_64-linux-gnu/bits/sigthread.h"
+extern int pthread_kill (pthread_t __threadid, int __signo) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 37 "/usr/include/x86_64-linux-gnu/bits/sigthread.h"
+
+
+
+
+
+
+extern int __libc_current_sigrtmin (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+#line 385 "/usr/include/signal.h"
+extern int __libc_current_sigrtmax (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+#line 391 "/usr/include/signal.h"
+
+
+
+
+
+
+typedef enum
+{
+ P_ALL,
+ P_PID,
+ P_PGID,
+ P_PIDFD,
+
+}
+#line 12 "/usr/include/x86_64-linux-gnu/bits/types/idtype_t.h"
+idtype_t;
+
+#line 13 "/usr/include/x86_64-linux-gnu/bits/types/idtype_t.h"
+extern __pid_t wait (int *__stat_loc);
+
+#line 84 "/usr/include/x86_64-linux-gnu/sys/wait.h"
+extern __pid_t waitpid (__pid_t __pid, int *__stat_loc, int __options);
+
+#line 107 "/usr/include/x86_64-linux-gnu/sys/wait.h"
+extern int waitid (idtype_t __idtype, __id_t __id, siginfo_t *__infop,
+ int __options);
+
+
+
+
+
+
+
+#line 135 "/usr/include/x86_64-linux-gnu/sys/wait.h"
+struct rusage;
+
+
+
+
+
+
+
+
+#line 143 "/usr/include/x86_64-linux-gnu/sys/wait.h"
+extern __pid_t wait3 (int *__stat_loc, int __options,
+ struct rusage * __usage) __attribute__ ((__nothrow__));
+
+#line 145 "/usr/include/x86_64-linux-gnu/sys/wait.h"
+extern __pid_t wait4 (__pid_t __pid, int *__stat_loc, int __options,
+ struct rusage *__usage) __attribute__ ((__nothrow__));
+
+#line 161 "/usr/include/x86_64-linux-gnu/sys/wait.h"
+
+
+
+
+
+
+
+
+struct flock
+ {
+ short int l_type;
+ short int l_whence;
+
+ __off_t l_start;
+ __off_t l_len;
+
+
+
+
+ __pid_t l_pid;
+ };
+
+#line 48 "/usr/include/x86_64-linux-gnu/bits/fcntl.h"
+
+
+struct stat
+ {
+
+
+
+ __dev_t st_dev;
+
+
+
+
+ __ino_t st_ino;
+
+
+
+
+
+
+
+ __nlink_t st_nlink;
+ __mode_t st_mode;
+
+ __uid_t st_uid;
+ __gid_t st_gid;
+
+ int __pad0;
+
+ __dev_t st_rdev;
+
+
+
+
+ __off_t st_size;
+
+
+
+ __blksize_t st_blksize;
+
+ __blkcnt_t st_blocks;
+ struct timespec st_atim;
+ struct timespec st_mtim;
+ struct timespec st_ctim;
+ __syscall_slong_t __glibc_reserved[3];
+ };
+
+#line 100 "/usr/include/x86_64-linux-gnu/bits/struct_stat.h"
+extern int fcntl (int __fd, int __cmd, ...);
+
+#line 150 "/usr/include/fcntl.h"
+extern int open (const char *__file, int __oflag, ...) __attribute__ ((__nonnull__ (1)));
+
+#line 182 "/usr/include/fcntl.h"
+extern int openat (int __fd, const char *__file, int __oflag, ...)
+ __attribute__ ((__nonnull__ (2)));
+
+#line 207 "/usr/include/fcntl.h"
+extern int creat (const char *__file, mode_t __mode) __attribute__ ((__nonnull__ (1)));
+
+#line 228 "/usr/include/fcntl.h"
+extern int posix_fadvise (int __fd, off_t __offset, off_t __len,
+ int __advise) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 275 "/usr/include/fcntl.h"
+extern int posix_fallocate (int __fd, off_t __offset, off_t __len);
+
+#line 296 "/usr/include/fcntl.h"
+
+
+
+extern int stat (const char *__restrict __file,
+ struct stat *__restrict __buf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+#line 210 "/usr/include/x86_64-linux-gnu/sys/stat.h"
+extern int fstat (int __fd, struct stat *__buf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+#line 211 "/usr/include/x86_64-linux-gnu/sys/stat.h"
+extern int fstatat (int __fd, const char *__restrict __file,
+ struct stat *__restrict __buf, int __flag)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3)));
+
+#line 267 "/usr/include/x86_64-linux-gnu/sys/stat.h"
+extern int lstat (const char *__restrict __file,
+ struct stat *__restrict __buf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 315 "/usr/include/x86_64-linux-gnu/sys/stat.h"
+extern int chmod (const char *__file, __mode_t __mode)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+#line 359 "/usr/include/x86_64-linux-gnu/sys/stat.h"
+extern int lchmod (const char *__file, __mode_t __mode)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+#line 365 "/usr/include/x86_64-linux-gnu/sys/stat.h"
+extern int fchmod (int __fd, __mode_t __mode) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+#line 371 "/usr/include/x86_64-linux-gnu/sys/stat.h"
+extern int fchmodat (int __fd, const char *__file, __mode_t __mode,
+ int __flag)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))) ;
+
+
+
+
+
+
+
+#line 380 "/usr/include/x86_64-linux-gnu/sys/stat.h"
+extern __mode_t umask (__mode_t __mask) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 381 "/usr/include/x86_64-linux-gnu/sys/stat.h"
+extern int mkdir (const char *__path, __mode_t __mode)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+#line 396 "/usr/include/x86_64-linux-gnu/sys/stat.h"
+extern int mkdirat (int __fd, const char *__path, __mode_t __mode)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+
+
+
+
+
+#line 404 "/usr/include/x86_64-linux-gnu/sys/stat.h"
+extern int mknod (const char *__path, __mode_t __mode, __dev_t __dev)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+#line 411 "/usr/include/x86_64-linux-gnu/sys/stat.h"
+extern int mknodat (int __fd, const char *__path, __mode_t __mode,
+ __dev_t __dev) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+
+
+
+
+#line 418 "/usr/include/x86_64-linux-gnu/sys/stat.h"
+extern int mkfifo (const char *__path, __mode_t __mode)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+#line 425 "/usr/include/x86_64-linux-gnu/sys/stat.h"
+extern int mkfifoat (int __fd, const char *__path, __mode_t __mode)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+
+
+
+
+
+#line 433 "/usr/include/x86_64-linux-gnu/sys/stat.h"
+extern int utimensat (int __fd, const char *__path,
+ const struct timespec __times[2],
+ int __flags)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+#line 437 "/usr/include/x86_64-linux-gnu/sys/stat.h"
+extern int futimens (int __fd, const struct timespec __times[2]) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 453 "/usr/include/x86_64-linux-gnu/sys/stat.h"
+
+
+
+
+
+
+
+
+
+extern ssize_t sendfile (int __out_fd, int __in_fd, off_t *__offset,
+ size_t __count) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 35 "/usr/include/x86_64-linux-gnu/sys/sendfile.h"
+
+
+
+static int str_ends_with(char *str, char *suffix) {
+ size_t str_len = strlen(str);
+ size_t suf_len = strlen(suffix);
+ if (str_len < suf_len) return 0;
+ return !strcmp(str + (str_len - suf_len), suffix);
+}
+
+
+#line 16 "fakeobj.c"
+void print_argv(char **argv) {
+ printf("ARGV: ");
+ for (char **s = argv; *s; s++) {
+ printf("%s ", *s);
+ }
+ printf("\n");
+}
+
+
+#line 24 "fakeobj.c"
+void preproc(char *src, char *dst) {
+ char **new_argv = calloc(ARGC + 16, sizeof(new_argv[0]));
+ int new_argc = 0;
+
+ new_argv[new_argc++] = ARGV[0];
+
+ new_argv[new_argc++] = "-E";
+
+ new_argv[new_argc++] = "-I./";
+
+ new_argv[new_argc++] = "-o";
+ new_argv[new_argc++] = dst;
+ for (int i = 1; i < ARGC; i++) {
+ if (str_ends_with(ARGV[i], ".c")) continue;
+ if (str_ends_with(ARGV[i], ".a")) continue;
+ if (str_ends_with(ARGV[i], ".o")) continue;
+ if (!strcmp(ARGV[i], "--gamma-to-c")) continue;
+ if (!strcmp(ARGV[i], "-c")) continue;
+ if (!strcmp(ARGV[i], "-o")) { i++; continue; }
+ new_argv[new_argc++] = ARGV[i];
+ }
+ new_argv[new_argc++] = src;
+
+ int pid = fork();
+ if (!pid) execvp(new_argv[0], new_argv);
+
+ ((void) sizeof ((
+ pid
+ ) ? 1 : 0), __extension__ ({ if (
+ pid
+ ) ; else __assert_fail (
+ "pid"
+ , "fakeobj.c", 49, __extension__ __PRETTY_FUNCTION__); }))
+ ;
+ waitpid(pid, 0, 0);
+}
+
+
+#line 53 "fakeobj.c"
+void write_fakeobj(char *src, char *dst, int i) {
+
+ char **new_argv = calloc(8 + ARGC, sizeof(new_argv[0]));
+ uint32_t new_argc = 0;
+ for (int j = 0; j < ARGC; j++) {
+ if (str_ends_with(ARGV[j], ".c")) continue;
+ if (str_ends_with(ARGV[j], ".o")) continue;
+ if (str_ends_with(ARGV[j], ".a")) continue;
+ if (!strcmp(ARGV[j], "--gamma-to-c")) continue;
+ if (!strcmp(ARGV[j], "-c")) continue;
+ if (!strcmp(ARGV[j], "-o")) { j++; continue; }
+ new_argv[new_argc++] = ARGV[j];
+ }
+
+ char *preproc_dst = calloc(256, sizeof(char));
+ sprintf(preproc_dst, "%s/%d.preproc.c", TMPDIR, i);
+ preproc(src, preproc_dst);
+
+ struct chunked_file *file = chunk(preproc_dst);
+
+ for (struct chunk *chunk = file->chunks; chunk; chunk = chunk->next)
+ if (chunk->calls)
+ goto fake_obj;
+
+real_obj:
+ if (GAMMA_TO_C) goto fake_obj;
+
+ new_argv[new_argc++] = "-c";
+ new_argv[new_argc++] = src;
+ new_argv[new_argc++] = "-o";
+ new_argv[new_argc++] = dst;
+
+ int pid = fork();
+ if (!pid) execvp(new_argv[0], new_argv);
+ waitpid(pid, 0, 0);
+ return;
+
+fake_obj:
+ int fd = open(dst,
+ 01
+ |
+ 0100
+ |
+ 01000
+ ,
+ (0400|0200|0100)
+ );
+
+ ((void) sizeof ((
+ fd >= 0
+ ) ? 1 : 0), __extension__ ({ if (
+ fd >= 0
+ ) ; else __assert_fail (
+ "fd >= 0"
+ , "fakeobj.c", 92, __extension__ __PRETTY_FUNCTION__); }))
+ ;
+ uint32_t start_word = 0x7F474D41;
+
+ ((void) sizeof ((
+ -1 != write(fd, &start_word, sizeof(start_word))
+ ) ? 1 : 0), __extension__ ({ if (
+ -1 != write(fd, &start_word, sizeof(start_word))
+ ) ; else __assert_fail (
+ "-1 != write(fd, &start_word, sizeof(start_word))"
+ , "fakeobj.c", 94, __extension__ __PRETTY_FUNCTION__); }))
+ ;
+
+ ((void) sizeof ((
+ -1 != write(fd, &new_argc, sizeof(new_argc))
+ ) ? 1 : 0), __extension__ ({ if (
+ -1 != write(fd, &new_argc, sizeof(new_argc))
+ ) ; else __assert_fail (
+ "-1 != write(fd, &new_argc, sizeof(new_argc))"
+ , "fakeobj.c", 95, __extension__ __PRETTY_FUNCTION__); }))
+ ;
+ for (uint32_t j = 0; j < new_argc; j++) {
+ uint32_t len = strlen(new_argv[j]);
+
+ ((void) sizeof ((
+ -1 != write(fd, &len, sizeof(len))
+ ) ? 1 : 0), __extension__ ({ if (
+ -1 != write(fd, &len, sizeof(len))
+ ) ; else __assert_fail (
+ "-1 != write(fd, &len, sizeof(len))"
+ , "fakeobj.c", 98, __extension__ __PRETTY_FUNCTION__); }))
+ ;
+
+ ((void) sizeof ((
+ -1 != write(fd, new_argv[j], len * sizeof(new_argv[j][0]))
+ ) ? 1 : 0), __extension__ ({ if (
+ -1 != write(fd, new_argv[j], len * sizeof(new_argv[j][0]))
+ ) ; else __assert_fail (
+ "-1 != write(fd, new_argv[j], len * sizeof(new_argv[j][0]))"
+ , "fakeobj.c", 99, __extension__ __PRETTY_FUNCTION__); }))
+ ;
+ }
+ int in_fd = open(preproc_dst,
+ 00
+ );
+
+ ((void) sizeof ((
+ in_fd >= 0
+ ) ? 1 : 0), __extension__ ({ if (
+ in_fd >= 0
+ ) ; else __assert_fail (
+ "in_fd >= 0"
+ , "fakeobj.c", 102, __extension__ __PRETTY_FUNCTION__); }))
+ ;
+ struct stat statbuf; fstat(in_fd, &statbuf);
+
+ char *data = malloc(statbuf.st_size);
+
+ ((void) sizeof ((
+ statbuf.st_size == read(in_fd, data, statbuf.st_size)
+ ) ? 1 : 0), __extension__ ({ if (
+ statbuf.st_size == read(in_fd, data, statbuf.st_size)
+ ) ; else __assert_fail (
+ "statbuf.st_size == read(in_fd, data, statbuf.st_size)"
+ , "fakeobj.c", 106, __extension__ __PRETTY_FUNCTION__); }))
+ ;
+
+ ((void) sizeof ((
+ statbuf.st_size == write(fd, data, statbuf.st_size)
+ ) ? 1 : 0), __extension__ ({ if (
+ statbuf.st_size == write(fd, data, statbuf.st_size)
+ ) ; else __assert_fail (
+ "statbuf.st_size == write(fd, data, statbuf.st_size)"
+ , "fakeobj.c", 107, __extension__ __PRETTY_FUNCTION__); }))
+ ;
+ free(data);
+ close(in_fd);
+ close(fd);
+ return;
+}
+
+
+#line 114 "fakeobj.c"
+char **read_fakeobj(char *path, char *c_dst) {
+ int fd = open(path,
+ 00
+ );
+
+ ((void) sizeof ((
+ fd >= 0
+ ) ? 1 : 0), __extension__ ({ if (
+ fd >= 0
+ ) ; else __assert_fail (
+ "fd >= 0"
+ , "fakeobj.c", 116, __extension__ __PRETTY_FUNCTION__); }))
+ ;
+ uint32_t start_word = 0;
+
+ ((void) sizeof ((
+ sizeof(uint32_t) == read(fd, &start_word, sizeof(uint32_t))
+ ) ? 1 : 0), __extension__ ({ if (
+ sizeof(uint32_t) == read(fd, &start_word, sizeof(uint32_t))
+ ) ; else __assert_fail (
+ "sizeof(uint32_t) == read(fd, &start_word, sizeof(uint32_t))"
+ , "fakeobj.c", 118, __extension__ __PRETTY_FUNCTION__); }))
+ ;
+
+
+ if (start_word == 0x464C457F) {
+ close(fd);
+ return 0;
+ }
+
+
+ if (start_word != 0x7F474D41) {
+ printf("Couldn't read object file '%s'\n", path);
+ printf("Got start word: %u\n", start_word);
+ }
+
+ ((void) sizeof ((
+ start_word == 0x7F474D41
+ ) ? 1 : 0), __extension__ ({ if (
+ start_word == 0x7F474D41
+ ) ; else __assert_fail (
+ "start_word == 0x7F474D41"
+ , "fakeobj.c", 131, __extension__ __PRETTY_FUNCTION__); }))
+ ;
+
+ uint32_t n_args = 0;
+
+ ((void) sizeof ((
+ sizeof(uint32_t) == read(fd, &n_args, sizeof(uint32_t))
+ ) ? 1 : 0), __extension__ ({ if (
+ sizeof(uint32_t) == read(fd, &n_args, sizeof(uint32_t))
+ ) ; else __assert_fail (
+ "sizeof(uint32_t) == read(fd, &n_args, sizeof(uint32_t))"
+ , "fakeobj.c", 134, __extension__ __PRETTY_FUNCTION__); }))
+ ;
+ char **argv = calloc(n_args + 8, sizeof(argv[0]));
+ for (size_t i = 0; i < n_args; i++) {
+ uint32_t len = 0;
+
+ ((void) sizeof ((
+ sizeof(uint32_t) == read(fd, &len, sizeof(uint32_t))
+ ) ? 1 : 0), __extension__ ({ if (
+ sizeof(uint32_t) == read(fd, &len, sizeof(uint32_t))
+ ) ; else __assert_fail (
+ "sizeof(uint32_t) == read(fd, &len, sizeof(uint32_t))"
+ , "fakeobj.c", 138, __extension__ __PRETTY_FUNCTION__); }))
+ ;
+ argv[i] = calloc(len + 1, sizeof(char));
+
+ ((void) sizeof ((
+ len == read(fd, argv[i], len)
+ ) ? 1 : 0), __extension__ ({ if (
+ len == read(fd, argv[i], len)
+ ) ; else __assert_fail (
+ "len == read(fd, argv[i], len)"
+ , "fakeobj.c", 140, __extension__ __PRETTY_FUNCTION__); }))
+ ;
+ }
+
+ int out_fd = open(c_dst,
+ 01
+ |
+ 0100
+ |
+ 01000
+ ,
+ (0400|0200|0100)
+ );
+
+ ((void) sizeof ((
+ out_fd >= 0
+ ) ? 1 : 0), __extension__ ({ if (
+ out_fd >= 0
+ ) ; else __assert_fail (
+ "out_fd >= 0"
+ , "fakeobj.c", 144, __extension__ __PRETTY_FUNCTION__); }))
+ ;
+ gamma_sendfile(out_fd, fd);
+ close(out_fd);
+ close(fd);
+
+ return argv;
+}
+
+#line 151 "fakeobj.c"
diff --git a/c_version/13.c b/c_version/13.c
new file mode 100755
index 0000000..85a5e6d
--- /dev/null
+++ b/c_version/13.c
@@ -0,0 +1,3522 @@
+
+#line 1 "/tmp/gamma.XksNqZ/13.unfake.c"
+
+
+
+
+
+
+extern void __assert_fail (const char *__assertion, const char *__file,
+ unsigned int __line, const char *__function)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+#line 74 "/usr/include/assert.h"
+extern void __assert_perror_fail (int __errnum, const char *__file,
+ unsigned int __line, const char *__function)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+
+#line 81 "/usr/include/assert.h"
+extern void __assert (const char *__assertion, const char *__file, int __line)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+#line 86 "/usr/include/assert.h"
+typedef long int ptrdiff_t;
+
+#line 146 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h"
+typedef long unsigned int size_t;
+
+#line 215 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h"
+typedef int wchar_t;
+
+#line 330 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h"
+typedef struct {
+ long long __max_align_ll __attribute__((__aligned__(__alignof__(long long))));
+ long double __max_align_ld __attribute__((__aligned__(__alignof__(long double))));
+}
+#line 435 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h"
+max_align_t;
+
+#line 436 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h"
+
+
+typedef unsigned char __u_char;
+
+#line 32 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned short int __u_short;
+
+#line 33 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __u_int;
+
+#line 34 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __u_long;
+
+
+
+#line 37 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef signed char __int8_t;
+
+#line 38 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned char __uint8_t;
+
+#line 39 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef signed short int __int16_t;
+
+#line 40 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned short int __uint16_t;
+
+#line 41 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef signed int __int32_t;
+
+#line 42 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __uint32_t;
+
+
+#line 44 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef signed long int __int64_t;
+
+#line 45 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __uint64_t;
+
+
+
+
+
+
+
+#line 52 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __int8_t __int_least8_t;
+
+#line 53 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __uint8_t __uint_least8_t;
+
+#line 54 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __int16_t __int_least16_t;
+
+#line 55 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __uint16_t __uint_least16_t;
+
+#line 56 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __int32_t __int_least32_t;
+
+#line 57 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __uint32_t __uint_least32_t;
+
+#line 58 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __int64_t __int_least64_t;
+
+#line 59 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __uint64_t __uint_least64_t;
+
+
+
+
+#line 63 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __quad_t;
+
+#line 64 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __u_quad_t;
+
+
+
+
+
+
+
+
+#line 72 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __intmax_t;
+
+#line 73 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __uintmax_t;
+
+#line 74 "/usr/include/x86_64-linux-gnu/bits/types.h"
+
+
+typedef unsigned long int __dev_t;
+
+#line 146 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __uid_t;
+
+#line 147 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __gid_t;
+
+#line 148 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __ino_t;
+
+#line 149 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __ino64_t;
+
+#line 150 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __mode_t;
+
+#line 151 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __nlink_t;
+
+#line 152 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __off_t;
+
+#line 153 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __off64_t;
+
+#line 154 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef int __pid_t;
+
+#line 155 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef struct { int __val[2]; }
+#line 155 "/usr/include/x86_64-linux-gnu/bits/types.h"
+__fsid_t;
+
+#line 156 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __clock_t;
+
+#line 157 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __rlim_t;
+
+#line 158 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __rlim64_t;
+
+#line 159 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __id_t;
+
+#line 160 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __time_t;
+
+#line 161 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __useconds_t;
+
+#line 162 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __suseconds_t;
+
+#line 163 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __suseconds64_t;
+
+
+#line 165 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef int __daddr_t;
+
+#line 166 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef int __key_t;
+
+
+
+#line 169 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef int __clockid_t;
+
+
+
+#line 172 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef void * __timer_t;
+
+
+
+#line 175 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __blksize_t;
+
+
+
+
+
+#line 180 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __blkcnt_t;
+
+#line 181 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __blkcnt64_t;
+
+
+
+#line 184 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __fsblkcnt_t;
+
+#line 185 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __fsblkcnt64_t;
+
+
+
+#line 188 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __fsfilcnt_t;
+
+#line 189 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __fsfilcnt64_t;
+
+
+
+#line 192 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __fsword_t;
+
+
+#line 194 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __ssize_t;
+
+
+
+#line 197 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __syscall_slong_t;
+
+
+#line 199 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __syscall_ulong_t;
+
+
+
+
+#line 203 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __off64_t __loff_t;
+
+#line 204 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef char *__caddr_t;
+
+
+
+#line 207 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __intptr_t;
+
+
+
+#line 210 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __socklen_t;
+
+
+
+
+
+#line 215 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef int __sig_atomic_t;
+
+#line 216 "/usr/include/x86_64-linux-gnu/bits/types.h"
+
+
+
+
+typedef __int8_t int8_t;
+
+#line 25 "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h"
+typedef __int16_t int16_t;
+
+#line 26 "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h"
+typedef __int32_t int32_t;
+
+#line 27 "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h"
+typedef __int64_t int64_t;
+
+#line 28 "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h"
+
+
+typedef __uint8_t uint8_t;
+
+#line 25 "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h"
+typedef __uint16_t uint16_t;
+
+#line 26 "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h"
+typedef __uint32_t uint32_t;
+
+#line 27 "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h"
+typedef __uint64_t uint64_t;
+
+#line 28 "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h"
+
+
+
+
+
+typedef __int_least8_t int_least8_t;
+
+#line 44 "/usr/include/stdint.h"
+typedef __int_least16_t int_least16_t;
+
+#line 45 "/usr/include/stdint.h"
+typedef __int_least32_t int_least32_t;
+
+#line 46 "/usr/include/stdint.h"
+typedef __int_least64_t int_least64_t;
+
+
+
+#line 49 "/usr/include/stdint.h"
+typedef __uint_least8_t uint_least8_t;
+
+#line 50 "/usr/include/stdint.h"
+typedef __uint_least16_t uint_least16_t;
+
+#line 51 "/usr/include/stdint.h"
+typedef __uint_least32_t uint_least32_t;
+
+#line 52 "/usr/include/stdint.h"
+typedef __uint_least64_t uint_least64_t;
+
+
+
+
+
+
+#line 58 "/usr/include/stdint.h"
+typedef signed char int_fast8_t;
+
+
+#line 60 "/usr/include/stdint.h"
+typedef long int int_fast16_t;
+
+#line 61 "/usr/include/stdint.h"
+typedef long int int_fast32_t;
+
+#line 62 "/usr/include/stdint.h"
+typedef long int int_fast64_t;
+
+#line 63 "/usr/include/stdint.h"
+typedef unsigned char uint_fast8_t;
+
+
+#line 73 "/usr/include/stdint.h"
+typedef unsigned long int uint_fast16_t;
+
+#line 74 "/usr/include/stdint.h"
+typedef unsigned long int uint_fast32_t;
+
+#line 75 "/usr/include/stdint.h"
+typedef unsigned long int uint_fast64_t;
+
+#line 76 "/usr/include/stdint.h"
+typedef long int intptr_t;
+
+
+
+#line 90 "/usr/include/stdint.h"
+typedef unsigned long int uintptr_t;
+
+#line 91 "/usr/include/stdint.h"
+typedef __intmax_t intmax_t;
+
+#line 102 "/usr/include/stdint.h"
+typedef __uintmax_t uintmax_t;
+
+#line 103 "/usr/include/stdint.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct
+ {
+ int quot;
+ int rem;
+ }
+#line 63 "/usr/include/stdlib.h"
+div_t;
+
+
+
+
+#line 67 "/usr/include/stdlib.h"
+typedef struct
+ {
+ long int quot;
+ long int rem;
+ }
+#line 71 "/usr/include/stdlib.h"
+ldiv_t;
+
+
+
+
+
+
+#line 77 "/usr/include/stdlib.h"
+__extension__ typedef struct
+ {
+ long long int quot;
+ long long int rem;
+ }
+#line 81 "/usr/include/stdlib.h"
+lldiv_t;
+
+#line 82 "/usr/include/stdlib.h"
+extern size_t __ctype_get_mb_cur_max (void) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+#line 102 "/usr/include/stdlib.h"
+extern double atof (const char *__nptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+#line 105 "/usr/include/stdlib.h"
+extern int atoi (const char *__nptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+#line 108 "/usr/include/stdlib.h"
+extern long int atol (const char *__nptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+#line 113 "/usr/include/stdlib.h"
+__extension__ extern long long int atoll (const char *__nptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+#line 118 "/usr/include/stdlib.h"
+extern double strtod (const char *__restrict __nptr,
+ char **__restrict __endptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+#line 124 "/usr/include/stdlib.h"
+extern float strtof (const char *__restrict __nptr,
+ char **__restrict __endptr) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+#line 127 "/usr/include/stdlib.h"
+extern long double strtold (const char *__restrict __nptr,
+ char **__restrict __endptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 130 "/usr/include/stdlib.h"
+extern long int strtol (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+#line 181 "/usr/include/stdlib.h"
+extern unsigned long int strtoul (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+#line 187 "/usr/include/stdlib.h"
+__extension__
+extern long long int strtoq (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+#line 192 "/usr/include/stdlib.h"
+__extension__
+extern unsigned long long int strtouq (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+#line 200 "/usr/include/stdlib.h"
+__extension__
+extern long long int strtoll (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+#line 205 "/usr/include/stdlib.h"
+__extension__
+extern unsigned long long int strtoull (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 209 "/usr/include/stdlib.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+__attribute__ ((__nothrow__ , __leaf__)) atoi (const char *__nptr)
+{
+ return (int) strtol (__nptr, (char **) ((void *)0), 10);
+}
+
+#line 366 "/usr/include/stdlib.h"
+extern __inline __attribute__ ((__gnu_inline__)) long int
+__attribute__ ((__nothrow__ , __leaf__)) atol (const char *__nptr)
+{
+ return strtol (__nptr, (char **) ((void *)0), 10);
+}
+
+
+
+#line 373 "/usr/include/stdlib.h"
+__extension__ extern __inline __attribute__ ((__gnu_inline__)) long long int
+__attribute__ ((__nothrow__ , __leaf__)) atoll (const char *__nptr)
+{
+ return strtoll (__nptr, (char **) ((void *)0), 10);
+}
+
+#line 378 "/usr/include/stdlib.h"
+extern char *l64a (long int __n) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+#line 389 "/usr/include/stdlib.h"
+extern long int a64l (const char *__s)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+
+#line 395 "/usr/include/stdlib.h"
+
+
+
+
+
+
+typedef __u_char u_char;
+
+#line 34 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __u_short u_short;
+
+#line 35 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __u_int u_int;
+
+#line 36 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __u_long u_long;
+
+#line 37 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __quad_t quad_t;
+
+#line 38 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __u_quad_t u_quad_t;
+
+#line 39 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __fsid_t fsid_t;
+
+
+
+#line 42 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __loff_t loff_t;
+
+
+
+
+
+#line 47 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __ino_t ino_t;
+
+#line 48 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __dev_t dev_t;
+
+
+
+
+
+#line 64 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __gid_t gid_t;
+
+
+
+
+
+#line 69 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __mode_t mode_t;
+
+
+
+
+
+#line 74 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __nlink_t nlink_t;
+
+
+
+
+
+#line 79 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __uid_t uid_t;
+
+
+
+
+
+
+#line 85 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __off_t off_t;
+
+#line 86 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __pid_t pid_t;
+
+
+
+
+
+
+#line 103 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __id_t id_t;
+
+
+
+
+
+#line 108 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __ssize_t ssize_t;
+
+
+
+
+
+
+#line 114 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __daddr_t daddr_t;
+
+#line 115 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __caddr_t caddr_t;
+
+
+
+
+
+
+#line 121 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __key_t key_t;
+
+
+
+
+
+#line 126 "/usr/include/x86_64-linux-gnu/sys/types.h"
+
+
+
+
+
+
+typedef __clock_t clock_t;
+
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/clock_t.h"
+
+
+
+
+
+
+
+typedef __clockid_t clockid_t;
+
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h"
+typedef __time_t time_t;
+
+#line 11 "/usr/include/x86_64-linux-gnu/bits/types/time_t.h"
+
+
+
+
+
+
+typedef __timer_t timer_t;
+
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/timer_t.h"
+
+
+
+typedef unsigned long int ulong;
+
+#line 149 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef unsigned short int ushort;
+
+#line 150 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef unsigned int uint;
+
+
+
+
+
+
+
+
+#line 158 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __uint8_t u_int8_t;
+
+#line 159 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __uint16_t u_int16_t;
+
+#line 160 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __uint32_t u_int32_t;
+
+#line 161 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __uint64_t u_int64_t;
+
+
+
+#line 164 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef int register_t __attribute__ ((__mode__ (__word__)));
+
+#line 165 "/usr/include/x86_64-linux-gnu/sys/types.h"
+static __inline __uint16_t
+__bswap_16 (__uint16_t __bsx)
+{
+
+ return __builtin_bswap16 (__bsx);
+
+
+
+}
+
+
+
+
+
+
+
+#line 48 "/usr/include/x86_64-linux-gnu/bits/byteswap.h"
+static __inline __uint32_t
+__bswap_32 (__uint32_t __bsx)
+{
+
+ return __builtin_bswap32 (__bsx);
+
+
+
+}
+
+#line 57 "/usr/include/x86_64-linux-gnu/bits/byteswap.h"
+__extension__ static __inline __uint64_t
+__bswap_64 (__uint64_t __bsx)
+{
+
+ return __builtin_bswap64 (__bsx);
+
+
+
+}
+
+#line 78 "/usr/include/x86_64-linux-gnu/bits/byteswap.h"
+static __inline __uint16_t
+__uint16_identity (__uint16_t __x)
+{
+ return __x;
+}
+
+
+#line 38 "/usr/include/x86_64-linux-gnu/bits/uintn-identity.h"
+static __inline __uint32_t
+__uint32_identity (__uint32_t __x)
+{
+ return __x;
+}
+
+
+#line 44 "/usr/include/x86_64-linux-gnu/bits/uintn-identity.h"
+static __inline __uint64_t
+__uint64_identity (__uint64_t __x)
+{
+ return __x;
+}
+
+#line 49 "/usr/include/x86_64-linux-gnu/bits/uintn-identity.h"
+
+
+
+
+
+
+
+
+
+
+
+typedef struct
+{
+ unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))];
+}
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h"
+__sigset_t;
+
+#line 9 "/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h"
+
+
+typedef __sigset_t sigset_t;
+
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h"
+
+
+
+
+
+
+
+
+
+
+struct timeval
+{
+
+
+
+
+ __time_t tv_sec;
+ __suseconds_t tv_usec;
+
+};
+
+#line 18 "/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h"
+
+struct timespec
+{
+
+
+
+ __time_t tv_sec;
+
+
+
+
+ __syscall_slong_t tv_nsec;
+};
+
+#line 32 "/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h"
+
+
+
+typedef __suseconds_t suseconds_t;
+
+
+
+
+
+
+#line 49 "/usr/include/x86_64-linux-gnu/sys/select.h"
+typedef long int __fd_mask;
+
+#line 50 "/usr/include/x86_64-linux-gnu/sys/select.h"
+typedef struct
+ {
+
+
+
+
+
+
+ __fd_mask __fds_bits[1024 / (8 * (int) sizeof (__fd_mask))];
+
+
+ }
+#line 70 "/usr/include/x86_64-linux-gnu/sys/select.h"
+fd_set;
+
+
+
+
+
+
+
+#line 77 "/usr/include/x86_64-linux-gnu/sys/select.h"
+typedef __fd_mask fd_mask;
+
+#line 78 "/usr/include/x86_64-linux-gnu/sys/select.h"
+
+extern int select (int __nfds, fd_set *__restrict __readfds,
+ fd_set *__restrict __writefds,
+ fd_set *__restrict __exceptfds,
+ struct timeval *__restrict __timeout);
+
+#line 106 "/usr/include/x86_64-linux-gnu/sys/select.h"
+extern int pselect (int __nfds, fd_set *__restrict __readfds,
+ fd_set *__restrict __writefds,
+ fd_set *__restrict __exceptfds,
+ const struct timespec *__restrict __timeout,
+ const __sigset_t *__restrict __sigmask);
+
+#line 132 "/usr/include/x86_64-linux-gnu/sys/select.h"
+
+
+
+
+
+
+typedef __blksize_t blksize_t;
+
+
+
+
+
+
+
+#line 192 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __blkcnt_t blkcnt_t;
+
+
+
+
+#line 196 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __fsblkcnt_t fsblkcnt_t;
+
+
+
+
+#line 200 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __fsfilcnt_t fsfilcnt_t;
+
+#line 201 "/usr/include/x86_64-linux-gnu/sys/types.h"
+
+typedef union
+{
+ __extension__ unsigned long long int __value64;
+ struct
+ {
+ unsigned int __low;
+ unsigned int __high;
+ } __value32;
+}
+#line 33 "/usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h"
+__atomic_wide_counter;
+
+#line 34 "/usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h"
+
+
+
+
+typedef struct __pthread_internal_list
+{
+ struct __pthread_internal_list *__prev;
+ struct __pthread_internal_list *__next;
+}
+#line 55 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+__pthread_list_t;
+
+
+#line 57 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+typedef struct __pthread_internal_slist
+{
+ struct __pthread_internal_slist *__next;
+}
+#line 60 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+__pthread_slist_t;
+
+#line 61 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+struct __pthread_mutex_s
+{
+ int __lock;
+ unsigned int __count;
+ int __owner;
+
+ unsigned int __nusers;
+
+
+
+ int __kind;
+
+ short __spins;
+ short __elision;
+ __pthread_list_t __list;
+};
+
+#line 54 "/usr/include/x86_64-linux-gnu/bits/struct_mutex.h"
+struct __pthread_rwlock_arch_t
+{
+ unsigned int __readers;
+ unsigned int __writers;
+ unsigned int __wrphase_futex;
+ unsigned int __writers_futex;
+ unsigned int __pad3;
+ unsigned int __pad4;
+
+ int __cur_writer;
+ int __shared;
+ signed char __rwelision;
+
+
+
+
+ unsigned char __pad1[7];
+
+
+ unsigned long int __pad2;
+
+
+ unsigned int __flags;
+};
+
+#line 56 "/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h"
+
+
+
+
+struct __pthread_cond_s
+{
+ __atomic_wide_counter __wseq;
+ __atomic_wide_counter __g1_start;
+ unsigned int __g_refs[2] ;
+ unsigned int __g_size[2];
+ unsigned int __g1_orig_size;
+ unsigned int __wrefs;
+ unsigned int __g_signals[2];
+};
+
+
+#line 105 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+typedef unsigned int __tss_t;
+
+#line 106 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+typedef unsigned long int __thrd_t;
+
+
+#line 108 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+typedef struct
+{
+ int __data ;
+}
+#line 111 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+__once_flag;
+
+#line 112 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+
+
+
+typedef unsigned long int pthread_t;
+
+
+
+
+
+#line 32 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ char __size[4];
+ int __align;
+}
+#line 36 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_mutexattr_t;
+
+
+
+
+
+#line 41 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ char __size[4];
+ int __align;
+}
+#line 45 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_condattr_t;
+
+
+
+
+#line 49 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef unsigned int pthread_key_t;
+
+
+
+
+#line 53 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef int pthread_once_t;
+
+
+
+#line 56 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+union pthread_attr_t
+{
+ char __size[56];
+ long int __align;
+};
+
+
+#line 62 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union pthread_attr_t pthread_attr_t;
+
+
+
+
+
+#line 67 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ struct __pthread_mutex_s __data;
+ char __size[40];
+ long int __align;
+}
+#line 72 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_mutex_t;
+
+
+
+#line 75 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ struct __pthread_cond_s __data;
+ char __size[48];
+ __extension__ long long int __align;
+}
+#line 80 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_cond_t;
+
+
+
+
+
+
+#line 86 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ struct __pthread_rwlock_arch_t __data;
+ char __size[56];
+ long int __align;
+}
+#line 91 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_rwlock_t;
+
+
+#line 93 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ char __size[8];
+ long int __align;
+}
+#line 97 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_rwlockattr_t;
+
+
+
+
+
+
+#line 103 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef volatile int pthread_spinlock_t;
+
+
+
+
+
+#line 108 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ char __size[32];
+ long int __align;
+}
+#line 112 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_barrier_t;
+
+
+#line 114 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ char __size[4];
+ int __align;
+}
+#line 118 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_barrierattr_t;
+
+#line 119 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+
+
+
+
+
+
+
+
+
+extern long int random (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 405 "/usr/include/stdlib.h"
+extern void srandom (unsigned int __seed) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+#line 411 "/usr/include/stdlib.h"
+extern char *initstate (unsigned int __seed, char *__statebuf,
+ size_t __statelen) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+
+
+#line 416 "/usr/include/stdlib.h"
+extern char *setstate (char *__statebuf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+
+#line 424 "/usr/include/stdlib.h"
+struct random_data
+ {
+ int32_t *fptr;
+ int32_t *rptr;
+ int32_t *state;
+ int rand_type;
+ int rand_deg;
+ int rand_sep;
+ int32_t *end_ptr;
+ };
+
+
+#line 435 "/usr/include/stdlib.h"
+extern int random_r (struct random_data *__restrict __buf,
+ int32_t *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 438 "/usr/include/stdlib.h"
+extern int srandom_r (unsigned int __seed, struct random_data *__buf)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+#line 441 "/usr/include/stdlib.h"
+extern int initstate_r (unsigned int __seed, char *__restrict __statebuf,
+ size_t __statelen,
+ struct random_data *__restrict __buf)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 4)));
+
+
+#line 446 "/usr/include/stdlib.h"
+extern int setstate_r (char *__restrict __statebuf,
+ struct random_data *__restrict __buf)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+
+#line 454 "/usr/include/stdlib.h"
+extern int rand (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+#line 456 "/usr/include/stdlib.h"
+extern void srand (unsigned int __seed) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 460 "/usr/include/stdlib.h"
+extern int rand_r (unsigned int *__seed) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+
+#line 468 "/usr/include/stdlib.h"
+extern double drand48 (void) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 469 "/usr/include/stdlib.h"
+extern double erand48 (unsigned short int __xsubi[3]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+#line 472 "/usr/include/stdlib.h"
+extern long int lrand48 (void) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 473 "/usr/include/stdlib.h"
+extern long int nrand48 (unsigned short int __xsubi[3])
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+#line 477 "/usr/include/stdlib.h"
+extern long int mrand48 (void) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 478 "/usr/include/stdlib.h"
+extern long int jrand48 (unsigned short int __xsubi[3])
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+#line 482 "/usr/include/stdlib.h"
+extern void srand48 (long int __seedval) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 483 "/usr/include/stdlib.h"
+extern unsigned short int *seed48 (unsigned short int __seed16v[3])
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 485 "/usr/include/stdlib.h"
+extern void lcong48 (unsigned short int __param[7]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+#line 491 "/usr/include/stdlib.h"
+struct drand48_data
+ {
+ unsigned short int __x[3];
+ unsigned short int __old_x[3];
+ unsigned short int __c;
+ unsigned short int __init;
+ __extension__ unsigned long long int __a;
+
+ };
+
+
+
+#line 502 "/usr/include/stdlib.h"
+extern int drand48_r (struct drand48_data *__restrict __buffer,
+ double *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 504 "/usr/include/stdlib.h"
+extern int erand48_r (unsigned short int __xsubi[3],
+ struct drand48_data *__restrict __buffer,
+ double *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 509 "/usr/include/stdlib.h"
+extern int lrand48_r (struct drand48_data *__restrict __buffer,
+ long int *__restrict __result)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 512 "/usr/include/stdlib.h"
+extern int nrand48_r (unsigned short int __xsubi[3],
+ struct drand48_data *__restrict __buffer,
+ long int *__restrict __result)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 518 "/usr/include/stdlib.h"
+extern int mrand48_r (struct drand48_data *__restrict __buffer,
+ long int *__restrict __result)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 521 "/usr/include/stdlib.h"
+extern int jrand48_r (unsigned short int __xsubi[3],
+ struct drand48_data *__restrict __buffer,
+ long int *__restrict __result)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 527 "/usr/include/stdlib.h"
+extern int srand48_r (long int __seedval, struct drand48_data *__buffer)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+#line 530 "/usr/include/stdlib.h"
+extern int seed48_r (unsigned short int __seed16v[3],
+ struct drand48_data *__buffer) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 533 "/usr/include/stdlib.h"
+extern int lcong48_r (unsigned short int __param[7],
+ struct drand48_data *__buffer)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 538 "/usr/include/stdlib.h"
+extern __uint32_t arc4random (void)
+ __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+#line 542 "/usr/include/stdlib.h"
+extern void arc4random_buf (void *__buf, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+#line 547 "/usr/include/stdlib.h"
+extern __uint32_t arc4random_uniform (__uint32_t __upper_bound)
+ __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+#line 553 "/usr/include/stdlib.h"
+extern void *malloc (size_t __size) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__))
+ __attribute__ ((__alloc_size__ (1))) ;
+
+
+#line 556 "/usr/include/stdlib.h"
+extern void *calloc (size_t __nmemb, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__alloc_size__ (1, 2))) ;
+
+
+
+
+
+
+
+#line 564 "/usr/include/stdlib.h"
+extern void *realloc (void *__ptr, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)) __attribute__ ((__alloc_size__ (2)));
+
+
+
+#line 568 "/usr/include/stdlib.h"
+extern void free (void *__ptr) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+
+#line 576 "/usr/include/stdlib.h"
+extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__))
+ __attribute__ ((__alloc_size__ (2, 3)))
+ __attribute__ ((__malloc__ (__builtin_free, 1)));
+
+
+
+#line 582 "/usr/include/stdlib.h"
+extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__ (reallocarray, 1)));
+
+
+
+
+#line 587 "/usr/include/stdlib.h"
+
+
+
+
+
+
+
+extern void *alloca (size_t __size) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+#line 39 "/usr/include/alloca.h"
+
+
+
+
+
+extern void *valloc (size_t __size) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__))
+ __attribute__ ((__alloc_size__ (1))) ;
+
+
+
+
+
+#line 599 "/usr/include/stdlib.h"
+extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+
+#line 605 "/usr/include/stdlib.h"
+extern void *aligned_alloc (size_t __alignment, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__alloc_align__ (1)))
+ __attribute__ ((__alloc_size__ (2))) ;
+
+
+
+
+#line 611 "/usr/include/stdlib.h"
+extern void abort (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+#line 615 "/usr/include/stdlib.h"
+extern int atexit (void (*__func) (void)) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+
+#line 623 "/usr/include/stdlib.h"
+extern int at_quick_exit (void (*__func) (void)) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+#line 630 "/usr/include/stdlib.h"
+extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+#line 637 "/usr/include/stdlib.h"
+extern void exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+
+
+#line 643 "/usr/include/stdlib.h"
+extern void quick_exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+
+
+#line 649 "/usr/include/stdlib.h"
+extern void _Exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+
+#line 654 "/usr/include/stdlib.h"
+extern char *getenv (const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+#line 655 "/usr/include/stdlib.h"
+extern int putenv (char *__string) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+#line 673 "/usr/include/stdlib.h"
+extern int setenv (const char *__name, const char *__value, int __replace)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+
+#line 677 "/usr/include/stdlib.h"
+extern int unsetenv (const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+#line 684 "/usr/include/stdlib.h"
+extern int clearenv (void) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 685 "/usr/include/stdlib.h"
+extern char *mktemp (char *__template) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 696 "/usr/include/stdlib.h"
+extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) ;
+
+#line 709 "/usr/include/stdlib.h"
+extern int mkstemps (char *__template, int __suffixlen) __attribute__ ((__nonnull__ (1))) ;
+
+#line 731 "/usr/include/stdlib.h"
+extern char *mkdtemp (char *__template) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+#line 752 "/usr/include/stdlib.h"
+extern int system (const char *__command) ;
+
+#line 805 "/usr/include/stdlib.h"
+extern char *realpath (const char *__restrict __name,
+ char *__restrict __resolved) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+
+
+#line 829 "/usr/include/stdlib.h"
+typedef int (*__compar_fn_t) (const void *, const void *);
+
+#line 830 "/usr/include/stdlib.h"
+extern void *bsearch (const void *__key, const void *__base,
+ size_t __nmemb, size_t __size, __compar_fn_t __compar)
+ __attribute__ ((__nonnull__ (1, 2, 5))) ;
+
+
+
+#line 846 "/usr/include/stdlib.h"
+extern __inline __attribute__ ((__gnu_inline__)) void *
+bsearch (const void *__key, const void *__base, size_t __nmemb, size_t __size,
+ __compar_fn_t __compar)
+{
+ size_t __l, __u, __idx;
+ const void *__p;
+ int __comparison;
+
+ __l = 0;
+ __u = __nmemb;
+ while (__l < __u)
+ {
+ __idx = (__l + __u) / 2;
+ __p = (const void *) (((const char *) __base) + (__idx * __size));
+ __comparison = (*__compar) (__key, __p);
+ if (__comparison < 0)
+ __u = __idx;
+ else if (__comparison > 0)
+ __l = __idx + 1;
+ else
+ {
+
+
+ return (void *) __p;
+
+
+ }
+ }
+
+ return ((void *)0);
+}
+
+#line 29 "-Wcast-qual"
+
+
+
+
+extern void qsort (void *__base, size_t __nmemb, size_t __size,
+ __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4)));
+
+#line 853 "/usr/include/stdlib.h"
+extern int abs (int __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+#line 862 "/usr/include/stdlib.h"
+extern long int labs (long int __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+
+
+#line 865 "/usr/include/stdlib.h"
+__extension__ extern long long int llabs (long long int __x)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+
+
+
+
+
+
+#line 873 "/usr/include/stdlib.h"
+extern div_t div (int __numer, int __denom)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+#line 875 "/usr/include/stdlib.h"
+extern ldiv_t ldiv (long int __numer, long int __denom)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+
+
+#line 879 "/usr/include/stdlib.h"
+__extension__ extern lldiv_t lldiv (long long int __numer,
+ long long int __denom)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+#line 882 "/usr/include/stdlib.h"
+extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt,
+ int *__restrict __sign) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ;
+
+
+
+
+
+#line 899 "/usr/include/stdlib.h"
+extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt,
+ int *__restrict __sign) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ;
+
+
+
+
+
+#line 905 "/usr/include/stdlib.h"
+extern char *gcvt (double __value, int __ndigit, char *__buf)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3))) ;
+
+
+
+
+
+#line 911 "/usr/include/stdlib.h"
+extern char *qecvt (long double __value, int __ndigit,
+ int *__restrict __decpt, int *__restrict __sign)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ;
+
+#line 914 "/usr/include/stdlib.h"
+extern char *qfcvt (long double __value, int __ndigit,
+ int *__restrict __decpt, int *__restrict __sign)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ;
+
+#line 917 "/usr/include/stdlib.h"
+extern char *qgcvt (long double __value, int __ndigit, char *__buf)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3))) ;
+
+
+
+
+
+#line 923 "/usr/include/stdlib.h"
+extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt,
+ int *__restrict __sign, char *__restrict __buf,
+ size_t __len) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
+
+#line 926 "/usr/include/stdlib.h"
+extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt,
+ int *__restrict __sign, char *__restrict __buf,
+ size_t __len) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
+
+
+#line 930 "/usr/include/stdlib.h"
+extern int qecvt_r (long double __value, int __ndigit,
+ int *__restrict __decpt, int *__restrict __sign,
+ char *__restrict __buf, size_t __len)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
+
+#line 934 "/usr/include/stdlib.h"
+extern int qfcvt_r (long double __value, int __ndigit,
+ int *__restrict __decpt, int *__restrict __sign,
+ char *__restrict __buf, size_t __len)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
+
+
+
+
+
+
+#line 943 "/usr/include/stdlib.h"
+extern int mblen (const char *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 946 "/usr/include/stdlib.h"
+extern int mbtowc (wchar_t *__restrict __pwc,
+ const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 950 "/usr/include/stdlib.h"
+extern int wctomb (char *__s, wchar_t __wchar) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 954 "/usr/include/stdlib.h"
+extern size_t mbstowcs (wchar_t *__restrict __pwcs,
+ const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__access__ (__read_only__, 2)));
+
+
+#line 958 "/usr/include/stdlib.h"
+extern size_t wcstombs (char *__restrict __s,
+ const wchar_t *__restrict __pwcs, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__access__ (__write_only__, 1, 3)))
+ __attribute__ ((__access__ (__read_only__, 2)));
+
+
+
+
+
+
+
+#line 969 "/usr/include/stdlib.h"
+extern int rpmatch (const char *__response) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+#line 970 "/usr/include/stdlib.h"
+extern int getsubopt (char **__restrict __optionp,
+ char *const *__restrict __tokens,
+ char **__restrict __valuep)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2, 3))) ;
+
+#line 984 "/usr/include/stdlib.h"
+extern int getloadavg (double __loadavg[], int __nelem)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 1028 "/usr/include/stdlib.h"
+extern __inline __attribute__ ((__gnu_inline__)) double
+__attribute__ ((__nothrow__ , __leaf__)) atof (const char *__nptr)
+{
+ return strtod (__nptr, (char **) ((void *)0));
+}
+
+#line 29 "/usr/include/x86_64-linux-gnu/bits/stdlib-float.h"
+
+
+enum
+{
+ _ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)),
+ _ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)),
+ _ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)),
+ _ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)),
+ _ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)),
+ _ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)),
+ _ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)),
+ _ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)),
+ _ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)),
+ _IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)),
+ _ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)),
+ _ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8))
+};
+
+#line 61 "/usr/include/ctype.h"
+extern const unsigned short int **__ctype_b_loc (void)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+#line 81 "/usr/include/ctype.h"
+extern const __int32_t **__ctype_tolower_loc (void)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+#line 83 "/usr/include/ctype.h"
+extern const __int32_t **__ctype_toupper_loc (void)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+#line 85 "/usr/include/ctype.h"
+extern int isalnum (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 109 "/usr/include/ctype.h"
+extern int isalpha (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 110 "/usr/include/ctype.h"
+extern int iscntrl (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 111 "/usr/include/ctype.h"
+extern int isdigit (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 112 "/usr/include/ctype.h"
+extern int islower (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 113 "/usr/include/ctype.h"
+extern int isgraph (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 114 "/usr/include/ctype.h"
+extern int isprint (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 115 "/usr/include/ctype.h"
+extern int ispunct (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 116 "/usr/include/ctype.h"
+extern int isspace (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 117 "/usr/include/ctype.h"
+extern int isupper (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 118 "/usr/include/ctype.h"
+extern int isxdigit (int) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 122 "/usr/include/ctype.h"
+extern int tolower (int __c) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 125 "/usr/include/ctype.h"
+extern int toupper (int __c) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+#line 130 "/usr/include/ctype.h"
+extern int isblank (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 131 "/usr/include/ctype.h"
+extern int isascii (int __c) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 146 "/usr/include/ctype.h"
+extern int toascii (int __c) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 150 "/usr/include/ctype.h"
+extern int _toupper (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 151 "/usr/include/ctype.h"
+extern int _tolower (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 152 "/usr/include/ctype.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+__attribute__ ((__nothrow__ , __leaf__)) tolower (int __c)
+{
+ return __c >= -128 && __c < 256 ? (*__ctype_tolower_loc ())[__c] : __c;
+}
+
+
+#line 212 "/usr/include/ctype.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+__attribute__ ((__nothrow__ , __leaf__)) toupper (int __c)
+{
+ return __c >= -128 && __c < 256 ? (*__ctype_toupper_loc ())[__c] : __c;
+}
+
+#line 217 "/usr/include/ctype.h"
+struct __locale_struct
+{
+
+ struct __locale_data *__locales[13];
+
+
+ const unsigned short int *__ctype_b;
+ const int *__ctype_tolower;
+ const int *__ctype_toupper;
+
+
+ const char *__names[13];
+};
+
+
+#line 41 "/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h"
+typedef struct __locale_struct *__locale_t;
+
+#line 42 "/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h"
+
+typedef __locale_t locale_t;
+
+#line 25 "/usr/include/x86_64-linux-gnu/bits/types/locale_t.h"
+extern int isalnum_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 252 "/usr/include/ctype.h"
+extern int isalpha_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 253 "/usr/include/ctype.h"
+extern int iscntrl_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 254 "/usr/include/ctype.h"
+extern int isdigit_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 255 "/usr/include/ctype.h"
+extern int islower_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 256 "/usr/include/ctype.h"
+extern int isgraph_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 257 "/usr/include/ctype.h"
+extern int isprint_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 258 "/usr/include/ctype.h"
+extern int ispunct_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 259 "/usr/include/ctype.h"
+extern int isspace_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 260 "/usr/include/ctype.h"
+extern int isupper_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 261 "/usr/include/ctype.h"
+extern int isxdigit_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+
+#line 263 "/usr/include/ctype.h"
+extern int isblank_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 267 "/usr/include/ctype.h"
+extern int __tolower_l (int __c, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 268 "/usr/include/ctype.h"
+extern int tolower_l (int __c, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 271 "/usr/include/ctype.h"
+extern int __toupper_l (int __c, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 272 "/usr/include/ctype.h"
+extern int toupper_l (int __c, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 273 "/usr/include/ctype.h"
+
+
+
+
+
+
+
+extern void *memcpy (void *__restrict __dest, const void *__restrict __src,
+ size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 47 "/usr/include/string.h"
+extern void *memmove (void *__dest, const void *__src, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+
+#line 54 "/usr/include/string.h"
+extern void *memccpy (void *__restrict __dest, const void *__restrict __src,
+ int __c, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__access__ (__write_only__, 1, 4)));
+
+
+
+
+
+#line 61 "/usr/include/string.h"
+extern void *memset (void *__s, int __c, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+#line 64 "/usr/include/string.h"
+extern int memcmp (const void *__s1, const void *__s2, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 66 "/usr/include/string.h"
+extern int __memcmpeq (const void *__s1, const void *__s2, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 82 "/usr/include/string.h"
+extern void *memchr (const void *__s, int __c, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+#line 109 "/usr/include/string.h"
+extern char *strcpy (char *__restrict __dest, const char *__restrict __src)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 144 "/usr/include/string.h"
+extern char *strncpy (char *__restrict __dest,
+ const char *__restrict __src, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 149 "/usr/include/string.h"
+extern char *strcat (char *__restrict __dest, const char *__restrict __src)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 152 "/usr/include/string.h"
+extern char *strncat (char *__restrict __dest, const char *__restrict __src,
+ size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 156 "/usr/include/string.h"
+extern int strcmp (const char *__s1, const char *__s2)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 159 "/usr/include/string.h"
+extern int strncmp (const char *__s1, const char *__s2, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 163 "/usr/include/string.h"
+extern int strcoll (const char *__s1, const char *__s2)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 166 "/usr/include/string.h"
+extern size_t strxfrm (char *__restrict __dest,
+ const char *__restrict __src, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))) __attribute__ ((__access__ (__write_only__, 1, 3)));
+
+
+
+
+
+
+
+#line 175 "/usr/include/string.h"
+extern int strcoll_l (const char *__s1, const char *__s2, locale_t __l)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));
+
+
+
+#line 179 "/usr/include/string.h"
+extern size_t strxfrm_l (char *__dest, const char *__src, size_t __n,
+ locale_t __l) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 4)))
+ __attribute__ ((__access__ (__write_only__, 1, 3)));
+
+
+
+
+
+
+#line 187 "/usr/include/string.h"
+extern char *strdup (const char *__s)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+#line 195 "/usr/include/string.h"
+extern char *strndup (const char *__string, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
+
+#line 197 "/usr/include/string.h"
+extern char *strchr (const char *__s, int __c)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+#line 248 "/usr/include/string.h"
+extern char *strrchr (const char *__s, int __c)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+#line 275 "/usr/include/string.h"
+extern size_t strcspn (const char *__s, const char *__reject)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 297 "/usr/include/string.h"
+extern size_t strspn (const char *__s, const char *__accept)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 299 "/usr/include/string.h"
+extern char *strpbrk (const char *__s, const char *__accept)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 325 "/usr/include/string.h"
+extern char *strstr (const char *__haystack, const char *__needle)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+#line 356 "/usr/include/string.h"
+extern char *strtok (char *__restrict __s, const char *__restrict __delim)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+
+
+#line 361 "/usr/include/string.h"
+extern char *__strtok_r (char *__restrict __s,
+ const char *__restrict __delim,
+ char **__restrict __save_ptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3)));
+
+
+#line 366 "/usr/include/string.h"
+extern char *strtok_r (char *__restrict __s, const char *__restrict __delim,
+ char **__restrict __save_ptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3)));
+
+#line 369 "/usr/include/string.h"
+extern size_t strlen (const char *__s)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+#line 413 "/usr/include/string.h"
+extern size_t strnlen (const char *__string, size_t __maxlen)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+#line 419 "/usr/include/string.h"
+extern char *strerror (int __errnum) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 420 "/usr/include/string.h"
+extern int strerror_r (int __errnum, char *__buf, size_t __buflen) __asm__ ("" "__xpg_strerror_r") __attribute__ ((__nothrow__ , __leaf__))
+
+ __attribute__ ((__nonnull__ (2)))
+ __attribute__ ((__access__ (__write_only__, 2, 3)));
+
+#line 436 "/usr/include/string.h"
+extern char *strerror_l (int __errnum, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 462 "/usr/include/string.h"
+
+
+
+
+
+
+
+
+
+
+extern int bcmp (const void *__s1, const void *__s2, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 38 "/usr/include/strings.h"
+extern void bcopy (const void *__src, void *__dest, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 42 "/usr/include/strings.h"
+extern void bzero (void *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 43 "/usr/include/strings.h"
+extern char *index (const char *__s, int __c)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+#line 70 "/usr/include/strings.h"
+extern char *rindex (const char *__s, int __c)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+#line 104 "/usr/include/strings.h"
+extern int ffs (int __i) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+
+
+
+
+
+#line 110 "/usr/include/strings.h"
+extern int ffsl (long int __l) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+#line 111 "/usr/include/strings.h"
+__extension__ extern int ffsll (long long int __ll)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+
+
+
+#line 116 "/usr/include/strings.h"
+extern int strcasecmp (const char *__s1, const char *__s2)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 120 "/usr/include/strings.h"
+extern int strncasecmp (const char *__s1, const char *__s2, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+
+
+#line 128 "/usr/include/strings.h"
+extern int strcasecmp_l (const char *__s1, const char *__s2, locale_t __loc)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));
+
+
+
+
+#line 133 "/usr/include/strings.h"
+extern int strncasecmp_l (const char *__s1, const char *__s2,
+ size_t __n, locale_t __loc)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 4)));
+
+
+
+
+#line 139 "/usr/include/strings.h"
+
+
+
+extern void explicit_bzero (void *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)))
+ __attribute__ ((__access__ (__write_only__, 1, 2)));
+
+
+
+
+#line 471 "/usr/include/string.h"
+extern char *strsep (char **__restrict __stringp,
+ const char *__restrict __delim)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+#line 478 "/usr/include/string.h"
+extern char *strsignal (int __sig) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 479 "/usr/include/string.h"
+extern char *__stpcpy (char *__restrict __dest, const char *__restrict __src)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 491 "/usr/include/string.h"
+extern char *stpcpy (char *__restrict __dest, const char *__restrict __src)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+#line 496 "/usr/include/string.h"
+extern char *__stpncpy (char *__restrict __dest,
+ const char *__restrict __src, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 499 "/usr/include/string.h"
+extern char *stpncpy (char *__restrict __dest,
+ const char *__restrict __src, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 502 "/usr/include/string.h"
+
+
+
+
+
+
+
+
+typedef __builtin_va_list __gnuc_va_list;
+
+#line 41 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stdarg.h"
+
+
+
+
+
+
+typedef struct
+{
+ int __count;
+ union
+ {
+ unsigned int __wch;
+ char __wchb[4];
+ } __value;
+}
+#line 21 "/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h"
+__mbstate_t;
+
+#line 22 "/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h"
+
+
+
+
+typedef struct _G_fpos_t
+{
+ __off_t __pos;
+ __mbstate_t __state;
+}
+#line 14 "/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h"
+__fpos_t;
+
+#line 15 "/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h"
+typedef struct _G_fpos64_t
+{
+ __off64_t __pos;
+ __mbstate_t __state;
+}
+#line 14 "/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h"
+__fpos64_t;
+
+#line 15 "/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h"
+
+
+
+struct _IO_FILE;
+
+#line 5 "/usr/include/x86_64-linux-gnu/bits/types/__FILE.h"
+typedef struct _IO_FILE __FILE;
+
+#line 6 "/usr/include/x86_64-linux-gnu/bits/types/__FILE.h"
+
+
+
+struct _IO_FILE;
+
+
+
+#line 7 "/usr/include/x86_64-linux-gnu/bits/types/FILE.h"
+typedef struct _IO_FILE FILE;
+
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/FILE.h"
+struct _IO_FILE;
+
+#line 36 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+struct _IO_marker;
+
+#line 37 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+struct _IO_codecvt;
+
+#line 38 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+struct _IO_wide_data;
+
+
+
+
+
+#line 43 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+typedef void _IO_lock_t;
+
+
+
+
+
+
+#line 49 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+struct _IO_FILE
+{
+ int _flags;
+
+
+ char *_IO_read_ptr;
+ char *_IO_read_end;
+ char *_IO_read_base;
+ char *_IO_write_base;
+ char *_IO_write_ptr;
+ char *_IO_write_end;
+ char *_IO_buf_base;
+ char *_IO_buf_end;
+
+
+ char *_IO_save_base;
+ char *_IO_backup_base;
+ char *_IO_save_end;
+
+ struct _IO_marker *_markers;
+
+ struct _IO_FILE *_chain;
+
+ int _fileno;
+ int _flags2;
+ __off_t _old_offset;
+
+
+ unsigned short _cur_column;
+ signed char _vtable_offset;
+ char _shortbuf[1];
+
+ _IO_lock_t *_lock;
+
+
+
+
+
+
+
+ __off64_t _offset;
+
+ struct _IO_codecvt *_codecvt;
+ struct _IO_wide_data *_wide_data;
+ struct _IO_FILE *_freeres_list;
+ void *_freeres_buf;
+ size_t __pad5;
+ int _mode;
+
+ char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)];
+};
+
+#line 100 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+typedef __gnuc_va_list va_list;
+
+#line 53 "/usr/include/stdio.h"
+typedef __fpos_t fpos_t;
+
+#line 85 "/usr/include/stdio.h"
+extern FILE *stdin;
+
+#line 144 "/usr/include/stdio.h"
+extern FILE *stdout;
+
+#line 145 "/usr/include/stdio.h"
+extern FILE *stderr;
+
+
+
+
+
+
+
+#line 152 "/usr/include/stdio.h"
+extern int remove (const char *__filename) __attribute__ ((__nothrow__ , __leaf__));
+
+
+#line 154 "/usr/include/stdio.h"
+extern int rename (const char *__old, const char *__new) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 158 "/usr/include/stdio.h"
+extern int renameat (int __oldfd, const char *__old, int __newfd,
+ const char *__new) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 160 "/usr/include/stdio.h"
+extern int fclose (FILE *__stream);
+
+#line 179 "/usr/include/stdio.h"
+extern FILE *tmpfile (void)
+ __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ;
+
+#line 190 "/usr/include/stdio.h"
+extern char *tmpnam (char[20]) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+#line 210 "/usr/include/stdio.h"
+extern char *tmpnam_r (char __s[20]) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+#line 211 "/usr/include/stdio.h"
+extern char *tempnam (const char *__dir, const char *__pfx)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (__builtin_free, 1)));
+
+
+
+
+
+
+
+#line 230 "/usr/include/stdio.h"
+extern int fflush (FILE *__stream);
+
+#line 231 "/usr/include/stdio.h"
+extern int fflush_unlocked (FILE *__stream);
+
+#line 240 "/usr/include/stdio.h"
+extern FILE *fopen (const char *__restrict __filename,
+ const char *__restrict __modes)
+ __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ;
+
+
+
+
+
+#line 265 "/usr/include/stdio.h"
+extern FILE *freopen (const char *__restrict __filename,
+ const char *__restrict __modes,
+ FILE *__restrict __stream) ;
+
+#line 268 "/usr/include/stdio.h"
+extern FILE *fdopen (int __fd, const char *__modes) __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ;
+
+#line 295 "/usr/include/stdio.h"
+extern FILE *fmemopen (void *__s, size_t __len, const char *__modes)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ;
+
+
+
+
+
+#line 314 "/usr/include/stdio.h"
+extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ;
+
+#line 316 "/usr/include/stdio.h"
+extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 332 "/usr/include/stdio.h"
+extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf,
+ int __modes, size_t __n) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+#line 338 "/usr/include/stdio.h"
+extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf,
+ size_t __size) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 342 "/usr/include/stdio.h"
+extern void setlinebuf (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+
+#line 350 "/usr/include/stdio.h"
+extern int fprintf (FILE *__restrict __stream,
+ const char *__restrict __format, ...);
+
+
+
+
+
+#line 356 "/usr/include/stdio.h"
+extern int printf (const char *__restrict __format, ...);
+
+
+#line 358 "/usr/include/stdio.h"
+extern int sprintf (char *__restrict __s,
+ const char *__restrict __format, ...) __attribute__ ((__nothrow__));
+
+
+
+
+
+
+#line 365 "/usr/include/stdio.h"
+extern int vfprintf (FILE *__restrict __s, const char *__restrict __format,
+ __gnuc_va_list __arg);
+
+
+
+
+
+#line 371 "/usr/include/stdio.h"
+extern int vprintf (const char *__restrict __format, __gnuc_va_list __arg);
+
+
+#line 373 "/usr/include/stdio.h"
+extern int vsprintf (char *__restrict __s, const char *__restrict __format,
+ __gnuc_va_list __arg) __attribute__ ((__nothrow__));
+
+
+
+
+#line 378 "/usr/include/stdio.h"
+extern int snprintf (char *__restrict __s, size_t __maxlen,
+ const char *__restrict __format, ...)
+ __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 4)));
+
+
+#line 382 "/usr/include/stdio.h"
+extern int vsnprintf (char *__restrict __s, size_t __maxlen,
+ const char *__restrict __format, __gnuc_va_list __arg)
+ __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 0)));
+
+#line 385 "/usr/include/stdio.h"
+extern int vdprintf (int __fd, const char *__restrict __fmt,
+ __gnuc_va_list __arg)
+ __attribute__ ((__format__ (__printf__, 2, 0)));
+
+#line 406 "/usr/include/stdio.h"
+extern int dprintf (int __fd, const char *__restrict __fmt, ...)
+ __attribute__ ((__format__ (__printf__, 2, 3)));
+
+
+
+
+
+
+
+
+#line 415 "/usr/include/stdio.h"
+extern int fscanf (FILE *__restrict __stream,
+ const char *__restrict __format, ...) ;
+
+
+
+
+
+#line 421 "/usr/include/stdio.h"
+extern int scanf (const char *__restrict __format, ...) ;
+
+
+#line 423 "/usr/include/stdio.h"
+extern int sscanf (const char *__restrict __s,
+ const char *__restrict __format, ...) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 425 "/usr/include/stdio.h"
+extern int fscanf (FILE *__restrict __stream, const char *__restrict __format, ...) __asm__ ("" "__isoc99_fscanf")
+
+ ;
+
+#line 437 "/usr/include/stdio.h"
+extern int scanf (const char *__restrict __format, ...) __asm__ ("" "__isoc99_scanf")
+ ;
+
+#line 439 "/usr/include/stdio.h"
+extern int sscanf (const char *__restrict __s, const char *__restrict __format, ...) __asm__ ("" "__isoc99_sscanf") __attribute__ ((__nothrow__ , __leaf__))
+
+ ;
+
+#line 442 "/usr/include/stdio.h"
+extern int vfscanf (FILE *__restrict __s, const char *__restrict __format,
+ __gnuc_va_list __arg)
+ __attribute__ ((__format__ (__scanf__, 2, 0))) ;
+
+
+
+
+
+
+#line 467 "/usr/include/stdio.h"
+extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg)
+ __attribute__ ((__format__ (__scanf__, 1, 0))) ;
+
+
+
+#line 471 "/usr/include/stdio.h"
+extern int vsscanf (const char *__restrict __s,
+ const char *__restrict __format, __gnuc_va_list __arg)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__format__ (__scanf__, 2, 0)));
+
+
+
+
+
+
+#line 479 "/usr/include/stdio.h"
+extern int vfscanf (FILE *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vfscanf")
+
+
+
+ __attribute__ ((__format__ (__scanf__, 2, 0))) ;
+
+#line 484 "/usr/include/stdio.h"
+extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vscanf")
+
+ __attribute__ ((__format__ (__scanf__, 1, 0))) ;
+
+#line 487 "/usr/include/stdio.h"
+extern int vsscanf (const char *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vsscanf") __attribute__ ((__nothrow__ , __leaf__))
+
+
+
+ __attribute__ ((__format__ (__scanf__, 2, 0)));
+
+#line 492 "/usr/include/stdio.h"
+extern int fgetc (FILE *__stream);
+
+#line 514 "/usr/include/stdio.h"
+extern int getc (FILE *__stream);
+
+
+
+
+
+
+#line 520 "/usr/include/stdio.h"
+extern int getchar (void);
+
+
+
+
+
+
+
+#line 527 "/usr/include/stdio.h"
+extern int getc_unlocked (FILE *__stream);
+
+#line 528 "/usr/include/stdio.h"
+extern int getchar_unlocked (void);
+
+#line 529 "/usr/include/stdio.h"
+extern int fgetc_unlocked (FILE *__stream);
+
+#line 539 "/usr/include/stdio.h"
+extern int fputc (int __c, FILE *__stream);
+
+#line 550 "/usr/include/stdio.h"
+extern int putc (int __c, FILE *__stream);
+
+
+
+
+
+
+#line 556 "/usr/include/stdio.h"
+extern int putchar (int __c);
+
+#line 557 "/usr/include/stdio.h"
+extern int fputc_unlocked (int __c, FILE *__stream);
+
+
+
+
+
+
+
+
+#line 573 "/usr/include/stdio.h"
+extern int putc_unlocked (int __c, FILE *__stream);
+
+#line 574 "/usr/include/stdio.h"
+extern int putchar_unlocked (int __c);
+
+
+
+
+
+
+
+#line 581 "/usr/include/stdio.h"
+extern int getw (FILE *__stream);
+
+
+
+#line 584 "/usr/include/stdio.h"
+extern int putw (int __w, FILE *__stream);
+
+
+
+
+
+
+
+
+#line 592 "/usr/include/stdio.h"
+extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream)
+ __attribute__ ((__access__ (__write_only__, 1, 2)));
+
+#line 594 "/usr/include/stdio.h"
+extern __ssize_t __getdelim (char **__restrict __lineptr,
+ size_t *__restrict __n, int __delimiter,
+ FILE *__restrict __stream) ;
+
+#line 635 "/usr/include/stdio.h"
+extern __ssize_t getdelim (char **__restrict __lineptr,
+ size_t *__restrict __n, int __delimiter,
+ FILE *__restrict __stream) ;
+
+
+
+
+
+
+
+
+#line 645 "/usr/include/stdio.h"
+extern __ssize_t getline (char **__restrict __lineptr,
+ size_t *__restrict __n,
+ FILE *__restrict __stream) ;
+
+
+
+
+
+
+
+
+#line 655 "/usr/include/stdio.h"
+extern int fputs (const char *__restrict __s, FILE *__restrict __stream);
+
+
+
+
+
+
+#line 661 "/usr/include/stdio.h"
+extern int puts (const char *__s);
+
+
+
+
+
+
+
+#line 668 "/usr/include/stdio.h"
+extern int ungetc (int __c, FILE *__stream);
+
+
+
+
+
+
+
+#line 675 "/usr/include/stdio.h"
+extern size_t fread (void *__restrict __ptr, size_t __size,
+ size_t __n, FILE *__restrict __stream) ;
+
+
+
+
+
+#line 681 "/usr/include/stdio.h"
+extern size_t fwrite (const void *__restrict __ptr, size_t __size,
+ size_t __n, FILE *__restrict __s);
+
+#line 683 "/usr/include/stdio.h"
+extern size_t fread_unlocked (void *__restrict __ptr, size_t __size,
+ size_t __n, FILE *__restrict __stream) ;
+
+#line 704 "/usr/include/stdio.h"
+extern size_t fwrite_unlocked (const void *__restrict __ptr, size_t __size,
+ size_t __n, FILE *__restrict __stream);
+
+
+
+
+
+
+
+
+#line 713 "/usr/include/stdio.h"
+extern int fseek (FILE *__stream, long int __off, int __whence);
+
+
+
+
+
+#line 718 "/usr/include/stdio.h"
+extern long int ftell (FILE *__stream) ;
+
+
+
+
+
+#line 723 "/usr/include/stdio.h"
+extern void rewind (FILE *__stream);
+
+#line 724 "/usr/include/stdio.h"
+extern int fseeko (FILE *__stream, __off_t __off, int __whence);
+
+
+
+
+
+#line 741 "/usr/include/stdio.h"
+extern __off_t ftello (FILE *__stream) ;
+
+#line 742 "/usr/include/stdio.h"
+extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos);
+
+
+
+
+
+#line 765 "/usr/include/stdio.h"
+extern int fsetpos (FILE *__stream, const fpos_t *__pos);
+
+#line 766 "/usr/include/stdio.h"
+extern void clearerr (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
+
+
+#line 788 "/usr/include/stdio.h"
+extern int feof (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+#line 790 "/usr/include/stdio.h"
+extern int ferror (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+#line 794 "/usr/include/stdio.h"
+extern void clearerr_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 795 "/usr/include/stdio.h"
+extern int feof_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+#line 796 "/usr/include/stdio.h"
+extern int ferror_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+
+
+
+#line 804 "/usr/include/stdio.h"
+extern void perror (const char *__s);
+
+
+
+
+
+#line 809 "/usr/include/stdio.h"
+extern int fileno (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+#line 814 "/usr/include/stdio.h"
+extern int fileno_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+#line 815 "/usr/include/stdio.h"
+extern int pclose (FILE *__stream);
+
+
+
+
+
+
+#line 829 "/usr/include/stdio.h"
+extern FILE *popen (const char *__command, const char *__modes)
+ __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (pclose, 1))) ;
+
+
+
+
+
+
+
+#line 837 "/usr/include/stdio.h"
+extern char *ctermid (char *__s) __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__access__ (__write_only__, 1)));
+
+#line 839 "/usr/include/stdio.h"
+extern void flockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 871 "/usr/include/stdio.h"
+extern int ftrylockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+#line 874 "/usr/include/stdio.h"
+extern void funlockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 875 "/usr/include/stdio.h"
+extern int __uflow (FILE *);
+
+#line 886 "/usr/include/stdio.h"
+extern int __overflow (FILE *, int);
+
+#line 887 "/usr/include/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+vprintf (const char *__restrict __fmt, __gnuc_va_list __arg)
+{
+ return vfprintf (stdout, __fmt, __arg);
+}
+
+
+
+
+#line 46 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+getchar (void)
+{
+ return getc (stdin);
+}
+
+
+
+
+
+#line 55 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+fgetc_unlocked (FILE *__fp)
+{
+ return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++);
+}
+
+
+
+
+
+
+#line 65 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+getc_unlocked (FILE *__fp)
+{
+ return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++);
+}
+
+
+
+#line 72 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+getchar_unlocked (void)
+{
+ return (__builtin_expect (((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end), 0) ? __uflow (stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++);
+}
+
+
+
+
+
+#line 81 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+putchar (int __c)
+{
+ return putc (__c, stdout);
+}
+
+
+
+
+
+#line 90 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+fputc_unlocked (int __c, FILE *__stream)
+{
+ return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
+}
+
+
+
+
+
+
+#line 100 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+putc_unlocked (int __c, FILE *__stream)
+{
+ return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
+}
+
+
+
+#line 107 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+putchar_unlocked (int __c)
+{
+ return (__builtin_expect (((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end), 0) ? __overflow (stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c)));
+}
+
+#line 112 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+__attribute__ ((__nothrow__ , __leaf__)) feof_unlocked (FILE *__stream)
+{
+ return (((__stream)->_flags & 0x0010) != 0);
+}
+
+
+
+#line 134 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+__attribute__ ((__nothrow__ , __leaf__)) ferror_unlocked (FILE *__stream)
+{
+ return (((__stream)->_flags & 0x0020) != 0);
+}
+
+#line 139 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+
+
+
+
+
+
+
+
+
+struct hashmap_other__other__comma_struct_other_uniq_other_string {
+ struct uniq_string **data;
+ size_t count;
+ size_t cap;
+};
+
+
+#line 139 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+
+
+
+
+
+
+
+
+
+struct hashmap_other__other__comma_struct_other_call {
+ struct call **data;
+ size_t count;
+ size_t cap;
+};
+
+
+#line 17 "gamma.h"
+uint32_t hashmap_other_hash_other__other__comma_struct_other_call(struct call *item);
+
+#line 17 "gamma.h"
+uint32_t hashmap_other_hash_other__other__comma_struct_other_uniq_other_string(struct uniq_string *item);
+
+#line 18 "gamma.h"
+int hashmap_other_eq_other__other__comma_struct_other_call(struct call *A, struct call *B);
+
+
+#line 18 "gamma.h"
+int hashmap_other_eq_other__other__comma_struct_other_uniq_other_string(struct uniq_string *A, struct uniq_string *B);
+
+
+#line 20 "gamma.h"
+struct uniq_string *hashmap_other_lookup_other__other__comma_struct_other_uniq_other_string(struct hashmap_other__other__comma_struct_other_uniq_other_string *hashmap, struct uniq_string *item);
+
+#line 21 "gamma.h"
+struct uniq_string *hashmap_other_lookup_other_weak_other__other__comma_struct_other_uniq_other_string(struct hashmap_other__other__comma_struct_other_uniq_other_string *hashmap, struct uniq_string *item);
+
+#line 21 "gamma.h"
+struct call *hashmap_other_lookup_other_weak_other__other__comma_struct_other_call(struct hashmap_other__other__comma_struct_other_call *hashmap, struct call *item);
+
+#line 22 "gamma.h"
+int hashmap_other_contains_other__other__comma_struct_other_call(struct hashmap_other__other__comma_struct_other_call *hashmap, struct call *item);
+
+#line 23 "gamma.h"
+void hashmap_other_insert_other__other__comma_struct_other_uniq_other_string(struct hashmap_other__other__comma_struct_other_uniq_other_string *hashmap, struct uniq_string *item);
+
+#line 23 "gamma.h"
+void hashmap_other_insert_other__other__comma_struct_other_call(struct hashmap_other__other__comma_struct_other_call *hashmap, struct call *item);
+
+#line 24 "gamma.h"
+struct uniq_string *heapify_other__other__comma_struct_other_uniq_other_string(struct uniq_string item);
+
+
+#line 26 "gamma.h"
+struct vector_other__other__comma_struct_other_call_other__star_ {
+ struct call * *data;
+ size_t count;
+ size_t cap;
+};
+
+#line 31 "gamma.h"
+uint32_t vector_other_push_other__other__comma_struct_other_call_other__star_(struct vector_other__other__comma_struct_other_call_other__star_ *vector, struct call * item);
+
+#line 32 "gamma.h"
+struct call * vector_other_pop_other__other__comma_struct_other_call_other__star_(struct vector_other__other__comma_struct_other_call_other__star_ *vector);
+
+#line 33 "gamma.h"
+struct vector_other__other__comma_struct_other_call_other__star_ *init_other_vector_other__other__comma_struct_other_call_other__star_();
+
+
+#line 35 "gamma.h"
+struct uniq_string {
+ char *string;
+ size_t len;
+
+ struct vector_other__other__comma_struct_other_call_other__star_ instantiations;
+
+ struct chunk *definitions;
+};
+
+
+#line 44 "gamma.h"
+struct arg {
+ char *start;
+ struct uniq_string *string;
+ int is_concrete;
+};
+
+
+#line 50 "gamma.h"
+struct call {
+ char *start;
+ char *end;
+ struct uniq_string *name;
+ struct arg *args;
+ size_t n_args;
+ struct call *next;
+};
+
+
+#line 59 "gamma.h"
+struct chunk {
+ char *start;
+ char *end;
+
+ char *line_filename;
+ size_t line;
+
+ struct call *defining_call;
+ struct call *calls;
+ struct chunk *next;
+ struct chunk *next_definition;
+};
+
+
+#line 72 "gamma.h"
+struct chunked_file {
+ char *contents;
+ char *end;
+ size_t id;
+ struct chunk *chunks;
+ struct chunked_file *next;
+};
+
+
+#line 80 "gamma.h"
+struct chunked_file *chunk(const char *path);
+
+#line 81 "gamma.h"
+struct uniq_string *lookup(char *string, size_t len);
+
+#line 82 "gamma.h"
+struct uniq_string *weak_lookup(char *string, size_t len);
+
+
+
+
+#line 86 "gamma.h"
+struct instantiation_set {
+ struct call **data;
+ size_t n;
+ size_t cap;
+};
+
+
+#line 92 "gamma.h"
+void parse_call(struct call *call);
+
+#line 93 "gamma.h"
+void print_state(struct chunked_file *file);
+
+#line 94 "gamma.h"
+void solve(struct chunked_file *files);
+
+#line 95 "gamma.h"
+void print_string(struct uniq_string *string);
+
+#line 96 "gamma.h"
+void print_call(struct call *call);
+
+#line 97 "gamma.h"
+void print_set(struct instantiation_set *set);
+
+#line 98 "gamma.h"
+void print_chunk(struct chunk *chunk, struct call *instantiation, FILE *out);
+
+#line 99 "gamma.h"
+struct call *replace_variables(struct call *container, struct call *container_instantiation, struct call *call);
+
+#line 100 "gamma.h"
+void fprint_string(FILE *out, struct uniq_string *string);
+
+#line 101 "gamma.h"
+char **read_fakeobj(char *path, char *c_dst);
+
+#line 102 "gamma.h"
+void write_fakeobj(char *src, char *dst, int i);
+
+#line 103 "gamma.h"
+void gamma_sendfile(int dst_fd, int src_fd);
+
+#line 104 "gamma.h"
+void copy_file(char *dst, char *src);
+
+
+#line 106 "gamma.h"
+extern char **ARGV;
+
+#line 107 "gamma.h"
+extern int ARGC;
+
+#line 108 "gamma.h"
+extern char *TMPDIR;
+
+#line 109 "gamma.h"
+extern int GAMMA_TO_C;
+
+#line 110 "gamma.h"
+
+void hashmap_other_insert_other__other__comma_struct_other_uniq_other_string(struct hashmap_other__other__comma_struct_other_uniq_other_string *hashmap, struct uniq_string *item) {
+ if ((hashmap->count * 2) >= hashmap->cap) {
+ struct hashmap_other__other__comma_struct_other_uniq_other_string old = *hashmap;
+ hashmap->cap *= 4;
+ hashmap->cap = hashmap->cap ? hashmap->cap : 128;
+ hashmap->data = calloc(hashmap->cap, sizeof(hashmap->data[0]));
+ hashmap->count = 0;
+ for (size_t i = 0; i < old.cap; i++)
+ if (old.data[i])
+ hashmap_other_insert_other__other__comma_struct_other_uniq_other_string(hashmap, old.data[i]);
+ free(old.data);
+ }
+ hashmap->count++;
+ size_t mask = hashmap->cap - 1;
+ uint32_t h = hashmap_other_hash_other__other__comma_struct_other_uniq_other_string(item) & mask;
+ while (hashmap->data[h]) h = (h + 1) & mask;
+ hashmap->data[h] = item;
+}
+
+
+#line 110 "gamma.h"
+
+void hashmap_other_insert_other__other__comma_struct_other_call(struct hashmap_other__other__comma_struct_other_call *hashmap, struct call *item) {
+ if ((hashmap->count * 2) >= hashmap->cap) {
+ struct hashmap_other__other__comma_struct_other_call old = *hashmap;
+ hashmap->cap *= 4;
+ hashmap->cap = hashmap->cap ? hashmap->cap : 128;
+ hashmap->data = calloc(hashmap->cap, sizeof(hashmap->data[0]));
+ hashmap->count = 0;
+ for (size_t i = 0; i < old.cap; i++)
+ if (old.data[i])
+ hashmap_other_insert_other__other__comma_struct_other_call(hashmap, old.data[i]);
+ free(old.data);
+ }
+ hashmap->count++;
+ size_t mask = hashmap->cap - 1;
+ uint32_t h = hashmap_other_hash_other__other__comma_struct_other_call(item) & mask;
+ while (hashmap->data[h]) h = (h + 1) & mask;
+ hashmap->data[h] = item;
+}
+
+
+#line 22 "hashmap.c"
+struct uniq_string *hashmap_other_lookup_other_weak_other__other__comma_struct_other_uniq_other_string(struct hashmap_other__other__comma_struct_other_uniq_other_string *hashmap, struct uniq_string *item) {
+ if (!hashmap) return 0;
+ if (!hashmap->cap) return 0;
+ uint32_t mask = hashmap->cap - 1;
+ uint32_t h = hashmap_other_hash_other__other__comma_struct_other_uniq_other_string(item) & mask;
+ while (hashmap->data[h]) {
+ if (hashmap_other_eq_other__other__comma_struct_other_uniq_other_string(item, hashmap->data[h]))
+ return hashmap->data[h];
+ h = (h + 1) & mask;
+ }
+ return 0;
+}
+
+
+#line 22 "hashmap.c"
+struct call *hashmap_other_lookup_other_weak_other__other__comma_struct_other_call(struct hashmap_other__other__comma_struct_other_call *hashmap, struct call *item) {
+ if (!hashmap) return 0;
+ if (!hashmap->cap) return 0;
+ uint32_t mask = hashmap->cap - 1;
+ uint32_t h = hashmap_other_hash_other__other__comma_struct_other_call(item) & mask;
+ while (hashmap->data[h]) {
+ if (hashmap_other_eq_other__other__comma_struct_other_call(item, hashmap->data[h]))
+ return hashmap->data[h];
+ h = (h + 1) & mask;
+ }
+ return 0;
+}
+
+
+#line 35 "hashmap.c"
+struct uniq_string *hashmap_other_lookup_other__other__comma_struct_other_uniq_other_string(struct hashmap_other__other__comma_struct_other_uniq_other_string *hashmap, struct uniq_string *item) {
+ struct uniq_string *found = hashmap_other_lookup_other_weak_other__other__comma_struct_other_uniq_other_string(hashmap, item);
+ if (!found) {
+ found = item;
+ hashmap_other_insert_other__other__comma_struct_other_uniq_other_string(hashmap, item);
+ }
+ return found;
+}
+
+
+#line 44 "hashmap.c"
+int hashmap_other_contains_other__other__comma_struct_other_call(struct hashmap_other__other__comma_struct_other_call *hashmap, struct call *item) {
+ return !!hashmap_other_lookup_other_weak_other__other__comma_struct_other_call(hashmap, item);
+}
+
+
+#line 48 "hashmap.c"
+struct uniq_string *heapify_other__other__comma_struct_other_uniq_other_string(struct uniq_string item) {
+ struct uniq_string *heap = malloc(sizeof(struct uniq_string));
+ memcpy(heap, &item, sizeof(struct uniq_string));
+ return heap;
+}
+
+#line 53 "hashmap.c"
diff --git a/c_version/14.c b/c_version/14.c
new file mode 100755
index 0000000..c21e63b
--- /dev/null
+++ b/c_version/14.c
@@ -0,0 +1,3464 @@
+
+#line 1 "/tmp/gamma.XksNqZ/14.unfake.c"
+
+
+
+
+
+
+extern void __assert_fail (const char *__assertion, const char *__file,
+ unsigned int __line, const char *__function)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+#line 74 "/usr/include/assert.h"
+extern void __assert_perror_fail (int __errnum, const char *__file,
+ unsigned int __line, const char *__function)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+
+#line 81 "/usr/include/assert.h"
+extern void __assert (const char *__assertion, const char *__file, int __line)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+#line 86 "/usr/include/assert.h"
+typedef long int ptrdiff_t;
+
+#line 146 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h"
+typedef long unsigned int size_t;
+
+#line 215 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h"
+typedef int wchar_t;
+
+#line 330 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h"
+typedef struct {
+ long long __max_align_ll __attribute__((__aligned__(__alignof__(long long))));
+ long double __max_align_ld __attribute__((__aligned__(__alignof__(long double))));
+}
+#line 435 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h"
+max_align_t;
+
+#line 436 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h"
+
+
+typedef unsigned char __u_char;
+
+#line 32 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned short int __u_short;
+
+#line 33 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __u_int;
+
+#line 34 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __u_long;
+
+
+
+#line 37 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef signed char __int8_t;
+
+#line 38 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned char __uint8_t;
+
+#line 39 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef signed short int __int16_t;
+
+#line 40 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned short int __uint16_t;
+
+#line 41 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef signed int __int32_t;
+
+#line 42 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __uint32_t;
+
+
+#line 44 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef signed long int __int64_t;
+
+#line 45 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __uint64_t;
+
+
+
+
+
+
+
+#line 52 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __int8_t __int_least8_t;
+
+#line 53 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __uint8_t __uint_least8_t;
+
+#line 54 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __int16_t __int_least16_t;
+
+#line 55 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __uint16_t __uint_least16_t;
+
+#line 56 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __int32_t __int_least32_t;
+
+#line 57 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __uint32_t __uint_least32_t;
+
+#line 58 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __int64_t __int_least64_t;
+
+#line 59 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __uint64_t __uint_least64_t;
+
+
+
+
+#line 63 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __quad_t;
+
+#line 64 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __u_quad_t;
+
+
+
+
+
+
+
+
+#line 72 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __intmax_t;
+
+#line 73 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __uintmax_t;
+
+#line 74 "/usr/include/x86_64-linux-gnu/bits/types.h"
+
+
+typedef unsigned long int __dev_t;
+
+#line 146 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __uid_t;
+
+#line 147 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __gid_t;
+
+#line 148 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __ino_t;
+
+#line 149 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __ino64_t;
+
+#line 150 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __mode_t;
+
+#line 151 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __nlink_t;
+
+#line 152 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __off_t;
+
+#line 153 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __off64_t;
+
+#line 154 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef int __pid_t;
+
+#line 155 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef struct { int __val[2]; }
+#line 155 "/usr/include/x86_64-linux-gnu/bits/types.h"
+__fsid_t;
+
+#line 156 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __clock_t;
+
+#line 157 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __rlim_t;
+
+#line 158 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __rlim64_t;
+
+#line 159 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __id_t;
+
+#line 160 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __time_t;
+
+#line 161 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __useconds_t;
+
+#line 162 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __suseconds_t;
+
+#line 163 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __suseconds64_t;
+
+
+#line 165 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef int __daddr_t;
+
+#line 166 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef int __key_t;
+
+
+
+#line 169 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef int __clockid_t;
+
+
+
+#line 172 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef void * __timer_t;
+
+
+
+#line 175 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __blksize_t;
+
+
+
+
+
+#line 180 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __blkcnt_t;
+
+#line 181 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __blkcnt64_t;
+
+
+
+#line 184 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __fsblkcnt_t;
+
+#line 185 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __fsblkcnt64_t;
+
+
+
+#line 188 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __fsfilcnt_t;
+
+#line 189 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __fsfilcnt64_t;
+
+
+
+#line 192 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __fsword_t;
+
+
+#line 194 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __ssize_t;
+
+
+
+#line 197 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __syscall_slong_t;
+
+
+#line 199 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __syscall_ulong_t;
+
+
+
+
+#line 203 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __off64_t __loff_t;
+
+#line 204 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef char *__caddr_t;
+
+
+
+#line 207 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __intptr_t;
+
+
+
+#line 210 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __socklen_t;
+
+
+
+
+
+#line 215 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef int __sig_atomic_t;
+
+#line 216 "/usr/include/x86_64-linux-gnu/bits/types.h"
+
+
+
+
+typedef __int8_t int8_t;
+
+#line 25 "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h"
+typedef __int16_t int16_t;
+
+#line 26 "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h"
+typedef __int32_t int32_t;
+
+#line 27 "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h"
+typedef __int64_t int64_t;
+
+#line 28 "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h"
+
+
+typedef __uint8_t uint8_t;
+
+#line 25 "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h"
+typedef __uint16_t uint16_t;
+
+#line 26 "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h"
+typedef __uint32_t uint32_t;
+
+#line 27 "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h"
+typedef __uint64_t uint64_t;
+
+#line 28 "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h"
+
+
+
+
+
+typedef __int_least8_t int_least8_t;
+
+#line 44 "/usr/include/stdint.h"
+typedef __int_least16_t int_least16_t;
+
+#line 45 "/usr/include/stdint.h"
+typedef __int_least32_t int_least32_t;
+
+#line 46 "/usr/include/stdint.h"
+typedef __int_least64_t int_least64_t;
+
+
+
+#line 49 "/usr/include/stdint.h"
+typedef __uint_least8_t uint_least8_t;
+
+#line 50 "/usr/include/stdint.h"
+typedef __uint_least16_t uint_least16_t;
+
+#line 51 "/usr/include/stdint.h"
+typedef __uint_least32_t uint_least32_t;
+
+#line 52 "/usr/include/stdint.h"
+typedef __uint_least64_t uint_least64_t;
+
+
+
+
+
+
+#line 58 "/usr/include/stdint.h"
+typedef signed char int_fast8_t;
+
+
+#line 60 "/usr/include/stdint.h"
+typedef long int int_fast16_t;
+
+#line 61 "/usr/include/stdint.h"
+typedef long int int_fast32_t;
+
+#line 62 "/usr/include/stdint.h"
+typedef long int int_fast64_t;
+
+#line 63 "/usr/include/stdint.h"
+typedef unsigned char uint_fast8_t;
+
+
+#line 73 "/usr/include/stdint.h"
+typedef unsigned long int uint_fast16_t;
+
+#line 74 "/usr/include/stdint.h"
+typedef unsigned long int uint_fast32_t;
+
+#line 75 "/usr/include/stdint.h"
+typedef unsigned long int uint_fast64_t;
+
+#line 76 "/usr/include/stdint.h"
+typedef long int intptr_t;
+
+
+
+#line 90 "/usr/include/stdint.h"
+typedef unsigned long int uintptr_t;
+
+#line 91 "/usr/include/stdint.h"
+typedef __intmax_t intmax_t;
+
+#line 102 "/usr/include/stdint.h"
+typedef __uintmax_t uintmax_t;
+
+#line 103 "/usr/include/stdint.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct
+ {
+ int quot;
+ int rem;
+ }
+#line 63 "/usr/include/stdlib.h"
+div_t;
+
+
+
+
+#line 67 "/usr/include/stdlib.h"
+typedef struct
+ {
+ long int quot;
+ long int rem;
+ }
+#line 71 "/usr/include/stdlib.h"
+ldiv_t;
+
+
+
+
+
+
+#line 77 "/usr/include/stdlib.h"
+__extension__ typedef struct
+ {
+ long long int quot;
+ long long int rem;
+ }
+#line 81 "/usr/include/stdlib.h"
+lldiv_t;
+
+#line 82 "/usr/include/stdlib.h"
+extern size_t __ctype_get_mb_cur_max (void) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+#line 102 "/usr/include/stdlib.h"
+extern double atof (const char *__nptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+#line 105 "/usr/include/stdlib.h"
+extern int atoi (const char *__nptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+#line 108 "/usr/include/stdlib.h"
+extern long int atol (const char *__nptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+#line 113 "/usr/include/stdlib.h"
+__extension__ extern long long int atoll (const char *__nptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+#line 118 "/usr/include/stdlib.h"
+extern double strtod (const char *__restrict __nptr,
+ char **__restrict __endptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+#line 124 "/usr/include/stdlib.h"
+extern float strtof (const char *__restrict __nptr,
+ char **__restrict __endptr) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+#line 127 "/usr/include/stdlib.h"
+extern long double strtold (const char *__restrict __nptr,
+ char **__restrict __endptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 130 "/usr/include/stdlib.h"
+extern long int strtol (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+#line 181 "/usr/include/stdlib.h"
+extern unsigned long int strtoul (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+#line 187 "/usr/include/stdlib.h"
+__extension__
+extern long long int strtoq (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+#line 192 "/usr/include/stdlib.h"
+__extension__
+extern unsigned long long int strtouq (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+#line 200 "/usr/include/stdlib.h"
+__extension__
+extern long long int strtoll (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+#line 205 "/usr/include/stdlib.h"
+__extension__
+extern unsigned long long int strtoull (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 209 "/usr/include/stdlib.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+__attribute__ ((__nothrow__ , __leaf__)) atoi (const char *__nptr)
+{
+ return (int) strtol (__nptr, (char **) ((void *)0), 10);
+}
+
+#line 366 "/usr/include/stdlib.h"
+extern __inline __attribute__ ((__gnu_inline__)) long int
+__attribute__ ((__nothrow__ , __leaf__)) atol (const char *__nptr)
+{
+ return strtol (__nptr, (char **) ((void *)0), 10);
+}
+
+
+
+#line 373 "/usr/include/stdlib.h"
+__extension__ extern __inline __attribute__ ((__gnu_inline__)) long long int
+__attribute__ ((__nothrow__ , __leaf__)) atoll (const char *__nptr)
+{
+ return strtoll (__nptr, (char **) ((void *)0), 10);
+}
+
+#line 378 "/usr/include/stdlib.h"
+extern char *l64a (long int __n) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+#line 389 "/usr/include/stdlib.h"
+extern long int a64l (const char *__s)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+
+#line 395 "/usr/include/stdlib.h"
+
+
+
+
+
+
+typedef __u_char u_char;
+
+#line 34 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __u_short u_short;
+
+#line 35 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __u_int u_int;
+
+#line 36 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __u_long u_long;
+
+#line 37 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __quad_t quad_t;
+
+#line 38 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __u_quad_t u_quad_t;
+
+#line 39 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __fsid_t fsid_t;
+
+
+
+#line 42 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __loff_t loff_t;
+
+
+
+
+
+#line 47 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __ino_t ino_t;
+
+#line 48 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __dev_t dev_t;
+
+
+
+
+
+#line 64 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __gid_t gid_t;
+
+
+
+
+
+#line 69 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __mode_t mode_t;
+
+
+
+
+
+#line 74 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __nlink_t nlink_t;
+
+
+
+
+
+#line 79 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __uid_t uid_t;
+
+
+
+
+
+
+#line 85 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __off_t off_t;
+
+#line 86 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __pid_t pid_t;
+
+
+
+
+
+
+#line 103 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __id_t id_t;
+
+
+
+
+
+#line 108 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __ssize_t ssize_t;
+
+
+
+
+
+
+#line 114 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __daddr_t daddr_t;
+
+#line 115 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __caddr_t caddr_t;
+
+
+
+
+
+
+#line 121 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __key_t key_t;
+
+
+
+
+
+#line 126 "/usr/include/x86_64-linux-gnu/sys/types.h"
+
+
+
+
+
+
+typedef __clock_t clock_t;
+
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/clock_t.h"
+
+
+
+
+
+
+
+typedef __clockid_t clockid_t;
+
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h"
+typedef __time_t time_t;
+
+#line 11 "/usr/include/x86_64-linux-gnu/bits/types/time_t.h"
+
+
+
+
+
+
+typedef __timer_t timer_t;
+
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/timer_t.h"
+
+
+
+typedef unsigned long int ulong;
+
+#line 149 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef unsigned short int ushort;
+
+#line 150 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef unsigned int uint;
+
+
+
+
+
+
+
+
+#line 158 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __uint8_t u_int8_t;
+
+#line 159 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __uint16_t u_int16_t;
+
+#line 160 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __uint32_t u_int32_t;
+
+#line 161 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __uint64_t u_int64_t;
+
+
+
+#line 164 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef int register_t __attribute__ ((__mode__ (__word__)));
+
+#line 165 "/usr/include/x86_64-linux-gnu/sys/types.h"
+static __inline __uint16_t
+__bswap_16 (__uint16_t __bsx)
+{
+
+ return __builtin_bswap16 (__bsx);
+
+
+
+}
+
+
+
+
+
+
+
+#line 48 "/usr/include/x86_64-linux-gnu/bits/byteswap.h"
+static __inline __uint32_t
+__bswap_32 (__uint32_t __bsx)
+{
+
+ return __builtin_bswap32 (__bsx);
+
+
+
+}
+
+#line 57 "/usr/include/x86_64-linux-gnu/bits/byteswap.h"
+__extension__ static __inline __uint64_t
+__bswap_64 (__uint64_t __bsx)
+{
+
+ return __builtin_bswap64 (__bsx);
+
+
+
+}
+
+#line 78 "/usr/include/x86_64-linux-gnu/bits/byteswap.h"
+static __inline __uint16_t
+__uint16_identity (__uint16_t __x)
+{
+ return __x;
+}
+
+
+#line 38 "/usr/include/x86_64-linux-gnu/bits/uintn-identity.h"
+static __inline __uint32_t
+__uint32_identity (__uint32_t __x)
+{
+ return __x;
+}
+
+
+#line 44 "/usr/include/x86_64-linux-gnu/bits/uintn-identity.h"
+static __inline __uint64_t
+__uint64_identity (__uint64_t __x)
+{
+ return __x;
+}
+
+#line 49 "/usr/include/x86_64-linux-gnu/bits/uintn-identity.h"
+
+
+
+
+
+
+
+
+
+
+
+typedef struct
+{
+ unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))];
+}
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h"
+__sigset_t;
+
+#line 9 "/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h"
+
+
+typedef __sigset_t sigset_t;
+
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h"
+
+
+
+
+
+
+
+
+
+
+struct timeval
+{
+
+
+
+
+ __time_t tv_sec;
+ __suseconds_t tv_usec;
+
+};
+
+#line 18 "/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h"
+
+struct timespec
+{
+
+
+
+ __time_t tv_sec;
+
+
+
+
+ __syscall_slong_t tv_nsec;
+};
+
+#line 32 "/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h"
+
+
+
+typedef __suseconds_t suseconds_t;
+
+
+
+
+
+
+#line 49 "/usr/include/x86_64-linux-gnu/sys/select.h"
+typedef long int __fd_mask;
+
+#line 50 "/usr/include/x86_64-linux-gnu/sys/select.h"
+typedef struct
+ {
+
+
+
+
+
+
+ __fd_mask __fds_bits[1024 / (8 * (int) sizeof (__fd_mask))];
+
+
+ }
+#line 70 "/usr/include/x86_64-linux-gnu/sys/select.h"
+fd_set;
+
+
+
+
+
+
+
+#line 77 "/usr/include/x86_64-linux-gnu/sys/select.h"
+typedef __fd_mask fd_mask;
+
+#line 78 "/usr/include/x86_64-linux-gnu/sys/select.h"
+
+extern int select (int __nfds, fd_set *__restrict __readfds,
+ fd_set *__restrict __writefds,
+ fd_set *__restrict __exceptfds,
+ struct timeval *__restrict __timeout);
+
+#line 106 "/usr/include/x86_64-linux-gnu/sys/select.h"
+extern int pselect (int __nfds, fd_set *__restrict __readfds,
+ fd_set *__restrict __writefds,
+ fd_set *__restrict __exceptfds,
+ const struct timespec *__restrict __timeout,
+ const __sigset_t *__restrict __sigmask);
+
+#line 132 "/usr/include/x86_64-linux-gnu/sys/select.h"
+
+
+
+
+
+
+typedef __blksize_t blksize_t;
+
+
+
+
+
+
+
+#line 192 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __blkcnt_t blkcnt_t;
+
+
+
+
+#line 196 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __fsblkcnt_t fsblkcnt_t;
+
+
+
+
+#line 200 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __fsfilcnt_t fsfilcnt_t;
+
+#line 201 "/usr/include/x86_64-linux-gnu/sys/types.h"
+
+typedef union
+{
+ __extension__ unsigned long long int __value64;
+ struct
+ {
+ unsigned int __low;
+ unsigned int __high;
+ } __value32;
+}
+#line 33 "/usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h"
+__atomic_wide_counter;
+
+#line 34 "/usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h"
+
+
+
+
+typedef struct __pthread_internal_list
+{
+ struct __pthread_internal_list *__prev;
+ struct __pthread_internal_list *__next;
+}
+#line 55 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+__pthread_list_t;
+
+
+#line 57 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+typedef struct __pthread_internal_slist
+{
+ struct __pthread_internal_slist *__next;
+}
+#line 60 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+__pthread_slist_t;
+
+#line 61 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+struct __pthread_mutex_s
+{
+ int __lock;
+ unsigned int __count;
+ int __owner;
+
+ unsigned int __nusers;
+
+
+
+ int __kind;
+
+ short __spins;
+ short __elision;
+ __pthread_list_t __list;
+};
+
+#line 54 "/usr/include/x86_64-linux-gnu/bits/struct_mutex.h"
+struct __pthread_rwlock_arch_t
+{
+ unsigned int __readers;
+ unsigned int __writers;
+ unsigned int __wrphase_futex;
+ unsigned int __writers_futex;
+ unsigned int __pad3;
+ unsigned int __pad4;
+
+ int __cur_writer;
+ int __shared;
+ signed char __rwelision;
+
+
+
+
+ unsigned char __pad1[7];
+
+
+ unsigned long int __pad2;
+
+
+ unsigned int __flags;
+};
+
+#line 56 "/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h"
+
+
+
+
+struct __pthread_cond_s
+{
+ __atomic_wide_counter __wseq;
+ __atomic_wide_counter __g1_start;
+ unsigned int __g_refs[2] ;
+ unsigned int __g_size[2];
+ unsigned int __g1_orig_size;
+ unsigned int __wrefs;
+ unsigned int __g_signals[2];
+};
+
+
+#line 105 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+typedef unsigned int __tss_t;
+
+#line 106 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+typedef unsigned long int __thrd_t;
+
+
+#line 108 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+typedef struct
+{
+ int __data ;
+}
+#line 111 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+__once_flag;
+
+#line 112 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+
+
+
+typedef unsigned long int pthread_t;
+
+
+
+
+
+#line 32 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ char __size[4];
+ int __align;
+}
+#line 36 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_mutexattr_t;
+
+
+
+
+
+#line 41 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ char __size[4];
+ int __align;
+}
+#line 45 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_condattr_t;
+
+
+
+
+#line 49 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef unsigned int pthread_key_t;
+
+
+
+
+#line 53 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef int pthread_once_t;
+
+
+
+#line 56 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+union pthread_attr_t
+{
+ char __size[56];
+ long int __align;
+};
+
+
+#line 62 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union pthread_attr_t pthread_attr_t;
+
+
+
+
+
+#line 67 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ struct __pthread_mutex_s __data;
+ char __size[40];
+ long int __align;
+}
+#line 72 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_mutex_t;
+
+
+
+#line 75 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ struct __pthread_cond_s __data;
+ char __size[48];
+ __extension__ long long int __align;
+}
+#line 80 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_cond_t;
+
+
+
+
+
+
+#line 86 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ struct __pthread_rwlock_arch_t __data;
+ char __size[56];
+ long int __align;
+}
+#line 91 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_rwlock_t;
+
+
+#line 93 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ char __size[8];
+ long int __align;
+}
+#line 97 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_rwlockattr_t;
+
+
+
+
+
+
+#line 103 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef volatile int pthread_spinlock_t;
+
+
+
+
+
+#line 108 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ char __size[32];
+ long int __align;
+}
+#line 112 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_barrier_t;
+
+
+#line 114 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ char __size[4];
+ int __align;
+}
+#line 118 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_barrierattr_t;
+
+#line 119 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+
+
+
+
+
+
+
+
+
+extern long int random (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 405 "/usr/include/stdlib.h"
+extern void srandom (unsigned int __seed) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+#line 411 "/usr/include/stdlib.h"
+extern char *initstate (unsigned int __seed, char *__statebuf,
+ size_t __statelen) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+
+
+#line 416 "/usr/include/stdlib.h"
+extern char *setstate (char *__statebuf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+
+#line 424 "/usr/include/stdlib.h"
+struct random_data
+ {
+ int32_t *fptr;
+ int32_t *rptr;
+ int32_t *state;
+ int rand_type;
+ int rand_deg;
+ int rand_sep;
+ int32_t *end_ptr;
+ };
+
+
+#line 435 "/usr/include/stdlib.h"
+extern int random_r (struct random_data *__restrict __buf,
+ int32_t *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 438 "/usr/include/stdlib.h"
+extern int srandom_r (unsigned int __seed, struct random_data *__buf)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+#line 441 "/usr/include/stdlib.h"
+extern int initstate_r (unsigned int __seed, char *__restrict __statebuf,
+ size_t __statelen,
+ struct random_data *__restrict __buf)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 4)));
+
+
+#line 446 "/usr/include/stdlib.h"
+extern int setstate_r (char *__restrict __statebuf,
+ struct random_data *__restrict __buf)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+
+#line 454 "/usr/include/stdlib.h"
+extern int rand (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+#line 456 "/usr/include/stdlib.h"
+extern void srand (unsigned int __seed) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 460 "/usr/include/stdlib.h"
+extern int rand_r (unsigned int *__seed) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+
+#line 468 "/usr/include/stdlib.h"
+extern double drand48 (void) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 469 "/usr/include/stdlib.h"
+extern double erand48 (unsigned short int __xsubi[3]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+#line 472 "/usr/include/stdlib.h"
+extern long int lrand48 (void) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 473 "/usr/include/stdlib.h"
+extern long int nrand48 (unsigned short int __xsubi[3])
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+#line 477 "/usr/include/stdlib.h"
+extern long int mrand48 (void) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 478 "/usr/include/stdlib.h"
+extern long int jrand48 (unsigned short int __xsubi[3])
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+#line 482 "/usr/include/stdlib.h"
+extern void srand48 (long int __seedval) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 483 "/usr/include/stdlib.h"
+extern unsigned short int *seed48 (unsigned short int __seed16v[3])
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 485 "/usr/include/stdlib.h"
+extern void lcong48 (unsigned short int __param[7]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+#line 491 "/usr/include/stdlib.h"
+struct drand48_data
+ {
+ unsigned short int __x[3];
+ unsigned short int __old_x[3];
+ unsigned short int __c;
+ unsigned short int __init;
+ __extension__ unsigned long long int __a;
+
+ };
+
+
+
+#line 502 "/usr/include/stdlib.h"
+extern int drand48_r (struct drand48_data *__restrict __buffer,
+ double *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 504 "/usr/include/stdlib.h"
+extern int erand48_r (unsigned short int __xsubi[3],
+ struct drand48_data *__restrict __buffer,
+ double *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 509 "/usr/include/stdlib.h"
+extern int lrand48_r (struct drand48_data *__restrict __buffer,
+ long int *__restrict __result)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 512 "/usr/include/stdlib.h"
+extern int nrand48_r (unsigned short int __xsubi[3],
+ struct drand48_data *__restrict __buffer,
+ long int *__restrict __result)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 518 "/usr/include/stdlib.h"
+extern int mrand48_r (struct drand48_data *__restrict __buffer,
+ long int *__restrict __result)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 521 "/usr/include/stdlib.h"
+extern int jrand48_r (unsigned short int __xsubi[3],
+ struct drand48_data *__restrict __buffer,
+ long int *__restrict __result)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 527 "/usr/include/stdlib.h"
+extern int srand48_r (long int __seedval, struct drand48_data *__buffer)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+#line 530 "/usr/include/stdlib.h"
+extern int seed48_r (unsigned short int __seed16v[3],
+ struct drand48_data *__buffer) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 533 "/usr/include/stdlib.h"
+extern int lcong48_r (unsigned short int __param[7],
+ struct drand48_data *__buffer)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 538 "/usr/include/stdlib.h"
+extern __uint32_t arc4random (void)
+ __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+#line 542 "/usr/include/stdlib.h"
+extern void arc4random_buf (void *__buf, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+#line 547 "/usr/include/stdlib.h"
+extern __uint32_t arc4random_uniform (__uint32_t __upper_bound)
+ __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+#line 553 "/usr/include/stdlib.h"
+extern void *malloc (size_t __size) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__))
+ __attribute__ ((__alloc_size__ (1))) ;
+
+
+#line 556 "/usr/include/stdlib.h"
+extern void *calloc (size_t __nmemb, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__alloc_size__ (1, 2))) ;
+
+
+
+
+
+
+
+#line 564 "/usr/include/stdlib.h"
+extern void *realloc (void *__ptr, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)) __attribute__ ((__alloc_size__ (2)));
+
+
+
+#line 568 "/usr/include/stdlib.h"
+extern void free (void *__ptr) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+
+#line 576 "/usr/include/stdlib.h"
+extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__))
+ __attribute__ ((__alloc_size__ (2, 3)))
+ __attribute__ ((__malloc__ (__builtin_free, 1)));
+
+
+
+#line 582 "/usr/include/stdlib.h"
+extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__ (reallocarray, 1)));
+
+
+
+
+#line 587 "/usr/include/stdlib.h"
+
+
+
+
+
+
+
+extern void *alloca (size_t __size) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+#line 39 "/usr/include/alloca.h"
+
+
+
+
+
+extern void *valloc (size_t __size) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__))
+ __attribute__ ((__alloc_size__ (1))) ;
+
+
+
+
+
+#line 599 "/usr/include/stdlib.h"
+extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+
+#line 605 "/usr/include/stdlib.h"
+extern void *aligned_alloc (size_t __alignment, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__alloc_align__ (1)))
+ __attribute__ ((__alloc_size__ (2))) ;
+
+
+
+
+#line 611 "/usr/include/stdlib.h"
+extern void abort (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+#line 615 "/usr/include/stdlib.h"
+extern int atexit (void (*__func) (void)) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+
+#line 623 "/usr/include/stdlib.h"
+extern int at_quick_exit (void (*__func) (void)) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+#line 630 "/usr/include/stdlib.h"
+extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+#line 637 "/usr/include/stdlib.h"
+extern void exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+
+
+#line 643 "/usr/include/stdlib.h"
+extern void quick_exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+
+
+#line 649 "/usr/include/stdlib.h"
+extern void _Exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+
+#line 654 "/usr/include/stdlib.h"
+extern char *getenv (const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+#line 655 "/usr/include/stdlib.h"
+extern int putenv (char *__string) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+#line 673 "/usr/include/stdlib.h"
+extern int setenv (const char *__name, const char *__value, int __replace)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+
+#line 677 "/usr/include/stdlib.h"
+extern int unsetenv (const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+#line 684 "/usr/include/stdlib.h"
+extern int clearenv (void) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 685 "/usr/include/stdlib.h"
+extern char *mktemp (char *__template) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 696 "/usr/include/stdlib.h"
+extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) ;
+
+#line 709 "/usr/include/stdlib.h"
+extern int mkstemps (char *__template, int __suffixlen) __attribute__ ((__nonnull__ (1))) ;
+
+#line 731 "/usr/include/stdlib.h"
+extern char *mkdtemp (char *__template) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+#line 752 "/usr/include/stdlib.h"
+extern int system (const char *__command) ;
+
+#line 805 "/usr/include/stdlib.h"
+extern char *realpath (const char *__restrict __name,
+ char *__restrict __resolved) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+
+
+#line 829 "/usr/include/stdlib.h"
+typedef int (*__compar_fn_t) (const void *, const void *);
+
+#line 830 "/usr/include/stdlib.h"
+extern void *bsearch (const void *__key, const void *__base,
+ size_t __nmemb, size_t __size, __compar_fn_t __compar)
+ __attribute__ ((__nonnull__ (1, 2, 5))) ;
+
+
+
+#line 846 "/usr/include/stdlib.h"
+extern __inline __attribute__ ((__gnu_inline__)) void *
+bsearch (const void *__key, const void *__base, size_t __nmemb, size_t __size,
+ __compar_fn_t __compar)
+{
+ size_t __l, __u, __idx;
+ const void *__p;
+ int __comparison;
+
+ __l = 0;
+ __u = __nmemb;
+ while (__l < __u)
+ {
+ __idx = (__l + __u) / 2;
+ __p = (const void *) (((const char *) __base) + (__idx * __size));
+ __comparison = (*__compar) (__key, __p);
+ if (__comparison < 0)
+ __u = __idx;
+ else if (__comparison > 0)
+ __l = __idx + 1;
+ else
+ {
+
+
+ return (void *) __p;
+
+
+ }
+ }
+
+ return ((void *)0);
+}
+
+#line 29 "-Wcast-qual"
+
+
+
+
+extern void qsort (void *__base, size_t __nmemb, size_t __size,
+ __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4)));
+
+#line 853 "/usr/include/stdlib.h"
+extern int abs (int __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+#line 862 "/usr/include/stdlib.h"
+extern long int labs (long int __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+
+
+#line 865 "/usr/include/stdlib.h"
+__extension__ extern long long int llabs (long long int __x)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+
+
+
+
+
+
+#line 873 "/usr/include/stdlib.h"
+extern div_t div (int __numer, int __denom)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+#line 875 "/usr/include/stdlib.h"
+extern ldiv_t ldiv (long int __numer, long int __denom)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+
+
+#line 879 "/usr/include/stdlib.h"
+__extension__ extern lldiv_t lldiv (long long int __numer,
+ long long int __denom)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+#line 882 "/usr/include/stdlib.h"
+extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt,
+ int *__restrict __sign) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ;
+
+
+
+
+
+#line 899 "/usr/include/stdlib.h"
+extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt,
+ int *__restrict __sign) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ;
+
+
+
+
+
+#line 905 "/usr/include/stdlib.h"
+extern char *gcvt (double __value, int __ndigit, char *__buf)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3))) ;
+
+
+
+
+
+#line 911 "/usr/include/stdlib.h"
+extern char *qecvt (long double __value, int __ndigit,
+ int *__restrict __decpt, int *__restrict __sign)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ;
+
+#line 914 "/usr/include/stdlib.h"
+extern char *qfcvt (long double __value, int __ndigit,
+ int *__restrict __decpt, int *__restrict __sign)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ;
+
+#line 917 "/usr/include/stdlib.h"
+extern char *qgcvt (long double __value, int __ndigit, char *__buf)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3))) ;
+
+
+
+
+
+#line 923 "/usr/include/stdlib.h"
+extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt,
+ int *__restrict __sign, char *__restrict __buf,
+ size_t __len) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
+
+#line 926 "/usr/include/stdlib.h"
+extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt,
+ int *__restrict __sign, char *__restrict __buf,
+ size_t __len) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
+
+
+#line 930 "/usr/include/stdlib.h"
+extern int qecvt_r (long double __value, int __ndigit,
+ int *__restrict __decpt, int *__restrict __sign,
+ char *__restrict __buf, size_t __len)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
+
+#line 934 "/usr/include/stdlib.h"
+extern int qfcvt_r (long double __value, int __ndigit,
+ int *__restrict __decpt, int *__restrict __sign,
+ char *__restrict __buf, size_t __len)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
+
+
+
+
+
+
+#line 943 "/usr/include/stdlib.h"
+extern int mblen (const char *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 946 "/usr/include/stdlib.h"
+extern int mbtowc (wchar_t *__restrict __pwc,
+ const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 950 "/usr/include/stdlib.h"
+extern int wctomb (char *__s, wchar_t __wchar) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 954 "/usr/include/stdlib.h"
+extern size_t mbstowcs (wchar_t *__restrict __pwcs,
+ const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__access__ (__read_only__, 2)));
+
+
+#line 958 "/usr/include/stdlib.h"
+extern size_t wcstombs (char *__restrict __s,
+ const wchar_t *__restrict __pwcs, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__access__ (__write_only__, 1, 3)))
+ __attribute__ ((__access__ (__read_only__, 2)));
+
+
+
+
+
+
+
+#line 969 "/usr/include/stdlib.h"
+extern int rpmatch (const char *__response) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+#line 970 "/usr/include/stdlib.h"
+extern int getsubopt (char **__restrict __optionp,
+ char *const *__restrict __tokens,
+ char **__restrict __valuep)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2, 3))) ;
+
+#line 984 "/usr/include/stdlib.h"
+extern int getloadavg (double __loadavg[], int __nelem)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 1028 "/usr/include/stdlib.h"
+extern __inline __attribute__ ((__gnu_inline__)) double
+__attribute__ ((__nothrow__ , __leaf__)) atof (const char *__nptr)
+{
+ return strtod (__nptr, (char **) ((void *)0));
+}
+
+#line 29 "/usr/include/x86_64-linux-gnu/bits/stdlib-float.h"
+
+
+enum
+{
+ _ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)),
+ _ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)),
+ _ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)),
+ _ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)),
+ _ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)),
+ _ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)),
+ _ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)),
+ _ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)),
+ _ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)),
+ _IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)),
+ _ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)),
+ _ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8))
+};
+
+#line 61 "/usr/include/ctype.h"
+extern const unsigned short int **__ctype_b_loc (void)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+#line 81 "/usr/include/ctype.h"
+extern const __int32_t **__ctype_tolower_loc (void)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+#line 83 "/usr/include/ctype.h"
+extern const __int32_t **__ctype_toupper_loc (void)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+#line 85 "/usr/include/ctype.h"
+extern int isalnum (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 109 "/usr/include/ctype.h"
+extern int isalpha (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 110 "/usr/include/ctype.h"
+extern int iscntrl (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 111 "/usr/include/ctype.h"
+extern int isdigit (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 112 "/usr/include/ctype.h"
+extern int islower (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 113 "/usr/include/ctype.h"
+extern int isgraph (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 114 "/usr/include/ctype.h"
+extern int isprint (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 115 "/usr/include/ctype.h"
+extern int ispunct (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 116 "/usr/include/ctype.h"
+extern int isspace (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 117 "/usr/include/ctype.h"
+extern int isupper (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 118 "/usr/include/ctype.h"
+extern int isxdigit (int) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 122 "/usr/include/ctype.h"
+extern int tolower (int __c) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 125 "/usr/include/ctype.h"
+extern int toupper (int __c) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+#line 130 "/usr/include/ctype.h"
+extern int isblank (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 131 "/usr/include/ctype.h"
+extern int isascii (int __c) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 146 "/usr/include/ctype.h"
+extern int toascii (int __c) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 150 "/usr/include/ctype.h"
+extern int _toupper (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 151 "/usr/include/ctype.h"
+extern int _tolower (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 152 "/usr/include/ctype.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+__attribute__ ((__nothrow__ , __leaf__)) tolower (int __c)
+{
+ return __c >= -128 && __c < 256 ? (*__ctype_tolower_loc ())[__c] : __c;
+}
+
+
+#line 212 "/usr/include/ctype.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+__attribute__ ((__nothrow__ , __leaf__)) toupper (int __c)
+{
+ return __c >= -128 && __c < 256 ? (*__ctype_toupper_loc ())[__c] : __c;
+}
+
+#line 217 "/usr/include/ctype.h"
+struct __locale_struct
+{
+
+ struct __locale_data *__locales[13];
+
+
+ const unsigned short int *__ctype_b;
+ const int *__ctype_tolower;
+ const int *__ctype_toupper;
+
+
+ const char *__names[13];
+};
+
+
+#line 41 "/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h"
+typedef struct __locale_struct *__locale_t;
+
+#line 42 "/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h"
+
+typedef __locale_t locale_t;
+
+#line 25 "/usr/include/x86_64-linux-gnu/bits/types/locale_t.h"
+extern int isalnum_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 252 "/usr/include/ctype.h"
+extern int isalpha_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 253 "/usr/include/ctype.h"
+extern int iscntrl_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 254 "/usr/include/ctype.h"
+extern int isdigit_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 255 "/usr/include/ctype.h"
+extern int islower_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 256 "/usr/include/ctype.h"
+extern int isgraph_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 257 "/usr/include/ctype.h"
+extern int isprint_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 258 "/usr/include/ctype.h"
+extern int ispunct_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 259 "/usr/include/ctype.h"
+extern int isspace_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 260 "/usr/include/ctype.h"
+extern int isupper_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 261 "/usr/include/ctype.h"
+extern int isxdigit_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+
+#line 263 "/usr/include/ctype.h"
+extern int isblank_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 267 "/usr/include/ctype.h"
+extern int __tolower_l (int __c, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 268 "/usr/include/ctype.h"
+extern int tolower_l (int __c, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 271 "/usr/include/ctype.h"
+extern int __toupper_l (int __c, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 272 "/usr/include/ctype.h"
+extern int toupper_l (int __c, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 273 "/usr/include/ctype.h"
+
+
+
+
+
+
+
+extern void *memcpy (void *__restrict __dest, const void *__restrict __src,
+ size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 47 "/usr/include/string.h"
+extern void *memmove (void *__dest, const void *__src, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+
+#line 54 "/usr/include/string.h"
+extern void *memccpy (void *__restrict __dest, const void *__restrict __src,
+ int __c, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__access__ (__write_only__, 1, 4)));
+
+
+
+
+
+#line 61 "/usr/include/string.h"
+extern void *memset (void *__s, int __c, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+#line 64 "/usr/include/string.h"
+extern int memcmp (const void *__s1, const void *__s2, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 66 "/usr/include/string.h"
+extern int __memcmpeq (const void *__s1, const void *__s2, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 82 "/usr/include/string.h"
+extern void *memchr (const void *__s, int __c, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+#line 109 "/usr/include/string.h"
+extern char *strcpy (char *__restrict __dest, const char *__restrict __src)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 144 "/usr/include/string.h"
+extern char *strncpy (char *__restrict __dest,
+ const char *__restrict __src, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 149 "/usr/include/string.h"
+extern char *strcat (char *__restrict __dest, const char *__restrict __src)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 152 "/usr/include/string.h"
+extern char *strncat (char *__restrict __dest, const char *__restrict __src,
+ size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 156 "/usr/include/string.h"
+extern int strcmp (const char *__s1, const char *__s2)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 159 "/usr/include/string.h"
+extern int strncmp (const char *__s1, const char *__s2, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 163 "/usr/include/string.h"
+extern int strcoll (const char *__s1, const char *__s2)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 166 "/usr/include/string.h"
+extern size_t strxfrm (char *__restrict __dest,
+ const char *__restrict __src, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))) __attribute__ ((__access__ (__write_only__, 1, 3)));
+
+
+
+
+
+
+
+#line 175 "/usr/include/string.h"
+extern int strcoll_l (const char *__s1, const char *__s2, locale_t __l)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));
+
+
+
+#line 179 "/usr/include/string.h"
+extern size_t strxfrm_l (char *__dest, const char *__src, size_t __n,
+ locale_t __l) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 4)))
+ __attribute__ ((__access__ (__write_only__, 1, 3)));
+
+
+
+
+
+
+#line 187 "/usr/include/string.h"
+extern char *strdup (const char *__s)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+#line 195 "/usr/include/string.h"
+extern char *strndup (const char *__string, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
+
+#line 197 "/usr/include/string.h"
+extern char *strchr (const char *__s, int __c)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+#line 248 "/usr/include/string.h"
+extern char *strrchr (const char *__s, int __c)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+#line 275 "/usr/include/string.h"
+extern size_t strcspn (const char *__s, const char *__reject)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 297 "/usr/include/string.h"
+extern size_t strspn (const char *__s, const char *__accept)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 299 "/usr/include/string.h"
+extern char *strpbrk (const char *__s, const char *__accept)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 325 "/usr/include/string.h"
+extern char *strstr (const char *__haystack, const char *__needle)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+#line 356 "/usr/include/string.h"
+extern char *strtok (char *__restrict __s, const char *__restrict __delim)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+
+
+#line 361 "/usr/include/string.h"
+extern char *__strtok_r (char *__restrict __s,
+ const char *__restrict __delim,
+ char **__restrict __save_ptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3)));
+
+
+#line 366 "/usr/include/string.h"
+extern char *strtok_r (char *__restrict __s, const char *__restrict __delim,
+ char **__restrict __save_ptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3)));
+
+#line 369 "/usr/include/string.h"
+extern size_t strlen (const char *__s)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+#line 413 "/usr/include/string.h"
+extern size_t strnlen (const char *__string, size_t __maxlen)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+#line 419 "/usr/include/string.h"
+extern char *strerror (int __errnum) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 420 "/usr/include/string.h"
+extern int strerror_r (int __errnum, char *__buf, size_t __buflen) __asm__ ("" "__xpg_strerror_r") __attribute__ ((__nothrow__ , __leaf__))
+
+ __attribute__ ((__nonnull__ (2)))
+ __attribute__ ((__access__ (__write_only__, 2, 3)));
+
+#line 436 "/usr/include/string.h"
+extern char *strerror_l (int __errnum, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 462 "/usr/include/string.h"
+
+
+
+
+
+
+
+
+
+
+extern int bcmp (const void *__s1, const void *__s2, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 38 "/usr/include/strings.h"
+extern void bcopy (const void *__src, void *__dest, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 42 "/usr/include/strings.h"
+extern void bzero (void *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 43 "/usr/include/strings.h"
+extern char *index (const char *__s, int __c)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+#line 70 "/usr/include/strings.h"
+extern char *rindex (const char *__s, int __c)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+#line 104 "/usr/include/strings.h"
+extern int ffs (int __i) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+
+
+
+
+
+#line 110 "/usr/include/strings.h"
+extern int ffsl (long int __l) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+#line 111 "/usr/include/strings.h"
+__extension__ extern int ffsll (long long int __ll)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+
+
+
+#line 116 "/usr/include/strings.h"
+extern int strcasecmp (const char *__s1, const char *__s2)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 120 "/usr/include/strings.h"
+extern int strncasecmp (const char *__s1, const char *__s2, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+
+
+#line 128 "/usr/include/strings.h"
+extern int strcasecmp_l (const char *__s1, const char *__s2, locale_t __loc)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));
+
+
+
+
+#line 133 "/usr/include/strings.h"
+extern int strncasecmp_l (const char *__s1, const char *__s2,
+ size_t __n, locale_t __loc)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 4)));
+
+
+
+
+#line 139 "/usr/include/strings.h"
+
+
+
+extern void explicit_bzero (void *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)))
+ __attribute__ ((__access__ (__write_only__, 1, 2)));
+
+
+
+
+#line 471 "/usr/include/string.h"
+extern char *strsep (char **__restrict __stringp,
+ const char *__restrict __delim)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+#line 478 "/usr/include/string.h"
+extern char *strsignal (int __sig) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 479 "/usr/include/string.h"
+extern char *__stpcpy (char *__restrict __dest, const char *__restrict __src)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 491 "/usr/include/string.h"
+extern char *stpcpy (char *__restrict __dest, const char *__restrict __src)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+#line 496 "/usr/include/string.h"
+extern char *__stpncpy (char *__restrict __dest,
+ const char *__restrict __src, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 499 "/usr/include/string.h"
+extern char *stpncpy (char *__restrict __dest,
+ const char *__restrict __src, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 502 "/usr/include/string.h"
+
+
+
+
+
+
+
+
+typedef __builtin_va_list __gnuc_va_list;
+
+#line 41 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stdarg.h"
+
+
+
+
+
+
+typedef struct
+{
+ int __count;
+ union
+ {
+ unsigned int __wch;
+ char __wchb[4];
+ } __value;
+}
+#line 21 "/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h"
+__mbstate_t;
+
+#line 22 "/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h"
+
+
+
+
+typedef struct _G_fpos_t
+{
+ __off_t __pos;
+ __mbstate_t __state;
+}
+#line 14 "/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h"
+__fpos_t;
+
+#line 15 "/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h"
+typedef struct _G_fpos64_t
+{
+ __off64_t __pos;
+ __mbstate_t __state;
+}
+#line 14 "/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h"
+__fpos64_t;
+
+#line 15 "/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h"
+
+
+
+struct _IO_FILE;
+
+#line 5 "/usr/include/x86_64-linux-gnu/bits/types/__FILE.h"
+typedef struct _IO_FILE __FILE;
+
+#line 6 "/usr/include/x86_64-linux-gnu/bits/types/__FILE.h"
+
+
+
+struct _IO_FILE;
+
+
+
+#line 7 "/usr/include/x86_64-linux-gnu/bits/types/FILE.h"
+typedef struct _IO_FILE FILE;
+
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/FILE.h"
+struct _IO_FILE;
+
+#line 36 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+struct _IO_marker;
+
+#line 37 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+struct _IO_codecvt;
+
+#line 38 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+struct _IO_wide_data;
+
+
+
+
+
+#line 43 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+typedef void _IO_lock_t;
+
+
+
+
+
+
+#line 49 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+struct _IO_FILE
+{
+ int _flags;
+
+
+ char *_IO_read_ptr;
+ char *_IO_read_end;
+ char *_IO_read_base;
+ char *_IO_write_base;
+ char *_IO_write_ptr;
+ char *_IO_write_end;
+ char *_IO_buf_base;
+ char *_IO_buf_end;
+
+
+ char *_IO_save_base;
+ char *_IO_backup_base;
+ char *_IO_save_end;
+
+ struct _IO_marker *_markers;
+
+ struct _IO_FILE *_chain;
+
+ int _fileno;
+ int _flags2;
+ __off_t _old_offset;
+
+
+ unsigned short _cur_column;
+ signed char _vtable_offset;
+ char _shortbuf[1];
+
+ _IO_lock_t *_lock;
+
+
+
+
+
+
+
+ __off64_t _offset;
+
+ struct _IO_codecvt *_codecvt;
+ struct _IO_wide_data *_wide_data;
+ struct _IO_FILE *_freeres_list;
+ void *_freeres_buf;
+ size_t __pad5;
+ int _mode;
+
+ char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)];
+};
+
+#line 100 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+typedef __gnuc_va_list va_list;
+
+#line 53 "/usr/include/stdio.h"
+typedef __fpos_t fpos_t;
+
+#line 85 "/usr/include/stdio.h"
+extern FILE *stdin;
+
+#line 144 "/usr/include/stdio.h"
+extern FILE *stdout;
+
+#line 145 "/usr/include/stdio.h"
+extern FILE *stderr;
+
+
+
+
+
+
+
+#line 152 "/usr/include/stdio.h"
+extern int remove (const char *__filename) __attribute__ ((__nothrow__ , __leaf__));
+
+
+#line 154 "/usr/include/stdio.h"
+extern int rename (const char *__old, const char *__new) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 158 "/usr/include/stdio.h"
+extern int renameat (int __oldfd, const char *__old, int __newfd,
+ const char *__new) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 160 "/usr/include/stdio.h"
+extern int fclose (FILE *__stream);
+
+#line 179 "/usr/include/stdio.h"
+extern FILE *tmpfile (void)
+ __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ;
+
+#line 190 "/usr/include/stdio.h"
+extern char *tmpnam (char[20]) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+#line 210 "/usr/include/stdio.h"
+extern char *tmpnam_r (char __s[20]) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+#line 211 "/usr/include/stdio.h"
+extern char *tempnam (const char *__dir, const char *__pfx)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (__builtin_free, 1)));
+
+
+
+
+
+
+
+#line 230 "/usr/include/stdio.h"
+extern int fflush (FILE *__stream);
+
+#line 231 "/usr/include/stdio.h"
+extern int fflush_unlocked (FILE *__stream);
+
+#line 240 "/usr/include/stdio.h"
+extern FILE *fopen (const char *__restrict __filename,
+ const char *__restrict __modes)
+ __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ;
+
+
+
+
+
+#line 265 "/usr/include/stdio.h"
+extern FILE *freopen (const char *__restrict __filename,
+ const char *__restrict __modes,
+ FILE *__restrict __stream) ;
+
+#line 268 "/usr/include/stdio.h"
+extern FILE *fdopen (int __fd, const char *__modes) __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ;
+
+#line 295 "/usr/include/stdio.h"
+extern FILE *fmemopen (void *__s, size_t __len, const char *__modes)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ;
+
+
+
+
+
+#line 314 "/usr/include/stdio.h"
+extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ;
+
+#line 316 "/usr/include/stdio.h"
+extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 332 "/usr/include/stdio.h"
+extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf,
+ int __modes, size_t __n) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+#line 338 "/usr/include/stdio.h"
+extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf,
+ size_t __size) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 342 "/usr/include/stdio.h"
+extern void setlinebuf (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+
+#line 350 "/usr/include/stdio.h"
+extern int fprintf (FILE *__restrict __stream,
+ const char *__restrict __format, ...);
+
+
+
+
+
+#line 356 "/usr/include/stdio.h"
+extern int printf (const char *__restrict __format, ...);
+
+
+#line 358 "/usr/include/stdio.h"
+extern int sprintf (char *__restrict __s,
+ const char *__restrict __format, ...) __attribute__ ((__nothrow__));
+
+
+
+
+
+
+#line 365 "/usr/include/stdio.h"
+extern int vfprintf (FILE *__restrict __s, const char *__restrict __format,
+ __gnuc_va_list __arg);
+
+
+
+
+
+#line 371 "/usr/include/stdio.h"
+extern int vprintf (const char *__restrict __format, __gnuc_va_list __arg);
+
+
+#line 373 "/usr/include/stdio.h"
+extern int vsprintf (char *__restrict __s, const char *__restrict __format,
+ __gnuc_va_list __arg) __attribute__ ((__nothrow__));
+
+
+
+
+#line 378 "/usr/include/stdio.h"
+extern int snprintf (char *__restrict __s, size_t __maxlen,
+ const char *__restrict __format, ...)
+ __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 4)));
+
+
+#line 382 "/usr/include/stdio.h"
+extern int vsnprintf (char *__restrict __s, size_t __maxlen,
+ const char *__restrict __format, __gnuc_va_list __arg)
+ __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 0)));
+
+#line 385 "/usr/include/stdio.h"
+extern int vdprintf (int __fd, const char *__restrict __fmt,
+ __gnuc_va_list __arg)
+ __attribute__ ((__format__ (__printf__, 2, 0)));
+
+#line 406 "/usr/include/stdio.h"
+extern int dprintf (int __fd, const char *__restrict __fmt, ...)
+ __attribute__ ((__format__ (__printf__, 2, 3)));
+
+
+
+
+
+
+
+
+#line 415 "/usr/include/stdio.h"
+extern int fscanf (FILE *__restrict __stream,
+ const char *__restrict __format, ...) ;
+
+
+
+
+
+#line 421 "/usr/include/stdio.h"
+extern int scanf (const char *__restrict __format, ...) ;
+
+
+#line 423 "/usr/include/stdio.h"
+extern int sscanf (const char *__restrict __s,
+ const char *__restrict __format, ...) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 425 "/usr/include/stdio.h"
+extern int fscanf (FILE *__restrict __stream, const char *__restrict __format, ...) __asm__ ("" "__isoc99_fscanf")
+
+ ;
+
+#line 437 "/usr/include/stdio.h"
+extern int scanf (const char *__restrict __format, ...) __asm__ ("" "__isoc99_scanf")
+ ;
+
+#line 439 "/usr/include/stdio.h"
+extern int sscanf (const char *__restrict __s, const char *__restrict __format, ...) __asm__ ("" "__isoc99_sscanf") __attribute__ ((__nothrow__ , __leaf__))
+
+ ;
+
+#line 442 "/usr/include/stdio.h"
+extern int vfscanf (FILE *__restrict __s, const char *__restrict __format,
+ __gnuc_va_list __arg)
+ __attribute__ ((__format__ (__scanf__, 2, 0))) ;
+
+
+
+
+
+
+#line 467 "/usr/include/stdio.h"
+extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg)
+ __attribute__ ((__format__ (__scanf__, 1, 0))) ;
+
+
+
+#line 471 "/usr/include/stdio.h"
+extern int vsscanf (const char *__restrict __s,
+ const char *__restrict __format, __gnuc_va_list __arg)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__format__ (__scanf__, 2, 0)));
+
+
+
+
+
+
+#line 479 "/usr/include/stdio.h"
+extern int vfscanf (FILE *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vfscanf")
+
+
+
+ __attribute__ ((__format__ (__scanf__, 2, 0))) ;
+
+#line 484 "/usr/include/stdio.h"
+extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vscanf")
+
+ __attribute__ ((__format__ (__scanf__, 1, 0))) ;
+
+#line 487 "/usr/include/stdio.h"
+extern int vsscanf (const char *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vsscanf") __attribute__ ((__nothrow__ , __leaf__))
+
+
+
+ __attribute__ ((__format__ (__scanf__, 2, 0)));
+
+#line 492 "/usr/include/stdio.h"
+extern int fgetc (FILE *__stream);
+
+#line 514 "/usr/include/stdio.h"
+extern int getc (FILE *__stream);
+
+
+
+
+
+
+#line 520 "/usr/include/stdio.h"
+extern int getchar (void);
+
+
+
+
+
+
+
+#line 527 "/usr/include/stdio.h"
+extern int getc_unlocked (FILE *__stream);
+
+#line 528 "/usr/include/stdio.h"
+extern int getchar_unlocked (void);
+
+#line 529 "/usr/include/stdio.h"
+extern int fgetc_unlocked (FILE *__stream);
+
+#line 539 "/usr/include/stdio.h"
+extern int fputc (int __c, FILE *__stream);
+
+#line 550 "/usr/include/stdio.h"
+extern int putc (int __c, FILE *__stream);
+
+
+
+
+
+
+#line 556 "/usr/include/stdio.h"
+extern int putchar (int __c);
+
+#line 557 "/usr/include/stdio.h"
+extern int fputc_unlocked (int __c, FILE *__stream);
+
+
+
+
+
+
+
+
+#line 573 "/usr/include/stdio.h"
+extern int putc_unlocked (int __c, FILE *__stream);
+
+#line 574 "/usr/include/stdio.h"
+extern int putchar_unlocked (int __c);
+
+
+
+
+
+
+
+#line 581 "/usr/include/stdio.h"
+extern int getw (FILE *__stream);
+
+
+
+#line 584 "/usr/include/stdio.h"
+extern int putw (int __w, FILE *__stream);
+
+
+
+
+
+
+
+
+#line 592 "/usr/include/stdio.h"
+extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream)
+ __attribute__ ((__access__ (__write_only__, 1, 2)));
+
+#line 594 "/usr/include/stdio.h"
+extern __ssize_t __getdelim (char **__restrict __lineptr,
+ size_t *__restrict __n, int __delimiter,
+ FILE *__restrict __stream) ;
+
+#line 635 "/usr/include/stdio.h"
+extern __ssize_t getdelim (char **__restrict __lineptr,
+ size_t *__restrict __n, int __delimiter,
+ FILE *__restrict __stream) ;
+
+
+
+
+
+
+
+
+#line 645 "/usr/include/stdio.h"
+extern __ssize_t getline (char **__restrict __lineptr,
+ size_t *__restrict __n,
+ FILE *__restrict __stream) ;
+
+
+
+
+
+
+
+
+#line 655 "/usr/include/stdio.h"
+extern int fputs (const char *__restrict __s, FILE *__restrict __stream);
+
+
+
+
+
+
+#line 661 "/usr/include/stdio.h"
+extern int puts (const char *__s);
+
+
+
+
+
+
+
+#line 668 "/usr/include/stdio.h"
+extern int ungetc (int __c, FILE *__stream);
+
+
+
+
+
+
+
+#line 675 "/usr/include/stdio.h"
+extern size_t fread (void *__restrict __ptr, size_t __size,
+ size_t __n, FILE *__restrict __stream) ;
+
+
+
+
+
+#line 681 "/usr/include/stdio.h"
+extern size_t fwrite (const void *__restrict __ptr, size_t __size,
+ size_t __n, FILE *__restrict __s);
+
+#line 683 "/usr/include/stdio.h"
+extern size_t fread_unlocked (void *__restrict __ptr, size_t __size,
+ size_t __n, FILE *__restrict __stream) ;
+
+#line 704 "/usr/include/stdio.h"
+extern size_t fwrite_unlocked (const void *__restrict __ptr, size_t __size,
+ size_t __n, FILE *__restrict __stream);
+
+
+
+
+
+
+
+
+#line 713 "/usr/include/stdio.h"
+extern int fseek (FILE *__stream, long int __off, int __whence);
+
+
+
+
+
+#line 718 "/usr/include/stdio.h"
+extern long int ftell (FILE *__stream) ;
+
+
+
+
+
+#line 723 "/usr/include/stdio.h"
+extern void rewind (FILE *__stream);
+
+#line 724 "/usr/include/stdio.h"
+extern int fseeko (FILE *__stream, __off_t __off, int __whence);
+
+
+
+
+
+#line 741 "/usr/include/stdio.h"
+extern __off_t ftello (FILE *__stream) ;
+
+#line 742 "/usr/include/stdio.h"
+extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos);
+
+
+
+
+
+#line 765 "/usr/include/stdio.h"
+extern int fsetpos (FILE *__stream, const fpos_t *__pos);
+
+#line 766 "/usr/include/stdio.h"
+extern void clearerr (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
+
+
+#line 788 "/usr/include/stdio.h"
+extern int feof (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+#line 790 "/usr/include/stdio.h"
+extern int ferror (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+#line 794 "/usr/include/stdio.h"
+extern void clearerr_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 795 "/usr/include/stdio.h"
+extern int feof_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+#line 796 "/usr/include/stdio.h"
+extern int ferror_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+
+
+
+#line 804 "/usr/include/stdio.h"
+extern void perror (const char *__s);
+
+
+
+
+
+#line 809 "/usr/include/stdio.h"
+extern int fileno (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+#line 814 "/usr/include/stdio.h"
+extern int fileno_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+#line 815 "/usr/include/stdio.h"
+extern int pclose (FILE *__stream);
+
+
+
+
+
+
+#line 829 "/usr/include/stdio.h"
+extern FILE *popen (const char *__command, const char *__modes)
+ __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (pclose, 1))) ;
+
+
+
+
+
+
+
+#line 837 "/usr/include/stdio.h"
+extern char *ctermid (char *__s) __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__access__ (__write_only__, 1)));
+
+#line 839 "/usr/include/stdio.h"
+extern void flockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 871 "/usr/include/stdio.h"
+extern int ftrylockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+#line 874 "/usr/include/stdio.h"
+extern void funlockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 875 "/usr/include/stdio.h"
+extern int __uflow (FILE *);
+
+#line 886 "/usr/include/stdio.h"
+extern int __overflow (FILE *, int);
+
+#line 887 "/usr/include/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+vprintf (const char *__restrict __fmt, __gnuc_va_list __arg)
+{
+ return vfprintf (stdout, __fmt, __arg);
+}
+
+
+
+
+#line 46 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+getchar (void)
+{
+ return getc (stdin);
+}
+
+
+
+
+
+#line 55 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+fgetc_unlocked (FILE *__fp)
+{
+ return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++);
+}
+
+
+
+
+
+
+#line 65 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+getc_unlocked (FILE *__fp)
+{
+ return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++);
+}
+
+
+
+#line 72 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+getchar_unlocked (void)
+{
+ return (__builtin_expect (((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end), 0) ? __uflow (stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++);
+}
+
+
+
+
+
+#line 81 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+putchar (int __c)
+{
+ return putc (__c, stdout);
+}
+
+
+
+
+
+#line 90 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+fputc_unlocked (int __c, FILE *__stream)
+{
+ return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
+}
+
+
+
+
+
+
+#line 100 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+putc_unlocked (int __c, FILE *__stream)
+{
+ return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
+}
+
+
+
+#line 107 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+putchar_unlocked (int __c)
+{
+ return (__builtin_expect (((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end), 0) ? __overflow (stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c)));
+}
+
+#line 112 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+__attribute__ ((__nothrow__ , __leaf__)) feof_unlocked (FILE *__stream)
+{
+ return (((__stream)->_flags & 0x0010) != 0);
+}
+
+
+
+#line 134 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+__attribute__ ((__nothrow__ , __leaf__)) ferror_unlocked (FILE *__stream)
+{
+ return (((__stream)->_flags & 0x0020) != 0);
+}
+
+#line 139 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+
+
+
+
+
+
+
+
+
+struct hashmap_other__other__comma_struct_other_uniq_other_string {
+ struct uniq_string **data;
+ size_t count;
+ size_t cap;
+};
+
+
+#line 139 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+
+
+
+
+
+
+
+
+
+struct hashmap_other__other__comma_struct_other_call {
+ struct call **data;
+ size_t count;
+ size_t cap;
+};
+
+
+#line 17 "gamma.h"
+uint32_t hashmap_other_hash_other__other__comma_struct_other_call(struct call *item);
+
+#line 17 "gamma.h"
+uint32_t hashmap_other_hash_other__other__comma_struct_other_uniq_other_string(struct uniq_string *item);
+
+#line 18 "gamma.h"
+int hashmap_other_eq_other__other__comma_struct_other_call(struct call *A, struct call *B);
+
+
+#line 18 "gamma.h"
+int hashmap_other_eq_other__other__comma_struct_other_uniq_other_string(struct uniq_string *A, struct uniq_string *B);
+
+
+#line 20 "gamma.h"
+struct uniq_string *hashmap_other_lookup_other__other__comma_struct_other_uniq_other_string(struct hashmap_other__other__comma_struct_other_uniq_other_string *hashmap, struct uniq_string *item);
+
+#line 21 "gamma.h"
+struct uniq_string *hashmap_other_lookup_other_weak_other__other__comma_struct_other_uniq_other_string(struct hashmap_other__other__comma_struct_other_uniq_other_string *hashmap, struct uniq_string *item);
+
+#line 21 "gamma.h"
+struct call *hashmap_other_lookup_other_weak_other__other__comma_struct_other_call(struct hashmap_other__other__comma_struct_other_call *hashmap, struct call *item);
+
+#line 22 "gamma.h"
+int hashmap_other_contains_other__other__comma_struct_other_call(struct hashmap_other__other__comma_struct_other_call *hashmap, struct call *item);
+
+#line 23 "gamma.h"
+void hashmap_other_insert_other__other__comma_struct_other_uniq_other_string(struct hashmap_other__other__comma_struct_other_uniq_other_string *hashmap, struct uniq_string *item);
+
+#line 23 "gamma.h"
+void hashmap_other_insert_other__other__comma_struct_other_call(struct hashmap_other__other__comma_struct_other_call *hashmap, struct call *item);
+
+#line 24 "gamma.h"
+struct uniq_string *heapify_other__other__comma_struct_other_uniq_other_string(struct uniq_string item);
+
+
+#line 26 "gamma.h"
+struct vector_other__other__comma_struct_other_call_other__star_ {
+ struct call * *data;
+ size_t count;
+ size_t cap;
+};
+
+#line 31 "gamma.h"
+uint32_t vector_other_push_other__other__comma_struct_other_call_other__star_(struct vector_other__other__comma_struct_other_call_other__star_ *vector, struct call * item);
+
+#line 32 "gamma.h"
+struct call * vector_other_pop_other__other__comma_struct_other_call_other__star_(struct vector_other__other__comma_struct_other_call_other__star_ *vector);
+
+#line 33 "gamma.h"
+struct vector_other__other__comma_struct_other_call_other__star_ *init_other_vector_other__other__comma_struct_other_call_other__star_();
+
+
+#line 35 "gamma.h"
+struct uniq_string {
+ char *string;
+ size_t len;
+
+ struct vector_other__other__comma_struct_other_call_other__star_ instantiations;
+
+ struct chunk *definitions;
+};
+
+
+#line 44 "gamma.h"
+struct arg {
+ char *start;
+ struct uniq_string *string;
+ int is_concrete;
+};
+
+
+#line 50 "gamma.h"
+struct call {
+ char *start;
+ char *end;
+ struct uniq_string *name;
+ struct arg *args;
+ size_t n_args;
+ struct call *next;
+};
+
+
+#line 59 "gamma.h"
+struct chunk {
+ char *start;
+ char *end;
+
+ char *line_filename;
+ size_t line;
+
+ struct call *defining_call;
+ struct call *calls;
+ struct chunk *next;
+ struct chunk *next_definition;
+};
+
+
+#line 72 "gamma.h"
+struct chunked_file {
+ char *contents;
+ char *end;
+ size_t id;
+ struct chunk *chunks;
+ struct chunked_file *next;
+};
+
+
+#line 80 "gamma.h"
+struct chunked_file *chunk(const char *path);
+
+#line 81 "gamma.h"
+struct uniq_string *lookup(char *string, size_t len);
+
+#line 82 "gamma.h"
+struct uniq_string *weak_lookup(char *string, size_t len);
+
+
+
+
+#line 86 "gamma.h"
+struct instantiation_set {
+ struct call **data;
+ size_t n;
+ size_t cap;
+};
+
+
+#line 92 "gamma.h"
+void parse_call(struct call *call);
+
+#line 93 "gamma.h"
+void print_state(struct chunked_file *file);
+
+#line 94 "gamma.h"
+void solve(struct chunked_file *files);
+
+#line 95 "gamma.h"
+void print_string(struct uniq_string *string);
+
+#line 96 "gamma.h"
+void print_call(struct call *call);
+
+#line 97 "gamma.h"
+void print_set(struct instantiation_set *set);
+
+#line 98 "gamma.h"
+void print_chunk(struct chunk *chunk, struct call *instantiation, FILE *out);
+
+#line 99 "gamma.h"
+struct call *replace_variables(struct call *container, struct call *container_instantiation, struct call *call);
+
+#line 100 "gamma.h"
+void fprint_string(FILE *out, struct uniq_string *string);
+
+#line 101 "gamma.h"
+char **read_fakeobj(char *path, char *c_dst);
+
+#line 102 "gamma.h"
+void write_fakeobj(char *src, char *dst, int i);
+
+#line 103 "gamma.h"
+void gamma_sendfile(int dst_fd, int src_fd);
+
+#line 104 "gamma.h"
+void copy_file(char *dst, char *src);
+
+
+#line 106 "gamma.h"
+extern char **ARGV;
+
+#line 107 "gamma.h"
+extern int ARGC;
+
+#line 108 "gamma.h"
+extern char *TMPDIR;
+
+#line 109 "gamma.h"
+extern int GAMMA_TO_C;
+
+#line 110 "gamma.h"
+
+uint32_t hashmap_other_hash_other__other__comma_struct_other_uniq_other_string(struct uniq_string *string) {
+ uint32_t h = 5381;
+ for (int i = 0; i < string->len; i++)
+ h += (h << 5) + (unsigned char)string->string[i];
+ return h;
+}
+
+
+#line 10 "hash_functions.c"
+int hashmap_other_eq_other__other__comma_struct_other_uniq_other_string(struct uniq_string *A, struct uniq_string *B) {
+ return A->len == B->len && !strncmp(A->string, B->string, A->len);
+}
+
+
+#line 14 "hash_functions.c"
+uint32_t hashmap_other_hash_other__other__comma_struct_other_call(struct call *call) {
+ size_t h = (size_t)call->name;
+ for (size_t i = 0; i < call->n_args; i++) {
+ h ^= (size_t)call->args[i].string;
+ h ^= (size_t)call->args[i].is_concrete;
+ }
+ return h;
+}
+
+
+#line 23 "hash_functions.c"
+int hashmap_other_eq_other__other__comma_struct_other_call(struct call *A, struct call *B) {
+ if (A->name != B->name) return 0;
+ if (A->n_args != B->n_args) return 0;
+ for (size_t i = 0; i < A->n_args; i++) {
+ if (A->args[i].string != B->args[i].string)
+ return 0;
+ if (A->args[i].is_concrete != B->args[i].is_concrete)
+ return 0;
+ }
+ return 1;
+}
+
+#line 34 "hash_functions.c"
diff --git a/c_version/15.c b/c_version/15.c
new file mode 100755
index 0000000..d8e7323
--- /dev/null
+++ b/c_version/15.c
@@ -0,0 +1,3447 @@
+
+#line 1 "/tmp/gamma.XksNqZ/15.unfake.c"
+
+
+
+
+
+
+extern void __assert_fail (const char *__assertion, const char *__file,
+ unsigned int __line, const char *__function)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+#line 74 "/usr/include/assert.h"
+extern void __assert_perror_fail (int __errnum, const char *__file,
+ unsigned int __line, const char *__function)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+
+#line 81 "/usr/include/assert.h"
+extern void __assert (const char *__assertion, const char *__file, int __line)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+#line 86 "/usr/include/assert.h"
+typedef long int ptrdiff_t;
+
+#line 146 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h"
+typedef long unsigned int size_t;
+
+#line 215 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h"
+typedef int wchar_t;
+
+#line 330 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h"
+typedef struct {
+ long long __max_align_ll __attribute__((__aligned__(__alignof__(long long))));
+ long double __max_align_ld __attribute__((__aligned__(__alignof__(long double))));
+}
+#line 435 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h"
+max_align_t;
+
+#line 436 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h"
+
+
+typedef unsigned char __u_char;
+
+#line 32 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned short int __u_short;
+
+#line 33 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __u_int;
+
+#line 34 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __u_long;
+
+
+
+#line 37 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef signed char __int8_t;
+
+#line 38 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned char __uint8_t;
+
+#line 39 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef signed short int __int16_t;
+
+#line 40 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned short int __uint16_t;
+
+#line 41 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef signed int __int32_t;
+
+#line 42 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __uint32_t;
+
+
+#line 44 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef signed long int __int64_t;
+
+#line 45 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __uint64_t;
+
+
+
+
+
+
+
+#line 52 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __int8_t __int_least8_t;
+
+#line 53 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __uint8_t __uint_least8_t;
+
+#line 54 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __int16_t __int_least16_t;
+
+#line 55 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __uint16_t __uint_least16_t;
+
+#line 56 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __int32_t __int_least32_t;
+
+#line 57 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __uint32_t __uint_least32_t;
+
+#line 58 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __int64_t __int_least64_t;
+
+#line 59 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __uint64_t __uint_least64_t;
+
+
+
+
+#line 63 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __quad_t;
+
+#line 64 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __u_quad_t;
+
+
+
+
+
+
+
+
+#line 72 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __intmax_t;
+
+#line 73 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __uintmax_t;
+
+#line 74 "/usr/include/x86_64-linux-gnu/bits/types.h"
+
+
+typedef unsigned long int __dev_t;
+
+#line 146 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __uid_t;
+
+#line 147 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __gid_t;
+
+#line 148 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __ino_t;
+
+#line 149 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __ino64_t;
+
+#line 150 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __mode_t;
+
+#line 151 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __nlink_t;
+
+#line 152 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __off_t;
+
+#line 153 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __off64_t;
+
+#line 154 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef int __pid_t;
+
+#line 155 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef struct { int __val[2]; }
+#line 155 "/usr/include/x86_64-linux-gnu/bits/types.h"
+__fsid_t;
+
+#line 156 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __clock_t;
+
+#line 157 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __rlim_t;
+
+#line 158 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __rlim64_t;
+
+#line 159 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __id_t;
+
+#line 160 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __time_t;
+
+#line 161 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __useconds_t;
+
+#line 162 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __suseconds_t;
+
+#line 163 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __suseconds64_t;
+
+
+#line 165 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef int __daddr_t;
+
+#line 166 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef int __key_t;
+
+
+
+#line 169 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef int __clockid_t;
+
+
+
+#line 172 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef void * __timer_t;
+
+
+
+#line 175 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __blksize_t;
+
+
+
+
+
+#line 180 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __blkcnt_t;
+
+#line 181 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __blkcnt64_t;
+
+
+
+#line 184 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __fsblkcnt_t;
+
+#line 185 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __fsblkcnt64_t;
+
+
+
+#line 188 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __fsfilcnt_t;
+
+#line 189 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __fsfilcnt64_t;
+
+
+
+#line 192 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __fsword_t;
+
+
+#line 194 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __ssize_t;
+
+
+
+#line 197 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __syscall_slong_t;
+
+
+#line 199 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __syscall_ulong_t;
+
+
+
+
+#line 203 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __off64_t __loff_t;
+
+#line 204 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef char *__caddr_t;
+
+
+
+#line 207 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __intptr_t;
+
+
+
+#line 210 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __socklen_t;
+
+
+
+
+
+#line 215 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef int __sig_atomic_t;
+
+#line 216 "/usr/include/x86_64-linux-gnu/bits/types.h"
+
+
+
+
+typedef __int8_t int8_t;
+
+#line 25 "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h"
+typedef __int16_t int16_t;
+
+#line 26 "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h"
+typedef __int32_t int32_t;
+
+#line 27 "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h"
+typedef __int64_t int64_t;
+
+#line 28 "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h"
+
+
+typedef __uint8_t uint8_t;
+
+#line 25 "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h"
+typedef __uint16_t uint16_t;
+
+#line 26 "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h"
+typedef __uint32_t uint32_t;
+
+#line 27 "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h"
+typedef __uint64_t uint64_t;
+
+#line 28 "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h"
+
+
+
+
+
+typedef __int_least8_t int_least8_t;
+
+#line 44 "/usr/include/stdint.h"
+typedef __int_least16_t int_least16_t;
+
+#line 45 "/usr/include/stdint.h"
+typedef __int_least32_t int_least32_t;
+
+#line 46 "/usr/include/stdint.h"
+typedef __int_least64_t int_least64_t;
+
+
+
+#line 49 "/usr/include/stdint.h"
+typedef __uint_least8_t uint_least8_t;
+
+#line 50 "/usr/include/stdint.h"
+typedef __uint_least16_t uint_least16_t;
+
+#line 51 "/usr/include/stdint.h"
+typedef __uint_least32_t uint_least32_t;
+
+#line 52 "/usr/include/stdint.h"
+typedef __uint_least64_t uint_least64_t;
+
+
+
+
+
+
+#line 58 "/usr/include/stdint.h"
+typedef signed char int_fast8_t;
+
+
+#line 60 "/usr/include/stdint.h"
+typedef long int int_fast16_t;
+
+#line 61 "/usr/include/stdint.h"
+typedef long int int_fast32_t;
+
+#line 62 "/usr/include/stdint.h"
+typedef long int int_fast64_t;
+
+#line 63 "/usr/include/stdint.h"
+typedef unsigned char uint_fast8_t;
+
+
+#line 73 "/usr/include/stdint.h"
+typedef unsigned long int uint_fast16_t;
+
+#line 74 "/usr/include/stdint.h"
+typedef unsigned long int uint_fast32_t;
+
+#line 75 "/usr/include/stdint.h"
+typedef unsigned long int uint_fast64_t;
+
+#line 76 "/usr/include/stdint.h"
+typedef long int intptr_t;
+
+
+
+#line 90 "/usr/include/stdint.h"
+typedef unsigned long int uintptr_t;
+
+#line 91 "/usr/include/stdint.h"
+typedef __intmax_t intmax_t;
+
+#line 102 "/usr/include/stdint.h"
+typedef __uintmax_t uintmax_t;
+
+#line 103 "/usr/include/stdint.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct
+ {
+ int quot;
+ int rem;
+ }
+#line 63 "/usr/include/stdlib.h"
+div_t;
+
+
+
+
+#line 67 "/usr/include/stdlib.h"
+typedef struct
+ {
+ long int quot;
+ long int rem;
+ }
+#line 71 "/usr/include/stdlib.h"
+ldiv_t;
+
+
+
+
+
+
+#line 77 "/usr/include/stdlib.h"
+__extension__ typedef struct
+ {
+ long long int quot;
+ long long int rem;
+ }
+#line 81 "/usr/include/stdlib.h"
+lldiv_t;
+
+#line 82 "/usr/include/stdlib.h"
+extern size_t __ctype_get_mb_cur_max (void) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+#line 102 "/usr/include/stdlib.h"
+extern double atof (const char *__nptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+#line 105 "/usr/include/stdlib.h"
+extern int atoi (const char *__nptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+#line 108 "/usr/include/stdlib.h"
+extern long int atol (const char *__nptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+#line 113 "/usr/include/stdlib.h"
+__extension__ extern long long int atoll (const char *__nptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+#line 118 "/usr/include/stdlib.h"
+extern double strtod (const char *__restrict __nptr,
+ char **__restrict __endptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+#line 124 "/usr/include/stdlib.h"
+extern float strtof (const char *__restrict __nptr,
+ char **__restrict __endptr) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+#line 127 "/usr/include/stdlib.h"
+extern long double strtold (const char *__restrict __nptr,
+ char **__restrict __endptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 130 "/usr/include/stdlib.h"
+extern long int strtol (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+#line 181 "/usr/include/stdlib.h"
+extern unsigned long int strtoul (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+#line 187 "/usr/include/stdlib.h"
+__extension__
+extern long long int strtoq (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+#line 192 "/usr/include/stdlib.h"
+__extension__
+extern unsigned long long int strtouq (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+#line 200 "/usr/include/stdlib.h"
+__extension__
+extern long long int strtoll (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+#line 205 "/usr/include/stdlib.h"
+__extension__
+extern unsigned long long int strtoull (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 209 "/usr/include/stdlib.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+__attribute__ ((__nothrow__ , __leaf__)) atoi (const char *__nptr)
+{
+ return (int) strtol (__nptr, (char **) ((void *)0), 10);
+}
+
+#line 366 "/usr/include/stdlib.h"
+extern __inline __attribute__ ((__gnu_inline__)) long int
+__attribute__ ((__nothrow__ , __leaf__)) atol (const char *__nptr)
+{
+ return strtol (__nptr, (char **) ((void *)0), 10);
+}
+
+
+
+#line 373 "/usr/include/stdlib.h"
+__extension__ extern __inline __attribute__ ((__gnu_inline__)) long long int
+__attribute__ ((__nothrow__ , __leaf__)) atoll (const char *__nptr)
+{
+ return strtoll (__nptr, (char **) ((void *)0), 10);
+}
+
+#line 378 "/usr/include/stdlib.h"
+extern char *l64a (long int __n) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+#line 389 "/usr/include/stdlib.h"
+extern long int a64l (const char *__s)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+
+#line 395 "/usr/include/stdlib.h"
+
+
+
+
+
+
+typedef __u_char u_char;
+
+#line 34 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __u_short u_short;
+
+#line 35 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __u_int u_int;
+
+#line 36 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __u_long u_long;
+
+#line 37 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __quad_t quad_t;
+
+#line 38 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __u_quad_t u_quad_t;
+
+#line 39 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __fsid_t fsid_t;
+
+
+
+#line 42 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __loff_t loff_t;
+
+
+
+
+
+#line 47 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __ino_t ino_t;
+
+#line 48 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __dev_t dev_t;
+
+
+
+
+
+#line 64 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __gid_t gid_t;
+
+
+
+
+
+#line 69 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __mode_t mode_t;
+
+
+
+
+
+#line 74 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __nlink_t nlink_t;
+
+
+
+
+
+#line 79 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __uid_t uid_t;
+
+
+
+
+
+
+#line 85 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __off_t off_t;
+
+#line 86 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __pid_t pid_t;
+
+
+
+
+
+
+#line 103 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __id_t id_t;
+
+
+
+
+
+#line 108 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __ssize_t ssize_t;
+
+
+
+
+
+
+#line 114 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __daddr_t daddr_t;
+
+#line 115 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __caddr_t caddr_t;
+
+
+
+
+
+
+#line 121 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __key_t key_t;
+
+
+
+
+
+#line 126 "/usr/include/x86_64-linux-gnu/sys/types.h"
+
+
+
+
+
+
+typedef __clock_t clock_t;
+
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/clock_t.h"
+
+
+
+
+
+
+
+typedef __clockid_t clockid_t;
+
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h"
+typedef __time_t time_t;
+
+#line 11 "/usr/include/x86_64-linux-gnu/bits/types/time_t.h"
+
+
+
+
+
+
+typedef __timer_t timer_t;
+
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/timer_t.h"
+
+
+
+typedef unsigned long int ulong;
+
+#line 149 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef unsigned short int ushort;
+
+#line 150 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef unsigned int uint;
+
+
+
+
+
+
+
+
+#line 158 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __uint8_t u_int8_t;
+
+#line 159 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __uint16_t u_int16_t;
+
+#line 160 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __uint32_t u_int32_t;
+
+#line 161 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __uint64_t u_int64_t;
+
+
+
+#line 164 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef int register_t __attribute__ ((__mode__ (__word__)));
+
+#line 165 "/usr/include/x86_64-linux-gnu/sys/types.h"
+static __inline __uint16_t
+__bswap_16 (__uint16_t __bsx)
+{
+
+ return __builtin_bswap16 (__bsx);
+
+
+
+}
+
+
+
+
+
+
+
+#line 48 "/usr/include/x86_64-linux-gnu/bits/byteswap.h"
+static __inline __uint32_t
+__bswap_32 (__uint32_t __bsx)
+{
+
+ return __builtin_bswap32 (__bsx);
+
+
+
+}
+
+#line 57 "/usr/include/x86_64-linux-gnu/bits/byteswap.h"
+__extension__ static __inline __uint64_t
+__bswap_64 (__uint64_t __bsx)
+{
+
+ return __builtin_bswap64 (__bsx);
+
+
+
+}
+
+#line 78 "/usr/include/x86_64-linux-gnu/bits/byteswap.h"
+static __inline __uint16_t
+__uint16_identity (__uint16_t __x)
+{
+ return __x;
+}
+
+
+#line 38 "/usr/include/x86_64-linux-gnu/bits/uintn-identity.h"
+static __inline __uint32_t
+__uint32_identity (__uint32_t __x)
+{
+ return __x;
+}
+
+
+#line 44 "/usr/include/x86_64-linux-gnu/bits/uintn-identity.h"
+static __inline __uint64_t
+__uint64_identity (__uint64_t __x)
+{
+ return __x;
+}
+
+#line 49 "/usr/include/x86_64-linux-gnu/bits/uintn-identity.h"
+
+
+
+
+
+
+
+
+
+
+
+typedef struct
+{
+ unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))];
+}
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h"
+__sigset_t;
+
+#line 9 "/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h"
+
+
+typedef __sigset_t sigset_t;
+
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h"
+
+
+
+
+
+
+
+
+
+
+struct timeval
+{
+
+
+
+
+ __time_t tv_sec;
+ __suseconds_t tv_usec;
+
+};
+
+#line 18 "/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h"
+
+struct timespec
+{
+
+
+
+ __time_t tv_sec;
+
+
+
+
+ __syscall_slong_t tv_nsec;
+};
+
+#line 32 "/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h"
+
+
+
+typedef __suseconds_t suseconds_t;
+
+
+
+
+
+
+#line 49 "/usr/include/x86_64-linux-gnu/sys/select.h"
+typedef long int __fd_mask;
+
+#line 50 "/usr/include/x86_64-linux-gnu/sys/select.h"
+typedef struct
+ {
+
+
+
+
+
+
+ __fd_mask __fds_bits[1024 / (8 * (int) sizeof (__fd_mask))];
+
+
+ }
+#line 70 "/usr/include/x86_64-linux-gnu/sys/select.h"
+fd_set;
+
+
+
+
+
+
+
+#line 77 "/usr/include/x86_64-linux-gnu/sys/select.h"
+typedef __fd_mask fd_mask;
+
+#line 78 "/usr/include/x86_64-linux-gnu/sys/select.h"
+
+extern int select (int __nfds, fd_set *__restrict __readfds,
+ fd_set *__restrict __writefds,
+ fd_set *__restrict __exceptfds,
+ struct timeval *__restrict __timeout);
+
+#line 106 "/usr/include/x86_64-linux-gnu/sys/select.h"
+extern int pselect (int __nfds, fd_set *__restrict __readfds,
+ fd_set *__restrict __writefds,
+ fd_set *__restrict __exceptfds,
+ const struct timespec *__restrict __timeout,
+ const __sigset_t *__restrict __sigmask);
+
+#line 132 "/usr/include/x86_64-linux-gnu/sys/select.h"
+
+
+
+
+
+
+typedef __blksize_t blksize_t;
+
+
+
+
+
+
+
+#line 192 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __blkcnt_t blkcnt_t;
+
+
+
+
+#line 196 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __fsblkcnt_t fsblkcnt_t;
+
+
+
+
+#line 200 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __fsfilcnt_t fsfilcnt_t;
+
+#line 201 "/usr/include/x86_64-linux-gnu/sys/types.h"
+
+typedef union
+{
+ __extension__ unsigned long long int __value64;
+ struct
+ {
+ unsigned int __low;
+ unsigned int __high;
+ } __value32;
+}
+#line 33 "/usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h"
+__atomic_wide_counter;
+
+#line 34 "/usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h"
+
+
+
+
+typedef struct __pthread_internal_list
+{
+ struct __pthread_internal_list *__prev;
+ struct __pthread_internal_list *__next;
+}
+#line 55 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+__pthread_list_t;
+
+
+#line 57 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+typedef struct __pthread_internal_slist
+{
+ struct __pthread_internal_slist *__next;
+}
+#line 60 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+__pthread_slist_t;
+
+#line 61 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+struct __pthread_mutex_s
+{
+ int __lock;
+ unsigned int __count;
+ int __owner;
+
+ unsigned int __nusers;
+
+
+
+ int __kind;
+
+ short __spins;
+ short __elision;
+ __pthread_list_t __list;
+};
+
+#line 54 "/usr/include/x86_64-linux-gnu/bits/struct_mutex.h"
+struct __pthread_rwlock_arch_t
+{
+ unsigned int __readers;
+ unsigned int __writers;
+ unsigned int __wrphase_futex;
+ unsigned int __writers_futex;
+ unsigned int __pad3;
+ unsigned int __pad4;
+
+ int __cur_writer;
+ int __shared;
+ signed char __rwelision;
+
+
+
+
+ unsigned char __pad1[7];
+
+
+ unsigned long int __pad2;
+
+
+ unsigned int __flags;
+};
+
+#line 56 "/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h"
+
+
+
+
+struct __pthread_cond_s
+{
+ __atomic_wide_counter __wseq;
+ __atomic_wide_counter __g1_start;
+ unsigned int __g_refs[2] ;
+ unsigned int __g_size[2];
+ unsigned int __g1_orig_size;
+ unsigned int __wrefs;
+ unsigned int __g_signals[2];
+};
+
+
+#line 105 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+typedef unsigned int __tss_t;
+
+#line 106 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+typedef unsigned long int __thrd_t;
+
+
+#line 108 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+typedef struct
+{
+ int __data ;
+}
+#line 111 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+__once_flag;
+
+#line 112 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+
+
+
+typedef unsigned long int pthread_t;
+
+
+
+
+
+#line 32 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ char __size[4];
+ int __align;
+}
+#line 36 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_mutexattr_t;
+
+
+
+
+
+#line 41 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ char __size[4];
+ int __align;
+}
+#line 45 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_condattr_t;
+
+
+
+
+#line 49 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef unsigned int pthread_key_t;
+
+
+
+
+#line 53 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef int pthread_once_t;
+
+
+
+#line 56 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+union pthread_attr_t
+{
+ char __size[56];
+ long int __align;
+};
+
+
+#line 62 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union pthread_attr_t pthread_attr_t;
+
+
+
+
+
+#line 67 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ struct __pthread_mutex_s __data;
+ char __size[40];
+ long int __align;
+}
+#line 72 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_mutex_t;
+
+
+
+#line 75 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ struct __pthread_cond_s __data;
+ char __size[48];
+ __extension__ long long int __align;
+}
+#line 80 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_cond_t;
+
+
+
+
+
+
+#line 86 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ struct __pthread_rwlock_arch_t __data;
+ char __size[56];
+ long int __align;
+}
+#line 91 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_rwlock_t;
+
+
+#line 93 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ char __size[8];
+ long int __align;
+}
+#line 97 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_rwlockattr_t;
+
+
+
+
+
+
+#line 103 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef volatile int pthread_spinlock_t;
+
+
+
+
+
+#line 108 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ char __size[32];
+ long int __align;
+}
+#line 112 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_barrier_t;
+
+
+#line 114 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ char __size[4];
+ int __align;
+}
+#line 118 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_barrierattr_t;
+
+#line 119 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+
+
+
+
+
+
+
+
+
+extern long int random (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 405 "/usr/include/stdlib.h"
+extern void srandom (unsigned int __seed) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+#line 411 "/usr/include/stdlib.h"
+extern char *initstate (unsigned int __seed, char *__statebuf,
+ size_t __statelen) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+
+
+#line 416 "/usr/include/stdlib.h"
+extern char *setstate (char *__statebuf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+
+#line 424 "/usr/include/stdlib.h"
+struct random_data
+ {
+ int32_t *fptr;
+ int32_t *rptr;
+ int32_t *state;
+ int rand_type;
+ int rand_deg;
+ int rand_sep;
+ int32_t *end_ptr;
+ };
+
+
+#line 435 "/usr/include/stdlib.h"
+extern int random_r (struct random_data *__restrict __buf,
+ int32_t *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 438 "/usr/include/stdlib.h"
+extern int srandom_r (unsigned int __seed, struct random_data *__buf)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+#line 441 "/usr/include/stdlib.h"
+extern int initstate_r (unsigned int __seed, char *__restrict __statebuf,
+ size_t __statelen,
+ struct random_data *__restrict __buf)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 4)));
+
+
+#line 446 "/usr/include/stdlib.h"
+extern int setstate_r (char *__restrict __statebuf,
+ struct random_data *__restrict __buf)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+
+#line 454 "/usr/include/stdlib.h"
+extern int rand (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+#line 456 "/usr/include/stdlib.h"
+extern void srand (unsigned int __seed) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 460 "/usr/include/stdlib.h"
+extern int rand_r (unsigned int *__seed) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+
+#line 468 "/usr/include/stdlib.h"
+extern double drand48 (void) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 469 "/usr/include/stdlib.h"
+extern double erand48 (unsigned short int __xsubi[3]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+#line 472 "/usr/include/stdlib.h"
+extern long int lrand48 (void) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 473 "/usr/include/stdlib.h"
+extern long int nrand48 (unsigned short int __xsubi[3])
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+#line 477 "/usr/include/stdlib.h"
+extern long int mrand48 (void) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 478 "/usr/include/stdlib.h"
+extern long int jrand48 (unsigned short int __xsubi[3])
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+#line 482 "/usr/include/stdlib.h"
+extern void srand48 (long int __seedval) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 483 "/usr/include/stdlib.h"
+extern unsigned short int *seed48 (unsigned short int __seed16v[3])
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 485 "/usr/include/stdlib.h"
+extern void lcong48 (unsigned short int __param[7]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+#line 491 "/usr/include/stdlib.h"
+struct drand48_data
+ {
+ unsigned short int __x[3];
+ unsigned short int __old_x[3];
+ unsigned short int __c;
+ unsigned short int __init;
+ __extension__ unsigned long long int __a;
+
+ };
+
+
+
+#line 502 "/usr/include/stdlib.h"
+extern int drand48_r (struct drand48_data *__restrict __buffer,
+ double *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 504 "/usr/include/stdlib.h"
+extern int erand48_r (unsigned short int __xsubi[3],
+ struct drand48_data *__restrict __buffer,
+ double *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 509 "/usr/include/stdlib.h"
+extern int lrand48_r (struct drand48_data *__restrict __buffer,
+ long int *__restrict __result)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 512 "/usr/include/stdlib.h"
+extern int nrand48_r (unsigned short int __xsubi[3],
+ struct drand48_data *__restrict __buffer,
+ long int *__restrict __result)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 518 "/usr/include/stdlib.h"
+extern int mrand48_r (struct drand48_data *__restrict __buffer,
+ long int *__restrict __result)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 521 "/usr/include/stdlib.h"
+extern int jrand48_r (unsigned short int __xsubi[3],
+ struct drand48_data *__restrict __buffer,
+ long int *__restrict __result)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 527 "/usr/include/stdlib.h"
+extern int srand48_r (long int __seedval, struct drand48_data *__buffer)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+#line 530 "/usr/include/stdlib.h"
+extern int seed48_r (unsigned short int __seed16v[3],
+ struct drand48_data *__buffer) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 533 "/usr/include/stdlib.h"
+extern int lcong48_r (unsigned short int __param[7],
+ struct drand48_data *__buffer)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 538 "/usr/include/stdlib.h"
+extern __uint32_t arc4random (void)
+ __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+#line 542 "/usr/include/stdlib.h"
+extern void arc4random_buf (void *__buf, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+#line 547 "/usr/include/stdlib.h"
+extern __uint32_t arc4random_uniform (__uint32_t __upper_bound)
+ __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+#line 553 "/usr/include/stdlib.h"
+extern void *malloc (size_t __size) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__))
+ __attribute__ ((__alloc_size__ (1))) ;
+
+
+#line 556 "/usr/include/stdlib.h"
+extern void *calloc (size_t __nmemb, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__alloc_size__ (1, 2))) ;
+
+
+
+
+
+
+
+#line 564 "/usr/include/stdlib.h"
+extern void *realloc (void *__ptr, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)) __attribute__ ((__alloc_size__ (2)));
+
+
+
+#line 568 "/usr/include/stdlib.h"
+extern void free (void *__ptr) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+
+#line 576 "/usr/include/stdlib.h"
+extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__))
+ __attribute__ ((__alloc_size__ (2, 3)))
+ __attribute__ ((__malloc__ (__builtin_free, 1)));
+
+
+
+#line 582 "/usr/include/stdlib.h"
+extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__ (reallocarray, 1)));
+
+
+
+
+#line 587 "/usr/include/stdlib.h"
+
+
+
+
+
+
+
+extern void *alloca (size_t __size) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+#line 39 "/usr/include/alloca.h"
+
+
+
+
+
+extern void *valloc (size_t __size) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__))
+ __attribute__ ((__alloc_size__ (1))) ;
+
+
+
+
+
+#line 599 "/usr/include/stdlib.h"
+extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+
+#line 605 "/usr/include/stdlib.h"
+extern void *aligned_alloc (size_t __alignment, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__alloc_align__ (1)))
+ __attribute__ ((__alloc_size__ (2))) ;
+
+
+
+
+#line 611 "/usr/include/stdlib.h"
+extern void abort (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+#line 615 "/usr/include/stdlib.h"
+extern int atexit (void (*__func) (void)) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+
+#line 623 "/usr/include/stdlib.h"
+extern int at_quick_exit (void (*__func) (void)) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+#line 630 "/usr/include/stdlib.h"
+extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+#line 637 "/usr/include/stdlib.h"
+extern void exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+
+
+#line 643 "/usr/include/stdlib.h"
+extern void quick_exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+
+
+#line 649 "/usr/include/stdlib.h"
+extern void _Exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+
+#line 654 "/usr/include/stdlib.h"
+extern char *getenv (const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+#line 655 "/usr/include/stdlib.h"
+extern int putenv (char *__string) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+#line 673 "/usr/include/stdlib.h"
+extern int setenv (const char *__name, const char *__value, int __replace)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+
+#line 677 "/usr/include/stdlib.h"
+extern int unsetenv (const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+#line 684 "/usr/include/stdlib.h"
+extern int clearenv (void) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 685 "/usr/include/stdlib.h"
+extern char *mktemp (char *__template) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 696 "/usr/include/stdlib.h"
+extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) ;
+
+#line 709 "/usr/include/stdlib.h"
+extern int mkstemps (char *__template, int __suffixlen) __attribute__ ((__nonnull__ (1))) ;
+
+#line 731 "/usr/include/stdlib.h"
+extern char *mkdtemp (char *__template) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+#line 752 "/usr/include/stdlib.h"
+extern int system (const char *__command) ;
+
+#line 805 "/usr/include/stdlib.h"
+extern char *realpath (const char *__restrict __name,
+ char *__restrict __resolved) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+
+
+#line 829 "/usr/include/stdlib.h"
+typedef int (*__compar_fn_t) (const void *, const void *);
+
+#line 830 "/usr/include/stdlib.h"
+extern void *bsearch (const void *__key, const void *__base,
+ size_t __nmemb, size_t __size, __compar_fn_t __compar)
+ __attribute__ ((__nonnull__ (1, 2, 5))) ;
+
+
+
+#line 846 "/usr/include/stdlib.h"
+extern __inline __attribute__ ((__gnu_inline__)) void *
+bsearch (const void *__key, const void *__base, size_t __nmemb, size_t __size,
+ __compar_fn_t __compar)
+{
+ size_t __l, __u, __idx;
+ const void *__p;
+ int __comparison;
+
+ __l = 0;
+ __u = __nmemb;
+ while (__l < __u)
+ {
+ __idx = (__l + __u) / 2;
+ __p = (const void *) (((const char *) __base) + (__idx * __size));
+ __comparison = (*__compar) (__key, __p);
+ if (__comparison < 0)
+ __u = __idx;
+ else if (__comparison > 0)
+ __l = __idx + 1;
+ else
+ {
+
+
+ return (void *) __p;
+
+
+ }
+ }
+
+ return ((void *)0);
+}
+
+#line 29 "-Wcast-qual"
+
+
+
+
+extern void qsort (void *__base, size_t __nmemb, size_t __size,
+ __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4)));
+
+#line 853 "/usr/include/stdlib.h"
+extern int abs (int __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+#line 862 "/usr/include/stdlib.h"
+extern long int labs (long int __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+
+
+#line 865 "/usr/include/stdlib.h"
+__extension__ extern long long int llabs (long long int __x)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+
+
+
+
+
+
+#line 873 "/usr/include/stdlib.h"
+extern div_t div (int __numer, int __denom)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+#line 875 "/usr/include/stdlib.h"
+extern ldiv_t ldiv (long int __numer, long int __denom)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+
+
+#line 879 "/usr/include/stdlib.h"
+__extension__ extern lldiv_t lldiv (long long int __numer,
+ long long int __denom)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+#line 882 "/usr/include/stdlib.h"
+extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt,
+ int *__restrict __sign) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ;
+
+
+
+
+
+#line 899 "/usr/include/stdlib.h"
+extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt,
+ int *__restrict __sign) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ;
+
+
+
+
+
+#line 905 "/usr/include/stdlib.h"
+extern char *gcvt (double __value, int __ndigit, char *__buf)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3))) ;
+
+
+
+
+
+#line 911 "/usr/include/stdlib.h"
+extern char *qecvt (long double __value, int __ndigit,
+ int *__restrict __decpt, int *__restrict __sign)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ;
+
+#line 914 "/usr/include/stdlib.h"
+extern char *qfcvt (long double __value, int __ndigit,
+ int *__restrict __decpt, int *__restrict __sign)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ;
+
+#line 917 "/usr/include/stdlib.h"
+extern char *qgcvt (long double __value, int __ndigit, char *__buf)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3))) ;
+
+
+
+
+
+#line 923 "/usr/include/stdlib.h"
+extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt,
+ int *__restrict __sign, char *__restrict __buf,
+ size_t __len) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
+
+#line 926 "/usr/include/stdlib.h"
+extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt,
+ int *__restrict __sign, char *__restrict __buf,
+ size_t __len) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
+
+
+#line 930 "/usr/include/stdlib.h"
+extern int qecvt_r (long double __value, int __ndigit,
+ int *__restrict __decpt, int *__restrict __sign,
+ char *__restrict __buf, size_t __len)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
+
+#line 934 "/usr/include/stdlib.h"
+extern int qfcvt_r (long double __value, int __ndigit,
+ int *__restrict __decpt, int *__restrict __sign,
+ char *__restrict __buf, size_t __len)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
+
+
+
+
+
+
+#line 943 "/usr/include/stdlib.h"
+extern int mblen (const char *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 946 "/usr/include/stdlib.h"
+extern int mbtowc (wchar_t *__restrict __pwc,
+ const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 950 "/usr/include/stdlib.h"
+extern int wctomb (char *__s, wchar_t __wchar) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 954 "/usr/include/stdlib.h"
+extern size_t mbstowcs (wchar_t *__restrict __pwcs,
+ const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__access__ (__read_only__, 2)));
+
+
+#line 958 "/usr/include/stdlib.h"
+extern size_t wcstombs (char *__restrict __s,
+ const wchar_t *__restrict __pwcs, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__access__ (__write_only__, 1, 3)))
+ __attribute__ ((__access__ (__read_only__, 2)));
+
+
+
+
+
+
+
+#line 969 "/usr/include/stdlib.h"
+extern int rpmatch (const char *__response) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+#line 970 "/usr/include/stdlib.h"
+extern int getsubopt (char **__restrict __optionp,
+ char *const *__restrict __tokens,
+ char **__restrict __valuep)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2, 3))) ;
+
+#line 984 "/usr/include/stdlib.h"
+extern int getloadavg (double __loadavg[], int __nelem)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 1028 "/usr/include/stdlib.h"
+extern __inline __attribute__ ((__gnu_inline__)) double
+__attribute__ ((__nothrow__ , __leaf__)) atof (const char *__nptr)
+{
+ return strtod (__nptr, (char **) ((void *)0));
+}
+
+#line 29 "/usr/include/x86_64-linux-gnu/bits/stdlib-float.h"
+
+
+enum
+{
+ _ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)),
+ _ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)),
+ _ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)),
+ _ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)),
+ _ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)),
+ _ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)),
+ _ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)),
+ _ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)),
+ _ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)),
+ _IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)),
+ _ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)),
+ _ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8))
+};
+
+#line 61 "/usr/include/ctype.h"
+extern const unsigned short int **__ctype_b_loc (void)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+#line 81 "/usr/include/ctype.h"
+extern const __int32_t **__ctype_tolower_loc (void)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+#line 83 "/usr/include/ctype.h"
+extern const __int32_t **__ctype_toupper_loc (void)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+#line 85 "/usr/include/ctype.h"
+extern int isalnum (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 109 "/usr/include/ctype.h"
+extern int isalpha (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 110 "/usr/include/ctype.h"
+extern int iscntrl (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 111 "/usr/include/ctype.h"
+extern int isdigit (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 112 "/usr/include/ctype.h"
+extern int islower (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 113 "/usr/include/ctype.h"
+extern int isgraph (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 114 "/usr/include/ctype.h"
+extern int isprint (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 115 "/usr/include/ctype.h"
+extern int ispunct (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 116 "/usr/include/ctype.h"
+extern int isspace (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 117 "/usr/include/ctype.h"
+extern int isupper (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 118 "/usr/include/ctype.h"
+extern int isxdigit (int) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 122 "/usr/include/ctype.h"
+extern int tolower (int __c) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 125 "/usr/include/ctype.h"
+extern int toupper (int __c) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+#line 130 "/usr/include/ctype.h"
+extern int isblank (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 131 "/usr/include/ctype.h"
+extern int isascii (int __c) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 146 "/usr/include/ctype.h"
+extern int toascii (int __c) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 150 "/usr/include/ctype.h"
+extern int _toupper (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 151 "/usr/include/ctype.h"
+extern int _tolower (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 152 "/usr/include/ctype.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+__attribute__ ((__nothrow__ , __leaf__)) tolower (int __c)
+{
+ return __c >= -128 && __c < 256 ? (*__ctype_tolower_loc ())[__c] : __c;
+}
+
+
+#line 212 "/usr/include/ctype.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+__attribute__ ((__nothrow__ , __leaf__)) toupper (int __c)
+{
+ return __c >= -128 && __c < 256 ? (*__ctype_toupper_loc ())[__c] : __c;
+}
+
+#line 217 "/usr/include/ctype.h"
+struct __locale_struct
+{
+
+ struct __locale_data *__locales[13];
+
+
+ const unsigned short int *__ctype_b;
+ const int *__ctype_tolower;
+ const int *__ctype_toupper;
+
+
+ const char *__names[13];
+};
+
+
+#line 41 "/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h"
+typedef struct __locale_struct *__locale_t;
+
+#line 42 "/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h"
+
+typedef __locale_t locale_t;
+
+#line 25 "/usr/include/x86_64-linux-gnu/bits/types/locale_t.h"
+extern int isalnum_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 252 "/usr/include/ctype.h"
+extern int isalpha_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 253 "/usr/include/ctype.h"
+extern int iscntrl_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 254 "/usr/include/ctype.h"
+extern int isdigit_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 255 "/usr/include/ctype.h"
+extern int islower_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 256 "/usr/include/ctype.h"
+extern int isgraph_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 257 "/usr/include/ctype.h"
+extern int isprint_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 258 "/usr/include/ctype.h"
+extern int ispunct_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 259 "/usr/include/ctype.h"
+extern int isspace_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 260 "/usr/include/ctype.h"
+extern int isupper_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 261 "/usr/include/ctype.h"
+extern int isxdigit_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+
+#line 263 "/usr/include/ctype.h"
+extern int isblank_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 267 "/usr/include/ctype.h"
+extern int __tolower_l (int __c, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 268 "/usr/include/ctype.h"
+extern int tolower_l (int __c, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 271 "/usr/include/ctype.h"
+extern int __toupper_l (int __c, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 272 "/usr/include/ctype.h"
+extern int toupper_l (int __c, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 273 "/usr/include/ctype.h"
+
+
+
+
+
+
+
+extern void *memcpy (void *__restrict __dest, const void *__restrict __src,
+ size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 47 "/usr/include/string.h"
+extern void *memmove (void *__dest, const void *__src, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+
+#line 54 "/usr/include/string.h"
+extern void *memccpy (void *__restrict __dest, const void *__restrict __src,
+ int __c, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__access__ (__write_only__, 1, 4)));
+
+
+
+
+
+#line 61 "/usr/include/string.h"
+extern void *memset (void *__s, int __c, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+#line 64 "/usr/include/string.h"
+extern int memcmp (const void *__s1, const void *__s2, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 66 "/usr/include/string.h"
+extern int __memcmpeq (const void *__s1, const void *__s2, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 82 "/usr/include/string.h"
+extern void *memchr (const void *__s, int __c, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+#line 109 "/usr/include/string.h"
+extern char *strcpy (char *__restrict __dest, const char *__restrict __src)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 144 "/usr/include/string.h"
+extern char *strncpy (char *__restrict __dest,
+ const char *__restrict __src, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 149 "/usr/include/string.h"
+extern char *strcat (char *__restrict __dest, const char *__restrict __src)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 152 "/usr/include/string.h"
+extern char *strncat (char *__restrict __dest, const char *__restrict __src,
+ size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 156 "/usr/include/string.h"
+extern int strcmp (const char *__s1, const char *__s2)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 159 "/usr/include/string.h"
+extern int strncmp (const char *__s1, const char *__s2, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 163 "/usr/include/string.h"
+extern int strcoll (const char *__s1, const char *__s2)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 166 "/usr/include/string.h"
+extern size_t strxfrm (char *__restrict __dest,
+ const char *__restrict __src, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))) __attribute__ ((__access__ (__write_only__, 1, 3)));
+
+
+
+
+
+
+
+#line 175 "/usr/include/string.h"
+extern int strcoll_l (const char *__s1, const char *__s2, locale_t __l)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));
+
+
+
+#line 179 "/usr/include/string.h"
+extern size_t strxfrm_l (char *__dest, const char *__src, size_t __n,
+ locale_t __l) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 4)))
+ __attribute__ ((__access__ (__write_only__, 1, 3)));
+
+
+
+
+
+
+#line 187 "/usr/include/string.h"
+extern char *strdup (const char *__s)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+#line 195 "/usr/include/string.h"
+extern char *strndup (const char *__string, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
+
+#line 197 "/usr/include/string.h"
+extern char *strchr (const char *__s, int __c)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+#line 248 "/usr/include/string.h"
+extern char *strrchr (const char *__s, int __c)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+#line 275 "/usr/include/string.h"
+extern size_t strcspn (const char *__s, const char *__reject)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 297 "/usr/include/string.h"
+extern size_t strspn (const char *__s, const char *__accept)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 299 "/usr/include/string.h"
+extern char *strpbrk (const char *__s, const char *__accept)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 325 "/usr/include/string.h"
+extern char *strstr (const char *__haystack, const char *__needle)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+#line 356 "/usr/include/string.h"
+extern char *strtok (char *__restrict __s, const char *__restrict __delim)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+
+
+#line 361 "/usr/include/string.h"
+extern char *__strtok_r (char *__restrict __s,
+ const char *__restrict __delim,
+ char **__restrict __save_ptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3)));
+
+
+#line 366 "/usr/include/string.h"
+extern char *strtok_r (char *__restrict __s, const char *__restrict __delim,
+ char **__restrict __save_ptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3)));
+
+#line 369 "/usr/include/string.h"
+extern size_t strlen (const char *__s)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+#line 413 "/usr/include/string.h"
+extern size_t strnlen (const char *__string, size_t __maxlen)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+#line 419 "/usr/include/string.h"
+extern char *strerror (int __errnum) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 420 "/usr/include/string.h"
+extern int strerror_r (int __errnum, char *__buf, size_t __buflen) __asm__ ("" "__xpg_strerror_r") __attribute__ ((__nothrow__ , __leaf__))
+
+ __attribute__ ((__nonnull__ (2)))
+ __attribute__ ((__access__ (__write_only__, 2, 3)));
+
+#line 436 "/usr/include/string.h"
+extern char *strerror_l (int __errnum, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 462 "/usr/include/string.h"
+
+
+
+
+
+
+
+
+
+
+extern int bcmp (const void *__s1, const void *__s2, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 38 "/usr/include/strings.h"
+extern void bcopy (const void *__src, void *__dest, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 42 "/usr/include/strings.h"
+extern void bzero (void *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 43 "/usr/include/strings.h"
+extern char *index (const char *__s, int __c)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+#line 70 "/usr/include/strings.h"
+extern char *rindex (const char *__s, int __c)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+#line 104 "/usr/include/strings.h"
+extern int ffs (int __i) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+
+
+
+
+
+#line 110 "/usr/include/strings.h"
+extern int ffsl (long int __l) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+#line 111 "/usr/include/strings.h"
+__extension__ extern int ffsll (long long int __ll)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+
+
+
+#line 116 "/usr/include/strings.h"
+extern int strcasecmp (const char *__s1, const char *__s2)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 120 "/usr/include/strings.h"
+extern int strncasecmp (const char *__s1, const char *__s2, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+
+
+#line 128 "/usr/include/strings.h"
+extern int strcasecmp_l (const char *__s1, const char *__s2, locale_t __loc)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));
+
+
+
+
+#line 133 "/usr/include/strings.h"
+extern int strncasecmp_l (const char *__s1, const char *__s2,
+ size_t __n, locale_t __loc)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 4)));
+
+
+
+
+#line 139 "/usr/include/strings.h"
+
+
+
+extern void explicit_bzero (void *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)))
+ __attribute__ ((__access__ (__write_only__, 1, 2)));
+
+
+
+
+#line 471 "/usr/include/string.h"
+extern char *strsep (char **__restrict __stringp,
+ const char *__restrict __delim)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+#line 478 "/usr/include/string.h"
+extern char *strsignal (int __sig) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 479 "/usr/include/string.h"
+extern char *__stpcpy (char *__restrict __dest, const char *__restrict __src)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 491 "/usr/include/string.h"
+extern char *stpcpy (char *__restrict __dest, const char *__restrict __src)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+#line 496 "/usr/include/string.h"
+extern char *__stpncpy (char *__restrict __dest,
+ const char *__restrict __src, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 499 "/usr/include/string.h"
+extern char *stpncpy (char *__restrict __dest,
+ const char *__restrict __src, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 502 "/usr/include/string.h"
+
+
+
+
+
+
+
+
+typedef __builtin_va_list __gnuc_va_list;
+
+#line 41 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stdarg.h"
+
+
+
+
+
+
+typedef struct
+{
+ int __count;
+ union
+ {
+ unsigned int __wch;
+ char __wchb[4];
+ } __value;
+}
+#line 21 "/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h"
+__mbstate_t;
+
+#line 22 "/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h"
+
+
+
+
+typedef struct _G_fpos_t
+{
+ __off_t __pos;
+ __mbstate_t __state;
+}
+#line 14 "/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h"
+__fpos_t;
+
+#line 15 "/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h"
+typedef struct _G_fpos64_t
+{
+ __off64_t __pos;
+ __mbstate_t __state;
+}
+#line 14 "/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h"
+__fpos64_t;
+
+#line 15 "/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h"
+
+
+
+struct _IO_FILE;
+
+#line 5 "/usr/include/x86_64-linux-gnu/bits/types/__FILE.h"
+typedef struct _IO_FILE __FILE;
+
+#line 6 "/usr/include/x86_64-linux-gnu/bits/types/__FILE.h"
+
+
+
+struct _IO_FILE;
+
+
+
+#line 7 "/usr/include/x86_64-linux-gnu/bits/types/FILE.h"
+typedef struct _IO_FILE FILE;
+
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/FILE.h"
+struct _IO_FILE;
+
+#line 36 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+struct _IO_marker;
+
+#line 37 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+struct _IO_codecvt;
+
+#line 38 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+struct _IO_wide_data;
+
+
+
+
+
+#line 43 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+typedef void _IO_lock_t;
+
+
+
+
+
+
+#line 49 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+struct _IO_FILE
+{
+ int _flags;
+
+
+ char *_IO_read_ptr;
+ char *_IO_read_end;
+ char *_IO_read_base;
+ char *_IO_write_base;
+ char *_IO_write_ptr;
+ char *_IO_write_end;
+ char *_IO_buf_base;
+ char *_IO_buf_end;
+
+
+ char *_IO_save_base;
+ char *_IO_backup_base;
+ char *_IO_save_end;
+
+ struct _IO_marker *_markers;
+
+ struct _IO_FILE *_chain;
+
+ int _fileno;
+ int _flags2;
+ __off_t _old_offset;
+
+
+ unsigned short _cur_column;
+ signed char _vtable_offset;
+ char _shortbuf[1];
+
+ _IO_lock_t *_lock;
+
+
+
+
+
+
+
+ __off64_t _offset;
+
+ struct _IO_codecvt *_codecvt;
+ struct _IO_wide_data *_wide_data;
+ struct _IO_FILE *_freeres_list;
+ void *_freeres_buf;
+ size_t __pad5;
+ int _mode;
+
+ char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)];
+};
+
+#line 100 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+typedef __gnuc_va_list va_list;
+
+#line 53 "/usr/include/stdio.h"
+typedef __fpos_t fpos_t;
+
+#line 85 "/usr/include/stdio.h"
+extern FILE *stdin;
+
+#line 144 "/usr/include/stdio.h"
+extern FILE *stdout;
+
+#line 145 "/usr/include/stdio.h"
+extern FILE *stderr;
+
+
+
+
+
+
+
+#line 152 "/usr/include/stdio.h"
+extern int remove (const char *__filename) __attribute__ ((__nothrow__ , __leaf__));
+
+
+#line 154 "/usr/include/stdio.h"
+extern int rename (const char *__old, const char *__new) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 158 "/usr/include/stdio.h"
+extern int renameat (int __oldfd, const char *__old, int __newfd,
+ const char *__new) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 160 "/usr/include/stdio.h"
+extern int fclose (FILE *__stream);
+
+#line 179 "/usr/include/stdio.h"
+extern FILE *tmpfile (void)
+ __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ;
+
+#line 190 "/usr/include/stdio.h"
+extern char *tmpnam (char[20]) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+#line 210 "/usr/include/stdio.h"
+extern char *tmpnam_r (char __s[20]) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+#line 211 "/usr/include/stdio.h"
+extern char *tempnam (const char *__dir, const char *__pfx)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (__builtin_free, 1)));
+
+
+
+
+
+
+
+#line 230 "/usr/include/stdio.h"
+extern int fflush (FILE *__stream);
+
+#line 231 "/usr/include/stdio.h"
+extern int fflush_unlocked (FILE *__stream);
+
+#line 240 "/usr/include/stdio.h"
+extern FILE *fopen (const char *__restrict __filename,
+ const char *__restrict __modes)
+ __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ;
+
+
+
+
+
+#line 265 "/usr/include/stdio.h"
+extern FILE *freopen (const char *__restrict __filename,
+ const char *__restrict __modes,
+ FILE *__restrict __stream) ;
+
+#line 268 "/usr/include/stdio.h"
+extern FILE *fdopen (int __fd, const char *__modes) __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ;
+
+#line 295 "/usr/include/stdio.h"
+extern FILE *fmemopen (void *__s, size_t __len, const char *__modes)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ;
+
+
+
+
+
+#line 314 "/usr/include/stdio.h"
+extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ;
+
+#line 316 "/usr/include/stdio.h"
+extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 332 "/usr/include/stdio.h"
+extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf,
+ int __modes, size_t __n) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+#line 338 "/usr/include/stdio.h"
+extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf,
+ size_t __size) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 342 "/usr/include/stdio.h"
+extern void setlinebuf (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+
+#line 350 "/usr/include/stdio.h"
+extern int fprintf (FILE *__restrict __stream,
+ const char *__restrict __format, ...);
+
+
+
+
+
+#line 356 "/usr/include/stdio.h"
+extern int printf (const char *__restrict __format, ...);
+
+
+#line 358 "/usr/include/stdio.h"
+extern int sprintf (char *__restrict __s,
+ const char *__restrict __format, ...) __attribute__ ((__nothrow__));
+
+
+
+
+
+
+#line 365 "/usr/include/stdio.h"
+extern int vfprintf (FILE *__restrict __s, const char *__restrict __format,
+ __gnuc_va_list __arg);
+
+
+
+
+
+#line 371 "/usr/include/stdio.h"
+extern int vprintf (const char *__restrict __format, __gnuc_va_list __arg);
+
+
+#line 373 "/usr/include/stdio.h"
+extern int vsprintf (char *__restrict __s, const char *__restrict __format,
+ __gnuc_va_list __arg) __attribute__ ((__nothrow__));
+
+
+
+
+#line 378 "/usr/include/stdio.h"
+extern int snprintf (char *__restrict __s, size_t __maxlen,
+ const char *__restrict __format, ...)
+ __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 4)));
+
+
+#line 382 "/usr/include/stdio.h"
+extern int vsnprintf (char *__restrict __s, size_t __maxlen,
+ const char *__restrict __format, __gnuc_va_list __arg)
+ __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 0)));
+
+#line 385 "/usr/include/stdio.h"
+extern int vdprintf (int __fd, const char *__restrict __fmt,
+ __gnuc_va_list __arg)
+ __attribute__ ((__format__ (__printf__, 2, 0)));
+
+#line 406 "/usr/include/stdio.h"
+extern int dprintf (int __fd, const char *__restrict __fmt, ...)
+ __attribute__ ((__format__ (__printf__, 2, 3)));
+
+
+
+
+
+
+
+
+#line 415 "/usr/include/stdio.h"
+extern int fscanf (FILE *__restrict __stream,
+ const char *__restrict __format, ...) ;
+
+
+
+
+
+#line 421 "/usr/include/stdio.h"
+extern int scanf (const char *__restrict __format, ...) ;
+
+
+#line 423 "/usr/include/stdio.h"
+extern int sscanf (const char *__restrict __s,
+ const char *__restrict __format, ...) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 425 "/usr/include/stdio.h"
+extern int fscanf (FILE *__restrict __stream, const char *__restrict __format, ...) __asm__ ("" "__isoc99_fscanf")
+
+ ;
+
+#line 437 "/usr/include/stdio.h"
+extern int scanf (const char *__restrict __format, ...) __asm__ ("" "__isoc99_scanf")
+ ;
+
+#line 439 "/usr/include/stdio.h"
+extern int sscanf (const char *__restrict __s, const char *__restrict __format, ...) __asm__ ("" "__isoc99_sscanf") __attribute__ ((__nothrow__ , __leaf__))
+
+ ;
+
+#line 442 "/usr/include/stdio.h"
+extern int vfscanf (FILE *__restrict __s, const char *__restrict __format,
+ __gnuc_va_list __arg)
+ __attribute__ ((__format__ (__scanf__, 2, 0))) ;
+
+
+
+
+
+
+#line 467 "/usr/include/stdio.h"
+extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg)
+ __attribute__ ((__format__ (__scanf__, 1, 0))) ;
+
+
+
+#line 471 "/usr/include/stdio.h"
+extern int vsscanf (const char *__restrict __s,
+ const char *__restrict __format, __gnuc_va_list __arg)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__format__ (__scanf__, 2, 0)));
+
+
+
+
+
+
+#line 479 "/usr/include/stdio.h"
+extern int vfscanf (FILE *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vfscanf")
+
+
+
+ __attribute__ ((__format__ (__scanf__, 2, 0))) ;
+
+#line 484 "/usr/include/stdio.h"
+extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vscanf")
+
+ __attribute__ ((__format__ (__scanf__, 1, 0))) ;
+
+#line 487 "/usr/include/stdio.h"
+extern int vsscanf (const char *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vsscanf") __attribute__ ((__nothrow__ , __leaf__))
+
+
+
+ __attribute__ ((__format__ (__scanf__, 2, 0)));
+
+#line 492 "/usr/include/stdio.h"
+extern int fgetc (FILE *__stream);
+
+#line 514 "/usr/include/stdio.h"
+extern int getc (FILE *__stream);
+
+
+
+
+
+
+#line 520 "/usr/include/stdio.h"
+extern int getchar (void);
+
+
+
+
+
+
+
+#line 527 "/usr/include/stdio.h"
+extern int getc_unlocked (FILE *__stream);
+
+#line 528 "/usr/include/stdio.h"
+extern int getchar_unlocked (void);
+
+#line 529 "/usr/include/stdio.h"
+extern int fgetc_unlocked (FILE *__stream);
+
+#line 539 "/usr/include/stdio.h"
+extern int fputc (int __c, FILE *__stream);
+
+#line 550 "/usr/include/stdio.h"
+extern int putc (int __c, FILE *__stream);
+
+
+
+
+
+
+#line 556 "/usr/include/stdio.h"
+extern int putchar (int __c);
+
+#line 557 "/usr/include/stdio.h"
+extern int fputc_unlocked (int __c, FILE *__stream);
+
+
+
+
+
+
+
+
+#line 573 "/usr/include/stdio.h"
+extern int putc_unlocked (int __c, FILE *__stream);
+
+#line 574 "/usr/include/stdio.h"
+extern int putchar_unlocked (int __c);
+
+
+
+
+
+
+
+#line 581 "/usr/include/stdio.h"
+extern int getw (FILE *__stream);
+
+
+
+#line 584 "/usr/include/stdio.h"
+extern int putw (int __w, FILE *__stream);
+
+
+
+
+
+
+
+
+#line 592 "/usr/include/stdio.h"
+extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream)
+ __attribute__ ((__access__ (__write_only__, 1, 2)));
+
+#line 594 "/usr/include/stdio.h"
+extern __ssize_t __getdelim (char **__restrict __lineptr,
+ size_t *__restrict __n, int __delimiter,
+ FILE *__restrict __stream) ;
+
+#line 635 "/usr/include/stdio.h"
+extern __ssize_t getdelim (char **__restrict __lineptr,
+ size_t *__restrict __n, int __delimiter,
+ FILE *__restrict __stream) ;
+
+
+
+
+
+
+
+
+#line 645 "/usr/include/stdio.h"
+extern __ssize_t getline (char **__restrict __lineptr,
+ size_t *__restrict __n,
+ FILE *__restrict __stream) ;
+
+
+
+
+
+
+
+
+#line 655 "/usr/include/stdio.h"
+extern int fputs (const char *__restrict __s, FILE *__restrict __stream);
+
+
+
+
+
+
+#line 661 "/usr/include/stdio.h"
+extern int puts (const char *__s);
+
+
+
+
+
+
+
+#line 668 "/usr/include/stdio.h"
+extern int ungetc (int __c, FILE *__stream);
+
+
+
+
+
+
+
+#line 675 "/usr/include/stdio.h"
+extern size_t fread (void *__restrict __ptr, size_t __size,
+ size_t __n, FILE *__restrict __stream) ;
+
+
+
+
+
+#line 681 "/usr/include/stdio.h"
+extern size_t fwrite (const void *__restrict __ptr, size_t __size,
+ size_t __n, FILE *__restrict __s);
+
+#line 683 "/usr/include/stdio.h"
+extern size_t fread_unlocked (void *__restrict __ptr, size_t __size,
+ size_t __n, FILE *__restrict __stream) ;
+
+#line 704 "/usr/include/stdio.h"
+extern size_t fwrite_unlocked (const void *__restrict __ptr, size_t __size,
+ size_t __n, FILE *__restrict __stream);
+
+
+
+
+
+
+
+
+#line 713 "/usr/include/stdio.h"
+extern int fseek (FILE *__stream, long int __off, int __whence);
+
+
+
+
+
+#line 718 "/usr/include/stdio.h"
+extern long int ftell (FILE *__stream) ;
+
+
+
+
+
+#line 723 "/usr/include/stdio.h"
+extern void rewind (FILE *__stream);
+
+#line 724 "/usr/include/stdio.h"
+extern int fseeko (FILE *__stream, __off_t __off, int __whence);
+
+
+
+
+
+#line 741 "/usr/include/stdio.h"
+extern __off_t ftello (FILE *__stream) ;
+
+#line 742 "/usr/include/stdio.h"
+extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos);
+
+
+
+
+
+#line 765 "/usr/include/stdio.h"
+extern int fsetpos (FILE *__stream, const fpos_t *__pos);
+
+#line 766 "/usr/include/stdio.h"
+extern void clearerr (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
+
+
+#line 788 "/usr/include/stdio.h"
+extern int feof (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+#line 790 "/usr/include/stdio.h"
+extern int ferror (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+#line 794 "/usr/include/stdio.h"
+extern void clearerr_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 795 "/usr/include/stdio.h"
+extern int feof_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+#line 796 "/usr/include/stdio.h"
+extern int ferror_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+
+
+
+#line 804 "/usr/include/stdio.h"
+extern void perror (const char *__s);
+
+
+
+
+
+#line 809 "/usr/include/stdio.h"
+extern int fileno (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+#line 814 "/usr/include/stdio.h"
+extern int fileno_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+#line 815 "/usr/include/stdio.h"
+extern int pclose (FILE *__stream);
+
+
+
+
+
+
+#line 829 "/usr/include/stdio.h"
+extern FILE *popen (const char *__command, const char *__modes)
+ __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (pclose, 1))) ;
+
+
+
+
+
+
+
+#line 837 "/usr/include/stdio.h"
+extern char *ctermid (char *__s) __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__access__ (__write_only__, 1)));
+
+#line 839 "/usr/include/stdio.h"
+extern void flockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 871 "/usr/include/stdio.h"
+extern int ftrylockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+#line 874 "/usr/include/stdio.h"
+extern void funlockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 875 "/usr/include/stdio.h"
+extern int __uflow (FILE *);
+
+#line 886 "/usr/include/stdio.h"
+extern int __overflow (FILE *, int);
+
+#line 887 "/usr/include/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+vprintf (const char *__restrict __fmt, __gnuc_va_list __arg)
+{
+ return vfprintf (stdout, __fmt, __arg);
+}
+
+
+
+
+#line 46 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+getchar (void)
+{
+ return getc (stdin);
+}
+
+
+
+
+
+#line 55 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+fgetc_unlocked (FILE *__fp)
+{
+ return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++);
+}
+
+
+
+
+
+
+#line 65 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+getc_unlocked (FILE *__fp)
+{
+ return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++);
+}
+
+
+
+#line 72 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+getchar_unlocked (void)
+{
+ return (__builtin_expect (((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end), 0) ? __uflow (stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++);
+}
+
+
+
+
+
+#line 81 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+putchar (int __c)
+{
+ return putc (__c, stdout);
+}
+
+
+
+
+
+#line 90 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+fputc_unlocked (int __c, FILE *__stream)
+{
+ return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
+}
+
+
+
+
+
+
+#line 100 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+putc_unlocked (int __c, FILE *__stream)
+{
+ return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
+}
+
+
+
+#line 107 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+putchar_unlocked (int __c)
+{
+ return (__builtin_expect (((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end), 0) ? __overflow (stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c)));
+}
+
+#line 112 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+__attribute__ ((__nothrow__ , __leaf__)) feof_unlocked (FILE *__stream)
+{
+ return (((__stream)->_flags & 0x0010) != 0);
+}
+
+
+
+#line 134 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+__attribute__ ((__nothrow__ , __leaf__)) ferror_unlocked (FILE *__stream)
+{
+ return (((__stream)->_flags & 0x0020) != 0);
+}
+
+#line 139 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+
+
+
+
+
+
+
+
+
+struct hashmap_other__other__comma_struct_other_uniq_other_string {
+ struct uniq_string **data;
+ size_t count;
+ size_t cap;
+};
+
+
+#line 139 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+
+
+
+
+
+
+
+
+
+struct hashmap_other__other__comma_struct_other_call {
+ struct call **data;
+ size_t count;
+ size_t cap;
+};
+
+
+#line 17 "gamma.h"
+uint32_t hashmap_other_hash_other__other__comma_struct_other_call(struct call *item);
+
+#line 17 "gamma.h"
+uint32_t hashmap_other_hash_other__other__comma_struct_other_uniq_other_string(struct uniq_string *item);
+
+#line 18 "gamma.h"
+int hashmap_other_eq_other__other__comma_struct_other_call(struct call *A, struct call *B);
+
+
+#line 18 "gamma.h"
+int hashmap_other_eq_other__other__comma_struct_other_uniq_other_string(struct uniq_string *A, struct uniq_string *B);
+
+
+#line 20 "gamma.h"
+struct uniq_string *hashmap_other_lookup_other__other__comma_struct_other_uniq_other_string(struct hashmap_other__other__comma_struct_other_uniq_other_string *hashmap, struct uniq_string *item);
+
+#line 21 "gamma.h"
+struct uniq_string *hashmap_other_lookup_other_weak_other__other__comma_struct_other_uniq_other_string(struct hashmap_other__other__comma_struct_other_uniq_other_string *hashmap, struct uniq_string *item);
+
+#line 21 "gamma.h"
+struct call *hashmap_other_lookup_other_weak_other__other__comma_struct_other_call(struct hashmap_other__other__comma_struct_other_call *hashmap, struct call *item);
+
+#line 22 "gamma.h"
+int hashmap_other_contains_other__other__comma_struct_other_call(struct hashmap_other__other__comma_struct_other_call *hashmap, struct call *item);
+
+#line 23 "gamma.h"
+void hashmap_other_insert_other__other__comma_struct_other_uniq_other_string(struct hashmap_other__other__comma_struct_other_uniq_other_string *hashmap, struct uniq_string *item);
+
+#line 23 "gamma.h"
+void hashmap_other_insert_other__other__comma_struct_other_call(struct hashmap_other__other__comma_struct_other_call *hashmap, struct call *item);
+
+#line 24 "gamma.h"
+struct uniq_string *heapify_other__other__comma_struct_other_uniq_other_string(struct uniq_string item);
+
+
+#line 26 "gamma.h"
+struct vector_other__other__comma_struct_other_call_other__star_ {
+ struct call * *data;
+ size_t count;
+ size_t cap;
+};
+
+#line 31 "gamma.h"
+uint32_t vector_other_push_other__other__comma_struct_other_call_other__star_(struct vector_other__other__comma_struct_other_call_other__star_ *vector, struct call * item);
+
+#line 32 "gamma.h"
+struct call * vector_other_pop_other__other__comma_struct_other_call_other__star_(struct vector_other__other__comma_struct_other_call_other__star_ *vector);
+
+#line 33 "gamma.h"
+struct vector_other__other__comma_struct_other_call_other__star_ *init_other_vector_other__other__comma_struct_other_call_other__star_();
+
+
+#line 35 "gamma.h"
+struct uniq_string {
+ char *string;
+ size_t len;
+
+ struct vector_other__other__comma_struct_other_call_other__star_ instantiations;
+
+ struct chunk *definitions;
+};
+
+
+#line 44 "gamma.h"
+struct arg {
+ char *start;
+ struct uniq_string *string;
+ int is_concrete;
+};
+
+
+#line 50 "gamma.h"
+struct call {
+ char *start;
+ char *end;
+ struct uniq_string *name;
+ struct arg *args;
+ size_t n_args;
+ struct call *next;
+};
+
+
+#line 59 "gamma.h"
+struct chunk {
+ char *start;
+ char *end;
+
+ char *line_filename;
+ size_t line;
+
+ struct call *defining_call;
+ struct call *calls;
+ struct chunk *next;
+ struct chunk *next_definition;
+};
+
+
+#line 72 "gamma.h"
+struct chunked_file {
+ char *contents;
+ char *end;
+ size_t id;
+ struct chunk *chunks;
+ struct chunked_file *next;
+};
+
+
+#line 80 "gamma.h"
+struct chunked_file *chunk(const char *path);
+
+#line 81 "gamma.h"
+struct uniq_string *lookup(char *string, size_t len);
+
+#line 82 "gamma.h"
+struct uniq_string *weak_lookup(char *string, size_t len);
+
+
+
+
+#line 86 "gamma.h"
+struct instantiation_set {
+ struct call **data;
+ size_t n;
+ size_t cap;
+};
+
+
+#line 92 "gamma.h"
+void parse_call(struct call *call);
+
+#line 93 "gamma.h"
+void print_state(struct chunked_file *file);
+
+#line 94 "gamma.h"
+void solve(struct chunked_file *files);
+
+#line 95 "gamma.h"
+void print_string(struct uniq_string *string);
+
+#line 96 "gamma.h"
+void print_call(struct call *call);
+
+#line 97 "gamma.h"
+void print_set(struct instantiation_set *set);
+
+#line 98 "gamma.h"
+void print_chunk(struct chunk *chunk, struct call *instantiation, FILE *out);
+
+#line 99 "gamma.h"
+struct call *replace_variables(struct call *container, struct call *container_instantiation, struct call *call);
+
+#line 100 "gamma.h"
+void fprint_string(FILE *out, struct uniq_string *string);
+
+#line 101 "gamma.h"
+char **read_fakeobj(char *path, char *c_dst);
+
+#line 102 "gamma.h"
+void write_fakeobj(char *src, char *dst, int i);
+
+#line 103 "gamma.h"
+void gamma_sendfile(int dst_fd, int src_fd);
+
+#line 104 "gamma.h"
+void copy_file(char *dst, char *src);
+
+
+#line 106 "gamma.h"
+extern char **ARGV;
+
+#line 107 "gamma.h"
+extern int ARGC;
+
+#line 108 "gamma.h"
+extern char *TMPDIR;
+
+#line 109 "gamma.h"
+extern int GAMMA_TO_C;
+
+#line 110 "gamma.h"
+
+uint32_t vector_other_push_other__other__comma_struct_other_call_other__star_(struct vector_other__other__comma_struct_other_call_other__star_ *vector, struct call * item) {
+ if ((2 * vector->count) >= vector->cap) {
+ vector->cap *= 4;
+ vector->cap = vector->cap ? vector->cap : 128;
+ vector->data = realloc(vector->data, vector->cap * sizeof(vector->data[0]));
+ }
+ vector->data[vector->count++] = item;
+}
+
+
+#line 12 "vector.c"
+struct call * vector_other_pop_other__other__comma_struct_other_call_other__star_(struct vector_other__other__comma_struct_other_call_other__star_ *vector) {
+ return vector->data[--(vector->count)];
+}
+
+
+#line 16 "vector.c"
+struct vector_other__other__comma_struct_other_call_other__star_ *init_other_vector_other__other__comma_struct_other_call_other__star_() {
+ return calloc(1, sizeof(struct vector_other__other__comma_struct_other_call_other__star_));
+}
+
+#line 19 "vector.c"
diff --git a/c_version/16.c b/c_version/16.c
new file mode 100755
index 0000000..3ef8421
--- /dev/null
+++ b/c_version/16.c
@@ -0,0 +1,3485 @@
+
+#line 1 "/tmp/gamma.XksNqZ/16.unfake.c"
+
+
+
+
+
+
+extern void __assert_fail (const char *__assertion, const char *__file,
+ unsigned int __line, const char *__function)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+#line 74 "/usr/include/assert.h"
+extern void __assert_perror_fail (int __errnum, const char *__file,
+ unsigned int __line, const char *__function)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+
+#line 81 "/usr/include/assert.h"
+extern void __assert (const char *__assertion, const char *__file, int __line)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+#line 86 "/usr/include/assert.h"
+typedef long int ptrdiff_t;
+
+#line 146 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h"
+typedef long unsigned int size_t;
+
+#line 215 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h"
+typedef int wchar_t;
+
+#line 330 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h"
+typedef struct {
+ long long __max_align_ll __attribute__((__aligned__(__alignof__(long long))));
+ long double __max_align_ld __attribute__((__aligned__(__alignof__(long double))));
+}
+#line 435 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h"
+max_align_t;
+
+#line 436 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h"
+
+
+typedef unsigned char __u_char;
+
+#line 32 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned short int __u_short;
+
+#line 33 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __u_int;
+
+#line 34 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __u_long;
+
+
+
+#line 37 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef signed char __int8_t;
+
+#line 38 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned char __uint8_t;
+
+#line 39 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef signed short int __int16_t;
+
+#line 40 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned short int __uint16_t;
+
+#line 41 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef signed int __int32_t;
+
+#line 42 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __uint32_t;
+
+
+#line 44 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef signed long int __int64_t;
+
+#line 45 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __uint64_t;
+
+
+
+
+
+
+
+#line 52 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __int8_t __int_least8_t;
+
+#line 53 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __uint8_t __uint_least8_t;
+
+#line 54 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __int16_t __int_least16_t;
+
+#line 55 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __uint16_t __uint_least16_t;
+
+#line 56 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __int32_t __int_least32_t;
+
+#line 57 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __uint32_t __uint_least32_t;
+
+#line 58 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __int64_t __int_least64_t;
+
+#line 59 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __uint64_t __uint_least64_t;
+
+
+
+
+#line 63 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __quad_t;
+
+#line 64 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __u_quad_t;
+
+
+
+
+
+
+
+
+#line 72 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __intmax_t;
+
+#line 73 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __uintmax_t;
+
+#line 74 "/usr/include/x86_64-linux-gnu/bits/types.h"
+
+
+typedef unsigned long int __dev_t;
+
+#line 146 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __uid_t;
+
+#line 147 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __gid_t;
+
+#line 148 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __ino_t;
+
+#line 149 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __ino64_t;
+
+#line 150 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __mode_t;
+
+#line 151 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __nlink_t;
+
+#line 152 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __off_t;
+
+#line 153 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __off64_t;
+
+#line 154 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef int __pid_t;
+
+#line 155 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef struct { int __val[2]; }
+#line 155 "/usr/include/x86_64-linux-gnu/bits/types.h"
+__fsid_t;
+
+#line 156 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __clock_t;
+
+#line 157 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __rlim_t;
+
+#line 158 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __rlim64_t;
+
+#line 159 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __id_t;
+
+#line 160 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __time_t;
+
+#line 161 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __useconds_t;
+
+#line 162 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __suseconds_t;
+
+#line 163 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __suseconds64_t;
+
+
+#line 165 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef int __daddr_t;
+
+#line 166 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef int __key_t;
+
+
+
+#line 169 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef int __clockid_t;
+
+
+
+#line 172 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef void * __timer_t;
+
+
+
+#line 175 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __blksize_t;
+
+
+
+
+
+#line 180 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __blkcnt_t;
+
+#line 181 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __blkcnt64_t;
+
+
+
+#line 184 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __fsblkcnt_t;
+
+#line 185 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __fsblkcnt64_t;
+
+
+
+#line 188 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __fsfilcnt_t;
+
+#line 189 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __fsfilcnt64_t;
+
+
+
+#line 192 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __fsword_t;
+
+
+#line 194 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __ssize_t;
+
+
+
+#line 197 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __syscall_slong_t;
+
+
+#line 199 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __syscall_ulong_t;
+
+
+
+
+#line 203 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __off64_t __loff_t;
+
+#line 204 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef char *__caddr_t;
+
+
+
+#line 207 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __intptr_t;
+
+
+
+#line 210 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __socklen_t;
+
+
+
+
+
+#line 215 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef int __sig_atomic_t;
+
+#line 216 "/usr/include/x86_64-linux-gnu/bits/types.h"
+
+
+
+
+typedef __int8_t int8_t;
+
+#line 25 "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h"
+typedef __int16_t int16_t;
+
+#line 26 "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h"
+typedef __int32_t int32_t;
+
+#line 27 "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h"
+typedef __int64_t int64_t;
+
+#line 28 "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h"
+
+
+typedef __uint8_t uint8_t;
+
+#line 25 "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h"
+typedef __uint16_t uint16_t;
+
+#line 26 "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h"
+typedef __uint32_t uint32_t;
+
+#line 27 "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h"
+typedef __uint64_t uint64_t;
+
+#line 28 "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h"
+
+
+
+
+
+typedef __int_least8_t int_least8_t;
+
+#line 44 "/usr/include/stdint.h"
+typedef __int_least16_t int_least16_t;
+
+#line 45 "/usr/include/stdint.h"
+typedef __int_least32_t int_least32_t;
+
+#line 46 "/usr/include/stdint.h"
+typedef __int_least64_t int_least64_t;
+
+
+
+#line 49 "/usr/include/stdint.h"
+typedef __uint_least8_t uint_least8_t;
+
+#line 50 "/usr/include/stdint.h"
+typedef __uint_least16_t uint_least16_t;
+
+#line 51 "/usr/include/stdint.h"
+typedef __uint_least32_t uint_least32_t;
+
+#line 52 "/usr/include/stdint.h"
+typedef __uint_least64_t uint_least64_t;
+
+
+
+
+
+
+#line 58 "/usr/include/stdint.h"
+typedef signed char int_fast8_t;
+
+
+#line 60 "/usr/include/stdint.h"
+typedef long int int_fast16_t;
+
+#line 61 "/usr/include/stdint.h"
+typedef long int int_fast32_t;
+
+#line 62 "/usr/include/stdint.h"
+typedef long int int_fast64_t;
+
+#line 63 "/usr/include/stdint.h"
+typedef unsigned char uint_fast8_t;
+
+
+#line 73 "/usr/include/stdint.h"
+typedef unsigned long int uint_fast16_t;
+
+#line 74 "/usr/include/stdint.h"
+typedef unsigned long int uint_fast32_t;
+
+#line 75 "/usr/include/stdint.h"
+typedef unsigned long int uint_fast64_t;
+
+#line 76 "/usr/include/stdint.h"
+typedef long int intptr_t;
+
+
+
+#line 90 "/usr/include/stdint.h"
+typedef unsigned long int uintptr_t;
+
+#line 91 "/usr/include/stdint.h"
+typedef __intmax_t intmax_t;
+
+#line 102 "/usr/include/stdint.h"
+typedef __uintmax_t uintmax_t;
+
+#line 103 "/usr/include/stdint.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct
+ {
+ int quot;
+ int rem;
+ }
+#line 63 "/usr/include/stdlib.h"
+div_t;
+
+
+
+
+#line 67 "/usr/include/stdlib.h"
+typedef struct
+ {
+ long int quot;
+ long int rem;
+ }
+#line 71 "/usr/include/stdlib.h"
+ldiv_t;
+
+
+
+
+
+
+#line 77 "/usr/include/stdlib.h"
+__extension__ typedef struct
+ {
+ long long int quot;
+ long long int rem;
+ }
+#line 81 "/usr/include/stdlib.h"
+lldiv_t;
+
+#line 82 "/usr/include/stdlib.h"
+extern size_t __ctype_get_mb_cur_max (void) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+#line 102 "/usr/include/stdlib.h"
+extern double atof (const char *__nptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+#line 105 "/usr/include/stdlib.h"
+extern int atoi (const char *__nptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+#line 108 "/usr/include/stdlib.h"
+extern long int atol (const char *__nptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+#line 113 "/usr/include/stdlib.h"
+__extension__ extern long long int atoll (const char *__nptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+#line 118 "/usr/include/stdlib.h"
+extern double strtod (const char *__restrict __nptr,
+ char **__restrict __endptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+#line 124 "/usr/include/stdlib.h"
+extern float strtof (const char *__restrict __nptr,
+ char **__restrict __endptr) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+#line 127 "/usr/include/stdlib.h"
+extern long double strtold (const char *__restrict __nptr,
+ char **__restrict __endptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 130 "/usr/include/stdlib.h"
+extern long int strtol (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+#line 181 "/usr/include/stdlib.h"
+extern unsigned long int strtoul (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+#line 187 "/usr/include/stdlib.h"
+__extension__
+extern long long int strtoq (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+#line 192 "/usr/include/stdlib.h"
+__extension__
+extern unsigned long long int strtouq (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+#line 200 "/usr/include/stdlib.h"
+__extension__
+extern long long int strtoll (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+#line 205 "/usr/include/stdlib.h"
+__extension__
+extern unsigned long long int strtoull (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 209 "/usr/include/stdlib.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+__attribute__ ((__nothrow__ , __leaf__)) atoi (const char *__nptr)
+{
+ return (int) strtol (__nptr, (char **) ((void *)0), 10);
+}
+
+#line 366 "/usr/include/stdlib.h"
+extern __inline __attribute__ ((__gnu_inline__)) long int
+__attribute__ ((__nothrow__ , __leaf__)) atol (const char *__nptr)
+{
+ return strtol (__nptr, (char **) ((void *)0), 10);
+}
+
+
+
+#line 373 "/usr/include/stdlib.h"
+__extension__ extern __inline __attribute__ ((__gnu_inline__)) long long int
+__attribute__ ((__nothrow__ , __leaf__)) atoll (const char *__nptr)
+{
+ return strtoll (__nptr, (char **) ((void *)0), 10);
+}
+
+#line 378 "/usr/include/stdlib.h"
+extern char *l64a (long int __n) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+#line 389 "/usr/include/stdlib.h"
+extern long int a64l (const char *__s)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+
+#line 395 "/usr/include/stdlib.h"
+
+
+
+
+
+
+typedef __u_char u_char;
+
+#line 34 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __u_short u_short;
+
+#line 35 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __u_int u_int;
+
+#line 36 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __u_long u_long;
+
+#line 37 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __quad_t quad_t;
+
+#line 38 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __u_quad_t u_quad_t;
+
+#line 39 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __fsid_t fsid_t;
+
+
+
+#line 42 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __loff_t loff_t;
+
+
+
+
+
+#line 47 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __ino_t ino_t;
+
+#line 48 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __dev_t dev_t;
+
+
+
+
+
+#line 64 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __gid_t gid_t;
+
+
+
+
+
+#line 69 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __mode_t mode_t;
+
+
+
+
+
+#line 74 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __nlink_t nlink_t;
+
+
+
+
+
+#line 79 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __uid_t uid_t;
+
+
+
+
+
+
+#line 85 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __off_t off_t;
+
+#line 86 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __pid_t pid_t;
+
+
+
+
+
+
+#line 103 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __id_t id_t;
+
+
+
+
+
+#line 108 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __ssize_t ssize_t;
+
+
+
+
+
+
+#line 114 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __daddr_t daddr_t;
+
+#line 115 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __caddr_t caddr_t;
+
+
+
+
+
+
+#line 121 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __key_t key_t;
+
+
+
+
+
+#line 126 "/usr/include/x86_64-linux-gnu/sys/types.h"
+
+
+
+
+
+
+typedef __clock_t clock_t;
+
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/clock_t.h"
+
+
+
+
+
+
+
+typedef __clockid_t clockid_t;
+
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h"
+typedef __time_t time_t;
+
+#line 11 "/usr/include/x86_64-linux-gnu/bits/types/time_t.h"
+
+
+
+
+
+
+typedef __timer_t timer_t;
+
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/timer_t.h"
+
+
+
+typedef unsigned long int ulong;
+
+#line 149 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef unsigned short int ushort;
+
+#line 150 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef unsigned int uint;
+
+
+
+
+
+
+
+
+#line 158 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __uint8_t u_int8_t;
+
+#line 159 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __uint16_t u_int16_t;
+
+#line 160 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __uint32_t u_int32_t;
+
+#line 161 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __uint64_t u_int64_t;
+
+
+
+#line 164 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef int register_t __attribute__ ((__mode__ (__word__)));
+
+#line 165 "/usr/include/x86_64-linux-gnu/sys/types.h"
+static __inline __uint16_t
+__bswap_16 (__uint16_t __bsx)
+{
+
+ return __builtin_bswap16 (__bsx);
+
+
+
+}
+
+
+
+
+
+
+
+#line 48 "/usr/include/x86_64-linux-gnu/bits/byteswap.h"
+static __inline __uint32_t
+__bswap_32 (__uint32_t __bsx)
+{
+
+ return __builtin_bswap32 (__bsx);
+
+
+
+}
+
+#line 57 "/usr/include/x86_64-linux-gnu/bits/byteswap.h"
+__extension__ static __inline __uint64_t
+__bswap_64 (__uint64_t __bsx)
+{
+
+ return __builtin_bswap64 (__bsx);
+
+
+
+}
+
+#line 78 "/usr/include/x86_64-linux-gnu/bits/byteswap.h"
+static __inline __uint16_t
+__uint16_identity (__uint16_t __x)
+{
+ return __x;
+}
+
+
+#line 38 "/usr/include/x86_64-linux-gnu/bits/uintn-identity.h"
+static __inline __uint32_t
+__uint32_identity (__uint32_t __x)
+{
+ return __x;
+}
+
+
+#line 44 "/usr/include/x86_64-linux-gnu/bits/uintn-identity.h"
+static __inline __uint64_t
+__uint64_identity (__uint64_t __x)
+{
+ return __x;
+}
+
+#line 49 "/usr/include/x86_64-linux-gnu/bits/uintn-identity.h"
+
+
+
+
+
+
+
+
+
+
+
+typedef struct
+{
+ unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))];
+}
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h"
+__sigset_t;
+
+#line 9 "/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h"
+
+
+typedef __sigset_t sigset_t;
+
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h"
+
+
+
+
+
+
+
+
+
+
+struct timeval
+{
+
+
+
+
+ __time_t tv_sec;
+ __suseconds_t tv_usec;
+
+};
+
+#line 18 "/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h"
+
+struct timespec
+{
+
+
+
+ __time_t tv_sec;
+
+
+
+
+ __syscall_slong_t tv_nsec;
+};
+
+#line 32 "/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h"
+
+
+
+typedef __suseconds_t suseconds_t;
+
+
+
+
+
+
+#line 49 "/usr/include/x86_64-linux-gnu/sys/select.h"
+typedef long int __fd_mask;
+
+#line 50 "/usr/include/x86_64-linux-gnu/sys/select.h"
+typedef struct
+ {
+
+
+
+
+
+
+ __fd_mask __fds_bits[1024 / (8 * (int) sizeof (__fd_mask))];
+
+
+ }
+#line 70 "/usr/include/x86_64-linux-gnu/sys/select.h"
+fd_set;
+
+
+
+
+
+
+
+#line 77 "/usr/include/x86_64-linux-gnu/sys/select.h"
+typedef __fd_mask fd_mask;
+
+#line 78 "/usr/include/x86_64-linux-gnu/sys/select.h"
+
+extern int select (int __nfds, fd_set *__restrict __readfds,
+ fd_set *__restrict __writefds,
+ fd_set *__restrict __exceptfds,
+ struct timeval *__restrict __timeout);
+
+#line 106 "/usr/include/x86_64-linux-gnu/sys/select.h"
+extern int pselect (int __nfds, fd_set *__restrict __readfds,
+ fd_set *__restrict __writefds,
+ fd_set *__restrict __exceptfds,
+ const struct timespec *__restrict __timeout,
+ const __sigset_t *__restrict __sigmask);
+
+#line 132 "/usr/include/x86_64-linux-gnu/sys/select.h"
+
+
+
+
+
+
+typedef __blksize_t blksize_t;
+
+
+
+
+
+
+
+#line 192 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __blkcnt_t blkcnt_t;
+
+
+
+
+#line 196 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __fsblkcnt_t fsblkcnt_t;
+
+
+
+
+#line 200 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __fsfilcnt_t fsfilcnt_t;
+
+#line 201 "/usr/include/x86_64-linux-gnu/sys/types.h"
+
+typedef union
+{
+ __extension__ unsigned long long int __value64;
+ struct
+ {
+ unsigned int __low;
+ unsigned int __high;
+ } __value32;
+}
+#line 33 "/usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h"
+__atomic_wide_counter;
+
+#line 34 "/usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h"
+
+
+
+
+typedef struct __pthread_internal_list
+{
+ struct __pthread_internal_list *__prev;
+ struct __pthread_internal_list *__next;
+}
+#line 55 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+__pthread_list_t;
+
+
+#line 57 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+typedef struct __pthread_internal_slist
+{
+ struct __pthread_internal_slist *__next;
+}
+#line 60 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+__pthread_slist_t;
+
+#line 61 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+struct __pthread_mutex_s
+{
+ int __lock;
+ unsigned int __count;
+ int __owner;
+
+ unsigned int __nusers;
+
+
+
+ int __kind;
+
+ short __spins;
+ short __elision;
+ __pthread_list_t __list;
+};
+
+#line 54 "/usr/include/x86_64-linux-gnu/bits/struct_mutex.h"
+struct __pthread_rwlock_arch_t
+{
+ unsigned int __readers;
+ unsigned int __writers;
+ unsigned int __wrphase_futex;
+ unsigned int __writers_futex;
+ unsigned int __pad3;
+ unsigned int __pad4;
+
+ int __cur_writer;
+ int __shared;
+ signed char __rwelision;
+
+
+
+
+ unsigned char __pad1[7];
+
+
+ unsigned long int __pad2;
+
+
+ unsigned int __flags;
+};
+
+#line 56 "/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h"
+
+
+
+
+struct __pthread_cond_s
+{
+ __atomic_wide_counter __wseq;
+ __atomic_wide_counter __g1_start;
+ unsigned int __g_refs[2] ;
+ unsigned int __g_size[2];
+ unsigned int __g1_orig_size;
+ unsigned int __wrefs;
+ unsigned int __g_signals[2];
+};
+
+
+#line 105 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+typedef unsigned int __tss_t;
+
+#line 106 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+typedef unsigned long int __thrd_t;
+
+
+#line 108 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+typedef struct
+{
+ int __data ;
+}
+#line 111 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+__once_flag;
+
+#line 112 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+
+
+
+typedef unsigned long int pthread_t;
+
+
+
+
+
+#line 32 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ char __size[4];
+ int __align;
+}
+#line 36 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_mutexattr_t;
+
+
+
+
+
+#line 41 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ char __size[4];
+ int __align;
+}
+#line 45 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_condattr_t;
+
+
+
+
+#line 49 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef unsigned int pthread_key_t;
+
+
+
+
+#line 53 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef int pthread_once_t;
+
+
+
+#line 56 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+union pthread_attr_t
+{
+ char __size[56];
+ long int __align;
+};
+
+
+#line 62 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union pthread_attr_t pthread_attr_t;
+
+
+
+
+
+#line 67 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ struct __pthread_mutex_s __data;
+ char __size[40];
+ long int __align;
+}
+#line 72 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_mutex_t;
+
+
+
+#line 75 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ struct __pthread_cond_s __data;
+ char __size[48];
+ __extension__ long long int __align;
+}
+#line 80 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_cond_t;
+
+
+
+
+
+
+#line 86 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ struct __pthread_rwlock_arch_t __data;
+ char __size[56];
+ long int __align;
+}
+#line 91 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_rwlock_t;
+
+
+#line 93 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ char __size[8];
+ long int __align;
+}
+#line 97 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_rwlockattr_t;
+
+
+
+
+
+
+#line 103 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef volatile int pthread_spinlock_t;
+
+
+
+
+
+#line 108 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ char __size[32];
+ long int __align;
+}
+#line 112 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_barrier_t;
+
+
+#line 114 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ char __size[4];
+ int __align;
+}
+#line 118 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_barrierattr_t;
+
+#line 119 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+
+
+
+
+
+
+
+
+
+extern long int random (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 405 "/usr/include/stdlib.h"
+extern void srandom (unsigned int __seed) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+#line 411 "/usr/include/stdlib.h"
+extern char *initstate (unsigned int __seed, char *__statebuf,
+ size_t __statelen) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+
+
+#line 416 "/usr/include/stdlib.h"
+extern char *setstate (char *__statebuf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+
+#line 424 "/usr/include/stdlib.h"
+struct random_data
+ {
+ int32_t *fptr;
+ int32_t *rptr;
+ int32_t *state;
+ int rand_type;
+ int rand_deg;
+ int rand_sep;
+ int32_t *end_ptr;
+ };
+
+
+#line 435 "/usr/include/stdlib.h"
+extern int random_r (struct random_data *__restrict __buf,
+ int32_t *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 438 "/usr/include/stdlib.h"
+extern int srandom_r (unsigned int __seed, struct random_data *__buf)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+#line 441 "/usr/include/stdlib.h"
+extern int initstate_r (unsigned int __seed, char *__restrict __statebuf,
+ size_t __statelen,
+ struct random_data *__restrict __buf)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 4)));
+
+
+#line 446 "/usr/include/stdlib.h"
+extern int setstate_r (char *__restrict __statebuf,
+ struct random_data *__restrict __buf)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+
+#line 454 "/usr/include/stdlib.h"
+extern int rand (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+#line 456 "/usr/include/stdlib.h"
+extern void srand (unsigned int __seed) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 460 "/usr/include/stdlib.h"
+extern int rand_r (unsigned int *__seed) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+
+#line 468 "/usr/include/stdlib.h"
+extern double drand48 (void) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 469 "/usr/include/stdlib.h"
+extern double erand48 (unsigned short int __xsubi[3]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+#line 472 "/usr/include/stdlib.h"
+extern long int lrand48 (void) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 473 "/usr/include/stdlib.h"
+extern long int nrand48 (unsigned short int __xsubi[3])
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+#line 477 "/usr/include/stdlib.h"
+extern long int mrand48 (void) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 478 "/usr/include/stdlib.h"
+extern long int jrand48 (unsigned short int __xsubi[3])
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+#line 482 "/usr/include/stdlib.h"
+extern void srand48 (long int __seedval) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 483 "/usr/include/stdlib.h"
+extern unsigned short int *seed48 (unsigned short int __seed16v[3])
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 485 "/usr/include/stdlib.h"
+extern void lcong48 (unsigned short int __param[7]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+#line 491 "/usr/include/stdlib.h"
+struct drand48_data
+ {
+ unsigned short int __x[3];
+ unsigned short int __old_x[3];
+ unsigned short int __c;
+ unsigned short int __init;
+ __extension__ unsigned long long int __a;
+
+ };
+
+
+
+#line 502 "/usr/include/stdlib.h"
+extern int drand48_r (struct drand48_data *__restrict __buffer,
+ double *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 504 "/usr/include/stdlib.h"
+extern int erand48_r (unsigned short int __xsubi[3],
+ struct drand48_data *__restrict __buffer,
+ double *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 509 "/usr/include/stdlib.h"
+extern int lrand48_r (struct drand48_data *__restrict __buffer,
+ long int *__restrict __result)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 512 "/usr/include/stdlib.h"
+extern int nrand48_r (unsigned short int __xsubi[3],
+ struct drand48_data *__restrict __buffer,
+ long int *__restrict __result)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 518 "/usr/include/stdlib.h"
+extern int mrand48_r (struct drand48_data *__restrict __buffer,
+ long int *__restrict __result)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 521 "/usr/include/stdlib.h"
+extern int jrand48_r (unsigned short int __xsubi[3],
+ struct drand48_data *__restrict __buffer,
+ long int *__restrict __result)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 527 "/usr/include/stdlib.h"
+extern int srand48_r (long int __seedval, struct drand48_data *__buffer)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+#line 530 "/usr/include/stdlib.h"
+extern int seed48_r (unsigned short int __seed16v[3],
+ struct drand48_data *__buffer) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 533 "/usr/include/stdlib.h"
+extern int lcong48_r (unsigned short int __param[7],
+ struct drand48_data *__buffer)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 538 "/usr/include/stdlib.h"
+extern __uint32_t arc4random (void)
+ __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+#line 542 "/usr/include/stdlib.h"
+extern void arc4random_buf (void *__buf, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+#line 547 "/usr/include/stdlib.h"
+extern __uint32_t arc4random_uniform (__uint32_t __upper_bound)
+ __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+#line 553 "/usr/include/stdlib.h"
+extern void *malloc (size_t __size) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__))
+ __attribute__ ((__alloc_size__ (1))) ;
+
+
+#line 556 "/usr/include/stdlib.h"
+extern void *calloc (size_t __nmemb, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__alloc_size__ (1, 2))) ;
+
+
+
+
+
+
+
+#line 564 "/usr/include/stdlib.h"
+extern void *realloc (void *__ptr, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)) __attribute__ ((__alloc_size__ (2)));
+
+
+
+#line 568 "/usr/include/stdlib.h"
+extern void free (void *__ptr) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+
+#line 576 "/usr/include/stdlib.h"
+extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__))
+ __attribute__ ((__alloc_size__ (2, 3)))
+ __attribute__ ((__malloc__ (__builtin_free, 1)));
+
+
+
+#line 582 "/usr/include/stdlib.h"
+extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__ (reallocarray, 1)));
+
+
+
+
+#line 587 "/usr/include/stdlib.h"
+
+
+
+
+
+
+
+extern void *alloca (size_t __size) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+#line 39 "/usr/include/alloca.h"
+
+
+
+
+
+extern void *valloc (size_t __size) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__))
+ __attribute__ ((__alloc_size__ (1))) ;
+
+
+
+
+
+#line 599 "/usr/include/stdlib.h"
+extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+
+#line 605 "/usr/include/stdlib.h"
+extern void *aligned_alloc (size_t __alignment, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__alloc_align__ (1)))
+ __attribute__ ((__alloc_size__ (2))) ;
+
+
+
+
+#line 611 "/usr/include/stdlib.h"
+extern void abort (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+#line 615 "/usr/include/stdlib.h"
+extern int atexit (void (*__func) (void)) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+
+#line 623 "/usr/include/stdlib.h"
+extern int at_quick_exit (void (*__func) (void)) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+#line 630 "/usr/include/stdlib.h"
+extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+#line 637 "/usr/include/stdlib.h"
+extern void exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+
+
+#line 643 "/usr/include/stdlib.h"
+extern void quick_exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+
+
+#line 649 "/usr/include/stdlib.h"
+extern void _Exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+
+#line 654 "/usr/include/stdlib.h"
+extern char *getenv (const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+#line 655 "/usr/include/stdlib.h"
+extern int putenv (char *__string) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+#line 673 "/usr/include/stdlib.h"
+extern int setenv (const char *__name, const char *__value, int __replace)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+
+#line 677 "/usr/include/stdlib.h"
+extern int unsetenv (const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+#line 684 "/usr/include/stdlib.h"
+extern int clearenv (void) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 685 "/usr/include/stdlib.h"
+extern char *mktemp (char *__template) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 696 "/usr/include/stdlib.h"
+extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) ;
+
+#line 709 "/usr/include/stdlib.h"
+extern int mkstemps (char *__template, int __suffixlen) __attribute__ ((__nonnull__ (1))) ;
+
+#line 731 "/usr/include/stdlib.h"
+extern char *mkdtemp (char *__template) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+#line 752 "/usr/include/stdlib.h"
+extern int system (const char *__command) ;
+
+#line 805 "/usr/include/stdlib.h"
+extern char *realpath (const char *__restrict __name,
+ char *__restrict __resolved) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+
+
+#line 829 "/usr/include/stdlib.h"
+typedef int (*__compar_fn_t) (const void *, const void *);
+
+#line 830 "/usr/include/stdlib.h"
+extern void *bsearch (const void *__key, const void *__base,
+ size_t __nmemb, size_t __size, __compar_fn_t __compar)
+ __attribute__ ((__nonnull__ (1, 2, 5))) ;
+
+
+
+#line 846 "/usr/include/stdlib.h"
+extern __inline __attribute__ ((__gnu_inline__)) void *
+bsearch (const void *__key, const void *__base, size_t __nmemb, size_t __size,
+ __compar_fn_t __compar)
+{
+ size_t __l, __u, __idx;
+ const void *__p;
+ int __comparison;
+
+ __l = 0;
+ __u = __nmemb;
+ while (__l < __u)
+ {
+ __idx = (__l + __u) / 2;
+ __p = (const void *) (((const char *) __base) + (__idx * __size));
+ __comparison = (*__compar) (__key, __p);
+ if (__comparison < 0)
+ __u = __idx;
+ else if (__comparison > 0)
+ __l = __idx + 1;
+ else
+ {
+
+
+ return (void *) __p;
+
+
+ }
+ }
+
+ return ((void *)0);
+}
+
+#line 29 "-Wcast-qual"
+
+
+
+
+extern void qsort (void *__base, size_t __nmemb, size_t __size,
+ __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4)));
+
+#line 853 "/usr/include/stdlib.h"
+extern int abs (int __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+#line 862 "/usr/include/stdlib.h"
+extern long int labs (long int __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+
+
+#line 865 "/usr/include/stdlib.h"
+__extension__ extern long long int llabs (long long int __x)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+
+
+
+
+
+
+#line 873 "/usr/include/stdlib.h"
+extern div_t div (int __numer, int __denom)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+#line 875 "/usr/include/stdlib.h"
+extern ldiv_t ldiv (long int __numer, long int __denom)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+
+
+#line 879 "/usr/include/stdlib.h"
+__extension__ extern lldiv_t lldiv (long long int __numer,
+ long long int __denom)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+#line 882 "/usr/include/stdlib.h"
+extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt,
+ int *__restrict __sign) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ;
+
+
+
+
+
+#line 899 "/usr/include/stdlib.h"
+extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt,
+ int *__restrict __sign) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ;
+
+
+
+
+
+#line 905 "/usr/include/stdlib.h"
+extern char *gcvt (double __value, int __ndigit, char *__buf)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3))) ;
+
+
+
+
+
+#line 911 "/usr/include/stdlib.h"
+extern char *qecvt (long double __value, int __ndigit,
+ int *__restrict __decpt, int *__restrict __sign)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ;
+
+#line 914 "/usr/include/stdlib.h"
+extern char *qfcvt (long double __value, int __ndigit,
+ int *__restrict __decpt, int *__restrict __sign)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ;
+
+#line 917 "/usr/include/stdlib.h"
+extern char *qgcvt (long double __value, int __ndigit, char *__buf)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3))) ;
+
+
+
+
+
+#line 923 "/usr/include/stdlib.h"
+extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt,
+ int *__restrict __sign, char *__restrict __buf,
+ size_t __len) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
+
+#line 926 "/usr/include/stdlib.h"
+extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt,
+ int *__restrict __sign, char *__restrict __buf,
+ size_t __len) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
+
+
+#line 930 "/usr/include/stdlib.h"
+extern int qecvt_r (long double __value, int __ndigit,
+ int *__restrict __decpt, int *__restrict __sign,
+ char *__restrict __buf, size_t __len)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
+
+#line 934 "/usr/include/stdlib.h"
+extern int qfcvt_r (long double __value, int __ndigit,
+ int *__restrict __decpt, int *__restrict __sign,
+ char *__restrict __buf, size_t __len)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
+
+
+
+
+
+
+#line 943 "/usr/include/stdlib.h"
+extern int mblen (const char *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 946 "/usr/include/stdlib.h"
+extern int mbtowc (wchar_t *__restrict __pwc,
+ const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 950 "/usr/include/stdlib.h"
+extern int wctomb (char *__s, wchar_t __wchar) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 954 "/usr/include/stdlib.h"
+extern size_t mbstowcs (wchar_t *__restrict __pwcs,
+ const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__access__ (__read_only__, 2)));
+
+
+#line 958 "/usr/include/stdlib.h"
+extern size_t wcstombs (char *__restrict __s,
+ const wchar_t *__restrict __pwcs, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__access__ (__write_only__, 1, 3)))
+ __attribute__ ((__access__ (__read_only__, 2)));
+
+
+
+
+
+
+
+#line 969 "/usr/include/stdlib.h"
+extern int rpmatch (const char *__response) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+#line 970 "/usr/include/stdlib.h"
+extern int getsubopt (char **__restrict __optionp,
+ char *const *__restrict __tokens,
+ char **__restrict __valuep)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2, 3))) ;
+
+#line 984 "/usr/include/stdlib.h"
+extern int getloadavg (double __loadavg[], int __nelem)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 1028 "/usr/include/stdlib.h"
+extern __inline __attribute__ ((__gnu_inline__)) double
+__attribute__ ((__nothrow__ , __leaf__)) atof (const char *__nptr)
+{
+ return strtod (__nptr, (char **) ((void *)0));
+}
+
+#line 29 "/usr/include/x86_64-linux-gnu/bits/stdlib-float.h"
+
+
+enum
+{
+ _ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)),
+ _ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)),
+ _ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)),
+ _ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)),
+ _ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)),
+ _ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)),
+ _ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)),
+ _ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)),
+ _ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)),
+ _IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)),
+ _ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)),
+ _ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8))
+};
+
+#line 61 "/usr/include/ctype.h"
+extern const unsigned short int **__ctype_b_loc (void)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+#line 81 "/usr/include/ctype.h"
+extern const __int32_t **__ctype_tolower_loc (void)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+#line 83 "/usr/include/ctype.h"
+extern const __int32_t **__ctype_toupper_loc (void)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+#line 85 "/usr/include/ctype.h"
+extern int isalnum (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 109 "/usr/include/ctype.h"
+extern int isalpha (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 110 "/usr/include/ctype.h"
+extern int iscntrl (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 111 "/usr/include/ctype.h"
+extern int isdigit (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 112 "/usr/include/ctype.h"
+extern int islower (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 113 "/usr/include/ctype.h"
+extern int isgraph (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 114 "/usr/include/ctype.h"
+extern int isprint (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 115 "/usr/include/ctype.h"
+extern int ispunct (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 116 "/usr/include/ctype.h"
+extern int isspace (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 117 "/usr/include/ctype.h"
+extern int isupper (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 118 "/usr/include/ctype.h"
+extern int isxdigit (int) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 122 "/usr/include/ctype.h"
+extern int tolower (int __c) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 125 "/usr/include/ctype.h"
+extern int toupper (int __c) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+#line 130 "/usr/include/ctype.h"
+extern int isblank (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 131 "/usr/include/ctype.h"
+extern int isascii (int __c) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 146 "/usr/include/ctype.h"
+extern int toascii (int __c) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 150 "/usr/include/ctype.h"
+extern int _toupper (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 151 "/usr/include/ctype.h"
+extern int _tolower (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 152 "/usr/include/ctype.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+__attribute__ ((__nothrow__ , __leaf__)) tolower (int __c)
+{
+ return __c >= -128 && __c < 256 ? (*__ctype_tolower_loc ())[__c] : __c;
+}
+
+
+#line 212 "/usr/include/ctype.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+__attribute__ ((__nothrow__ , __leaf__)) toupper (int __c)
+{
+ return __c >= -128 && __c < 256 ? (*__ctype_toupper_loc ())[__c] : __c;
+}
+
+#line 217 "/usr/include/ctype.h"
+struct __locale_struct
+{
+
+ struct __locale_data *__locales[13];
+
+
+ const unsigned short int *__ctype_b;
+ const int *__ctype_tolower;
+ const int *__ctype_toupper;
+
+
+ const char *__names[13];
+};
+
+
+#line 41 "/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h"
+typedef struct __locale_struct *__locale_t;
+
+#line 42 "/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h"
+
+typedef __locale_t locale_t;
+
+#line 25 "/usr/include/x86_64-linux-gnu/bits/types/locale_t.h"
+extern int isalnum_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 252 "/usr/include/ctype.h"
+extern int isalpha_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 253 "/usr/include/ctype.h"
+extern int iscntrl_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 254 "/usr/include/ctype.h"
+extern int isdigit_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 255 "/usr/include/ctype.h"
+extern int islower_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 256 "/usr/include/ctype.h"
+extern int isgraph_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 257 "/usr/include/ctype.h"
+extern int isprint_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 258 "/usr/include/ctype.h"
+extern int ispunct_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 259 "/usr/include/ctype.h"
+extern int isspace_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 260 "/usr/include/ctype.h"
+extern int isupper_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 261 "/usr/include/ctype.h"
+extern int isxdigit_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+
+#line 263 "/usr/include/ctype.h"
+extern int isblank_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 267 "/usr/include/ctype.h"
+extern int __tolower_l (int __c, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 268 "/usr/include/ctype.h"
+extern int tolower_l (int __c, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 271 "/usr/include/ctype.h"
+extern int __toupper_l (int __c, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 272 "/usr/include/ctype.h"
+extern int toupper_l (int __c, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 273 "/usr/include/ctype.h"
+
+
+
+
+
+
+
+extern void *memcpy (void *__restrict __dest, const void *__restrict __src,
+ size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 47 "/usr/include/string.h"
+extern void *memmove (void *__dest, const void *__src, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+
+#line 54 "/usr/include/string.h"
+extern void *memccpy (void *__restrict __dest, const void *__restrict __src,
+ int __c, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__access__ (__write_only__, 1, 4)));
+
+
+
+
+
+#line 61 "/usr/include/string.h"
+extern void *memset (void *__s, int __c, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+#line 64 "/usr/include/string.h"
+extern int memcmp (const void *__s1, const void *__s2, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 66 "/usr/include/string.h"
+extern int __memcmpeq (const void *__s1, const void *__s2, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 82 "/usr/include/string.h"
+extern void *memchr (const void *__s, int __c, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+#line 109 "/usr/include/string.h"
+extern char *strcpy (char *__restrict __dest, const char *__restrict __src)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 144 "/usr/include/string.h"
+extern char *strncpy (char *__restrict __dest,
+ const char *__restrict __src, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 149 "/usr/include/string.h"
+extern char *strcat (char *__restrict __dest, const char *__restrict __src)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 152 "/usr/include/string.h"
+extern char *strncat (char *__restrict __dest, const char *__restrict __src,
+ size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 156 "/usr/include/string.h"
+extern int strcmp (const char *__s1, const char *__s2)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 159 "/usr/include/string.h"
+extern int strncmp (const char *__s1, const char *__s2, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 163 "/usr/include/string.h"
+extern int strcoll (const char *__s1, const char *__s2)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 166 "/usr/include/string.h"
+extern size_t strxfrm (char *__restrict __dest,
+ const char *__restrict __src, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))) __attribute__ ((__access__ (__write_only__, 1, 3)));
+
+
+
+
+
+
+
+#line 175 "/usr/include/string.h"
+extern int strcoll_l (const char *__s1, const char *__s2, locale_t __l)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));
+
+
+
+#line 179 "/usr/include/string.h"
+extern size_t strxfrm_l (char *__dest, const char *__src, size_t __n,
+ locale_t __l) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 4)))
+ __attribute__ ((__access__ (__write_only__, 1, 3)));
+
+
+
+
+
+
+#line 187 "/usr/include/string.h"
+extern char *strdup (const char *__s)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+#line 195 "/usr/include/string.h"
+extern char *strndup (const char *__string, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
+
+#line 197 "/usr/include/string.h"
+extern char *strchr (const char *__s, int __c)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+#line 248 "/usr/include/string.h"
+extern char *strrchr (const char *__s, int __c)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+#line 275 "/usr/include/string.h"
+extern size_t strcspn (const char *__s, const char *__reject)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 297 "/usr/include/string.h"
+extern size_t strspn (const char *__s, const char *__accept)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 299 "/usr/include/string.h"
+extern char *strpbrk (const char *__s, const char *__accept)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 325 "/usr/include/string.h"
+extern char *strstr (const char *__haystack, const char *__needle)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+#line 356 "/usr/include/string.h"
+extern char *strtok (char *__restrict __s, const char *__restrict __delim)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+
+
+#line 361 "/usr/include/string.h"
+extern char *__strtok_r (char *__restrict __s,
+ const char *__restrict __delim,
+ char **__restrict __save_ptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3)));
+
+
+#line 366 "/usr/include/string.h"
+extern char *strtok_r (char *__restrict __s, const char *__restrict __delim,
+ char **__restrict __save_ptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3)));
+
+#line 369 "/usr/include/string.h"
+extern size_t strlen (const char *__s)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+#line 413 "/usr/include/string.h"
+extern size_t strnlen (const char *__string, size_t __maxlen)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+#line 419 "/usr/include/string.h"
+extern char *strerror (int __errnum) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 420 "/usr/include/string.h"
+extern int strerror_r (int __errnum, char *__buf, size_t __buflen) __asm__ ("" "__xpg_strerror_r") __attribute__ ((__nothrow__ , __leaf__))
+
+ __attribute__ ((__nonnull__ (2)))
+ __attribute__ ((__access__ (__write_only__, 2, 3)));
+
+#line 436 "/usr/include/string.h"
+extern char *strerror_l (int __errnum, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 462 "/usr/include/string.h"
+
+
+
+
+
+
+
+
+
+
+extern int bcmp (const void *__s1, const void *__s2, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 38 "/usr/include/strings.h"
+extern void bcopy (const void *__src, void *__dest, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 42 "/usr/include/strings.h"
+extern void bzero (void *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 43 "/usr/include/strings.h"
+extern char *index (const char *__s, int __c)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+#line 70 "/usr/include/strings.h"
+extern char *rindex (const char *__s, int __c)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+#line 104 "/usr/include/strings.h"
+extern int ffs (int __i) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+
+
+
+
+
+#line 110 "/usr/include/strings.h"
+extern int ffsl (long int __l) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+#line 111 "/usr/include/strings.h"
+__extension__ extern int ffsll (long long int __ll)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+
+
+
+#line 116 "/usr/include/strings.h"
+extern int strcasecmp (const char *__s1, const char *__s2)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 120 "/usr/include/strings.h"
+extern int strncasecmp (const char *__s1, const char *__s2, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+
+
+#line 128 "/usr/include/strings.h"
+extern int strcasecmp_l (const char *__s1, const char *__s2, locale_t __loc)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));
+
+
+
+
+#line 133 "/usr/include/strings.h"
+extern int strncasecmp_l (const char *__s1, const char *__s2,
+ size_t __n, locale_t __loc)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 4)));
+
+
+
+
+#line 139 "/usr/include/strings.h"
+
+
+
+extern void explicit_bzero (void *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)))
+ __attribute__ ((__access__ (__write_only__, 1, 2)));
+
+
+
+
+#line 471 "/usr/include/string.h"
+extern char *strsep (char **__restrict __stringp,
+ const char *__restrict __delim)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+#line 478 "/usr/include/string.h"
+extern char *strsignal (int __sig) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 479 "/usr/include/string.h"
+extern char *__stpcpy (char *__restrict __dest, const char *__restrict __src)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 491 "/usr/include/string.h"
+extern char *stpcpy (char *__restrict __dest, const char *__restrict __src)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+#line 496 "/usr/include/string.h"
+extern char *__stpncpy (char *__restrict __dest,
+ const char *__restrict __src, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 499 "/usr/include/string.h"
+extern char *stpncpy (char *__restrict __dest,
+ const char *__restrict __src, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 502 "/usr/include/string.h"
+
+
+
+
+
+
+
+
+typedef __builtin_va_list __gnuc_va_list;
+
+#line 41 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stdarg.h"
+
+
+
+
+
+
+typedef struct
+{
+ int __count;
+ union
+ {
+ unsigned int __wch;
+ char __wchb[4];
+ } __value;
+}
+#line 21 "/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h"
+__mbstate_t;
+
+#line 22 "/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h"
+
+
+
+
+typedef struct _G_fpos_t
+{
+ __off_t __pos;
+ __mbstate_t __state;
+}
+#line 14 "/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h"
+__fpos_t;
+
+#line 15 "/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h"
+typedef struct _G_fpos64_t
+{
+ __off64_t __pos;
+ __mbstate_t __state;
+}
+#line 14 "/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h"
+__fpos64_t;
+
+#line 15 "/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h"
+
+
+
+struct _IO_FILE;
+
+#line 5 "/usr/include/x86_64-linux-gnu/bits/types/__FILE.h"
+typedef struct _IO_FILE __FILE;
+
+#line 6 "/usr/include/x86_64-linux-gnu/bits/types/__FILE.h"
+
+
+
+struct _IO_FILE;
+
+
+
+#line 7 "/usr/include/x86_64-linux-gnu/bits/types/FILE.h"
+typedef struct _IO_FILE FILE;
+
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/FILE.h"
+struct _IO_FILE;
+
+#line 36 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+struct _IO_marker;
+
+#line 37 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+struct _IO_codecvt;
+
+#line 38 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+struct _IO_wide_data;
+
+
+
+
+
+#line 43 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+typedef void _IO_lock_t;
+
+
+
+
+
+
+#line 49 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+struct _IO_FILE
+{
+ int _flags;
+
+
+ char *_IO_read_ptr;
+ char *_IO_read_end;
+ char *_IO_read_base;
+ char *_IO_write_base;
+ char *_IO_write_ptr;
+ char *_IO_write_end;
+ char *_IO_buf_base;
+ char *_IO_buf_end;
+
+
+ char *_IO_save_base;
+ char *_IO_backup_base;
+ char *_IO_save_end;
+
+ struct _IO_marker *_markers;
+
+ struct _IO_FILE *_chain;
+
+ int _fileno;
+ int _flags2;
+ __off_t _old_offset;
+
+
+ unsigned short _cur_column;
+ signed char _vtable_offset;
+ char _shortbuf[1];
+
+ _IO_lock_t *_lock;
+
+
+
+
+
+
+
+ __off64_t _offset;
+
+ struct _IO_codecvt *_codecvt;
+ struct _IO_wide_data *_wide_data;
+ struct _IO_FILE *_freeres_list;
+ void *_freeres_buf;
+ size_t __pad5;
+ int _mode;
+
+ char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)];
+};
+
+#line 100 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+typedef __gnuc_va_list va_list;
+
+#line 53 "/usr/include/stdio.h"
+typedef __fpos_t fpos_t;
+
+#line 85 "/usr/include/stdio.h"
+extern FILE *stdin;
+
+#line 144 "/usr/include/stdio.h"
+extern FILE *stdout;
+
+#line 145 "/usr/include/stdio.h"
+extern FILE *stderr;
+
+
+
+
+
+
+
+#line 152 "/usr/include/stdio.h"
+extern int remove (const char *__filename) __attribute__ ((__nothrow__ , __leaf__));
+
+
+#line 154 "/usr/include/stdio.h"
+extern int rename (const char *__old, const char *__new) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 158 "/usr/include/stdio.h"
+extern int renameat (int __oldfd, const char *__old, int __newfd,
+ const char *__new) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 160 "/usr/include/stdio.h"
+extern int fclose (FILE *__stream);
+
+#line 179 "/usr/include/stdio.h"
+extern FILE *tmpfile (void)
+ __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ;
+
+#line 190 "/usr/include/stdio.h"
+extern char *tmpnam (char[20]) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+#line 210 "/usr/include/stdio.h"
+extern char *tmpnam_r (char __s[20]) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+#line 211 "/usr/include/stdio.h"
+extern char *tempnam (const char *__dir, const char *__pfx)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (__builtin_free, 1)));
+
+
+
+
+
+
+
+#line 230 "/usr/include/stdio.h"
+extern int fflush (FILE *__stream);
+
+#line 231 "/usr/include/stdio.h"
+extern int fflush_unlocked (FILE *__stream);
+
+#line 240 "/usr/include/stdio.h"
+extern FILE *fopen (const char *__restrict __filename,
+ const char *__restrict __modes)
+ __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ;
+
+
+
+
+
+#line 265 "/usr/include/stdio.h"
+extern FILE *freopen (const char *__restrict __filename,
+ const char *__restrict __modes,
+ FILE *__restrict __stream) ;
+
+#line 268 "/usr/include/stdio.h"
+extern FILE *fdopen (int __fd, const char *__modes) __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ;
+
+#line 295 "/usr/include/stdio.h"
+extern FILE *fmemopen (void *__s, size_t __len, const char *__modes)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ;
+
+
+
+
+
+#line 314 "/usr/include/stdio.h"
+extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ;
+
+#line 316 "/usr/include/stdio.h"
+extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 332 "/usr/include/stdio.h"
+extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf,
+ int __modes, size_t __n) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+#line 338 "/usr/include/stdio.h"
+extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf,
+ size_t __size) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 342 "/usr/include/stdio.h"
+extern void setlinebuf (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+
+#line 350 "/usr/include/stdio.h"
+extern int fprintf (FILE *__restrict __stream,
+ const char *__restrict __format, ...);
+
+
+
+
+
+#line 356 "/usr/include/stdio.h"
+extern int printf (const char *__restrict __format, ...);
+
+
+#line 358 "/usr/include/stdio.h"
+extern int sprintf (char *__restrict __s,
+ const char *__restrict __format, ...) __attribute__ ((__nothrow__));
+
+
+
+
+
+
+#line 365 "/usr/include/stdio.h"
+extern int vfprintf (FILE *__restrict __s, const char *__restrict __format,
+ __gnuc_va_list __arg);
+
+
+
+
+
+#line 371 "/usr/include/stdio.h"
+extern int vprintf (const char *__restrict __format, __gnuc_va_list __arg);
+
+
+#line 373 "/usr/include/stdio.h"
+extern int vsprintf (char *__restrict __s, const char *__restrict __format,
+ __gnuc_va_list __arg) __attribute__ ((__nothrow__));
+
+
+
+
+#line 378 "/usr/include/stdio.h"
+extern int snprintf (char *__restrict __s, size_t __maxlen,
+ const char *__restrict __format, ...)
+ __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 4)));
+
+
+#line 382 "/usr/include/stdio.h"
+extern int vsnprintf (char *__restrict __s, size_t __maxlen,
+ const char *__restrict __format, __gnuc_va_list __arg)
+ __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 0)));
+
+#line 385 "/usr/include/stdio.h"
+extern int vdprintf (int __fd, const char *__restrict __fmt,
+ __gnuc_va_list __arg)
+ __attribute__ ((__format__ (__printf__, 2, 0)));
+
+#line 406 "/usr/include/stdio.h"
+extern int dprintf (int __fd, const char *__restrict __fmt, ...)
+ __attribute__ ((__format__ (__printf__, 2, 3)));
+
+
+
+
+
+
+
+
+#line 415 "/usr/include/stdio.h"
+extern int fscanf (FILE *__restrict __stream,
+ const char *__restrict __format, ...) ;
+
+
+
+
+
+#line 421 "/usr/include/stdio.h"
+extern int scanf (const char *__restrict __format, ...) ;
+
+
+#line 423 "/usr/include/stdio.h"
+extern int sscanf (const char *__restrict __s,
+ const char *__restrict __format, ...) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 425 "/usr/include/stdio.h"
+extern int fscanf (FILE *__restrict __stream, const char *__restrict __format, ...) __asm__ ("" "__isoc99_fscanf")
+
+ ;
+
+#line 437 "/usr/include/stdio.h"
+extern int scanf (const char *__restrict __format, ...) __asm__ ("" "__isoc99_scanf")
+ ;
+
+#line 439 "/usr/include/stdio.h"
+extern int sscanf (const char *__restrict __s, const char *__restrict __format, ...) __asm__ ("" "__isoc99_sscanf") __attribute__ ((__nothrow__ , __leaf__))
+
+ ;
+
+#line 442 "/usr/include/stdio.h"
+extern int vfscanf (FILE *__restrict __s, const char *__restrict __format,
+ __gnuc_va_list __arg)
+ __attribute__ ((__format__ (__scanf__, 2, 0))) ;
+
+
+
+
+
+
+#line 467 "/usr/include/stdio.h"
+extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg)
+ __attribute__ ((__format__ (__scanf__, 1, 0))) ;
+
+
+
+#line 471 "/usr/include/stdio.h"
+extern int vsscanf (const char *__restrict __s,
+ const char *__restrict __format, __gnuc_va_list __arg)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__format__ (__scanf__, 2, 0)));
+
+
+
+
+
+
+#line 479 "/usr/include/stdio.h"
+extern int vfscanf (FILE *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vfscanf")
+
+
+
+ __attribute__ ((__format__ (__scanf__, 2, 0))) ;
+
+#line 484 "/usr/include/stdio.h"
+extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vscanf")
+
+ __attribute__ ((__format__ (__scanf__, 1, 0))) ;
+
+#line 487 "/usr/include/stdio.h"
+extern int vsscanf (const char *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vsscanf") __attribute__ ((__nothrow__ , __leaf__))
+
+
+
+ __attribute__ ((__format__ (__scanf__, 2, 0)));
+
+#line 492 "/usr/include/stdio.h"
+extern int fgetc (FILE *__stream);
+
+#line 514 "/usr/include/stdio.h"
+extern int getc (FILE *__stream);
+
+
+
+
+
+
+#line 520 "/usr/include/stdio.h"
+extern int getchar (void);
+
+
+
+
+
+
+
+#line 527 "/usr/include/stdio.h"
+extern int getc_unlocked (FILE *__stream);
+
+#line 528 "/usr/include/stdio.h"
+extern int getchar_unlocked (void);
+
+#line 529 "/usr/include/stdio.h"
+extern int fgetc_unlocked (FILE *__stream);
+
+#line 539 "/usr/include/stdio.h"
+extern int fputc (int __c, FILE *__stream);
+
+#line 550 "/usr/include/stdio.h"
+extern int putc (int __c, FILE *__stream);
+
+
+
+
+
+
+#line 556 "/usr/include/stdio.h"
+extern int putchar (int __c);
+
+#line 557 "/usr/include/stdio.h"
+extern int fputc_unlocked (int __c, FILE *__stream);
+
+
+
+
+
+
+
+
+#line 573 "/usr/include/stdio.h"
+extern int putc_unlocked (int __c, FILE *__stream);
+
+#line 574 "/usr/include/stdio.h"
+extern int putchar_unlocked (int __c);
+
+
+
+
+
+
+
+#line 581 "/usr/include/stdio.h"
+extern int getw (FILE *__stream);
+
+
+
+#line 584 "/usr/include/stdio.h"
+extern int putw (int __w, FILE *__stream);
+
+
+
+
+
+
+
+
+#line 592 "/usr/include/stdio.h"
+extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream)
+ __attribute__ ((__access__ (__write_only__, 1, 2)));
+
+#line 594 "/usr/include/stdio.h"
+extern __ssize_t __getdelim (char **__restrict __lineptr,
+ size_t *__restrict __n, int __delimiter,
+ FILE *__restrict __stream) ;
+
+#line 635 "/usr/include/stdio.h"
+extern __ssize_t getdelim (char **__restrict __lineptr,
+ size_t *__restrict __n, int __delimiter,
+ FILE *__restrict __stream) ;
+
+
+
+
+
+
+
+
+#line 645 "/usr/include/stdio.h"
+extern __ssize_t getline (char **__restrict __lineptr,
+ size_t *__restrict __n,
+ FILE *__restrict __stream) ;
+
+
+
+
+
+
+
+
+#line 655 "/usr/include/stdio.h"
+extern int fputs (const char *__restrict __s, FILE *__restrict __stream);
+
+
+
+
+
+
+#line 661 "/usr/include/stdio.h"
+extern int puts (const char *__s);
+
+
+
+
+
+
+
+#line 668 "/usr/include/stdio.h"
+extern int ungetc (int __c, FILE *__stream);
+
+
+
+
+
+
+
+#line 675 "/usr/include/stdio.h"
+extern size_t fread (void *__restrict __ptr, size_t __size,
+ size_t __n, FILE *__restrict __stream) ;
+
+
+
+
+
+#line 681 "/usr/include/stdio.h"
+extern size_t fwrite (const void *__restrict __ptr, size_t __size,
+ size_t __n, FILE *__restrict __s);
+
+#line 683 "/usr/include/stdio.h"
+extern size_t fread_unlocked (void *__restrict __ptr, size_t __size,
+ size_t __n, FILE *__restrict __stream) ;
+
+#line 704 "/usr/include/stdio.h"
+extern size_t fwrite_unlocked (const void *__restrict __ptr, size_t __size,
+ size_t __n, FILE *__restrict __stream);
+
+
+
+
+
+
+
+
+#line 713 "/usr/include/stdio.h"
+extern int fseek (FILE *__stream, long int __off, int __whence);
+
+
+
+
+
+#line 718 "/usr/include/stdio.h"
+extern long int ftell (FILE *__stream) ;
+
+
+
+
+
+#line 723 "/usr/include/stdio.h"
+extern void rewind (FILE *__stream);
+
+#line 724 "/usr/include/stdio.h"
+extern int fseeko (FILE *__stream, __off_t __off, int __whence);
+
+
+
+
+
+#line 741 "/usr/include/stdio.h"
+extern __off_t ftello (FILE *__stream) ;
+
+#line 742 "/usr/include/stdio.h"
+extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos);
+
+
+
+
+
+#line 765 "/usr/include/stdio.h"
+extern int fsetpos (FILE *__stream, const fpos_t *__pos);
+
+#line 766 "/usr/include/stdio.h"
+extern void clearerr (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
+
+
+#line 788 "/usr/include/stdio.h"
+extern int feof (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+#line 790 "/usr/include/stdio.h"
+extern int ferror (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+#line 794 "/usr/include/stdio.h"
+extern void clearerr_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 795 "/usr/include/stdio.h"
+extern int feof_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+#line 796 "/usr/include/stdio.h"
+extern int ferror_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+
+
+
+#line 804 "/usr/include/stdio.h"
+extern void perror (const char *__s);
+
+
+
+
+
+#line 809 "/usr/include/stdio.h"
+extern int fileno (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+#line 814 "/usr/include/stdio.h"
+extern int fileno_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+#line 815 "/usr/include/stdio.h"
+extern int pclose (FILE *__stream);
+
+
+
+
+
+
+#line 829 "/usr/include/stdio.h"
+extern FILE *popen (const char *__command, const char *__modes)
+ __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (pclose, 1))) ;
+
+
+
+
+
+
+
+#line 837 "/usr/include/stdio.h"
+extern char *ctermid (char *__s) __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__access__ (__write_only__, 1)));
+
+#line 839 "/usr/include/stdio.h"
+extern void flockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 871 "/usr/include/stdio.h"
+extern int ftrylockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+#line 874 "/usr/include/stdio.h"
+extern void funlockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 875 "/usr/include/stdio.h"
+extern int __uflow (FILE *);
+
+#line 886 "/usr/include/stdio.h"
+extern int __overflow (FILE *, int);
+
+#line 887 "/usr/include/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+vprintf (const char *__restrict __fmt, __gnuc_va_list __arg)
+{
+ return vfprintf (stdout, __fmt, __arg);
+}
+
+
+
+
+#line 46 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+getchar (void)
+{
+ return getc (stdin);
+}
+
+
+
+
+
+#line 55 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+fgetc_unlocked (FILE *__fp)
+{
+ return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++);
+}
+
+
+
+
+
+
+#line 65 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+getc_unlocked (FILE *__fp)
+{
+ return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++);
+}
+
+
+
+#line 72 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+getchar_unlocked (void)
+{
+ return (__builtin_expect (((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end), 0) ? __uflow (stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++);
+}
+
+
+
+
+
+#line 81 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+putchar (int __c)
+{
+ return putc (__c, stdout);
+}
+
+
+
+
+
+#line 90 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+fputc_unlocked (int __c, FILE *__stream)
+{
+ return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
+}
+
+
+
+
+
+
+#line 100 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+putc_unlocked (int __c, FILE *__stream)
+{
+ return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
+}
+
+
+
+#line 107 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+putchar_unlocked (int __c)
+{
+ return (__builtin_expect (((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end), 0) ? __overflow (stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c)));
+}
+
+#line 112 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+__attribute__ ((__nothrow__ , __leaf__)) feof_unlocked (FILE *__stream)
+{
+ return (((__stream)->_flags & 0x0010) != 0);
+}
+
+
+
+#line 134 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+__attribute__ ((__nothrow__ , __leaf__)) ferror_unlocked (FILE *__stream)
+{
+ return (((__stream)->_flags & 0x0020) != 0);
+}
+
+#line 139 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+
+
+
+
+
+
+
+
+
+struct hashmap_other__other__comma_struct_other_uniq_other_string {
+ struct uniq_string **data;
+ size_t count;
+ size_t cap;
+};
+
+
+#line 139 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+
+
+
+
+
+
+
+
+
+struct hashmap_other__other__comma_struct_other_call {
+ struct call **data;
+ size_t count;
+ size_t cap;
+};
+
+
+#line 17 "gamma.h"
+uint32_t hashmap_other_hash_other__other__comma_struct_other_call(struct call *item);
+
+#line 17 "gamma.h"
+uint32_t hashmap_other_hash_other__other__comma_struct_other_uniq_other_string(struct uniq_string *item);
+
+#line 18 "gamma.h"
+int hashmap_other_eq_other__other__comma_struct_other_call(struct call *A, struct call *B);
+
+
+#line 18 "gamma.h"
+int hashmap_other_eq_other__other__comma_struct_other_uniq_other_string(struct uniq_string *A, struct uniq_string *B);
+
+
+#line 20 "gamma.h"
+struct uniq_string *hashmap_other_lookup_other__other__comma_struct_other_uniq_other_string(struct hashmap_other__other__comma_struct_other_uniq_other_string *hashmap, struct uniq_string *item);
+
+#line 21 "gamma.h"
+struct uniq_string *hashmap_other_lookup_other_weak_other__other__comma_struct_other_uniq_other_string(struct hashmap_other__other__comma_struct_other_uniq_other_string *hashmap, struct uniq_string *item);
+
+#line 21 "gamma.h"
+struct call *hashmap_other_lookup_other_weak_other__other__comma_struct_other_call(struct hashmap_other__other__comma_struct_other_call *hashmap, struct call *item);
+
+#line 22 "gamma.h"
+int hashmap_other_contains_other__other__comma_struct_other_call(struct hashmap_other__other__comma_struct_other_call *hashmap, struct call *item);
+
+#line 23 "gamma.h"
+void hashmap_other_insert_other__other__comma_struct_other_uniq_other_string(struct hashmap_other__other__comma_struct_other_uniq_other_string *hashmap, struct uniq_string *item);
+
+#line 23 "gamma.h"
+void hashmap_other_insert_other__other__comma_struct_other_call(struct hashmap_other__other__comma_struct_other_call *hashmap, struct call *item);
+
+#line 24 "gamma.h"
+struct uniq_string *heapify_other__other__comma_struct_other_uniq_other_string(struct uniq_string item);
+
+
+#line 26 "gamma.h"
+struct vector_other__other__comma_struct_other_call_other__star_ {
+ struct call * *data;
+ size_t count;
+ size_t cap;
+};
+
+#line 31 "gamma.h"
+uint32_t vector_other_push_other__other__comma_struct_other_call_other__star_(struct vector_other__other__comma_struct_other_call_other__star_ *vector, struct call * item);
+
+#line 32 "gamma.h"
+struct call * vector_other_pop_other__other__comma_struct_other_call_other__star_(struct vector_other__other__comma_struct_other_call_other__star_ *vector);
+
+#line 33 "gamma.h"
+struct vector_other__other__comma_struct_other_call_other__star_ *init_other_vector_other__other__comma_struct_other_call_other__star_();
+
+
+#line 35 "gamma.h"
+struct uniq_string {
+ char *string;
+ size_t len;
+
+ struct vector_other__other__comma_struct_other_call_other__star_ instantiations;
+
+ struct chunk *definitions;
+};
+
+
+#line 44 "gamma.h"
+struct arg {
+ char *start;
+ struct uniq_string *string;
+ int is_concrete;
+};
+
+
+#line 50 "gamma.h"
+struct call {
+ char *start;
+ char *end;
+ struct uniq_string *name;
+ struct arg *args;
+ size_t n_args;
+ struct call *next;
+};
+
+
+#line 59 "gamma.h"
+struct chunk {
+ char *start;
+ char *end;
+
+ char *line_filename;
+ size_t line;
+
+ struct call *defining_call;
+ struct call *calls;
+ struct chunk *next;
+ struct chunk *next_definition;
+};
+
+
+#line 72 "gamma.h"
+struct chunked_file {
+ char *contents;
+ char *end;
+ size_t id;
+ struct chunk *chunks;
+ struct chunked_file *next;
+};
+
+
+#line 80 "gamma.h"
+struct chunked_file *chunk(const char *path);
+
+#line 81 "gamma.h"
+struct uniq_string *lookup(char *string, size_t len);
+
+#line 82 "gamma.h"
+struct uniq_string *weak_lookup(char *string, size_t len);
+
+
+
+
+#line 86 "gamma.h"
+struct instantiation_set {
+ struct call **data;
+ size_t n;
+ size_t cap;
+};
+
+
+#line 92 "gamma.h"
+void parse_call(struct call *call);
+
+#line 93 "gamma.h"
+void print_state(struct chunked_file *file);
+
+#line 94 "gamma.h"
+void solve(struct chunked_file *files);
+
+#line 95 "gamma.h"
+void print_string(struct uniq_string *string);
+
+#line 96 "gamma.h"
+void print_call(struct call *call);
+
+#line 97 "gamma.h"
+void print_set(struct instantiation_set *set);
+
+#line 98 "gamma.h"
+void print_chunk(struct chunk *chunk, struct call *instantiation, FILE *out);
+
+#line 99 "gamma.h"
+struct call *replace_variables(struct call *container, struct call *container_instantiation, struct call *call);
+
+#line 100 "gamma.h"
+void fprint_string(FILE *out, struct uniq_string *string);
+
+#line 101 "gamma.h"
+char **read_fakeobj(char *path, char *c_dst);
+
+#line 102 "gamma.h"
+void write_fakeobj(char *src, char *dst, int i);
+
+#line 103 "gamma.h"
+void gamma_sendfile(int dst_fd, int src_fd);
+
+#line 104 "gamma.h"
+void copy_file(char *dst, char *src);
+
+
+#line 106 "gamma.h"
+extern char **ARGV;
+
+#line 107 "gamma.h"
+extern int ARGC;
+
+#line 108 "gamma.h"
+extern char *TMPDIR;
+
+#line 109 "gamma.h"
+extern int GAMMA_TO_C;
+
+#line 110 "gamma.h"
+
+void print_state(struct chunked_file *file) {
+ for (struct chunk *chunk = file->chunks; chunk; chunk = chunk->next) {
+ printf("Found a chunk:\n> ");
+ for (char *c = chunk->start; c != chunk->end; c++) {
+ printf("%c", *c);
+ if (*c == '\n') printf("> ");
+ }
+ printf("\n");
+ printf("Calls:\n");
+ for (struct call *call = chunk->calls; call; call = call->next) {
+ printf("\t-> '");
+ for (char *c = call->start; c != call->end; c++)
+ printf("%c", *c);
+ if (call == chunk->defining_call)
+ printf("'; defining\n");
+ else
+ printf("'\n");
+ for (size_t i = 0; i < call->n_args; i++) {
+ printf("\t\t* '"); print_string(call->args[i].string);
+ if (call->args[i].is_concrete)
+ printf("'; concrete\n");
+ else
+ printf("'; abstract\n");
+ }
+ }
+ }
+}
+
+
+#line 31 "debug.c"
+void print_call(struct call *call) {
+ print_string(call->name);
+ printf("[");
+ for (size_t i = 0; i < call->n_args; i++) {
+ if (i != 0) printf(", ");
+ print_string(call->args[i].string);
+ if (call->args[i].is_concrete) {
+ printf("<concrete>");
+ } else {
+ printf("<abstract>");
+ }
+ }
+ printf("]");
+}
+
+#line 45 "debug.c"
+void print_set(struct instantiation_set *set) {
+ printf("~~~~~~~~~~~~~~~~~~~~~~~~~\n");
+ if (!set) return;
+ for (size_t i = 0; i < set->cap; i++) {
+ struct call *instantiation = set->data[i];
+ if (!instantiation) continue;
+ printf("\t");
+ print_call(instantiation);
+ printf("\n");
+ }
+ printf("~~~~~~~~~~~~~~~~~~~~~~~~~\n");
+}
+
+#line 57 "debug.c"
diff --git a/c_version/17.c b/c_version/17.c
new file mode 100755
index 0000000..dd10f31
--- /dev/null
+++ b/c_version/17.c
@@ -0,0 +1,5112 @@
+
+#line 1 "/tmp/gamma.XksNqZ/17.unfake.c"
+
+
+
+
+
+
+extern void __assert_fail (const char *__assertion, const char *__file,
+ unsigned int __line, const char *__function)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+#line 74 "/usr/include/assert.h"
+extern void __assert_perror_fail (int __errnum, const char *__file,
+ unsigned int __line, const char *__function)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+
+#line 81 "/usr/include/assert.h"
+extern void __assert (const char *__assertion, const char *__file, int __line)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+#line 86 "/usr/include/assert.h"
+typedef long int ptrdiff_t;
+
+#line 146 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h"
+typedef long unsigned int size_t;
+
+#line 215 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h"
+typedef int wchar_t;
+
+#line 330 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h"
+typedef struct {
+ long long __max_align_ll __attribute__((__aligned__(__alignof__(long long))));
+ long double __max_align_ld __attribute__((__aligned__(__alignof__(long double))));
+}
+#line 435 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h"
+max_align_t;
+
+#line 436 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h"
+
+
+typedef unsigned char __u_char;
+
+#line 32 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned short int __u_short;
+
+#line 33 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __u_int;
+
+#line 34 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __u_long;
+
+
+
+#line 37 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef signed char __int8_t;
+
+#line 38 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned char __uint8_t;
+
+#line 39 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef signed short int __int16_t;
+
+#line 40 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned short int __uint16_t;
+
+#line 41 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef signed int __int32_t;
+
+#line 42 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __uint32_t;
+
+
+#line 44 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef signed long int __int64_t;
+
+#line 45 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __uint64_t;
+
+
+
+
+
+
+
+#line 52 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __int8_t __int_least8_t;
+
+#line 53 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __uint8_t __uint_least8_t;
+
+#line 54 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __int16_t __int_least16_t;
+
+#line 55 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __uint16_t __uint_least16_t;
+
+#line 56 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __int32_t __int_least32_t;
+
+#line 57 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __uint32_t __uint_least32_t;
+
+#line 58 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __int64_t __int_least64_t;
+
+#line 59 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __uint64_t __uint_least64_t;
+
+
+
+
+#line 63 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __quad_t;
+
+#line 64 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __u_quad_t;
+
+
+
+
+
+
+
+
+#line 72 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __intmax_t;
+
+#line 73 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __uintmax_t;
+
+#line 74 "/usr/include/x86_64-linux-gnu/bits/types.h"
+
+
+typedef unsigned long int __dev_t;
+
+#line 146 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __uid_t;
+
+#line 147 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __gid_t;
+
+#line 148 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __ino_t;
+
+#line 149 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __ino64_t;
+
+#line 150 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __mode_t;
+
+#line 151 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __nlink_t;
+
+#line 152 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __off_t;
+
+#line 153 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __off64_t;
+
+#line 154 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef int __pid_t;
+
+#line 155 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef struct { int __val[2]; }
+#line 155 "/usr/include/x86_64-linux-gnu/bits/types.h"
+__fsid_t;
+
+#line 156 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __clock_t;
+
+#line 157 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __rlim_t;
+
+#line 158 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __rlim64_t;
+
+#line 159 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __id_t;
+
+#line 160 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __time_t;
+
+#line 161 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __useconds_t;
+
+#line 162 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __suseconds_t;
+
+#line 163 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __suseconds64_t;
+
+
+#line 165 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef int __daddr_t;
+
+#line 166 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef int __key_t;
+
+
+
+#line 169 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef int __clockid_t;
+
+
+
+#line 172 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef void * __timer_t;
+
+
+
+#line 175 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __blksize_t;
+
+
+
+
+
+#line 180 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __blkcnt_t;
+
+#line 181 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __blkcnt64_t;
+
+
+
+#line 184 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __fsblkcnt_t;
+
+#line 185 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __fsblkcnt64_t;
+
+
+
+#line 188 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __fsfilcnt_t;
+
+#line 189 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __fsfilcnt64_t;
+
+
+
+#line 192 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __fsword_t;
+
+
+#line 194 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __ssize_t;
+
+
+
+#line 197 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __syscall_slong_t;
+
+
+#line 199 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __syscall_ulong_t;
+
+
+
+
+#line 203 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __off64_t __loff_t;
+
+#line 204 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef char *__caddr_t;
+
+
+
+#line 207 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __intptr_t;
+
+
+
+#line 210 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __socklen_t;
+
+
+
+
+
+#line 215 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef int __sig_atomic_t;
+
+#line 216 "/usr/include/x86_64-linux-gnu/bits/types.h"
+
+
+
+
+typedef __int8_t int8_t;
+
+#line 25 "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h"
+typedef __int16_t int16_t;
+
+#line 26 "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h"
+typedef __int32_t int32_t;
+
+#line 27 "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h"
+typedef __int64_t int64_t;
+
+#line 28 "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h"
+
+
+typedef __uint8_t uint8_t;
+
+#line 25 "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h"
+typedef __uint16_t uint16_t;
+
+#line 26 "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h"
+typedef __uint32_t uint32_t;
+
+#line 27 "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h"
+typedef __uint64_t uint64_t;
+
+#line 28 "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h"
+
+
+
+
+
+typedef __int_least8_t int_least8_t;
+
+#line 44 "/usr/include/stdint.h"
+typedef __int_least16_t int_least16_t;
+
+#line 45 "/usr/include/stdint.h"
+typedef __int_least32_t int_least32_t;
+
+#line 46 "/usr/include/stdint.h"
+typedef __int_least64_t int_least64_t;
+
+
+
+#line 49 "/usr/include/stdint.h"
+typedef __uint_least8_t uint_least8_t;
+
+#line 50 "/usr/include/stdint.h"
+typedef __uint_least16_t uint_least16_t;
+
+#line 51 "/usr/include/stdint.h"
+typedef __uint_least32_t uint_least32_t;
+
+#line 52 "/usr/include/stdint.h"
+typedef __uint_least64_t uint_least64_t;
+
+
+
+
+
+
+#line 58 "/usr/include/stdint.h"
+typedef signed char int_fast8_t;
+
+
+#line 60 "/usr/include/stdint.h"
+typedef long int int_fast16_t;
+
+#line 61 "/usr/include/stdint.h"
+typedef long int int_fast32_t;
+
+#line 62 "/usr/include/stdint.h"
+typedef long int int_fast64_t;
+
+#line 63 "/usr/include/stdint.h"
+typedef unsigned char uint_fast8_t;
+
+
+#line 73 "/usr/include/stdint.h"
+typedef unsigned long int uint_fast16_t;
+
+#line 74 "/usr/include/stdint.h"
+typedef unsigned long int uint_fast32_t;
+
+#line 75 "/usr/include/stdint.h"
+typedef unsigned long int uint_fast64_t;
+
+#line 76 "/usr/include/stdint.h"
+typedef long int intptr_t;
+
+
+
+#line 90 "/usr/include/stdint.h"
+typedef unsigned long int uintptr_t;
+
+#line 91 "/usr/include/stdint.h"
+typedef __intmax_t intmax_t;
+
+#line 102 "/usr/include/stdint.h"
+typedef __uintmax_t uintmax_t;
+
+#line 103 "/usr/include/stdint.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct
+ {
+ int quot;
+ int rem;
+ }
+#line 63 "/usr/include/stdlib.h"
+div_t;
+
+
+
+
+#line 67 "/usr/include/stdlib.h"
+typedef struct
+ {
+ long int quot;
+ long int rem;
+ }
+#line 71 "/usr/include/stdlib.h"
+ldiv_t;
+
+
+
+
+
+
+#line 77 "/usr/include/stdlib.h"
+__extension__ typedef struct
+ {
+ long long int quot;
+ long long int rem;
+ }
+#line 81 "/usr/include/stdlib.h"
+lldiv_t;
+
+#line 82 "/usr/include/stdlib.h"
+extern size_t __ctype_get_mb_cur_max (void) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+#line 102 "/usr/include/stdlib.h"
+extern double atof (const char *__nptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+#line 105 "/usr/include/stdlib.h"
+extern int atoi (const char *__nptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+#line 108 "/usr/include/stdlib.h"
+extern long int atol (const char *__nptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+#line 113 "/usr/include/stdlib.h"
+__extension__ extern long long int atoll (const char *__nptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+#line 118 "/usr/include/stdlib.h"
+extern double strtod (const char *__restrict __nptr,
+ char **__restrict __endptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+#line 124 "/usr/include/stdlib.h"
+extern float strtof (const char *__restrict __nptr,
+ char **__restrict __endptr) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+#line 127 "/usr/include/stdlib.h"
+extern long double strtold (const char *__restrict __nptr,
+ char **__restrict __endptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 130 "/usr/include/stdlib.h"
+extern long int strtol (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+#line 181 "/usr/include/stdlib.h"
+extern unsigned long int strtoul (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+#line 187 "/usr/include/stdlib.h"
+__extension__
+extern long long int strtoq (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+#line 192 "/usr/include/stdlib.h"
+__extension__
+extern unsigned long long int strtouq (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+#line 200 "/usr/include/stdlib.h"
+__extension__
+extern long long int strtoll (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+#line 205 "/usr/include/stdlib.h"
+__extension__
+extern unsigned long long int strtoull (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 209 "/usr/include/stdlib.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+__attribute__ ((__nothrow__ , __leaf__)) atoi (const char *__nptr)
+{
+ return (int) strtol (__nptr, (char **) ((void *)0), 10);
+}
+
+#line 366 "/usr/include/stdlib.h"
+extern __inline __attribute__ ((__gnu_inline__)) long int
+__attribute__ ((__nothrow__ , __leaf__)) atol (const char *__nptr)
+{
+ return strtol (__nptr, (char **) ((void *)0), 10);
+}
+
+
+
+#line 373 "/usr/include/stdlib.h"
+__extension__ extern __inline __attribute__ ((__gnu_inline__)) long long int
+__attribute__ ((__nothrow__ , __leaf__)) atoll (const char *__nptr)
+{
+ return strtoll (__nptr, (char **) ((void *)0), 10);
+}
+
+#line 378 "/usr/include/stdlib.h"
+extern char *l64a (long int __n) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+#line 389 "/usr/include/stdlib.h"
+extern long int a64l (const char *__s)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+
+#line 395 "/usr/include/stdlib.h"
+
+
+
+
+
+
+typedef __u_char u_char;
+
+#line 34 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __u_short u_short;
+
+#line 35 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __u_int u_int;
+
+#line 36 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __u_long u_long;
+
+#line 37 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __quad_t quad_t;
+
+#line 38 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __u_quad_t u_quad_t;
+
+#line 39 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __fsid_t fsid_t;
+
+
+
+#line 42 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __loff_t loff_t;
+
+
+
+
+
+#line 47 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __ino_t ino_t;
+
+#line 48 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __dev_t dev_t;
+
+
+
+
+
+#line 64 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __gid_t gid_t;
+
+
+
+
+
+#line 69 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __mode_t mode_t;
+
+
+
+
+
+#line 74 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __nlink_t nlink_t;
+
+
+
+
+
+#line 79 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __uid_t uid_t;
+
+
+
+
+
+
+#line 85 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __off_t off_t;
+
+#line 86 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __pid_t pid_t;
+
+
+
+
+
+
+#line 103 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __id_t id_t;
+
+
+
+
+
+#line 108 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __ssize_t ssize_t;
+
+
+
+
+
+
+#line 114 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __daddr_t daddr_t;
+
+#line 115 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __caddr_t caddr_t;
+
+
+
+
+
+
+#line 121 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __key_t key_t;
+
+
+
+
+
+#line 126 "/usr/include/x86_64-linux-gnu/sys/types.h"
+
+
+
+
+
+
+typedef __clock_t clock_t;
+
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/clock_t.h"
+
+
+
+
+
+
+
+typedef __clockid_t clockid_t;
+
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h"
+typedef __time_t time_t;
+
+#line 11 "/usr/include/x86_64-linux-gnu/bits/types/time_t.h"
+
+
+
+
+
+
+typedef __timer_t timer_t;
+
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/timer_t.h"
+
+
+
+typedef unsigned long int ulong;
+
+#line 149 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef unsigned short int ushort;
+
+#line 150 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef unsigned int uint;
+
+
+
+
+
+
+
+
+#line 158 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __uint8_t u_int8_t;
+
+#line 159 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __uint16_t u_int16_t;
+
+#line 160 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __uint32_t u_int32_t;
+
+#line 161 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __uint64_t u_int64_t;
+
+
+
+#line 164 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef int register_t __attribute__ ((__mode__ (__word__)));
+
+#line 165 "/usr/include/x86_64-linux-gnu/sys/types.h"
+static __inline __uint16_t
+__bswap_16 (__uint16_t __bsx)
+{
+
+ return __builtin_bswap16 (__bsx);
+
+
+
+}
+
+
+
+
+
+
+
+#line 48 "/usr/include/x86_64-linux-gnu/bits/byteswap.h"
+static __inline __uint32_t
+__bswap_32 (__uint32_t __bsx)
+{
+
+ return __builtin_bswap32 (__bsx);
+
+
+
+}
+
+#line 57 "/usr/include/x86_64-linux-gnu/bits/byteswap.h"
+__extension__ static __inline __uint64_t
+__bswap_64 (__uint64_t __bsx)
+{
+
+ return __builtin_bswap64 (__bsx);
+
+
+
+}
+
+#line 78 "/usr/include/x86_64-linux-gnu/bits/byteswap.h"
+static __inline __uint16_t
+__uint16_identity (__uint16_t __x)
+{
+ return __x;
+}
+
+
+#line 38 "/usr/include/x86_64-linux-gnu/bits/uintn-identity.h"
+static __inline __uint32_t
+__uint32_identity (__uint32_t __x)
+{
+ return __x;
+}
+
+
+#line 44 "/usr/include/x86_64-linux-gnu/bits/uintn-identity.h"
+static __inline __uint64_t
+__uint64_identity (__uint64_t __x)
+{
+ return __x;
+}
+
+#line 49 "/usr/include/x86_64-linux-gnu/bits/uintn-identity.h"
+
+
+
+
+
+
+
+
+
+
+
+typedef struct
+{
+ unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))];
+}
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h"
+__sigset_t;
+
+#line 9 "/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h"
+
+
+typedef __sigset_t sigset_t;
+
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h"
+
+
+
+
+
+
+
+
+
+
+struct timeval
+{
+
+
+
+
+ __time_t tv_sec;
+ __suseconds_t tv_usec;
+
+};
+
+#line 18 "/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h"
+
+struct timespec
+{
+
+
+
+ __time_t tv_sec;
+
+
+
+
+ __syscall_slong_t tv_nsec;
+};
+
+#line 32 "/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h"
+
+
+
+typedef __suseconds_t suseconds_t;
+
+
+
+
+
+
+#line 49 "/usr/include/x86_64-linux-gnu/sys/select.h"
+typedef long int __fd_mask;
+
+#line 50 "/usr/include/x86_64-linux-gnu/sys/select.h"
+typedef struct
+ {
+
+
+
+
+
+
+ __fd_mask __fds_bits[1024 / (8 * (int) sizeof (__fd_mask))];
+
+
+ }
+#line 70 "/usr/include/x86_64-linux-gnu/sys/select.h"
+fd_set;
+
+
+
+
+
+
+
+#line 77 "/usr/include/x86_64-linux-gnu/sys/select.h"
+typedef __fd_mask fd_mask;
+
+#line 78 "/usr/include/x86_64-linux-gnu/sys/select.h"
+
+extern int select (int __nfds, fd_set *__restrict __readfds,
+ fd_set *__restrict __writefds,
+ fd_set *__restrict __exceptfds,
+ struct timeval *__restrict __timeout);
+
+#line 106 "/usr/include/x86_64-linux-gnu/sys/select.h"
+extern int pselect (int __nfds, fd_set *__restrict __readfds,
+ fd_set *__restrict __writefds,
+ fd_set *__restrict __exceptfds,
+ const struct timespec *__restrict __timeout,
+ const __sigset_t *__restrict __sigmask);
+
+#line 132 "/usr/include/x86_64-linux-gnu/sys/select.h"
+
+
+
+
+
+
+typedef __blksize_t blksize_t;
+
+
+
+
+
+
+
+#line 192 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __blkcnt_t blkcnt_t;
+
+
+
+
+#line 196 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __fsblkcnt_t fsblkcnt_t;
+
+
+
+
+#line 200 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __fsfilcnt_t fsfilcnt_t;
+
+#line 201 "/usr/include/x86_64-linux-gnu/sys/types.h"
+
+typedef union
+{
+ __extension__ unsigned long long int __value64;
+ struct
+ {
+ unsigned int __low;
+ unsigned int __high;
+ } __value32;
+}
+#line 33 "/usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h"
+__atomic_wide_counter;
+
+#line 34 "/usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h"
+
+
+
+
+typedef struct __pthread_internal_list
+{
+ struct __pthread_internal_list *__prev;
+ struct __pthread_internal_list *__next;
+}
+#line 55 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+__pthread_list_t;
+
+
+#line 57 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+typedef struct __pthread_internal_slist
+{
+ struct __pthread_internal_slist *__next;
+}
+#line 60 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+__pthread_slist_t;
+
+#line 61 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+struct __pthread_mutex_s
+{
+ int __lock;
+ unsigned int __count;
+ int __owner;
+
+ unsigned int __nusers;
+
+
+
+ int __kind;
+
+ short __spins;
+ short __elision;
+ __pthread_list_t __list;
+};
+
+#line 54 "/usr/include/x86_64-linux-gnu/bits/struct_mutex.h"
+struct __pthread_rwlock_arch_t
+{
+ unsigned int __readers;
+ unsigned int __writers;
+ unsigned int __wrphase_futex;
+ unsigned int __writers_futex;
+ unsigned int __pad3;
+ unsigned int __pad4;
+
+ int __cur_writer;
+ int __shared;
+ signed char __rwelision;
+
+
+
+
+ unsigned char __pad1[7];
+
+
+ unsigned long int __pad2;
+
+
+ unsigned int __flags;
+};
+
+#line 56 "/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h"
+
+
+
+
+struct __pthread_cond_s
+{
+ __atomic_wide_counter __wseq;
+ __atomic_wide_counter __g1_start;
+ unsigned int __g_refs[2] ;
+ unsigned int __g_size[2];
+ unsigned int __g1_orig_size;
+ unsigned int __wrefs;
+ unsigned int __g_signals[2];
+};
+
+
+#line 105 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+typedef unsigned int __tss_t;
+
+#line 106 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+typedef unsigned long int __thrd_t;
+
+
+#line 108 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+typedef struct
+{
+ int __data ;
+}
+#line 111 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+__once_flag;
+
+#line 112 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+
+
+
+typedef unsigned long int pthread_t;
+
+
+
+
+
+#line 32 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ char __size[4];
+ int __align;
+}
+#line 36 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_mutexattr_t;
+
+
+
+
+
+#line 41 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ char __size[4];
+ int __align;
+}
+#line 45 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_condattr_t;
+
+
+
+
+#line 49 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef unsigned int pthread_key_t;
+
+
+
+
+#line 53 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef int pthread_once_t;
+
+
+
+#line 56 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+union pthread_attr_t
+{
+ char __size[56];
+ long int __align;
+};
+
+
+#line 62 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union pthread_attr_t pthread_attr_t;
+
+
+
+
+
+#line 67 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ struct __pthread_mutex_s __data;
+ char __size[40];
+ long int __align;
+}
+#line 72 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_mutex_t;
+
+
+
+#line 75 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ struct __pthread_cond_s __data;
+ char __size[48];
+ __extension__ long long int __align;
+}
+#line 80 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_cond_t;
+
+
+
+
+
+
+#line 86 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ struct __pthread_rwlock_arch_t __data;
+ char __size[56];
+ long int __align;
+}
+#line 91 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_rwlock_t;
+
+
+#line 93 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ char __size[8];
+ long int __align;
+}
+#line 97 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_rwlockattr_t;
+
+
+
+
+
+
+#line 103 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef volatile int pthread_spinlock_t;
+
+
+
+
+
+#line 108 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ char __size[32];
+ long int __align;
+}
+#line 112 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_barrier_t;
+
+
+#line 114 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ char __size[4];
+ int __align;
+}
+#line 118 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_barrierattr_t;
+
+#line 119 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+
+
+
+
+
+
+
+
+
+extern long int random (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 405 "/usr/include/stdlib.h"
+extern void srandom (unsigned int __seed) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+#line 411 "/usr/include/stdlib.h"
+extern char *initstate (unsigned int __seed, char *__statebuf,
+ size_t __statelen) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+
+
+#line 416 "/usr/include/stdlib.h"
+extern char *setstate (char *__statebuf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+
+#line 424 "/usr/include/stdlib.h"
+struct random_data
+ {
+ int32_t *fptr;
+ int32_t *rptr;
+ int32_t *state;
+ int rand_type;
+ int rand_deg;
+ int rand_sep;
+ int32_t *end_ptr;
+ };
+
+
+#line 435 "/usr/include/stdlib.h"
+extern int random_r (struct random_data *__restrict __buf,
+ int32_t *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 438 "/usr/include/stdlib.h"
+extern int srandom_r (unsigned int __seed, struct random_data *__buf)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+#line 441 "/usr/include/stdlib.h"
+extern int initstate_r (unsigned int __seed, char *__restrict __statebuf,
+ size_t __statelen,
+ struct random_data *__restrict __buf)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 4)));
+
+
+#line 446 "/usr/include/stdlib.h"
+extern int setstate_r (char *__restrict __statebuf,
+ struct random_data *__restrict __buf)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+
+#line 454 "/usr/include/stdlib.h"
+extern int rand (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+#line 456 "/usr/include/stdlib.h"
+extern void srand (unsigned int __seed) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 460 "/usr/include/stdlib.h"
+extern int rand_r (unsigned int *__seed) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+
+#line 468 "/usr/include/stdlib.h"
+extern double drand48 (void) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 469 "/usr/include/stdlib.h"
+extern double erand48 (unsigned short int __xsubi[3]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+#line 472 "/usr/include/stdlib.h"
+extern long int lrand48 (void) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 473 "/usr/include/stdlib.h"
+extern long int nrand48 (unsigned short int __xsubi[3])
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+#line 477 "/usr/include/stdlib.h"
+extern long int mrand48 (void) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 478 "/usr/include/stdlib.h"
+extern long int jrand48 (unsigned short int __xsubi[3])
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+#line 482 "/usr/include/stdlib.h"
+extern void srand48 (long int __seedval) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 483 "/usr/include/stdlib.h"
+extern unsigned short int *seed48 (unsigned short int __seed16v[3])
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 485 "/usr/include/stdlib.h"
+extern void lcong48 (unsigned short int __param[7]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+#line 491 "/usr/include/stdlib.h"
+struct drand48_data
+ {
+ unsigned short int __x[3];
+ unsigned short int __old_x[3];
+ unsigned short int __c;
+ unsigned short int __init;
+ __extension__ unsigned long long int __a;
+
+ };
+
+
+
+#line 502 "/usr/include/stdlib.h"
+extern int drand48_r (struct drand48_data *__restrict __buffer,
+ double *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 504 "/usr/include/stdlib.h"
+extern int erand48_r (unsigned short int __xsubi[3],
+ struct drand48_data *__restrict __buffer,
+ double *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 509 "/usr/include/stdlib.h"
+extern int lrand48_r (struct drand48_data *__restrict __buffer,
+ long int *__restrict __result)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 512 "/usr/include/stdlib.h"
+extern int nrand48_r (unsigned short int __xsubi[3],
+ struct drand48_data *__restrict __buffer,
+ long int *__restrict __result)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 518 "/usr/include/stdlib.h"
+extern int mrand48_r (struct drand48_data *__restrict __buffer,
+ long int *__restrict __result)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 521 "/usr/include/stdlib.h"
+extern int jrand48_r (unsigned short int __xsubi[3],
+ struct drand48_data *__restrict __buffer,
+ long int *__restrict __result)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 527 "/usr/include/stdlib.h"
+extern int srand48_r (long int __seedval, struct drand48_data *__buffer)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+#line 530 "/usr/include/stdlib.h"
+extern int seed48_r (unsigned short int __seed16v[3],
+ struct drand48_data *__buffer) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 533 "/usr/include/stdlib.h"
+extern int lcong48_r (unsigned short int __param[7],
+ struct drand48_data *__buffer)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 538 "/usr/include/stdlib.h"
+extern __uint32_t arc4random (void)
+ __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+#line 542 "/usr/include/stdlib.h"
+extern void arc4random_buf (void *__buf, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+#line 547 "/usr/include/stdlib.h"
+extern __uint32_t arc4random_uniform (__uint32_t __upper_bound)
+ __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+#line 553 "/usr/include/stdlib.h"
+extern void *malloc (size_t __size) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__))
+ __attribute__ ((__alloc_size__ (1))) ;
+
+
+#line 556 "/usr/include/stdlib.h"
+extern void *calloc (size_t __nmemb, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__alloc_size__ (1, 2))) ;
+
+
+
+
+
+
+
+#line 564 "/usr/include/stdlib.h"
+extern void *realloc (void *__ptr, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)) __attribute__ ((__alloc_size__ (2)));
+
+
+
+#line 568 "/usr/include/stdlib.h"
+extern void free (void *__ptr) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+
+#line 576 "/usr/include/stdlib.h"
+extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__))
+ __attribute__ ((__alloc_size__ (2, 3)))
+ __attribute__ ((__malloc__ (__builtin_free, 1)));
+
+
+
+#line 582 "/usr/include/stdlib.h"
+extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__ (reallocarray, 1)));
+
+
+
+
+#line 587 "/usr/include/stdlib.h"
+
+
+
+
+
+
+
+extern void *alloca (size_t __size) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+#line 39 "/usr/include/alloca.h"
+
+
+
+
+
+extern void *valloc (size_t __size) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__))
+ __attribute__ ((__alloc_size__ (1))) ;
+
+
+
+
+
+#line 599 "/usr/include/stdlib.h"
+extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+
+#line 605 "/usr/include/stdlib.h"
+extern void *aligned_alloc (size_t __alignment, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__alloc_align__ (1)))
+ __attribute__ ((__alloc_size__ (2))) ;
+
+
+
+
+#line 611 "/usr/include/stdlib.h"
+extern void abort (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+#line 615 "/usr/include/stdlib.h"
+extern int atexit (void (*__func) (void)) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+
+#line 623 "/usr/include/stdlib.h"
+extern int at_quick_exit (void (*__func) (void)) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+#line 630 "/usr/include/stdlib.h"
+extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+#line 637 "/usr/include/stdlib.h"
+extern void exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+
+
+#line 643 "/usr/include/stdlib.h"
+extern void quick_exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+
+
+#line 649 "/usr/include/stdlib.h"
+extern void _Exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+
+#line 654 "/usr/include/stdlib.h"
+extern char *getenv (const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+#line 655 "/usr/include/stdlib.h"
+extern int putenv (char *__string) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+#line 673 "/usr/include/stdlib.h"
+extern int setenv (const char *__name, const char *__value, int __replace)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+
+#line 677 "/usr/include/stdlib.h"
+extern int unsetenv (const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+#line 684 "/usr/include/stdlib.h"
+extern int clearenv (void) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 685 "/usr/include/stdlib.h"
+extern char *mktemp (char *__template) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 696 "/usr/include/stdlib.h"
+extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) ;
+
+#line 709 "/usr/include/stdlib.h"
+extern int mkstemps (char *__template, int __suffixlen) __attribute__ ((__nonnull__ (1))) ;
+
+#line 731 "/usr/include/stdlib.h"
+extern char *mkdtemp (char *__template) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+#line 752 "/usr/include/stdlib.h"
+extern int system (const char *__command) ;
+
+#line 805 "/usr/include/stdlib.h"
+extern char *realpath (const char *__restrict __name,
+ char *__restrict __resolved) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+
+
+#line 829 "/usr/include/stdlib.h"
+typedef int (*__compar_fn_t) (const void *, const void *);
+
+#line 830 "/usr/include/stdlib.h"
+extern void *bsearch (const void *__key, const void *__base,
+ size_t __nmemb, size_t __size, __compar_fn_t __compar)
+ __attribute__ ((__nonnull__ (1, 2, 5))) ;
+
+
+
+#line 846 "/usr/include/stdlib.h"
+extern __inline __attribute__ ((__gnu_inline__)) void *
+bsearch (const void *__key, const void *__base, size_t __nmemb, size_t __size,
+ __compar_fn_t __compar)
+{
+ size_t __l, __u, __idx;
+ const void *__p;
+ int __comparison;
+
+ __l = 0;
+ __u = __nmemb;
+ while (__l < __u)
+ {
+ __idx = (__l + __u) / 2;
+ __p = (const void *) (((const char *) __base) + (__idx * __size));
+ __comparison = (*__compar) (__key, __p);
+ if (__comparison < 0)
+ __u = __idx;
+ else if (__comparison > 0)
+ __l = __idx + 1;
+ else
+ {
+
+
+ return (void *) __p;
+
+
+ }
+ }
+
+ return ((void *)0);
+}
+
+#line 29 "-Wcast-qual"
+
+
+
+
+extern void qsort (void *__base, size_t __nmemb, size_t __size,
+ __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4)));
+
+#line 853 "/usr/include/stdlib.h"
+extern int abs (int __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+#line 862 "/usr/include/stdlib.h"
+extern long int labs (long int __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+
+
+#line 865 "/usr/include/stdlib.h"
+__extension__ extern long long int llabs (long long int __x)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+
+
+
+
+
+
+#line 873 "/usr/include/stdlib.h"
+extern div_t div (int __numer, int __denom)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+#line 875 "/usr/include/stdlib.h"
+extern ldiv_t ldiv (long int __numer, long int __denom)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+
+
+#line 879 "/usr/include/stdlib.h"
+__extension__ extern lldiv_t lldiv (long long int __numer,
+ long long int __denom)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+#line 882 "/usr/include/stdlib.h"
+extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt,
+ int *__restrict __sign) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ;
+
+
+
+
+
+#line 899 "/usr/include/stdlib.h"
+extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt,
+ int *__restrict __sign) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ;
+
+
+
+
+
+#line 905 "/usr/include/stdlib.h"
+extern char *gcvt (double __value, int __ndigit, char *__buf)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3))) ;
+
+
+
+
+
+#line 911 "/usr/include/stdlib.h"
+extern char *qecvt (long double __value, int __ndigit,
+ int *__restrict __decpt, int *__restrict __sign)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ;
+
+#line 914 "/usr/include/stdlib.h"
+extern char *qfcvt (long double __value, int __ndigit,
+ int *__restrict __decpt, int *__restrict __sign)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ;
+
+#line 917 "/usr/include/stdlib.h"
+extern char *qgcvt (long double __value, int __ndigit, char *__buf)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3))) ;
+
+
+
+
+
+#line 923 "/usr/include/stdlib.h"
+extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt,
+ int *__restrict __sign, char *__restrict __buf,
+ size_t __len) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
+
+#line 926 "/usr/include/stdlib.h"
+extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt,
+ int *__restrict __sign, char *__restrict __buf,
+ size_t __len) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
+
+
+#line 930 "/usr/include/stdlib.h"
+extern int qecvt_r (long double __value, int __ndigit,
+ int *__restrict __decpt, int *__restrict __sign,
+ char *__restrict __buf, size_t __len)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
+
+#line 934 "/usr/include/stdlib.h"
+extern int qfcvt_r (long double __value, int __ndigit,
+ int *__restrict __decpt, int *__restrict __sign,
+ char *__restrict __buf, size_t __len)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
+
+
+
+
+
+
+#line 943 "/usr/include/stdlib.h"
+extern int mblen (const char *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 946 "/usr/include/stdlib.h"
+extern int mbtowc (wchar_t *__restrict __pwc,
+ const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 950 "/usr/include/stdlib.h"
+extern int wctomb (char *__s, wchar_t __wchar) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 954 "/usr/include/stdlib.h"
+extern size_t mbstowcs (wchar_t *__restrict __pwcs,
+ const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__access__ (__read_only__, 2)));
+
+
+#line 958 "/usr/include/stdlib.h"
+extern size_t wcstombs (char *__restrict __s,
+ const wchar_t *__restrict __pwcs, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__access__ (__write_only__, 1, 3)))
+ __attribute__ ((__access__ (__read_only__, 2)));
+
+
+
+
+
+
+
+#line 969 "/usr/include/stdlib.h"
+extern int rpmatch (const char *__response) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+#line 970 "/usr/include/stdlib.h"
+extern int getsubopt (char **__restrict __optionp,
+ char *const *__restrict __tokens,
+ char **__restrict __valuep)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2, 3))) ;
+
+#line 984 "/usr/include/stdlib.h"
+extern int getloadavg (double __loadavg[], int __nelem)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 1028 "/usr/include/stdlib.h"
+extern __inline __attribute__ ((__gnu_inline__)) double
+__attribute__ ((__nothrow__ , __leaf__)) atof (const char *__nptr)
+{
+ return strtod (__nptr, (char **) ((void *)0));
+}
+
+#line 29 "/usr/include/x86_64-linux-gnu/bits/stdlib-float.h"
+
+
+enum
+{
+ _ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)),
+ _ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)),
+ _ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)),
+ _ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)),
+ _ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)),
+ _ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)),
+ _ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)),
+ _ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)),
+ _ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)),
+ _IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)),
+ _ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)),
+ _ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8))
+};
+
+#line 61 "/usr/include/ctype.h"
+extern const unsigned short int **__ctype_b_loc (void)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+#line 81 "/usr/include/ctype.h"
+extern const __int32_t **__ctype_tolower_loc (void)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+#line 83 "/usr/include/ctype.h"
+extern const __int32_t **__ctype_toupper_loc (void)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+#line 85 "/usr/include/ctype.h"
+extern int isalnum (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 109 "/usr/include/ctype.h"
+extern int isalpha (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 110 "/usr/include/ctype.h"
+extern int iscntrl (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 111 "/usr/include/ctype.h"
+extern int isdigit (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 112 "/usr/include/ctype.h"
+extern int islower (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 113 "/usr/include/ctype.h"
+extern int isgraph (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 114 "/usr/include/ctype.h"
+extern int isprint (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 115 "/usr/include/ctype.h"
+extern int ispunct (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 116 "/usr/include/ctype.h"
+extern int isspace (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 117 "/usr/include/ctype.h"
+extern int isupper (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 118 "/usr/include/ctype.h"
+extern int isxdigit (int) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 122 "/usr/include/ctype.h"
+extern int tolower (int __c) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 125 "/usr/include/ctype.h"
+extern int toupper (int __c) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+#line 130 "/usr/include/ctype.h"
+extern int isblank (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 131 "/usr/include/ctype.h"
+extern int isascii (int __c) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 146 "/usr/include/ctype.h"
+extern int toascii (int __c) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 150 "/usr/include/ctype.h"
+extern int _toupper (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 151 "/usr/include/ctype.h"
+extern int _tolower (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 152 "/usr/include/ctype.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+__attribute__ ((__nothrow__ , __leaf__)) tolower (int __c)
+{
+ return __c >= -128 && __c < 256 ? (*__ctype_tolower_loc ())[__c] : __c;
+}
+
+
+#line 212 "/usr/include/ctype.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+__attribute__ ((__nothrow__ , __leaf__)) toupper (int __c)
+{
+ return __c >= -128 && __c < 256 ? (*__ctype_toupper_loc ())[__c] : __c;
+}
+
+#line 217 "/usr/include/ctype.h"
+struct __locale_struct
+{
+
+ struct __locale_data *__locales[13];
+
+
+ const unsigned short int *__ctype_b;
+ const int *__ctype_tolower;
+ const int *__ctype_toupper;
+
+
+ const char *__names[13];
+};
+
+
+#line 41 "/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h"
+typedef struct __locale_struct *__locale_t;
+
+#line 42 "/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h"
+
+typedef __locale_t locale_t;
+
+#line 25 "/usr/include/x86_64-linux-gnu/bits/types/locale_t.h"
+extern int isalnum_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 252 "/usr/include/ctype.h"
+extern int isalpha_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 253 "/usr/include/ctype.h"
+extern int iscntrl_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 254 "/usr/include/ctype.h"
+extern int isdigit_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 255 "/usr/include/ctype.h"
+extern int islower_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 256 "/usr/include/ctype.h"
+extern int isgraph_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 257 "/usr/include/ctype.h"
+extern int isprint_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 258 "/usr/include/ctype.h"
+extern int ispunct_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 259 "/usr/include/ctype.h"
+extern int isspace_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 260 "/usr/include/ctype.h"
+extern int isupper_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 261 "/usr/include/ctype.h"
+extern int isxdigit_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+
+#line 263 "/usr/include/ctype.h"
+extern int isblank_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 267 "/usr/include/ctype.h"
+extern int __tolower_l (int __c, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 268 "/usr/include/ctype.h"
+extern int tolower_l (int __c, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 271 "/usr/include/ctype.h"
+extern int __toupper_l (int __c, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 272 "/usr/include/ctype.h"
+extern int toupper_l (int __c, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 273 "/usr/include/ctype.h"
+
+
+
+
+
+
+
+extern void *memcpy (void *__restrict __dest, const void *__restrict __src,
+ size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 47 "/usr/include/string.h"
+extern void *memmove (void *__dest, const void *__src, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+
+#line 54 "/usr/include/string.h"
+extern void *memccpy (void *__restrict __dest, const void *__restrict __src,
+ int __c, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__access__ (__write_only__, 1, 4)));
+
+
+
+
+
+#line 61 "/usr/include/string.h"
+extern void *memset (void *__s, int __c, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+#line 64 "/usr/include/string.h"
+extern int memcmp (const void *__s1, const void *__s2, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 66 "/usr/include/string.h"
+extern int __memcmpeq (const void *__s1, const void *__s2, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 82 "/usr/include/string.h"
+extern void *memchr (const void *__s, int __c, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+#line 109 "/usr/include/string.h"
+extern char *strcpy (char *__restrict __dest, const char *__restrict __src)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 144 "/usr/include/string.h"
+extern char *strncpy (char *__restrict __dest,
+ const char *__restrict __src, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 149 "/usr/include/string.h"
+extern char *strcat (char *__restrict __dest, const char *__restrict __src)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 152 "/usr/include/string.h"
+extern char *strncat (char *__restrict __dest, const char *__restrict __src,
+ size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 156 "/usr/include/string.h"
+extern int strcmp (const char *__s1, const char *__s2)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 159 "/usr/include/string.h"
+extern int strncmp (const char *__s1, const char *__s2, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 163 "/usr/include/string.h"
+extern int strcoll (const char *__s1, const char *__s2)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 166 "/usr/include/string.h"
+extern size_t strxfrm (char *__restrict __dest,
+ const char *__restrict __src, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))) __attribute__ ((__access__ (__write_only__, 1, 3)));
+
+
+
+
+
+
+
+#line 175 "/usr/include/string.h"
+extern int strcoll_l (const char *__s1, const char *__s2, locale_t __l)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));
+
+
+
+#line 179 "/usr/include/string.h"
+extern size_t strxfrm_l (char *__dest, const char *__src, size_t __n,
+ locale_t __l) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 4)))
+ __attribute__ ((__access__ (__write_only__, 1, 3)));
+
+
+
+
+
+
+#line 187 "/usr/include/string.h"
+extern char *strdup (const char *__s)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+#line 195 "/usr/include/string.h"
+extern char *strndup (const char *__string, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
+
+#line 197 "/usr/include/string.h"
+extern char *strchr (const char *__s, int __c)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+#line 248 "/usr/include/string.h"
+extern char *strrchr (const char *__s, int __c)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+#line 275 "/usr/include/string.h"
+extern size_t strcspn (const char *__s, const char *__reject)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 297 "/usr/include/string.h"
+extern size_t strspn (const char *__s, const char *__accept)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 299 "/usr/include/string.h"
+extern char *strpbrk (const char *__s, const char *__accept)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 325 "/usr/include/string.h"
+extern char *strstr (const char *__haystack, const char *__needle)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+#line 356 "/usr/include/string.h"
+extern char *strtok (char *__restrict __s, const char *__restrict __delim)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+
+
+#line 361 "/usr/include/string.h"
+extern char *__strtok_r (char *__restrict __s,
+ const char *__restrict __delim,
+ char **__restrict __save_ptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3)));
+
+
+#line 366 "/usr/include/string.h"
+extern char *strtok_r (char *__restrict __s, const char *__restrict __delim,
+ char **__restrict __save_ptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3)));
+
+#line 369 "/usr/include/string.h"
+extern size_t strlen (const char *__s)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+#line 413 "/usr/include/string.h"
+extern size_t strnlen (const char *__string, size_t __maxlen)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+#line 419 "/usr/include/string.h"
+extern char *strerror (int __errnum) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 420 "/usr/include/string.h"
+extern int strerror_r (int __errnum, char *__buf, size_t __buflen) __asm__ ("" "__xpg_strerror_r") __attribute__ ((__nothrow__ , __leaf__))
+
+ __attribute__ ((__nonnull__ (2)))
+ __attribute__ ((__access__ (__write_only__, 2, 3)));
+
+#line 436 "/usr/include/string.h"
+extern char *strerror_l (int __errnum, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 462 "/usr/include/string.h"
+
+
+
+
+
+
+
+
+
+
+extern int bcmp (const void *__s1, const void *__s2, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 38 "/usr/include/strings.h"
+extern void bcopy (const void *__src, void *__dest, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 42 "/usr/include/strings.h"
+extern void bzero (void *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 43 "/usr/include/strings.h"
+extern char *index (const char *__s, int __c)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+#line 70 "/usr/include/strings.h"
+extern char *rindex (const char *__s, int __c)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+#line 104 "/usr/include/strings.h"
+extern int ffs (int __i) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+
+
+
+
+
+#line 110 "/usr/include/strings.h"
+extern int ffsl (long int __l) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+#line 111 "/usr/include/strings.h"
+__extension__ extern int ffsll (long long int __ll)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+
+
+
+#line 116 "/usr/include/strings.h"
+extern int strcasecmp (const char *__s1, const char *__s2)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 120 "/usr/include/strings.h"
+extern int strncasecmp (const char *__s1, const char *__s2, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+
+
+#line 128 "/usr/include/strings.h"
+extern int strcasecmp_l (const char *__s1, const char *__s2, locale_t __loc)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));
+
+
+
+
+#line 133 "/usr/include/strings.h"
+extern int strncasecmp_l (const char *__s1, const char *__s2,
+ size_t __n, locale_t __loc)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 4)));
+
+
+
+
+#line 139 "/usr/include/strings.h"
+
+
+
+extern void explicit_bzero (void *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)))
+ __attribute__ ((__access__ (__write_only__, 1, 2)));
+
+
+
+
+#line 471 "/usr/include/string.h"
+extern char *strsep (char **__restrict __stringp,
+ const char *__restrict __delim)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+#line 478 "/usr/include/string.h"
+extern char *strsignal (int __sig) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 479 "/usr/include/string.h"
+extern char *__stpcpy (char *__restrict __dest, const char *__restrict __src)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 491 "/usr/include/string.h"
+extern char *stpcpy (char *__restrict __dest, const char *__restrict __src)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+#line 496 "/usr/include/string.h"
+extern char *__stpncpy (char *__restrict __dest,
+ const char *__restrict __src, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 499 "/usr/include/string.h"
+extern char *stpncpy (char *__restrict __dest,
+ const char *__restrict __src, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 502 "/usr/include/string.h"
+
+
+
+
+
+
+
+
+typedef __builtin_va_list __gnuc_va_list;
+
+#line 41 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stdarg.h"
+
+
+
+
+
+
+typedef struct
+{
+ int __count;
+ union
+ {
+ unsigned int __wch;
+ char __wchb[4];
+ } __value;
+}
+#line 21 "/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h"
+__mbstate_t;
+
+#line 22 "/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h"
+
+
+
+
+typedef struct _G_fpos_t
+{
+ __off_t __pos;
+ __mbstate_t __state;
+}
+#line 14 "/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h"
+__fpos_t;
+
+#line 15 "/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h"
+typedef struct _G_fpos64_t
+{
+ __off64_t __pos;
+ __mbstate_t __state;
+}
+#line 14 "/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h"
+__fpos64_t;
+
+#line 15 "/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h"
+
+
+
+struct _IO_FILE;
+
+#line 5 "/usr/include/x86_64-linux-gnu/bits/types/__FILE.h"
+typedef struct _IO_FILE __FILE;
+
+#line 6 "/usr/include/x86_64-linux-gnu/bits/types/__FILE.h"
+
+
+
+struct _IO_FILE;
+
+
+
+#line 7 "/usr/include/x86_64-linux-gnu/bits/types/FILE.h"
+typedef struct _IO_FILE FILE;
+
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/FILE.h"
+struct _IO_FILE;
+
+#line 36 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+struct _IO_marker;
+
+#line 37 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+struct _IO_codecvt;
+
+#line 38 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+struct _IO_wide_data;
+
+
+
+
+
+#line 43 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+typedef void _IO_lock_t;
+
+
+
+
+
+
+#line 49 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+struct _IO_FILE
+{
+ int _flags;
+
+
+ char *_IO_read_ptr;
+ char *_IO_read_end;
+ char *_IO_read_base;
+ char *_IO_write_base;
+ char *_IO_write_ptr;
+ char *_IO_write_end;
+ char *_IO_buf_base;
+ char *_IO_buf_end;
+
+
+ char *_IO_save_base;
+ char *_IO_backup_base;
+ char *_IO_save_end;
+
+ struct _IO_marker *_markers;
+
+ struct _IO_FILE *_chain;
+
+ int _fileno;
+ int _flags2;
+ __off_t _old_offset;
+
+
+ unsigned short _cur_column;
+ signed char _vtable_offset;
+ char _shortbuf[1];
+
+ _IO_lock_t *_lock;
+
+
+
+
+
+
+
+ __off64_t _offset;
+
+ struct _IO_codecvt *_codecvt;
+ struct _IO_wide_data *_wide_data;
+ struct _IO_FILE *_freeres_list;
+ void *_freeres_buf;
+ size_t __pad5;
+ int _mode;
+
+ char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)];
+};
+
+#line 100 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+typedef __gnuc_va_list va_list;
+
+#line 53 "/usr/include/stdio.h"
+typedef __fpos_t fpos_t;
+
+#line 85 "/usr/include/stdio.h"
+extern FILE *stdin;
+
+#line 144 "/usr/include/stdio.h"
+extern FILE *stdout;
+
+#line 145 "/usr/include/stdio.h"
+extern FILE *stderr;
+
+
+
+
+
+
+
+#line 152 "/usr/include/stdio.h"
+extern int remove (const char *__filename) __attribute__ ((__nothrow__ , __leaf__));
+
+
+#line 154 "/usr/include/stdio.h"
+extern int rename (const char *__old, const char *__new) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 158 "/usr/include/stdio.h"
+extern int renameat (int __oldfd, const char *__old, int __newfd,
+ const char *__new) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 160 "/usr/include/stdio.h"
+extern int fclose (FILE *__stream);
+
+#line 179 "/usr/include/stdio.h"
+extern FILE *tmpfile (void)
+ __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ;
+
+#line 190 "/usr/include/stdio.h"
+extern char *tmpnam (char[20]) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+#line 210 "/usr/include/stdio.h"
+extern char *tmpnam_r (char __s[20]) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+#line 211 "/usr/include/stdio.h"
+extern char *tempnam (const char *__dir, const char *__pfx)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (__builtin_free, 1)));
+
+
+
+
+
+
+
+#line 230 "/usr/include/stdio.h"
+extern int fflush (FILE *__stream);
+
+#line 231 "/usr/include/stdio.h"
+extern int fflush_unlocked (FILE *__stream);
+
+#line 240 "/usr/include/stdio.h"
+extern FILE *fopen (const char *__restrict __filename,
+ const char *__restrict __modes)
+ __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ;
+
+
+
+
+
+#line 265 "/usr/include/stdio.h"
+extern FILE *freopen (const char *__restrict __filename,
+ const char *__restrict __modes,
+ FILE *__restrict __stream) ;
+
+#line 268 "/usr/include/stdio.h"
+extern FILE *fdopen (int __fd, const char *__modes) __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ;
+
+#line 295 "/usr/include/stdio.h"
+extern FILE *fmemopen (void *__s, size_t __len, const char *__modes)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ;
+
+
+
+
+
+#line 314 "/usr/include/stdio.h"
+extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ;
+
+#line 316 "/usr/include/stdio.h"
+extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 332 "/usr/include/stdio.h"
+extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf,
+ int __modes, size_t __n) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+#line 338 "/usr/include/stdio.h"
+extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf,
+ size_t __size) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 342 "/usr/include/stdio.h"
+extern void setlinebuf (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+
+#line 350 "/usr/include/stdio.h"
+extern int fprintf (FILE *__restrict __stream,
+ const char *__restrict __format, ...);
+
+
+
+
+
+#line 356 "/usr/include/stdio.h"
+extern int printf (const char *__restrict __format, ...);
+
+
+#line 358 "/usr/include/stdio.h"
+extern int sprintf (char *__restrict __s,
+ const char *__restrict __format, ...) __attribute__ ((__nothrow__));
+
+
+
+
+
+
+#line 365 "/usr/include/stdio.h"
+extern int vfprintf (FILE *__restrict __s, const char *__restrict __format,
+ __gnuc_va_list __arg);
+
+
+
+
+
+#line 371 "/usr/include/stdio.h"
+extern int vprintf (const char *__restrict __format, __gnuc_va_list __arg);
+
+
+#line 373 "/usr/include/stdio.h"
+extern int vsprintf (char *__restrict __s, const char *__restrict __format,
+ __gnuc_va_list __arg) __attribute__ ((__nothrow__));
+
+
+
+
+#line 378 "/usr/include/stdio.h"
+extern int snprintf (char *__restrict __s, size_t __maxlen,
+ const char *__restrict __format, ...)
+ __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 4)));
+
+
+#line 382 "/usr/include/stdio.h"
+extern int vsnprintf (char *__restrict __s, size_t __maxlen,
+ const char *__restrict __format, __gnuc_va_list __arg)
+ __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 0)));
+
+#line 385 "/usr/include/stdio.h"
+extern int vdprintf (int __fd, const char *__restrict __fmt,
+ __gnuc_va_list __arg)
+ __attribute__ ((__format__ (__printf__, 2, 0)));
+
+#line 406 "/usr/include/stdio.h"
+extern int dprintf (int __fd, const char *__restrict __fmt, ...)
+ __attribute__ ((__format__ (__printf__, 2, 3)));
+
+
+
+
+
+
+
+
+#line 415 "/usr/include/stdio.h"
+extern int fscanf (FILE *__restrict __stream,
+ const char *__restrict __format, ...) ;
+
+
+
+
+
+#line 421 "/usr/include/stdio.h"
+extern int scanf (const char *__restrict __format, ...) ;
+
+
+#line 423 "/usr/include/stdio.h"
+extern int sscanf (const char *__restrict __s,
+ const char *__restrict __format, ...) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 425 "/usr/include/stdio.h"
+extern int fscanf (FILE *__restrict __stream, const char *__restrict __format, ...) __asm__ ("" "__isoc99_fscanf")
+
+ ;
+
+#line 437 "/usr/include/stdio.h"
+extern int scanf (const char *__restrict __format, ...) __asm__ ("" "__isoc99_scanf")
+ ;
+
+#line 439 "/usr/include/stdio.h"
+extern int sscanf (const char *__restrict __s, const char *__restrict __format, ...) __asm__ ("" "__isoc99_sscanf") __attribute__ ((__nothrow__ , __leaf__))
+
+ ;
+
+#line 442 "/usr/include/stdio.h"
+extern int vfscanf (FILE *__restrict __s, const char *__restrict __format,
+ __gnuc_va_list __arg)
+ __attribute__ ((__format__ (__scanf__, 2, 0))) ;
+
+
+
+
+
+
+#line 467 "/usr/include/stdio.h"
+extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg)
+ __attribute__ ((__format__ (__scanf__, 1, 0))) ;
+
+
+
+#line 471 "/usr/include/stdio.h"
+extern int vsscanf (const char *__restrict __s,
+ const char *__restrict __format, __gnuc_va_list __arg)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__format__ (__scanf__, 2, 0)));
+
+
+
+
+
+
+#line 479 "/usr/include/stdio.h"
+extern int vfscanf (FILE *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vfscanf")
+
+
+
+ __attribute__ ((__format__ (__scanf__, 2, 0))) ;
+
+#line 484 "/usr/include/stdio.h"
+extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vscanf")
+
+ __attribute__ ((__format__ (__scanf__, 1, 0))) ;
+
+#line 487 "/usr/include/stdio.h"
+extern int vsscanf (const char *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vsscanf") __attribute__ ((__nothrow__ , __leaf__))
+
+
+
+ __attribute__ ((__format__ (__scanf__, 2, 0)));
+
+#line 492 "/usr/include/stdio.h"
+extern int fgetc (FILE *__stream);
+
+#line 514 "/usr/include/stdio.h"
+extern int getc (FILE *__stream);
+
+
+
+
+
+
+#line 520 "/usr/include/stdio.h"
+extern int getchar (void);
+
+
+
+
+
+
+
+#line 527 "/usr/include/stdio.h"
+extern int getc_unlocked (FILE *__stream);
+
+#line 528 "/usr/include/stdio.h"
+extern int getchar_unlocked (void);
+
+#line 529 "/usr/include/stdio.h"
+extern int fgetc_unlocked (FILE *__stream);
+
+#line 539 "/usr/include/stdio.h"
+extern int fputc (int __c, FILE *__stream);
+
+#line 550 "/usr/include/stdio.h"
+extern int putc (int __c, FILE *__stream);
+
+
+
+
+
+
+#line 556 "/usr/include/stdio.h"
+extern int putchar (int __c);
+
+#line 557 "/usr/include/stdio.h"
+extern int fputc_unlocked (int __c, FILE *__stream);
+
+
+
+
+
+
+
+
+#line 573 "/usr/include/stdio.h"
+extern int putc_unlocked (int __c, FILE *__stream);
+
+#line 574 "/usr/include/stdio.h"
+extern int putchar_unlocked (int __c);
+
+
+
+
+
+
+
+#line 581 "/usr/include/stdio.h"
+extern int getw (FILE *__stream);
+
+
+
+#line 584 "/usr/include/stdio.h"
+extern int putw (int __w, FILE *__stream);
+
+
+
+
+
+
+
+
+#line 592 "/usr/include/stdio.h"
+extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream)
+ __attribute__ ((__access__ (__write_only__, 1, 2)));
+
+#line 594 "/usr/include/stdio.h"
+extern __ssize_t __getdelim (char **__restrict __lineptr,
+ size_t *__restrict __n, int __delimiter,
+ FILE *__restrict __stream) ;
+
+#line 635 "/usr/include/stdio.h"
+extern __ssize_t getdelim (char **__restrict __lineptr,
+ size_t *__restrict __n, int __delimiter,
+ FILE *__restrict __stream) ;
+
+
+
+
+
+
+
+
+#line 645 "/usr/include/stdio.h"
+extern __ssize_t getline (char **__restrict __lineptr,
+ size_t *__restrict __n,
+ FILE *__restrict __stream) ;
+
+
+
+
+
+
+
+
+#line 655 "/usr/include/stdio.h"
+extern int fputs (const char *__restrict __s, FILE *__restrict __stream);
+
+
+
+
+
+
+#line 661 "/usr/include/stdio.h"
+extern int puts (const char *__s);
+
+
+
+
+
+
+
+#line 668 "/usr/include/stdio.h"
+extern int ungetc (int __c, FILE *__stream);
+
+
+
+
+
+
+
+#line 675 "/usr/include/stdio.h"
+extern size_t fread (void *__restrict __ptr, size_t __size,
+ size_t __n, FILE *__restrict __stream) ;
+
+
+
+
+
+#line 681 "/usr/include/stdio.h"
+extern size_t fwrite (const void *__restrict __ptr, size_t __size,
+ size_t __n, FILE *__restrict __s);
+
+#line 683 "/usr/include/stdio.h"
+extern size_t fread_unlocked (void *__restrict __ptr, size_t __size,
+ size_t __n, FILE *__restrict __stream) ;
+
+#line 704 "/usr/include/stdio.h"
+extern size_t fwrite_unlocked (const void *__restrict __ptr, size_t __size,
+ size_t __n, FILE *__restrict __stream);
+
+
+
+
+
+
+
+
+#line 713 "/usr/include/stdio.h"
+extern int fseek (FILE *__stream, long int __off, int __whence);
+
+
+
+
+
+#line 718 "/usr/include/stdio.h"
+extern long int ftell (FILE *__stream) ;
+
+
+
+
+
+#line 723 "/usr/include/stdio.h"
+extern void rewind (FILE *__stream);
+
+#line 724 "/usr/include/stdio.h"
+extern int fseeko (FILE *__stream, __off_t __off, int __whence);
+
+
+
+
+
+#line 741 "/usr/include/stdio.h"
+extern __off_t ftello (FILE *__stream) ;
+
+#line 742 "/usr/include/stdio.h"
+extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos);
+
+
+
+
+
+#line 765 "/usr/include/stdio.h"
+extern int fsetpos (FILE *__stream, const fpos_t *__pos);
+
+#line 766 "/usr/include/stdio.h"
+extern void clearerr (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
+
+
+#line 788 "/usr/include/stdio.h"
+extern int feof (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+#line 790 "/usr/include/stdio.h"
+extern int ferror (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+#line 794 "/usr/include/stdio.h"
+extern void clearerr_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 795 "/usr/include/stdio.h"
+extern int feof_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+#line 796 "/usr/include/stdio.h"
+extern int ferror_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+
+
+
+#line 804 "/usr/include/stdio.h"
+extern void perror (const char *__s);
+
+
+
+
+
+#line 809 "/usr/include/stdio.h"
+extern int fileno (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+#line 814 "/usr/include/stdio.h"
+extern int fileno_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+#line 815 "/usr/include/stdio.h"
+extern int pclose (FILE *__stream);
+
+
+
+
+
+
+#line 829 "/usr/include/stdio.h"
+extern FILE *popen (const char *__command, const char *__modes)
+ __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (pclose, 1))) ;
+
+
+
+
+
+
+
+#line 837 "/usr/include/stdio.h"
+extern char *ctermid (char *__s) __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__access__ (__write_only__, 1)));
+
+#line 839 "/usr/include/stdio.h"
+extern void flockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 871 "/usr/include/stdio.h"
+extern int ftrylockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+#line 874 "/usr/include/stdio.h"
+extern void funlockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 875 "/usr/include/stdio.h"
+extern int __uflow (FILE *);
+
+#line 886 "/usr/include/stdio.h"
+extern int __overflow (FILE *, int);
+
+#line 887 "/usr/include/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+vprintf (const char *__restrict __fmt, __gnuc_va_list __arg)
+{
+ return vfprintf (stdout, __fmt, __arg);
+}
+
+
+
+
+#line 46 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+getchar (void)
+{
+ return getc (stdin);
+}
+
+
+
+
+
+#line 55 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+fgetc_unlocked (FILE *__fp)
+{
+ return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++);
+}
+
+
+
+
+
+
+#line 65 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+getc_unlocked (FILE *__fp)
+{
+ return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++);
+}
+
+
+
+#line 72 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+getchar_unlocked (void)
+{
+ return (__builtin_expect (((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end), 0) ? __uflow (stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++);
+}
+
+
+
+
+
+#line 81 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+putchar (int __c)
+{
+ return putc (__c, stdout);
+}
+
+
+
+
+
+#line 90 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+fputc_unlocked (int __c, FILE *__stream)
+{
+ return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
+}
+
+
+
+
+
+
+#line 100 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+putc_unlocked (int __c, FILE *__stream)
+{
+ return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
+}
+
+
+
+#line 107 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+putchar_unlocked (int __c)
+{
+ return (__builtin_expect (((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end), 0) ? __overflow (stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c)));
+}
+
+#line 112 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+__attribute__ ((__nothrow__ , __leaf__)) feof_unlocked (FILE *__stream)
+{
+ return (((__stream)->_flags & 0x0010) != 0);
+}
+
+
+
+#line 134 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+__attribute__ ((__nothrow__ , __leaf__)) ferror_unlocked (FILE *__stream)
+{
+ return (((__stream)->_flags & 0x0020) != 0);
+}
+
+#line 139 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+
+
+
+
+
+
+
+
+
+struct hashmap_other__other__comma_struct_other_uniq_other_string {
+ struct uniq_string **data;
+ size_t count;
+ size_t cap;
+};
+
+
+#line 139 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+
+
+
+
+
+
+
+
+
+struct hashmap_other__other__comma_struct_other_call {
+ struct call **data;
+ size_t count;
+ size_t cap;
+};
+
+
+#line 17 "gamma.h"
+uint32_t hashmap_other_hash_other__other__comma_struct_other_call(struct call *item);
+
+#line 17 "gamma.h"
+uint32_t hashmap_other_hash_other__other__comma_struct_other_uniq_other_string(struct uniq_string *item);
+
+#line 18 "gamma.h"
+int hashmap_other_eq_other__other__comma_struct_other_call(struct call *A, struct call *B);
+
+
+#line 18 "gamma.h"
+int hashmap_other_eq_other__other__comma_struct_other_uniq_other_string(struct uniq_string *A, struct uniq_string *B);
+
+
+#line 20 "gamma.h"
+struct uniq_string *hashmap_other_lookup_other__other__comma_struct_other_uniq_other_string(struct hashmap_other__other__comma_struct_other_uniq_other_string *hashmap, struct uniq_string *item);
+
+#line 21 "gamma.h"
+struct uniq_string *hashmap_other_lookup_other_weak_other__other__comma_struct_other_uniq_other_string(struct hashmap_other__other__comma_struct_other_uniq_other_string *hashmap, struct uniq_string *item);
+
+#line 21 "gamma.h"
+struct call *hashmap_other_lookup_other_weak_other__other__comma_struct_other_call(struct hashmap_other__other__comma_struct_other_call *hashmap, struct call *item);
+
+#line 22 "gamma.h"
+int hashmap_other_contains_other__other__comma_struct_other_call(struct hashmap_other__other__comma_struct_other_call *hashmap, struct call *item);
+
+#line 23 "gamma.h"
+void hashmap_other_insert_other__other__comma_struct_other_uniq_other_string(struct hashmap_other__other__comma_struct_other_uniq_other_string *hashmap, struct uniq_string *item);
+
+#line 23 "gamma.h"
+void hashmap_other_insert_other__other__comma_struct_other_call(struct hashmap_other__other__comma_struct_other_call *hashmap, struct call *item);
+
+#line 24 "gamma.h"
+struct uniq_string *heapify_other__other__comma_struct_other_uniq_other_string(struct uniq_string item);
+
+
+#line 26 "gamma.h"
+struct vector_other__other__comma_struct_other_call_other__star_ {
+ struct call * *data;
+ size_t count;
+ size_t cap;
+};
+
+#line 31 "gamma.h"
+uint32_t vector_other_push_other__other__comma_struct_other_call_other__star_(struct vector_other__other__comma_struct_other_call_other__star_ *vector, struct call * item);
+
+#line 32 "gamma.h"
+struct call * vector_other_pop_other__other__comma_struct_other_call_other__star_(struct vector_other__other__comma_struct_other_call_other__star_ *vector);
+
+#line 33 "gamma.h"
+struct vector_other__other__comma_struct_other_call_other__star_ *init_other_vector_other__other__comma_struct_other_call_other__star_();
+
+
+#line 35 "gamma.h"
+struct uniq_string {
+ char *string;
+ size_t len;
+
+ struct vector_other__other__comma_struct_other_call_other__star_ instantiations;
+
+ struct chunk *definitions;
+};
+
+
+#line 44 "gamma.h"
+struct arg {
+ char *start;
+ struct uniq_string *string;
+ int is_concrete;
+};
+
+
+#line 50 "gamma.h"
+struct call {
+ char *start;
+ char *end;
+ struct uniq_string *name;
+ struct arg *args;
+ size_t n_args;
+ struct call *next;
+};
+
+
+#line 59 "gamma.h"
+struct chunk {
+ char *start;
+ char *end;
+
+ char *line_filename;
+ size_t line;
+
+ struct call *defining_call;
+ struct call *calls;
+ struct chunk *next;
+ struct chunk *next_definition;
+};
+
+
+#line 72 "gamma.h"
+struct chunked_file {
+ char *contents;
+ char *end;
+ size_t id;
+ struct chunk *chunks;
+ struct chunked_file *next;
+};
+
+
+#line 80 "gamma.h"
+struct chunked_file *chunk(const char *path);
+
+#line 81 "gamma.h"
+struct uniq_string *lookup(char *string, size_t len);
+
+#line 82 "gamma.h"
+struct uniq_string *weak_lookup(char *string, size_t len);
+
+
+
+
+#line 86 "gamma.h"
+struct instantiation_set {
+ struct call **data;
+ size_t n;
+ size_t cap;
+};
+
+
+#line 92 "gamma.h"
+void parse_call(struct call *call);
+
+#line 93 "gamma.h"
+void print_state(struct chunked_file *file);
+
+#line 94 "gamma.h"
+void solve(struct chunked_file *files);
+
+#line 95 "gamma.h"
+void print_string(struct uniq_string *string);
+
+#line 96 "gamma.h"
+void print_call(struct call *call);
+
+#line 97 "gamma.h"
+void print_set(struct instantiation_set *set);
+
+#line 98 "gamma.h"
+void print_chunk(struct chunk *chunk, struct call *instantiation, FILE *out);
+
+#line 99 "gamma.h"
+struct call *replace_variables(struct call *container, struct call *container_instantiation, struct call *call);
+
+#line 100 "gamma.h"
+void fprint_string(FILE *out, struct uniq_string *string);
+
+#line 101 "gamma.h"
+char **read_fakeobj(char *path, char *c_dst);
+
+#line 102 "gamma.h"
+void write_fakeobj(char *src, char *dst, int i);
+
+#line 103 "gamma.h"
+void gamma_sendfile(int dst_fd, int src_fd);
+
+#line 104 "gamma.h"
+void copy_file(char *dst, char *src);
+
+
+#line 106 "gamma.h"
+extern char **ARGV;
+
+#line 107 "gamma.h"
+extern int ARGC;
+
+#line 108 "gamma.h"
+extern char *TMPDIR;
+
+#line 109 "gamma.h"
+extern int GAMMA_TO_C;
+
+#line 110 "gamma.h"
+
+
+
+
+
+
+
+
+struct flock
+ {
+ short int l_type;
+ short int l_whence;
+
+ __off_t l_start;
+ __off_t l_len;
+
+
+
+
+ __pid_t l_pid;
+ };
+
+#line 48 "/usr/include/x86_64-linux-gnu/bits/fcntl.h"
+
+
+struct stat
+ {
+
+
+
+ __dev_t st_dev;
+
+
+
+
+ __ino_t st_ino;
+
+
+
+
+
+
+
+ __nlink_t st_nlink;
+ __mode_t st_mode;
+
+ __uid_t st_uid;
+ __gid_t st_gid;
+
+ int __pad0;
+
+ __dev_t st_rdev;
+
+
+
+
+ __off_t st_size;
+
+
+
+ __blksize_t st_blksize;
+
+ __blkcnt_t st_blocks;
+ struct timespec st_atim;
+ struct timespec st_mtim;
+ struct timespec st_ctim;
+ __syscall_slong_t __glibc_reserved[3];
+ };
+
+#line 100 "/usr/include/x86_64-linux-gnu/bits/struct_stat.h"
+extern int fcntl (int __fd, int __cmd, ...);
+
+#line 150 "/usr/include/fcntl.h"
+extern int open (const char *__file, int __oflag, ...) __attribute__ ((__nonnull__ (1)));
+
+#line 182 "/usr/include/fcntl.h"
+extern int openat (int __fd, const char *__file, int __oflag, ...)
+ __attribute__ ((__nonnull__ (2)));
+
+#line 207 "/usr/include/fcntl.h"
+extern int creat (const char *__file, mode_t __mode) __attribute__ ((__nonnull__ (1)));
+
+#line 228 "/usr/include/fcntl.h"
+extern int lockf (int __fd, int __cmd, off_t __len);
+
+#line 257 "/usr/include/fcntl.h"
+extern int posix_fadvise (int __fd, off_t __offset, off_t __len,
+ int __advise) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 275 "/usr/include/fcntl.h"
+extern int posix_fallocate (int __fd, off_t __offset, off_t __len);
+
+#line 296 "/usr/include/fcntl.h"
+
+
+
+extern int stat (const char *__restrict __file,
+ struct stat *__restrict __buf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+#line 210 "/usr/include/x86_64-linux-gnu/sys/stat.h"
+extern int fstat (int __fd, struct stat *__buf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+#line 211 "/usr/include/x86_64-linux-gnu/sys/stat.h"
+extern int fstatat (int __fd, const char *__restrict __file,
+ struct stat *__restrict __buf, int __flag)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3)));
+
+#line 267 "/usr/include/x86_64-linux-gnu/sys/stat.h"
+extern int lstat (const char *__restrict __file,
+ struct stat *__restrict __buf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 315 "/usr/include/x86_64-linux-gnu/sys/stat.h"
+extern int chmod (const char *__file, __mode_t __mode)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+#line 359 "/usr/include/x86_64-linux-gnu/sys/stat.h"
+extern int lchmod (const char *__file, __mode_t __mode)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+#line 365 "/usr/include/x86_64-linux-gnu/sys/stat.h"
+extern int fchmod (int __fd, __mode_t __mode) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+#line 371 "/usr/include/x86_64-linux-gnu/sys/stat.h"
+extern int fchmodat (int __fd, const char *__file, __mode_t __mode,
+ int __flag)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))) ;
+
+
+
+
+
+
+
+#line 380 "/usr/include/x86_64-linux-gnu/sys/stat.h"
+extern __mode_t umask (__mode_t __mask) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 381 "/usr/include/x86_64-linux-gnu/sys/stat.h"
+extern int mkdir (const char *__path, __mode_t __mode)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+#line 396 "/usr/include/x86_64-linux-gnu/sys/stat.h"
+extern int mkdirat (int __fd, const char *__path, __mode_t __mode)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+
+
+
+
+
+#line 404 "/usr/include/x86_64-linux-gnu/sys/stat.h"
+extern int mknod (const char *__path, __mode_t __mode, __dev_t __dev)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+#line 411 "/usr/include/x86_64-linux-gnu/sys/stat.h"
+extern int mknodat (int __fd, const char *__path, __mode_t __mode,
+ __dev_t __dev) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+
+
+
+
+#line 418 "/usr/include/x86_64-linux-gnu/sys/stat.h"
+extern int mkfifo (const char *__path, __mode_t __mode)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+#line 425 "/usr/include/x86_64-linux-gnu/sys/stat.h"
+extern int mkfifoat (int __fd, const char *__path, __mode_t __mode)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+
+
+
+
+
+#line 433 "/usr/include/x86_64-linux-gnu/sys/stat.h"
+extern int utimensat (int __fd, const char *__path,
+ const struct timespec __times[2],
+ int __flags)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+#line 437 "/usr/include/x86_64-linux-gnu/sys/stat.h"
+extern int futimens (int __fd, const struct timespec __times[2]) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 453 "/usr/include/x86_64-linux-gnu/sys/stat.h"
+
+
+
+
+
+typedef __useconds_t useconds_t;
+
+#line 256 "/usr/include/unistd.h"
+typedef __socklen_t socklen_t;
+
+#line 275 "/usr/include/unistd.h"
+extern int access (const char *__name, int __type) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 288 "/usr/include/unistd.h"
+extern int faccessat (int __fd, const char *__file, int __type, int __flag)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))) ;
+
+#line 311 "/usr/include/unistd.h"
+extern __off_t lseek (int __fd, __off_t __offset, int __whence) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 340 "/usr/include/unistd.h"
+extern int close (int __fd);
+
+
+
+
+
+#line 363 "/usr/include/unistd.h"
+extern void closefrom (int __lowfd) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+
+#line 371 "/usr/include/unistd.h"
+extern ssize_t read (int __fd, void *__buf, size_t __nbytes)
+ __attribute__ ((__access__ (__write_only__, 2, 3)));
+
+
+
+
+
+
+#line 378 "/usr/include/unistd.h"
+extern ssize_t write (int __fd, const void *__buf, size_t __n)
+ __attribute__ ((__access__ (__read_only__, 2, 3)));
+
+#line 380 "/usr/include/unistd.h"
+extern ssize_t pread (int __fd, void *__buf, size_t __nbytes,
+ __off_t __offset)
+ __attribute__ ((__access__ (__write_only__, 2, 3)));
+
+
+
+
+
+
+
+#line 398 "/usr/include/unistd.h"
+extern ssize_t pwrite (int __fd, const void *__buf, size_t __n,
+ __off_t __offset)
+ __attribute__ ((__access__ (__read_only__, 2, 3)));
+
+#line 401 "/usr/include/unistd.h"
+extern int pipe (int __pipedes[2]) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+#line 438 "/usr/include/unistd.h"
+extern unsigned int alarm (unsigned int __seconds) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 453 "/usr/include/unistd.h"
+extern unsigned int sleep (unsigned int __seconds);
+
+
+
+
+
+
+
+
+#line 472 "/usr/include/unistd.h"
+extern __useconds_t ualarm (__useconds_t __value, __useconds_t __interval)
+ __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+#line 480 "/usr/include/unistd.h"
+extern int usleep (__useconds_t __useconds);
+
+#line 481 "/usr/include/unistd.h"
+extern int pause (void);
+
+
+
+
+#line 493 "/usr/include/unistd.h"
+extern int chown (const char *__file, __uid_t __owner, __gid_t __group)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+#line 498 "/usr/include/unistd.h"
+extern int fchown (int __fd, __uid_t __owner, __gid_t __group) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+#line 503 "/usr/include/unistd.h"
+extern int lchown (const char *__file, __uid_t __owner, __gid_t __group)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+
+
+
+#line 511 "/usr/include/unistd.h"
+extern int fchownat (int __fd, const char *__file, __uid_t __owner,
+ __gid_t __group, int __flag)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))) ;
+
+
+
+
+#line 517 "/usr/include/unistd.h"
+extern int chdir (const char *__path) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+#line 521 "/usr/include/unistd.h"
+extern int fchdir (int __fd) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+#line 522 "/usr/include/unistd.h"
+extern char *getcwd (char *__buf, size_t __size) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+#line 532 "/usr/include/unistd.h"
+extern char *getwd (char *__buf)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__))
+ __attribute__ ((__access__ (__write_only__, 1)));
+
+
+
+
+
+#line 552 "/usr/include/unistd.h"
+extern int dup (int __fd) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+#line 555 "/usr/include/unistd.h"
+extern int dup2 (int __fd, int __fd2) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 556 "/usr/include/unistd.h"
+extern char **__environ;
+
+
+
+
+
+
+
+
+#line 572 "/usr/include/unistd.h"
+extern int execve (const char *__path, char *const __argv[],
+ char *const __envp[]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+#line 578 "/usr/include/unistd.h"
+extern int fexecve (int __fd, char *const __argv[], char *const __envp[])
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+
+
+
+#line 584 "/usr/include/unistd.h"
+extern int execv (const char *__path, char *const __argv[])
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+#line 589 "/usr/include/unistd.h"
+extern int execle (const char *__path, const char *__arg, ...)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+#line 594 "/usr/include/unistd.h"
+extern int execl (const char *__path, const char *__arg, ...)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+#line 599 "/usr/include/unistd.h"
+extern int execvp (const char *__file, char *const __argv[])
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+#line 605 "/usr/include/unistd.h"
+extern int execlp (const char *__file, const char *__arg, ...)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 607 "/usr/include/unistd.h"
+extern int nice (int __inc) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+#line 624 "/usr/include/unistd.h"
+extern void _exit (int __status) __attribute__ ((__noreturn__));
+
+
+
+
+
+
+#line 630 "/usr/include/unistd.h"
+enum
+ {
+ _PC_LINK_MAX,
+
+ _PC_MAX_CANON,
+
+ _PC_MAX_INPUT,
+
+ _PC_NAME_MAX,
+
+ _PC_PATH_MAX,
+
+ _PC_PIPE_BUF,
+
+ _PC_CHOWN_RESTRICTED,
+
+ _PC_NO_TRUNC,
+
+ _PC_VDISABLE,
+
+ _PC_SYNC_IO,
+
+ _PC_ASYNC_IO,
+
+ _PC_PRIO_IO,
+
+ _PC_SOCK_MAXBUF,
+
+ _PC_FILESIZEBITS,
+
+ _PC_REC_INCR_XFER_SIZE,
+
+ _PC_REC_MAX_XFER_SIZE,
+
+ _PC_REC_MIN_XFER_SIZE,
+
+ _PC_REC_XFER_ALIGN,
+
+ _PC_ALLOC_SIZE_MIN,
+
+ _PC_SYMLINK_MAX,
+
+ _PC_2_SYMLINKS
+
+ };
+
+
+
+#line 71 "/usr/include/x86_64-linux-gnu/bits/confname.h"
+enum
+ {
+ _SC_ARG_MAX,
+
+ _SC_CHILD_MAX,
+
+ _SC_CLK_TCK,
+
+ _SC_NGROUPS_MAX,
+
+ _SC_OPEN_MAX,
+
+ _SC_STREAM_MAX,
+
+ _SC_TZNAME_MAX,
+
+ _SC_JOB_CONTROL,
+
+ _SC_SAVED_IDS,
+
+ _SC_REALTIME_SIGNALS,
+
+ _SC_PRIORITY_SCHEDULING,
+
+ _SC_TIMERS,
+
+ _SC_ASYNCHRONOUS_IO,
+
+ _SC_PRIORITIZED_IO,
+
+ _SC_SYNCHRONIZED_IO,
+
+ _SC_FSYNC,
+
+ _SC_MAPPED_FILES,
+
+ _SC_MEMLOCK,
+
+ _SC_MEMLOCK_RANGE,
+
+ _SC_MEMORY_PROTECTION,
+
+ _SC_MESSAGE_PASSING,
+
+ _SC_SEMAPHORES,
+
+ _SC_SHARED_MEMORY_OBJECTS,
+
+ _SC_AIO_LISTIO_MAX,
+
+ _SC_AIO_MAX,
+
+ _SC_AIO_PRIO_DELTA_MAX,
+
+ _SC_DELAYTIMER_MAX,
+
+ _SC_MQ_OPEN_MAX,
+
+ _SC_MQ_PRIO_MAX,
+
+ _SC_VERSION,
+
+ _SC_PAGESIZE,
+
+
+ _SC_RTSIG_MAX,
+
+ _SC_SEM_NSEMS_MAX,
+
+ _SC_SEM_VALUE_MAX,
+
+ _SC_SIGQUEUE_MAX,
+
+ _SC_TIMER_MAX,
+
+
+
+
+ _SC_BC_BASE_MAX,
+
+ _SC_BC_DIM_MAX,
+
+ _SC_BC_SCALE_MAX,
+
+ _SC_BC_STRING_MAX,
+
+ _SC_COLL_WEIGHTS_MAX,
+
+ _SC_EQUIV_CLASS_MAX,
+
+ _SC_EXPR_NEST_MAX,
+
+ _SC_LINE_MAX,
+
+ _SC_RE_DUP_MAX,
+
+ _SC_CHARCLASS_NAME_MAX,
+
+
+ _SC_2_VERSION,
+
+ _SC_2_C_BIND,
+
+ _SC_2_C_DEV,
+
+ _SC_2_FORT_DEV,
+
+ _SC_2_FORT_RUN,
+
+ _SC_2_SW_DEV,
+
+ _SC_2_LOCALEDEF,
+
+
+ _SC_PII,
+
+ _SC_PII_XTI,
+
+ _SC_PII_SOCKET,
+
+ _SC_PII_INTERNET,
+
+ _SC_PII_OSI,
+
+ _SC_POLL,
+
+ _SC_SELECT,
+
+ _SC_UIO_MAXIOV,
+
+ _SC_IOV_MAX = _SC_UIO_MAXIOV,
+
+ _SC_PII_INTERNET_STREAM,
+
+ _SC_PII_INTERNET_DGRAM,
+
+ _SC_PII_OSI_COTS,
+
+ _SC_PII_OSI_CLTS,
+
+ _SC_PII_OSI_M,
+
+ _SC_T_IOV_MAX,
+
+
+
+ _SC_THREADS,
+
+ _SC_THREAD_SAFE_FUNCTIONS,
+
+ _SC_GETGR_R_SIZE_MAX,
+
+ _SC_GETPW_R_SIZE_MAX,
+
+ _SC_LOGIN_NAME_MAX,
+
+ _SC_TTY_NAME_MAX,
+
+ _SC_THREAD_DESTRUCTOR_ITERATIONS,
+
+ _SC_THREAD_KEYS_MAX,
+
+ _SC_THREAD_STACK_MIN,
+
+ _SC_THREAD_THREADS_MAX,
+
+ _SC_THREAD_ATTR_STACKADDR,
+
+ _SC_THREAD_ATTR_STACKSIZE,
+
+ _SC_THREAD_PRIORITY_SCHEDULING,
+
+ _SC_THREAD_PRIO_INHERIT,
+
+ _SC_THREAD_PRIO_PROTECT,
+
+ _SC_THREAD_PROCESS_SHARED,
+
+
+ _SC_NPROCESSORS_CONF,
+
+ _SC_NPROCESSORS_ONLN,
+
+ _SC_PHYS_PAGES,
+
+ _SC_AVPHYS_PAGES,
+
+ _SC_ATEXIT_MAX,
+
+ _SC_PASS_MAX,
+
+
+ _SC_XOPEN_VERSION,
+
+ _SC_XOPEN_XCU_VERSION,
+
+ _SC_XOPEN_UNIX,
+
+ _SC_XOPEN_CRYPT,
+
+ _SC_XOPEN_ENH_I18N,
+
+ _SC_XOPEN_SHM,
+
+
+ _SC_2_CHAR_TERM,
+
+ _SC_2_C_VERSION,
+
+ _SC_2_UPE,
+
+
+ _SC_XOPEN_XPG2,
+
+ _SC_XOPEN_XPG3,
+
+ _SC_XOPEN_XPG4,
+
+
+ _SC_CHAR_BIT,
+
+ _SC_CHAR_MAX,
+
+ _SC_CHAR_MIN,
+
+ _SC_INT_MAX,
+
+ _SC_INT_MIN,
+
+ _SC_LONG_BIT,
+
+ _SC_WORD_BIT,
+
+ _SC_MB_LEN_MAX,
+
+ _SC_NZERO,
+
+ _SC_SSIZE_MAX,
+
+ _SC_SCHAR_MAX,
+
+ _SC_SCHAR_MIN,
+
+ _SC_SHRT_MAX,
+
+ _SC_SHRT_MIN,
+
+ _SC_UCHAR_MAX,
+
+ _SC_UINT_MAX,
+
+ _SC_ULONG_MAX,
+
+ _SC_USHRT_MAX,
+
+
+ _SC_NL_ARGMAX,
+
+ _SC_NL_LANGMAX,
+
+ _SC_NL_MSGMAX,
+
+ _SC_NL_NMAX,
+
+ _SC_NL_SETMAX,
+
+ _SC_NL_TEXTMAX,
+
+
+ _SC_XBS5_ILP32_OFF32,
+
+ _SC_XBS5_ILP32_OFFBIG,
+
+ _SC_XBS5_LP64_OFF64,
+
+ _SC_XBS5_LPBIG_OFFBIG,
+
+
+ _SC_XOPEN_LEGACY,
+
+ _SC_XOPEN_REALTIME,
+
+ _SC_XOPEN_REALTIME_THREADS,
+
+
+ _SC_ADVISORY_INFO,
+
+ _SC_BARRIERS,
+
+ _SC_BASE,
+
+ _SC_C_LANG_SUPPORT,
+
+ _SC_C_LANG_SUPPORT_R,
+
+ _SC_CLOCK_SELECTION,
+
+ _SC_CPUTIME,
+
+ _SC_THREAD_CPUTIME,
+
+ _SC_DEVICE_IO,
+
+ _SC_DEVICE_SPECIFIC,
+
+ _SC_DEVICE_SPECIFIC_R,
+
+ _SC_FD_MGMT,
+
+ _SC_FIFO,
+
+ _SC_PIPE,
+
+ _SC_FILE_ATTRIBUTES,
+
+ _SC_FILE_LOCKING,
+
+ _SC_FILE_SYSTEM,
+
+ _SC_MONOTONIC_CLOCK,
+
+ _SC_MULTI_PROCESS,
+
+ _SC_SINGLE_PROCESS,
+
+ _SC_NETWORKING,
+
+ _SC_READER_WRITER_LOCKS,
+
+ _SC_SPIN_LOCKS,
+
+ _SC_REGEXP,
+
+ _SC_REGEX_VERSION,
+
+ _SC_SHELL,
+
+ _SC_SIGNALS,
+
+ _SC_SPAWN,
+
+ _SC_SPORADIC_SERVER,
+
+ _SC_THREAD_SPORADIC_SERVER,
+
+ _SC_SYSTEM_DATABASE,
+
+ _SC_SYSTEM_DATABASE_R,
+
+ _SC_TIMEOUTS,
+
+ _SC_TYPED_MEMORY_OBJECTS,
+
+ _SC_USER_GROUPS,
+
+ _SC_USER_GROUPS_R,
+
+ _SC_2_PBS,
+
+ _SC_2_PBS_ACCOUNTING,
+
+ _SC_2_PBS_LOCATE,
+
+ _SC_2_PBS_MESSAGE,
+
+ _SC_2_PBS_TRACK,
+
+ _SC_SYMLOOP_MAX,
+
+ _SC_STREAMS,
+
+ _SC_2_PBS_CHECKPOINT,
+
+
+ _SC_V6_ILP32_OFF32,
+
+ _SC_V6_ILP32_OFFBIG,
+
+ _SC_V6_LP64_OFF64,
+
+ _SC_V6_LPBIG_OFFBIG,
+
+
+ _SC_HOST_NAME_MAX,
+
+ _SC_TRACE,
+
+ _SC_TRACE_EVENT_FILTER,
+
+ _SC_TRACE_INHERIT,
+
+ _SC_TRACE_LOG,
+
+
+ _SC_LEVEL1_ICACHE_SIZE,
+
+ _SC_LEVEL1_ICACHE_ASSOC,
+
+ _SC_LEVEL1_ICACHE_LINESIZE,
+
+ _SC_LEVEL1_DCACHE_SIZE,
+
+ _SC_LEVEL1_DCACHE_ASSOC,
+
+ _SC_LEVEL1_DCACHE_LINESIZE,
+
+ _SC_LEVEL2_CACHE_SIZE,
+
+ _SC_LEVEL2_CACHE_ASSOC,
+
+ _SC_LEVEL2_CACHE_LINESIZE,
+
+ _SC_LEVEL3_CACHE_SIZE,
+
+ _SC_LEVEL3_CACHE_ASSOC,
+
+ _SC_LEVEL3_CACHE_LINESIZE,
+
+ _SC_LEVEL4_CACHE_SIZE,
+
+ _SC_LEVEL4_CACHE_ASSOC,
+
+ _SC_LEVEL4_CACHE_LINESIZE,
+
+
+
+ _SC_IPV6 = _SC_LEVEL1_ICACHE_SIZE + 50,
+
+ _SC_RAW_SOCKETS,
+
+
+ _SC_V7_ILP32_OFF32,
+
+ _SC_V7_ILP32_OFFBIG,
+
+ _SC_V7_LP64_OFF64,
+
+ _SC_V7_LPBIG_OFFBIG,
+
+
+ _SC_SS_REPL_MAX,
+
+
+ _SC_TRACE_EVENT_NAME_MAX,
+
+ _SC_TRACE_NAME_MAX,
+
+ _SC_TRACE_SYS_MAX,
+
+ _SC_TRACE_USER_EVENT_MAX,
+
+
+ _SC_XOPEN_STREAMS,
+
+
+ _SC_THREAD_ROBUST_PRIO_INHERIT,
+
+ _SC_THREAD_ROBUST_PRIO_PROTECT,
+
+
+ _SC_MINSIGSTKSZ,
+
+
+ _SC_SIGSTKSZ
+
+ };
+
+
+
+#line 539 "/usr/include/x86_64-linux-gnu/bits/confname.h"
+enum
+ {
+ _CS_PATH,
+
+
+ _CS_V6_WIDTH_RESTRICTED_ENVS,
+
+
+
+ _CS_GNU_LIBC_VERSION,
+
+ _CS_GNU_LIBPTHREAD_VERSION,
+
+
+ _CS_V5_WIDTH_RESTRICTED_ENVS,
+
+
+
+ _CS_V7_WIDTH_RESTRICTED_ENVS,
+
+
+
+ _CS_LFS_CFLAGS = 1000,
+
+ _CS_LFS_LDFLAGS,
+
+ _CS_LFS_LIBS,
+
+ _CS_LFS_LINTFLAGS,
+
+ _CS_LFS64_CFLAGS,
+
+ _CS_LFS64_LDFLAGS,
+
+ _CS_LFS64_LIBS,
+
+ _CS_LFS64_LINTFLAGS,
+
+
+ _CS_XBS5_ILP32_OFF32_CFLAGS = 1100,
+
+ _CS_XBS5_ILP32_OFF32_LDFLAGS,
+
+ _CS_XBS5_ILP32_OFF32_LIBS,
+
+ _CS_XBS5_ILP32_OFF32_LINTFLAGS,
+
+ _CS_XBS5_ILP32_OFFBIG_CFLAGS,
+
+ _CS_XBS5_ILP32_OFFBIG_LDFLAGS,
+
+ _CS_XBS5_ILP32_OFFBIG_LIBS,
+
+ _CS_XBS5_ILP32_OFFBIG_LINTFLAGS,
+
+ _CS_XBS5_LP64_OFF64_CFLAGS,
+
+ _CS_XBS5_LP64_OFF64_LDFLAGS,
+
+ _CS_XBS5_LP64_OFF64_LIBS,
+
+ _CS_XBS5_LP64_OFF64_LINTFLAGS,
+
+ _CS_XBS5_LPBIG_OFFBIG_CFLAGS,
+
+ _CS_XBS5_LPBIG_OFFBIG_LDFLAGS,
+
+ _CS_XBS5_LPBIG_OFFBIG_LIBS,
+
+ _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS,
+
+
+ _CS_POSIX_V6_ILP32_OFF32_CFLAGS,
+
+ _CS_POSIX_V6_ILP32_OFF32_LDFLAGS,
+
+ _CS_POSIX_V6_ILP32_OFF32_LIBS,
+
+ _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS,
+
+ _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS,
+
+ _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS,
+
+ _CS_POSIX_V6_ILP32_OFFBIG_LIBS,
+
+ _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS,
+
+ _CS_POSIX_V6_LP64_OFF64_CFLAGS,
+
+ _CS_POSIX_V6_LP64_OFF64_LDFLAGS,
+
+ _CS_POSIX_V6_LP64_OFF64_LIBS,
+
+ _CS_POSIX_V6_LP64_OFF64_LINTFLAGS,
+
+ _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS,
+
+ _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS,
+
+ _CS_POSIX_V6_LPBIG_OFFBIG_LIBS,
+
+ _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS,
+
+
+ _CS_POSIX_V7_ILP32_OFF32_CFLAGS,
+
+ _CS_POSIX_V7_ILP32_OFF32_LDFLAGS,
+
+ _CS_POSIX_V7_ILP32_OFF32_LIBS,
+
+ _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS,
+
+ _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS,
+
+ _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS,
+
+ _CS_POSIX_V7_ILP32_OFFBIG_LIBS,
+
+ _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS,
+
+ _CS_POSIX_V7_LP64_OFF64_CFLAGS,
+
+ _CS_POSIX_V7_LP64_OFF64_LDFLAGS,
+
+ _CS_POSIX_V7_LP64_OFF64_LIBS,
+
+ _CS_POSIX_V7_LP64_OFF64_LINTFLAGS,
+
+ _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS,
+
+ _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS,
+
+ _CS_POSIX_V7_LPBIG_OFFBIG_LIBS,
+
+ _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS,
+
+
+ _CS_V6_ENV,
+
+ _CS_V7_ENV
+
+ };
+
+#line 682 "/usr/include/x86_64-linux-gnu/bits/confname.h"
+
+
+extern long int pathconf (const char *__path, int __name)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+#line 637 "/usr/include/unistd.h"
+extern long int fpathconf (int __fd, int __name) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 640 "/usr/include/unistd.h"
+extern long int sysconf (int __name) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 644 "/usr/include/unistd.h"
+extern size_t confstr (int __name, char *__buf, size_t __len) __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__access__ (__write_only__, 2, 3)));
+
+
+
+
+
+#line 650 "/usr/include/unistd.h"
+extern __pid_t getpid (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 653 "/usr/include/unistd.h"
+extern __pid_t getppid (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 656 "/usr/include/unistd.h"
+extern __pid_t getpgrp (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 659 "/usr/include/unistd.h"
+extern __pid_t __getpgid (__pid_t __pid) __attribute__ ((__nothrow__ , __leaf__));
+
+
+#line 661 "/usr/include/unistd.h"
+extern __pid_t getpgid (__pid_t __pid) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+#line 668 "/usr/include/unistd.h"
+extern int setpgid (__pid_t __pid, __pid_t __pgid) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 669 "/usr/include/unistd.h"
+extern int setpgrp (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+#line 689 "/usr/include/unistd.h"
+extern __pid_t setsid (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 693 "/usr/include/unistd.h"
+extern __pid_t getsid (__pid_t __pid) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 697 "/usr/include/unistd.h"
+extern __uid_t getuid (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 700 "/usr/include/unistd.h"
+extern __uid_t geteuid (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 703 "/usr/include/unistd.h"
+extern __gid_t getgid (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 706 "/usr/include/unistd.h"
+extern __gid_t getegid (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+#line 711 "/usr/include/unistd.h"
+extern int getgroups (int __size, __gid_t __list[]) __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__access__ (__write_only__, 2, 1)));
+
+#line 713 "/usr/include/unistd.h"
+extern int setuid (__uid_t __uid) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+#line 727 "/usr/include/unistd.h"
+extern int setreuid (__uid_t __ruid, __uid_t __euid) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+#line 732 "/usr/include/unistd.h"
+extern int seteuid (__uid_t __uid) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+
+
+#line 739 "/usr/include/unistd.h"
+extern int setgid (__gid_t __gid) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+#line 744 "/usr/include/unistd.h"
+extern int setregid (__gid_t __rgid, __gid_t __egid) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+#line 749 "/usr/include/unistd.h"
+extern int setegid (__gid_t __gid) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+#line 750 "/usr/include/unistd.h"
+extern __pid_t fork (void) __attribute__ ((__nothrow__));
+
+
+
+
+
+
+
+
+#line 786 "/usr/include/unistd.h"
+extern __pid_t vfork (void) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 787 "/usr/include/unistd.h"
+extern char *ttyname (int __fd) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 803 "/usr/include/unistd.h"
+extern int ttyname_r (int __fd, char *__buf, size_t __buflen)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)))
+ __attribute__ ((__access__ (__write_only__, 2, 3)));
+
+
+
+
+#line 809 "/usr/include/unistd.h"
+extern int isatty (int __fd) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+#line 814 "/usr/include/unistd.h"
+extern int ttyslot (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+#line 819 "/usr/include/unistd.h"
+extern int link (const char *__from, const char *__to)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))) ;
+
+
+
+
+
+#line 825 "/usr/include/unistd.h"
+extern int linkat (int __fromfd, const char *__from, int __tofd,
+ const char *__to, int __flags)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 4))) ;
+
+
+
+
+
+#line 832 "/usr/include/unistd.h"
+extern int symlink (const char *__from, const char *__to)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))) ;
+
+
+
+
+
+#line 838 "/usr/include/unistd.h"
+extern ssize_t readlink (const char *__restrict __path,
+ char *__restrict __buf, size_t __len)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)))
+ __attribute__ ((__access__ (__write_only__, 2, 3)));
+
+
+
+
+
+
+#line 847 "/usr/include/unistd.h"
+extern int symlinkat (const char *__from, int __tofd,
+ const char *__to) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 3))) ;
+
+
+
+#line 851 "/usr/include/unistd.h"
+extern ssize_t readlinkat (int __fd, const char *__restrict __path,
+ char *__restrict __buf, size_t __len)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3)))
+ __attribute__ ((__access__ (__write_only__, 3, 4)));
+
+
+
+
+#line 858 "/usr/include/unistd.h"
+extern int unlink (const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+#line 862 "/usr/include/unistd.h"
+extern int unlinkat (int __fd, const char *__name, int __flag)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+
+
+#line 867 "/usr/include/unistd.h"
+extern int rmdir (const char *__path) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+#line 871 "/usr/include/unistd.h"
+extern __pid_t tcgetpgrp (int __fd) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 874 "/usr/include/unistd.h"
+extern int tcsetpgrp (int __fd, __pid_t __pgrp_id) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+#line 881 "/usr/include/unistd.h"
+extern char *getlogin (void);
+
+
+
+
+
+
+
+
+#line 889 "/usr/include/unistd.h"
+extern int getlogin_r (char *__name, size_t __name_len) __attribute__ ((__nonnull__ (1)))
+ __attribute__ ((__access__ (__write_only__, 1, 2)));
+
+
+
+
+
+#line 895 "/usr/include/unistd.h"
+extern int setlogin (const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+
+#line 903 "/usr/include/unistd.h"
+
+
+
+
+
+
+
+
+extern char *optarg;
+
+#line 37 "/usr/include/x86_64-linux-gnu/bits/getopt_core.h"
+extern int optind;
+
+
+
+
+
+#line 55 "/usr/include/x86_64-linux-gnu/bits/getopt_core.h"
+extern int opterr;
+
+
+
+
+#line 59 "/usr/include/x86_64-linux-gnu/bits/getopt_core.h"
+extern int optopt;
+
+#line 60 "/usr/include/x86_64-linux-gnu/bits/getopt_core.h"
+extern int getopt (int ___argc, char *const *___argv, const char *__shortopts)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3)));
+
+
+
+#line 95 "/usr/include/x86_64-linux-gnu/bits/getopt_core.h"
+
+
+
+
+
+
+
+
+
+
+extern int gethostname (char *__name, size_t __len) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)))
+ __attribute__ ((__access__ (__write_only__, 1, 2)));
+
+
+
+
+
+
+
+#line 919 "/usr/include/unistd.h"
+extern int sethostname (const char *__name, size_t __len)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__access__ (__read_only__, 1, 2)));
+
+
+
+
+#line 924 "/usr/include/unistd.h"
+extern int sethostid (long int __id) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+
+#line 930 "/usr/include/unistd.h"
+extern int getdomainname (char *__name, size_t __len)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)))
+ __attribute__ ((__access__ (__write_only__, 1, 2)));
+
+#line 933 "/usr/include/unistd.h"
+extern int setdomainname (const char *__name, size_t __len)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__access__ (__read_only__, 1, 2)));
+
+
+
+
+
+#line 939 "/usr/include/unistd.h"
+extern int vhangup (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 942 "/usr/include/unistd.h"
+extern int revoke (const char *__file) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+
+
+
+
+#line 950 "/usr/include/unistd.h"
+extern int profil (unsigned short int *__sample_buffer, size_t __size,
+ size_t __offset, unsigned int __scale)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+#line 958 "/usr/include/unistd.h"
+extern int acct (const char *__name) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 962 "/usr/include/unistd.h"
+extern char *getusershell (void) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 963 "/usr/include/unistd.h"
+extern void endusershell (void) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 964 "/usr/include/unistd.h"
+extern void setusershell (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+#line 970 "/usr/include/unistd.h"
+extern int daemon (int __nochdir, int __noclose) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+
+
+#line 977 "/usr/include/unistd.h"
+extern int chroot (const char *__path) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+#line 981 "/usr/include/unistd.h"
+extern char *getpass (const char *__prompt) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+
+#line 989 "/usr/include/unistd.h"
+extern int fsync (int __fd);
+
+#line 990 "/usr/include/unistd.h"
+extern long int gethostid (void);
+
+
+
+#line 1005 "/usr/include/unistd.h"
+extern void sync (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+#line 1011 "/usr/include/unistd.h"
+extern int getpagesize (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+
+
+
+
+#line 1016 "/usr/include/unistd.h"
+extern int getdtablesize (void) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 1017 "/usr/include/unistd.h"
+extern int truncate (const char *__file, __off_t __length)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+#line 1028 "/usr/include/unistd.h"
+extern int ftruncate (int __fd, __off_t __length) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+#line 1050 "/usr/include/unistd.h"
+extern int brk (void *__addr) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+
+#line 1076 "/usr/include/unistd.h"
+extern void *sbrk (intptr_t __delta) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 1077 "/usr/include/unistd.h"
+extern long int syscall (long int __sysno, ...) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 1092 "/usr/include/unistd.h"
+extern int fdatasync (int __fildes);
+
+#line 1151 "/usr/include/unistd.h"
+extern char *crypt (const char *__key, const char *__salt)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 1161 "/usr/include/unistd.h"
+int getentropy (void *__buffer, size_t __length)
+ __attribute__ ((__access__ (__write_only__, 1, 2)));
+
+#line 1200 "/usr/include/unistd.h"
+
+
+
+
+
+
+
+
+
+
+
+extern ssize_t sendfile (int __out_fd, int __in_fd, off_t *__offset,
+ size_t __count) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 35 "/usr/include/x86_64-linux-gnu/sys/sendfile.h"
+
+
+
+void gamma_sendfile(int dst_fd, int src_fd) {
+
+ struct stat stat;
+ fstat(src_fd, &stat);
+
+ size_t n_bytes = stat.st_size - lseek(src_fd, 0,
+ 1
+ );
+
+ char *data = malloc(n_bytes);
+
+ ((void) sizeof ((
+ read(src_fd, data, n_bytes) == n_bytes
+ ) ? 1 : 0), __extension__ ({ if (
+ read(src_fd, data, n_bytes) == n_bytes
+ ) ; else __assert_fail (
+ "read(src_fd, data, n_bytes) == n_bytes"
+ , "utils.c", 16, __extension__ __PRETTY_FUNCTION__); }))
+ ;
+ write(dst_fd, data, n_bytes);
+}
+
+
+#line 20 "utils.c"
+void copy_file(char *dst, char *src) {
+ int s = open(src,
+ 00
+ ),
+ d = open(dst,
+ 01
+ |
+ 0100
+ |
+ 01000
+ ,
+ (0400|0200|0100)
+ );
+ gamma_sendfile(d, s);
+ close(s);
+ close(d);
+}
+
+#line 27 "utils.c"
diff --git a/c_version/6.c b/c_version/6.c
new file mode 100755
index 0000000..515ff1a
--- /dev/null
+++ b/c_version/6.c
@@ -0,0 +1,6232 @@
+
+#line 1 "/tmp/gamma.XksNqZ/6.unfake.c"
+
+
+
+
+
+
+extern void __assert_fail (const char *__assertion, const char *__file,
+ unsigned int __line, const char *__function)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+#line 74 "/usr/include/assert.h"
+extern void __assert_perror_fail (int __errnum, const char *__file,
+ unsigned int __line, const char *__function)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+
+#line 81 "/usr/include/assert.h"
+extern void __assert (const char *__assertion, const char *__file, int __line)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+#line 86 "/usr/include/assert.h"
+typedef long int ptrdiff_t;
+
+#line 146 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h"
+typedef long unsigned int size_t;
+
+#line 215 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h"
+typedef int wchar_t;
+
+#line 330 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h"
+typedef struct {
+ long long __max_align_ll __attribute__((__aligned__(__alignof__(long long))));
+ long double __max_align_ld __attribute__((__aligned__(__alignof__(long double))));
+}
+#line 435 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h"
+max_align_t;
+
+#line 436 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h"
+
+
+typedef unsigned char __u_char;
+
+#line 32 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned short int __u_short;
+
+#line 33 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __u_int;
+
+#line 34 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __u_long;
+
+
+
+#line 37 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef signed char __int8_t;
+
+#line 38 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned char __uint8_t;
+
+#line 39 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef signed short int __int16_t;
+
+#line 40 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned short int __uint16_t;
+
+#line 41 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef signed int __int32_t;
+
+#line 42 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __uint32_t;
+
+
+#line 44 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef signed long int __int64_t;
+
+#line 45 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __uint64_t;
+
+
+
+
+
+
+
+#line 52 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __int8_t __int_least8_t;
+
+#line 53 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __uint8_t __uint_least8_t;
+
+#line 54 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __int16_t __int_least16_t;
+
+#line 55 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __uint16_t __uint_least16_t;
+
+#line 56 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __int32_t __int_least32_t;
+
+#line 57 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __uint32_t __uint_least32_t;
+
+#line 58 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __int64_t __int_least64_t;
+
+#line 59 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __uint64_t __uint_least64_t;
+
+
+
+
+#line 63 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __quad_t;
+
+#line 64 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __u_quad_t;
+
+
+
+
+
+
+
+
+#line 72 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __intmax_t;
+
+#line 73 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __uintmax_t;
+
+#line 74 "/usr/include/x86_64-linux-gnu/bits/types.h"
+
+
+typedef unsigned long int __dev_t;
+
+#line 146 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __uid_t;
+
+#line 147 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __gid_t;
+
+#line 148 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __ino_t;
+
+#line 149 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __ino64_t;
+
+#line 150 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __mode_t;
+
+#line 151 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __nlink_t;
+
+#line 152 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __off_t;
+
+#line 153 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __off64_t;
+
+#line 154 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef int __pid_t;
+
+#line 155 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef struct { int __val[2]; }
+#line 155 "/usr/include/x86_64-linux-gnu/bits/types.h"
+__fsid_t;
+
+#line 156 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __clock_t;
+
+#line 157 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __rlim_t;
+
+#line 158 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __rlim64_t;
+
+#line 159 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __id_t;
+
+#line 160 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __time_t;
+
+#line 161 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __useconds_t;
+
+#line 162 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __suseconds_t;
+
+#line 163 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __suseconds64_t;
+
+
+#line 165 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef int __daddr_t;
+
+#line 166 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef int __key_t;
+
+
+
+#line 169 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef int __clockid_t;
+
+
+
+#line 172 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef void * __timer_t;
+
+
+
+#line 175 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __blksize_t;
+
+
+
+
+
+#line 180 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __blkcnt_t;
+
+#line 181 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __blkcnt64_t;
+
+
+
+#line 184 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __fsblkcnt_t;
+
+#line 185 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __fsblkcnt64_t;
+
+
+
+#line 188 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __fsfilcnt_t;
+
+#line 189 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __fsfilcnt64_t;
+
+
+
+#line 192 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __fsword_t;
+
+
+#line 194 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __ssize_t;
+
+
+
+#line 197 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __syscall_slong_t;
+
+
+#line 199 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __syscall_ulong_t;
+
+
+
+
+#line 203 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __off64_t __loff_t;
+
+#line 204 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef char *__caddr_t;
+
+
+
+#line 207 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __intptr_t;
+
+
+
+#line 210 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __socklen_t;
+
+
+
+
+
+#line 215 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef int __sig_atomic_t;
+
+#line 216 "/usr/include/x86_64-linux-gnu/bits/types.h"
+
+
+
+
+typedef __int8_t int8_t;
+
+#line 25 "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h"
+typedef __int16_t int16_t;
+
+#line 26 "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h"
+typedef __int32_t int32_t;
+
+#line 27 "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h"
+typedef __int64_t int64_t;
+
+#line 28 "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h"
+
+
+typedef __uint8_t uint8_t;
+
+#line 25 "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h"
+typedef __uint16_t uint16_t;
+
+#line 26 "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h"
+typedef __uint32_t uint32_t;
+
+#line 27 "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h"
+typedef __uint64_t uint64_t;
+
+#line 28 "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h"
+
+
+
+
+
+typedef __int_least8_t int_least8_t;
+
+#line 44 "/usr/include/stdint.h"
+typedef __int_least16_t int_least16_t;
+
+#line 45 "/usr/include/stdint.h"
+typedef __int_least32_t int_least32_t;
+
+#line 46 "/usr/include/stdint.h"
+typedef __int_least64_t int_least64_t;
+
+
+
+#line 49 "/usr/include/stdint.h"
+typedef __uint_least8_t uint_least8_t;
+
+#line 50 "/usr/include/stdint.h"
+typedef __uint_least16_t uint_least16_t;
+
+#line 51 "/usr/include/stdint.h"
+typedef __uint_least32_t uint_least32_t;
+
+#line 52 "/usr/include/stdint.h"
+typedef __uint_least64_t uint_least64_t;
+
+
+
+
+
+
+#line 58 "/usr/include/stdint.h"
+typedef signed char int_fast8_t;
+
+
+#line 60 "/usr/include/stdint.h"
+typedef long int int_fast16_t;
+
+#line 61 "/usr/include/stdint.h"
+typedef long int int_fast32_t;
+
+#line 62 "/usr/include/stdint.h"
+typedef long int int_fast64_t;
+
+#line 63 "/usr/include/stdint.h"
+typedef unsigned char uint_fast8_t;
+
+
+#line 73 "/usr/include/stdint.h"
+typedef unsigned long int uint_fast16_t;
+
+#line 74 "/usr/include/stdint.h"
+typedef unsigned long int uint_fast32_t;
+
+#line 75 "/usr/include/stdint.h"
+typedef unsigned long int uint_fast64_t;
+
+#line 76 "/usr/include/stdint.h"
+typedef long int intptr_t;
+
+
+
+#line 90 "/usr/include/stdint.h"
+typedef unsigned long int uintptr_t;
+
+#line 91 "/usr/include/stdint.h"
+typedef __intmax_t intmax_t;
+
+#line 102 "/usr/include/stdint.h"
+typedef __uintmax_t uintmax_t;
+
+#line 103 "/usr/include/stdint.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct
+ {
+ int quot;
+ int rem;
+ }
+#line 63 "/usr/include/stdlib.h"
+div_t;
+
+
+
+
+#line 67 "/usr/include/stdlib.h"
+typedef struct
+ {
+ long int quot;
+ long int rem;
+ }
+#line 71 "/usr/include/stdlib.h"
+ldiv_t;
+
+
+
+
+
+
+#line 77 "/usr/include/stdlib.h"
+__extension__ typedef struct
+ {
+ long long int quot;
+ long long int rem;
+ }
+#line 81 "/usr/include/stdlib.h"
+lldiv_t;
+
+#line 82 "/usr/include/stdlib.h"
+extern size_t __ctype_get_mb_cur_max (void) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+#line 102 "/usr/include/stdlib.h"
+extern double atof (const char *__nptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+#line 105 "/usr/include/stdlib.h"
+extern int atoi (const char *__nptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+#line 108 "/usr/include/stdlib.h"
+extern long int atol (const char *__nptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+#line 113 "/usr/include/stdlib.h"
+__extension__ extern long long int atoll (const char *__nptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+#line 118 "/usr/include/stdlib.h"
+extern double strtod (const char *__restrict __nptr,
+ char **__restrict __endptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+#line 124 "/usr/include/stdlib.h"
+extern float strtof (const char *__restrict __nptr,
+ char **__restrict __endptr) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+#line 127 "/usr/include/stdlib.h"
+extern long double strtold (const char *__restrict __nptr,
+ char **__restrict __endptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 130 "/usr/include/stdlib.h"
+extern long int strtol (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+#line 181 "/usr/include/stdlib.h"
+extern unsigned long int strtoul (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+#line 187 "/usr/include/stdlib.h"
+__extension__
+extern long long int strtoq (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+#line 192 "/usr/include/stdlib.h"
+__extension__
+extern unsigned long long int strtouq (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+#line 200 "/usr/include/stdlib.h"
+__extension__
+extern long long int strtoll (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+#line 205 "/usr/include/stdlib.h"
+__extension__
+extern unsigned long long int strtoull (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 209 "/usr/include/stdlib.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+__attribute__ ((__nothrow__ , __leaf__)) atoi (const char *__nptr)
+{
+ return (int) strtol (__nptr, (char **) ((void *)0), 10);
+}
+
+#line 366 "/usr/include/stdlib.h"
+extern __inline __attribute__ ((__gnu_inline__)) long int
+__attribute__ ((__nothrow__ , __leaf__)) atol (const char *__nptr)
+{
+ return strtol (__nptr, (char **) ((void *)0), 10);
+}
+
+
+
+#line 373 "/usr/include/stdlib.h"
+__extension__ extern __inline __attribute__ ((__gnu_inline__)) long long int
+__attribute__ ((__nothrow__ , __leaf__)) atoll (const char *__nptr)
+{
+ return strtoll (__nptr, (char **) ((void *)0), 10);
+}
+
+#line 378 "/usr/include/stdlib.h"
+extern char *l64a (long int __n) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+#line 389 "/usr/include/stdlib.h"
+extern long int a64l (const char *__s)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+
+#line 395 "/usr/include/stdlib.h"
+
+
+
+
+
+
+typedef __u_char u_char;
+
+#line 34 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __u_short u_short;
+
+#line 35 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __u_int u_int;
+
+#line 36 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __u_long u_long;
+
+#line 37 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __quad_t quad_t;
+
+#line 38 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __u_quad_t u_quad_t;
+
+#line 39 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __fsid_t fsid_t;
+
+
+
+#line 42 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __loff_t loff_t;
+
+
+
+
+
+#line 47 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __ino_t ino_t;
+
+#line 48 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __dev_t dev_t;
+
+
+
+
+
+#line 64 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __gid_t gid_t;
+
+
+
+
+
+#line 69 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __mode_t mode_t;
+
+
+
+
+
+#line 74 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __nlink_t nlink_t;
+
+
+
+
+
+#line 79 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __uid_t uid_t;
+
+
+
+
+
+
+#line 85 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __off_t off_t;
+
+#line 86 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __pid_t pid_t;
+
+
+
+
+
+
+#line 103 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __id_t id_t;
+
+
+
+
+
+#line 108 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __ssize_t ssize_t;
+
+
+
+
+
+
+#line 114 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __daddr_t daddr_t;
+
+#line 115 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __caddr_t caddr_t;
+
+
+
+
+
+
+#line 121 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __key_t key_t;
+
+
+
+
+
+#line 126 "/usr/include/x86_64-linux-gnu/sys/types.h"
+
+
+
+
+
+
+typedef __clock_t clock_t;
+
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/clock_t.h"
+
+
+
+
+
+
+
+typedef __clockid_t clockid_t;
+
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h"
+typedef __time_t time_t;
+
+#line 11 "/usr/include/x86_64-linux-gnu/bits/types/time_t.h"
+
+
+
+
+
+
+typedef __timer_t timer_t;
+
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/timer_t.h"
+
+
+
+typedef unsigned long int ulong;
+
+#line 149 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef unsigned short int ushort;
+
+#line 150 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef unsigned int uint;
+
+
+
+
+
+
+
+
+#line 158 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __uint8_t u_int8_t;
+
+#line 159 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __uint16_t u_int16_t;
+
+#line 160 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __uint32_t u_int32_t;
+
+#line 161 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __uint64_t u_int64_t;
+
+
+
+#line 164 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef int register_t __attribute__ ((__mode__ (__word__)));
+
+#line 165 "/usr/include/x86_64-linux-gnu/sys/types.h"
+static __inline __uint16_t
+__bswap_16 (__uint16_t __bsx)
+{
+
+ return __builtin_bswap16 (__bsx);
+
+
+
+}
+
+
+
+
+
+
+
+#line 48 "/usr/include/x86_64-linux-gnu/bits/byteswap.h"
+static __inline __uint32_t
+__bswap_32 (__uint32_t __bsx)
+{
+
+ return __builtin_bswap32 (__bsx);
+
+
+
+}
+
+#line 57 "/usr/include/x86_64-linux-gnu/bits/byteswap.h"
+__extension__ static __inline __uint64_t
+__bswap_64 (__uint64_t __bsx)
+{
+
+ return __builtin_bswap64 (__bsx);
+
+
+
+}
+
+#line 78 "/usr/include/x86_64-linux-gnu/bits/byteswap.h"
+static __inline __uint16_t
+__uint16_identity (__uint16_t __x)
+{
+ return __x;
+}
+
+
+#line 38 "/usr/include/x86_64-linux-gnu/bits/uintn-identity.h"
+static __inline __uint32_t
+__uint32_identity (__uint32_t __x)
+{
+ return __x;
+}
+
+
+#line 44 "/usr/include/x86_64-linux-gnu/bits/uintn-identity.h"
+static __inline __uint64_t
+__uint64_identity (__uint64_t __x)
+{
+ return __x;
+}
+
+#line 49 "/usr/include/x86_64-linux-gnu/bits/uintn-identity.h"
+
+
+
+
+
+
+
+
+
+
+
+typedef struct
+{
+ unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))];
+}
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h"
+__sigset_t;
+
+#line 9 "/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h"
+
+
+typedef __sigset_t sigset_t;
+
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h"
+
+
+
+
+
+
+
+
+
+
+struct timeval
+{
+
+
+
+
+ __time_t tv_sec;
+ __suseconds_t tv_usec;
+
+};
+
+#line 18 "/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h"
+
+struct timespec
+{
+
+
+
+ __time_t tv_sec;
+
+
+
+
+ __syscall_slong_t tv_nsec;
+};
+
+#line 32 "/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h"
+
+
+
+typedef __suseconds_t suseconds_t;
+
+
+
+
+
+
+#line 49 "/usr/include/x86_64-linux-gnu/sys/select.h"
+typedef long int __fd_mask;
+
+#line 50 "/usr/include/x86_64-linux-gnu/sys/select.h"
+typedef struct
+ {
+
+
+
+
+
+
+ __fd_mask __fds_bits[1024 / (8 * (int) sizeof (__fd_mask))];
+
+
+ }
+#line 70 "/usr/include/x86_64-linux-gnu/sys/select.h"
+fd_set;
+
+
+
+
+
+
+
+#line 77 "/usr/include/x86_64-linux-gnu/sys/select.h"
+typedef __fd_mask fd_mask;
+
+#line 78 "/usr/include/x86_64-linux-gnu/sys/select.h"
+
+extern int select (int __nfds, fd_set *__restrict __readfds,
+ fd_set *__restrict __writefds,
+ fd_set *__restrict __exceptfds,
+ struct timeval *__restrict __timeout);
+
+#line 106 "/usr/include/x86_64-linux-gnu/sys/select.h"
+extern int pselect (int __nfds, fd_set *__restrict __readfds,
+ fd_set *__restrict __writefds,
+ fd_set *__restrict __exceptfds,
+ const struct timespec *__restrict __timeout,
+ const __sigset_t *__restrict __sigmask);
+
+#line 132 "/usr/include/x86_64-linux-gnu/sys/select.h"
+
+
+
+
+
+
+typedef __blksize_t blksize_t;
+
+
+
+
+
+
+
+#line 192 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __blkcnt_t blkcnt_t;
+
+
+
+
+#line 196 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __fsblkcnt_t fsblkcnt_t;
+
+
+
+
+#line 200 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __fsfilcnt_t fsfilcnt_t;
+
+#line 201 "/usr/include/x86_64-linux-gnu/sys/types.h"
+
+typedef union
+{
+ __extension__ unsigned long long int __value64;
+ struct
+ {
+ unsigned int __low;
+ unsigned int __high;
+ } __value32;
+}
+#line 33 "/usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h"
+__atomic_wide_counter;
+
+#line 34 "/usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h"
+
+
+
+
+typedef struct __pthread_internal_list
+{
+ struct __pthread_internal_list *__prev;
+ struct __pthread_internal_list *__next;
+}
+#line 55 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+__pthread_list_t;
+
+
+#line 57 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+typedef struct __pthread_internal_slist
+{
+ struct __pthread_internal_slist *__next;
+}
+#line 60 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+__pthread_slist_t;
+
+#line 61 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+struct __pthread_mutex_s
+{
+ int __lock;
+ unsigned int __count;
+ int __owner;
+
+ unsigned int __nusers;
+
+
+
+ int __kind;
+
+ short __spins;
+ short __elision;
+ __pthread_list_t __list;
+};
+
+#line 54 "/usr/include/x86_64-linux-gnu/bits/struct_mutex.h"
+struct __pthread_rwlock_arch_t
+{
+ unsigned int __readers;
+ unsigned int __writers;
+ unsigned int __wrphase_futex;
+ unsigned int __writers_futex;
+ unsigned int __pad3;
+ unsigned int __pad4;
+
+ int __cur_writer;
+ int __shared;
+ signed char __rwelision;
+
+
+
+
+ unsigned char __pad1[7];
+
+
+ unsigned long int __pad2;
+
+
+ unsigned int __flags;
+};
+
+#line 56 "/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h"
+
+
+
+
+struct __pthread_cond_s
+{
+ __atomic_wide_counter __wseq;
+ __atomic_wide_counter __g1_start;
+ unsigned int __g_refs[2] ;
+ unsigned int __g_size[2];
+ unsigned int __g1_orig_size;
+ unsigned int __wrefs;
+ unsigned int __g_signals[2];
+};
+
+
+#line 105 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+typedef unsigned int __tss_t;
+
+#line 106 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+typedef unsigned long int __thrd_t;
+
+
+#line 108 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+typedef struct
+{
+ int __data ;
+}
+#line 111 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+__once_flag;
+
+#line 112 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+
+
+
+typedef unsigned long int pthread_t;
+
+
+
+
+
+#line 32 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ char __size[4];
+ int __align;
+}
+#line 36 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_mutexattr_t;
+
+
+
+
+
+#line 41 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ char __size[4];
+ int __align;
+}
+#line 45 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_condattr_t;
+
+
+
+
+#line 49 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef unsigned int pthread_key_t;
+
+
+
+
+#line 53 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef int pthread_once_t;
+
+
+
+#line 56 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+union pthread_attr_t
+{
+ char __size[56];
+ long int __align;
+};
+
+
+#line 62 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union pthread_attr_t pthread_attr_t;
+
+
+
+
+
+#line 67 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ struct __pthread_mutex_s __data;
+ char __size[40];
+ long int __align;
+}
+#line 72 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_mutex_t;
+
+
+
+#line 75 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ struct __pthread_cond_s __data;
+ char __size[48];
+ __extension__ long long int __align;
+}
+#line 80 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_cond_t;
+
+
+
+
+
+
+#line 86 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ struct __pthread_rwlock_arch_t __data;
+ char __size[56];
+ long int __align;
+}
+#line 91 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_rwlock_t;
+
+
+#line 93 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ char __size[8];
+ long int __align;
+}
+#line 97 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_rwlockattr_t;
+
+
+
+
+
+
+#line 103 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef volatile int pthread_spinlock_t;
+
+
+
+
+
+#line 108 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ char __size[32];
+ long int __align;
+}
+#line 112 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_barrier_t;
+
+
+#line 114 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ char __size[4];
+ int __align;
+}
+#line 118 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_barrierattr_t;
+
+#line 119 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+
+
+
+
+
+
+
+
+
+extern long int random (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 405 "/usr/include/stdlib.h"
+extern void srandom (unsigned int __seed) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+#line 411 "/usr/include/stdlib.h"
+extern char *initstate (unsigned int __seed, char *__statebuf,
+ size_t __statelen) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+
+
+#line 416 "/usr/include/stdlib.h"
+extern char *setstate (char *__statebuf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+
+#line 424 "/usr/include/stdlib.h"
+struct random_data
+ {
+ int32_t *fptr;
+ int32_t *rptr;
+ int32_t *state;
+ int rand_type;
+ int rand_deg;
+ int rand_sep;
+ int32_t *end_ptr;
+ };
+
+
+#line 435 "/usr/include/stdlib.h"
+extern int random_r (struct random_data *__restrict __buf,
+ int32_t *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 438 "/usr/include/stdlib.h"
+extern int srandom_r (unsigned int __seed, struct random_data *__buf)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+#line 441 "/usr/include/stdlib.h"
+extern int initstate_r (unsigned int __seed, char *__restrict __statebuf,
+ size_t __statelen,
+ struct random_data *__restrict __buf)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 4)));
+
+
+#line 446 "/usr/include/stdlib.h"
+extern int setstate_r (char *__restrict __statebuf,
+ struct random_data *__restrict __buf)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+
+#line 454 "/usr/include/stdlib.h"
+extern int rand (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+#line 456 "/usr/include/stdlib.h"
+extern void srand (unsigned int __seed) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 460 "/usr/include/stdlib.h"
+extern int rand_r (unsigned int *__seed) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+
+#line 468 "/usr/include/stdlib.h"
+extern double drand48 (void) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 469 "/usr/include/stdlib.h"
+extern double erand48 (unsigned short int __xsubi[3]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+#line 472 "/usr/include/stdlib.h"
+extern long int lrand48 (void) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 473 "/usr/include/stdlib.h"
+extern long int nrand48 (unsigned short int __xsubi[3])
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+#line 477 "/usr/include/stdlib.h"
+extern long int mrand48 (void) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 478 "/usr/include/stdlib.h"
+extern long int jrand48 (unsigned short int __xsubi[3])
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+#line 482 "/usr/include/stdlib.h"
+extern void srand48 (long int __seedval) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 483 "/usr/include/stdlib.h"
+extern unsigned short int *seed48 (unsigned short int __seed16v[3])
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 485 "/usr/include/stdlib.h"
+extern void lcong48 (unsigned short int __param[7]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+#line 491 "/usr/include/stdlib.h"
+struct drand48_data
+ {
+ unsigned short int __x[3];
+ unsigned short int __old_x[3];
+ unsigned short int __c;
+ unsigned short int __init;
+ __extension__ unsigned long long int __a;
+
+ };
+
+
+
+#line 502 "/usr/include/stdlib.h"
+extern int drand48_r (struct drand48_data *__restrict __buffer,
+ double *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 504 "/usr/include/stdlib.h"
+extern int erand48_r (unsigned short int __xsubi[3],
+ struct drand48_data *__restrict __buffer,
+ double *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 509 "/usr/include/stdlib.h"
+extern int lrand48_r (struct drand48_data *__restrict __buffer,
+ long int *__restrict __result)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 512 "/usr/include/stdlib.h"
+extern int nrand48_r (unsigned short int __xsubi[3],
+ struct drand48_data *__restrict __buffer,
+ long int *__restrict __result)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 518 "/usr/include/stdlib.h"
+extern int mrand48_r (struct drand48_data *__restrict __buffer,
+ long int *__restrict __result)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 521 "/usr/include/stdlib.h"
+extern int jrand48_r (unsigned short int __xsubi[3],
+ struct drand48_data *__restrict __buffer,
+ long int *__restrict __result)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 527 "/usr/include/stdlib.h"
+extern int srand48_r (long int __seedval, struct drand48_data *__buffer)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+#line 530 "/usr/include/stdlib.h"
+extern int seed48_r (unsigned short int __seed16v[3],
+ struct drand48_data *__buffer) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 533 "/usr/include/stdlib.h"
+extern int lcong48_r (unsigned short int __param[7],
+ struct drand48_data *__buffer)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 538 "/usr/include/stdlib.h"
+extern __uint32_t arc4random (void)
+ __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+#line 542 "/usr/include/stdlib.h"
+extern void arc4random_buf (void *__buf, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+#line 547 "/usr/include/stdlib.h"
+extern __uint32_t arc4random_uniform (__uint32_t __upper_bound)
+ __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+#line 553 "/usr/include/stdlib.h"
+extern void *malloc (size_t __size) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__))
+ __attribute__ ((__alloc_size__ (1))) ;
+
+
+#line 556 "/usr/include/stdlib.h"
+extern void *calloc (size_t __nmemb, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__alloc_size__ (1, 2))) ;
+
+
+
+
+
+
+
+#line 564 "/usr/include/stdlib.h"
+extern void *realloc (void *__ptr, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)) __attribute__ ((__alloc_size__ (2)));
+
+
+
+#line 568 "/usr/include/stdlib.h"
+extern void free (void *__ptr) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+
+#line 576 "/usr/include/stdlib.h"
+extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__))
+ __attribute__ ((__alloc_size__ (2, 3)))
+ __attribute__ ((__malloc__ (__builtin_free, 1)));
+
+
+
+#line 582 "/usr/include/stdlib.h"
+extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__ (reallocarray, 1)));
+
+
+
+
+#line 587 "/usr/include/stdlib.h"
+
+
+
+
+
+
+
+extern void *alloca (size_t __size) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+#line 39 "/usr/include/alloca.h"
+
+
+
+
+
+extern void *valloc (size_t __size) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__))
+ __attribute__ ((__alloc_size__ (1))) ;
+
+
+
+
+
+#line 599 "/usr/include/stdlib.h"
+extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+
+#line 605 "/usr/include/stdlib.h"
+extern void *aligned_alloc (size_t __alignment, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__alloc_align__ (1)))
+ __attribute__ ((__alloc_size__ (2))) ;
+
+
+
+
+#line 611 "/usr/include/stdlib.h"
+extern void abort (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+#line 615 "/usr/include/stdlib.h"
+extern int atexit (void (*__func) (void)) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+
+#line 623 "/usr/include/stdlib.h"
+extern int at_quick_exit (void (*__func) (void)) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+#line 630 "/usr/include/stdlib.h"
+extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+#line 637 "/usr/include/stdlib.h"
+extern void exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+
+
+#line 643 "/usr/include/stdlib.h"
+extern void quick_exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+
+
+#line 649 "/usr/include/stdlib.h"
+extern void _Exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+
+#line 654 "/usr/include/stdlib.h"
+extern char *getenv (const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+#line 655 "/usr/include/stdlib.h"
+extern int putenv (char *__string) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+#line 673 "/usr/include/stdlib.h"
+extern int setenv (const char *__name, const char *__value, int __replace)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+
+#line 677 "/usr/include/stdlib.h"
+extern int unsetenv (const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+#line 684 "/usr/include/stdlib.h"
+extern int clearenv (void) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 685 "/usr/include/stdlib.h"
+extern char *mktemp (char *__template) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 696 "/usr/include/stdlib.h"
+extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) ;
+
+#line 709 "/usr/include/stdlib.h"
+extern int mkstemps (char *__template, int __suffixlen) __attribute__ ((__nonnull__ (1))) ;
+
+#line 731 "/usr/include/stdlib.h"
+extern char *mkdtemp (char *__template) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+#line 752 "/usr/include/stdlib.h"
+extern int system (const char *__command) ;
+
+#line 805 "/usr/include/stdlib.h"
+extern char *realpath (const char *__restrict __name,
+ char *__restrict __resolved) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+
+
+#line 829 "/usr/include/stdlib.h"
+typedef int (*__compar_fn_t) (const void *, const void *);
+
+#line 830 "/usr/include/stdlib.h"
+extern void *bsearch (const void *__key, const void *__base,
+ size_t __nmemb, size_t __size, __compar_fn_t __compar)
+ __attribute__ ((__nonnull__ (1, 2, 5))) ;
+
+
+
+#line 846 "/usr/include/stdlib.h"
+extern __inline __attribute__ ((__gnu_inline__)) void *
+bsearch (const void *__key, const void *__base, size_t __nmemb, size_t __size,
+ __compar_fn_t __compar)
+{
+ size_t __l, __u, __idx;
+ const void *__p;
+ int __comparison;
+
+ __l = 0;
+ __u = __nmemb;
+ while (__l < __u)
+ {
+ __idx = (__l + __u) / 2;
+ __p = (const void *) (((const char *) __base) + (__idx * __size));
+ __comparison = (*__compar) (__key, __p);
+ if (__comparison < 0)
+ __u = __idx;
+ else if (__comparison > 0)
+ __l = __idx + 1;
+ else
+ {
+
+
+ return (void *) __p;
+
+
+ }
+ }
+
+ return ((void *)0);
+}
+
+#line 29 "-Wcast-qual"
+
+
+
+
+extern void qsort (void *__base, size_t __nmemb, size_t __size,
+ __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4)));
+
+#line 853 "/usr/include/stdlib.h"
+extern int abs (int __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+#line 862 "/usr/include/stdlib.h"
+extern long int labs (long int __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+
+
+#line 865 "/usr/include/stdlib.h"
+__extension__ extern long long int llabs (long long int __x)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+
+
+
+
+
+
+#line 873 "/usr/include/stdlib.h"
+extern div_t div (int __numer, int __denom)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+#line 875 "/usr/include/stdlib.h"
+extern ldiv_t ldiv (long int __numer, long int __denom)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+
+
+#line 879 "/usr/include/stdlib.h"
+__extension__ extern lldiv_t lldiv (long long int __numer,
+ long long int __denom)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+#line 882 "/usr/include/stdlib.h"
+extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt,
+ int *__restrict __sign) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ;
+
+
+
+
+
+#line 899 "/usr/include/stdlib.h"
+extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt,
+ int *__restrict __sign) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ;
+
+
+
+
+
+#line 905 "/usr/include/stdlib.h"
+extern char *gcvt (double __value, int __ndigit, char *__buf)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3))) ;
+
+
+
+
+
+#line 911 "/usr/include/stdlib.h"
+extern char *qecvt (long double __value, int __ndigit,
+ int *__restrict __decpt, int *__restrict __sign)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ;
+
+#line 914 "/usr/include/stdlib.h"
+extern char *qfcvt (long double __value, int __ndigit,
+ int *__restrict __decpt, int *__restrict __sign)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ;
+
+#line 917 "/usr/include/stdlib.h"
+extern char *qgcvt (long double __value, int __ndigit, char *__buf)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3))) ;
+
+
+
+
+
+#line 923 "/usr/include/stdlib.h"
+extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt,
+ int *__restrict __sign, char *__restrict __buf,
+ size_t __len) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
+
+#line 926 "/usr/include/stdlib.h"
+extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt,
+ int *__restrict __sign, char *__restrict __buf,
+ size_t __len) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
+
+
+#line 930 "/usr/include/stdlib.h"
+extern int qecvt_r (long double __value, int __ndigit,
+ int *__restrict __decpt, int *__restrict __sign,
+ char *__restrict __buf, size_t __len)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
+
+#line 934 "/usr/include/stdlib.h"
+extern int qfcvt_r (long double __value, int __ndigit,
+ int *__restrict __decpt, int *__restrict __sign,
+ char *__restrict __buf, size_t __len)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
+
+
+
+
+
+
+#line 943 "/usr/include/stdlib.h"
+extern int mblen (const char *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 946 "/usr/include/stdlib.h"
+extern int mbtowc (wchar_t *__restrict __pwc,
+ const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 950 "/usr/include/stdlib.h"
+extern int wctomb (char *__s, wchar_t __wchar) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 954 "/usr/include/stdlib.h"
+extern size_t mbstowcs (wchar_t *__restrict __pwcs,
+ const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__access__ (__read_only__, 2)));
+
+
+#line 958 "/usr/include/stdlib.h"
+extern size_t wcstombs (char *__restrict __s,
+ const wchar_t *__restrict __pwcs, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__access__ (__write_only__, 1, 3)))
+ __attribute__ ((__access__ (__read_only__, 2)));
+
+
+
+
+
+
+
+#line 969 "/usr/include/stdlib.h"
+extern int rpmatch (const char *__response) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+#line 970 "/usr/include/stdlib.h"
+extern int getsubopt (char **__restrict __optionp,
+ char *const *__restrict __tokens,
+ char **__restrict __valuep)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2, 3))) ;
+
+#line 984 "/usr/include/stdlib.h"
+extern int getloadavg (double __loadavg[], int __nelem)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 1028 "/usr/include/stdlib.h"
+extern __inline __attribute__ ((__gnu_inline__)) double
+__attribute__ ((__nothrow__ , __leaf__)) atof (const char *__nptr)
+{
+ return strtod (__nptr, (char **) ((void *)0));
+}
+
+#line 29 "/usr/include/x86_64-linux-gnu/bits/stdlib-float.h"
+
+
+enum
+{
+ _ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)),
+ _ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)),
+ _ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)),
+ _ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)),
+ _ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)),
+ _ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)),
+ _ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)),
+ _ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)),
+ _ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)),
+ _IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)),
+ _ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)),
+ _ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8))
+};
+
+#line 61 "/usr/include/ctype.h"
+extern const unsigned short int **__ctype_b_loc (void)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+#line 81 "/usr/include/ctype.h"
+extern const __int32_t **__ctype_tolower_loc (void)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+#line 83 "/usr/include/ctype.h"
+extern const __int32_t **__ctype_toupper_loc (void)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+#line 85 "/usr/include/ctype.h"
+extern int isalnum (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 109 "/usr/include/ctype.h"
+extern int isalpha (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 110 "/usr/include/ctype.h"
+extern int iscntrl (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 111 "/usr/include/ctype.h"
+extern int isdigit (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 112 "/usr/include/ctype.h"
+extern int islower (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 113 "/usr/include/ctype.h"
+extern int isgraph (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 114 "/usr/include/ctype.h"
+extern int isprint (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 115 "/usr/include/ctype.h"
+extern int ispunct (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 116 "/usr/include/ctype.h"
+extern int isspace (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 117 "/usr/include/ctype.h"
+extern int isupper (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 118 "/usr/include/ctype.h"
+extern int isxdigit (int) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 122 "/usr/include/ctype.h"
+extern int tolower (int __c) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 125 "/usr/include/ctype.h"
+extern int toupper (int __c) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+#line 130 "/usr/include/ctype.h"
+extern int isblank (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 131 "/usr/include/ctype.h"
+extern int isascii (int __c) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 146 "/usr/include/ctype.h"
+extern int toascii (int __c) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 150 "/usr/include/ctype.h"
+extern int _toupper (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 151 "/usr/include/ctype.h"
+extern int _tolower (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 152 "/usr/include/ctype.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+__attribute__ ((__nothrow__ , __leaf__)) tolower (int __c)
+{
+ return __c >= -128 && __c < 256 ? (*__ctype_tolower_loc ())[__c] : __c;
+}
+
+
+#line 212 "/usr/include/ctype.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+__attribute__ ((__nothrow__ , __leaf__)) toupper (int __c)
+{
+ return __c >= -128 && __c < 256 ? (*__ctype_toupper_loc ())[__c] : __c;
+}
+
+#line 217 "/usr/include/ctype.h"
+struct __locale_struct
+{
+
+ struct __locale_data *__locales[13];
+
+
+ const unsigned short int *__ctype_b;
+ const int *__ctype_tolower;
+ const int *__ctype_toupper;
+
+
+ const char *__names[13];
+};
+
+
+#line 41 "/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h"
+typedef struct __locale_struct *__locale_t;
+
+#line 42 "/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h"
+
+typedef __locale_t locale_t;
+
+#line 25 "/usr/include/x86_64-linux-gnu/bits/types/locale_t.h"
+extern int isalnum_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 252 "/usr/include/ctype.h"
+extern int isalpha_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 253 "/usr/include/ctype.h"
+extern int iscntrl_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 254 "/usr/include/ctype.h"
+extern int isdigit_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 255 "/usr/include/ctype.h"
+extern int islower_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 256 "/usr/include/ctype.h"
+extern int isgraph_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 257 "/usr/include/ctype.h"
+extern int isprint_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 258 "/usr/include/ctype.h"
+extern int ispunct_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 259 "/usr/include/ctype.h"
+extern int isspace_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 260 "/usr/include/ctype.h"
+extern int isupper_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 261 "/usr/include/ctype.h"
+extern int isxdigit_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+
+#line 263 "/usr/include/ctype.h"
+extern int isblank_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 267 "/usr/include/ctype.h"
+extern int __tolower_l (int __c, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 268 "/usr/include/ctype.h"
+extern int tolower_l (int __c, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 271 "/usr/include/ctype.h"
+extern int __toupper_l (int __c, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 272 "/usr/include/ctype.h"
+extern int toupper_l (int __c, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 273 "/usr/include/ctype.h"
+
+
+
+
+
+
+
+extern void *memcpy (void *__restrict __dest, const void *__restrict __src,
+ size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 47 "/usr/include/string.h"
+extern void *memmove (void *__dest, const void *__src, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+
+#line 54 "/usr/include/string.h"
+extern void *memccpy (void *__restrict __dest, const void *__restrict __src,
+ int __c, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__access__ (__write_only__, 1, 4)));
+
+
+
+
+
+#line 61 "/usr/include/string.h"
+extern void *memset (void *__s, int __c, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+#line 64 "/usr/include/string.h"
+extern int memcmp (const void *__s1, const void *__s2, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 66 "/usr/include/string.h"
+extern int __memcmpeq (const void *__s1, const void *__s2, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 82 "/usr/include/string.h"
+extern void *memchr (const void *__s, int __c, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+#line 109 "/usr/include/string.h"
+extern char *strcpy (char *__restrict __dest, const char *__restrict __src)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 144 "/usr/include/string.h"
+extern char *strncpy (char *__restrict __dest,
+ const char *__restrict __src, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 149 "/usr/include/string.h"
+extern char *strcat (char *__restrict __dest, const char *__restrict __src)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 152 "/usr/include/string.h"
+extern char *strncat (char *__restrict __dest, const char *__restrict __src,
+ size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 156 "/usr/include/string.h"
+extern int strcmp (const char *__s1, const char *__s2)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 159 "/usr/include/string.h"
+extern int strncmp (const char *__s1, const char *__s2, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 163 "/usr/include/string.h"
+extern int strcoll (const char *__s1, const char *__s2)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 166 "/usr/include/string.h"
+extern size_t strxfrm (char *__restrict __dest,
+ const char *__restrict __src, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))) __attribute__ ((__access__ (__write_only__, 1, 3)));
+
+
+
+
+
+
+
+#line 175 "/usr/include/string.h"
+extern int strcoll_l (const char *__s1, const char *__s2, locale_t __l)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));
+
+
+
+#line 179 "/usr/include/string.h"
+extern size_t strxfrm_l (char *__dest, const char *__src, size_t __n,
+ locale_t __l) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 4)))
+ __attribute__ ((__access__ (__write_only__, 1, 3)));
+
+
+
+
+
+
+#line 187 "/usr/include/string.h"
+extern char *strdup (const char *__s)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+#line 195 "/usr/include/string.h"
+extern char *strndup (const char *__string, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
+
+#line 197 "/usr/include/string.h"
+extern char *strchr (const char *__s, int __c)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+#line 248 "/usr/include/string.h"
+extern char *strrchr (const char *__s, int __c)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+#line 275 "/usr/include/string.h"
+extern size_t strcspn (const char *__s, const char *__reject)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 297 "/usr/include/string.h"
+extern size_t strspn (const char *__s, const char *__accept)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 299 "/usr/include/string.h"
+extern char *strpbrk (const char *__s, const char *__accept)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 325 "/usr/include/string.h"
+extern char *strstr (const char *__haystack, const char *__needle)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+#line 356 "/usr/include/string.h"
+extern char *strtok (char *__restrict __s, const char *__restrict __delim)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+
+
+#line 361 "/usr/include/string.h"
+extern char *__strtok_r (char *__restrict __s,
+ const char *__restrict __delim,
+ char **__restrict __save_ptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3)));
+
+
+#line 366 "/usr/include/string.h"
+extern char *strtok_r (char *__restrict __s, const char *__restrict __delim,
+ char **__restrict __save_ptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3)));
+
+#line 369 "/usr/include/string.h"
+extern size_t strlen (const char *__s)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+#line 413 "/usr/include/string.h"
+extern size_t strnlen (const char *__string, size_t __maxlen)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+#line 419 "/usr/include/string.h"
+extern char *strerror (int __errnum) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 420 "/usr/include/string.h"
+extern int strerror_r (int __errnum, char *__buf, size_t __buflen) __asm__ ("" "__xpg_strerror_r") __attribute__ ((__nothrow__ , __leaf__))
+
+ __attribute__ ((__nonnull__ (2)))
+ __attribute__ ((__access__ (__write_only__, 2, 3)));
+
+#line 436 "/usr/include/string.h"
+extern char *strerror_l (int __errnum, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 462 "/usr/include/string.h"
+
+
+
+
+
+
+
+
+
+
+extern int bcmp (const void *__s1, const void *__s2, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 38 "/usr/include/strings.h"
+extern void bcopy (const void *__src, void *__dest, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 42 "/usr/include/strings.h"
+extern void bzero (void *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 43 "/usr/include/strings.h"
+extern char *index (const char *__s, int __c)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+#line 70 "/usr/include/strings.h"
+extern char *rindex (const char *__s, int __c)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+#line 104 "/usr/include/strings.h"
+extern int ffs (int __i) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+
+
+
+
+
+#line 110 "/usr/include/strings.h"
+extern int ffsl (long int __l) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+#line 111 "/usr/include/strings.h"
+__extension__ extern int ffsll (long long int __ll)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+
+
+
+#line 116 "/usr/include/strings.h"
+extern int strcasecmp (const char *__s1, const char *__s2)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 120 "/usr/include/strings.h"
+extern int strncasecmp (const char *__s1, const char *__s2, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+
+
+#line 128 "/usr/include/strings.h"
+extern int strcasecmp_l (const char *__s1, const char *__s2, locale_t __loc)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));
+
+
+
+
+#line 133 "/usr/include/strings.h"
+extern int strncasecmp_l (const char *__s1, const char *__s2,
+ size_t __n, locale_t __loc)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 4)));
+
+
+
+
+#line 139 "/usr/include/strings.h"
+
+
+
+extern void explicit_bzero (void *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)))
+ __attribute__ ((__access__ (__write_only__, 1, 2)));
+
+
+
+
+#line 471 "/usr/include/string.h"
+extern char *strsep (char **__restrict __stringp,
+ const char *__restrict __delim)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+#line 478 "/usr/include/string.h"
+extern char *strsignal (int __sig) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 479 "/usr/include/string.h"
+extern char *__stpcpy (char *__restrict __dest, const char *__restrict __src)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 491 "/usr/include/string.h"
+extern char *stpcpy (char *__restrict __dest, const char *__restrict __src)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+#line 496 "/usr/include/string.h"
+extern char *__stpncpy (char *__restrict __dest,
+ const char *__restrict __src, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 499 "/usr/include/string.h"
+extern char *stpncpy (char *__restrict __dest,
+ const char *__restrict __src, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 502 "/usr/include/string.h"
+
+
+
+
+
+
+
+
+typedef __builtin_va_list __gnuc_va_list;
+
+#line 41 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stdarg.h"
+
+
+
+
+
+
+typedef struct
+{
+ int __count;
+ union
+ {
+ unsigned int __wch;
+ char __wchb[4];
+ } __value;
+}
+#line 21 "/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h"
+__mbstate_t;
+
+#line 22 "/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h"
+
+
+
+
+typedef struct _G_fpos_t
+{
+ __off_t __pos;
+ __mbstate_t __state;
+}
+#line 14 "/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h"
+__fpos_t;
+
+#line 15 "/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h"
+typedef struct _G_fpos64_t
+{
+ __off64_t __pos;
+ __mbstate_t __state;
+}
+#line 14 "/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h"
+__fpos64_t;
+
+#line 15 "/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h"
+
+
+
+struct _IO_FILE;
+
+#line 5 "/usr/include/x86_64-linux-gnu/bits/types/__FILE.h"
+typedef struct _IO_FILE __FILE;
+
+#line 6 "/usr/include/x86_64-linux-gnu/bits/types/__FILE.h"
+
+
+
+struct _IO_FILE;
+
+
+
+#line 7 "/usr/include/x86_64-linux-gnu/bits/types/FILE.h"
+typedef struct _IO_FILE FILE;
+
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/FILE.h"
+struct _IO_FILE;
+
+#line 36 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+struct _IO_marker;
+
+#line 37 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+struct _IO_codecvt;
+
+#line 38 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+struct _IO_wide_data;
+
+
+
+
+
+#line 43 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+typedef void _IO_lock_t;
+
+
+
+
+
+
+#line 49 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+struct _IO_FILE
+{
+ int _flags;
+
+
+ char *_IO_read_ptr;
+ char *_IO_read_end;
+ char *_IO_read_base;
+ char *_IO_write_base;
+ char *_IO_write_ptr;
+ char *_IO_write_end;
+ char *_IO_buf_base;
+ char *_IO_buf_end;
+
+
+ char *_IO_save_base;
+ char *_IO_backup_base;
+ char *_IO_save_end;
+
+ struct _IO_marker *_markers;
+
+ struct _IO_FILE *_chain;
+
+ int _fileno;
+ int _flags2;
+ __off_t _old_offset;
+
+
+ unsigned short _cur_column;
+ signed char _vtable_offset;
+ char _shortbuf[1];
+
+ _IO_lock_t *_lock;
+
+
+
+
+
+
+
+ __off64_t _offset;
+
+ struct _IO_codecvt *_codecvt;
+ struct _IO_wide_data *_wide_data;
+ struct _IO_FILE *_freeres_list;
+ void *_freeres_buf;
+ size_t __pad5;
+ int _mode;
+
+ char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)];
+};
+
+#line 100 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+typedef __gnuc_va_list va_list;
+
+#line 53 "/usr/include/stdio.h"
+typedef __fpos_t fpos_t;
+
+#line 85 "/usr/include/stdio.h"
+extern FILE *stdin;
+
+#line 144 "/usr/include/stdio.h"
+extern FILE *stdout;
+
+#line 145 "/usr/include/stdio.h"
+extern FILE *stderr;
+
+
+
+
+
+
+
+#line 152 "/usr/include/stdio.h"
+extern int remove (const char *__filename) __attribute__ ((__nothrow__ , __leaf__));
+
+
+#line 154 "/usr/include/stdio.h"
+extern int rename (const char *__old, const char *__new) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 158 "/usr/include/stdio.h"
+extern int renameat (int __oldfd, const char *__old, int __newfd,
+ const char *__new) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 160 "/usr/include/stdio.h"
+extern int fclose (FILE *__stream);
+
+#line 179 "/usr/include/stdio.h"
+extern FILE *tmpfile (void)
+ __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ;
+
+#line 190 "/usr/include/stdio.h"
+extern char *tmpnam (char[20]) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+#line 210 "/usr/include/stdio.h"
+extern char *tmpnam_r (char __s[20]) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+#line 211 "/usr/include/stdio.h"
+extern char *tempnam (const char *__dir, const char *__pfx)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (__builtin_free, 1)));
+
+
+
+
+
+
+
+#line 230 "/usr/include/stdio.h"
+extern int fflush (FILE *__stream);
+
+#line 231 "/usr/include/stdio.h"
+extern int fflush_unlocked (FILE *__stream);
+
+#line 240 "/usr/include/stdio.h"
+extern FILE *fopen (const char *__restrict __filename,
+ const char *__restrict __modes)
+ __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ;
+
+
+
+
+
+#line 265 "/usr/include/stdio.h"
+extern FILE *freopen (const char *__restrict __filename,
+ const char *__restrict __modes,
+ FILE *__restrict __stream) ;
+
+#line 268 "/usr/include/stdio.h"
+extern FILE *fdopen (int __fd, const char *__modes) __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ;
+
+#line 295 "/usr/include/stdio.h"
+extern FILE *fmemopen (void *__s, size_t __len, const char *__modes)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ;
+
+
+
+
+
+#line 314 "/usr/include/stdio.h"
+extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ;
+
+#line 316 "/usr/include/stdio.h"
+extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 332 "/usr/include/stdio.h"
+extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf,
+ int __modes, size_t __n) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+#line 338 "/usr/include/stdio.h"
+extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf,
+ size_t __size) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 342 "/usr/include/stdio.h"
+extern void setlinebuf (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+
+#line 350 "/usr/include/stdio.h"
+extern int fprintf (FILE *__restrict __stream,
+ const char *__restrict __format, ...);
+
+
+
+
+
+#line 356 "/usr/include/stdio.h"
+extern int printf (const char *__restrict __format, ...);
+
+
+#line 358 "/usr/include/stdio.h"
+extern int sprintf (char *__restrict __s,
+ const char *__restrict __format, ...) __attribute__ ((__nothrow__));
+
+
+
+
+
+
+#line 365 "/usr/include/stdio.h"
+extern int vfprintf (FILE *__restrict __s, const char *__restrict __format,
+ __gnuc_va_list __arg);
+
+
+
+
+
+#line 371 "/usr/include/stdio.h"
+extern int vprintf (const char *__restrict __format, __gnuc_va_list __arg);
+
+
+#line 373 "/usr/include/stdio.h"
+extern int vsprintf (char *__restrict __s, const char *__restrict __format,
+ __gnuc_va_list __arg) __attribute__ ((__nothrow__));
+
+
+
+
+#line 378 "/usr/include/stdio.h"
+extern int snprintf (char *__restrict __s, size_t __maxlen,
+ const char *__restrict __format, ...)
+ __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 4)));
+
+
+#line 382 "/usr/include/stdio.h"
+extern int vsnprintf (char *__restrict __s, size_t __maxlen,
+ const char *__restrict __format, __gnuc_va_list __arg)
+ __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 0)));
+
+#line 385 "/usr/include/stdio.h"
+extern int vdprintf (int __fd, const char *__restrict __fmt,
+ __gnuc_va_list __arg)
+ __attribute__ ((__format__ (__printf__, 2, 0)));
+
+#line 406 "/usr/include/stdio.h"
+extern int dprintf (int __fd, const char *__restrict __fmt, ...)
+ __attribute__ ((__format__ (__printf__, 2, 3)));
+
+
+
+
+
+
+
+
+#line 415 "/usr/include/stdio.h"
+extern int fscanf (FILE *__restrict __stream,
+ const char *__restrict __format, ...) ;
+
+
+
+
+
+#line 421 "/usr/include/stdio.h"
+extern int scanf (const char *__restrict __format, ...) ;
+
+
+#line 423 "/usr/include/stdio.h"
+extern int sscanf (const char *__restrict __s,
+ const char *__restrict __format, ...) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 425 "/usr/include/stdio.h"
+extern int fscanf (FILE *__restrict __stream, const char *__restrict __format, ...) __asm__ ("" "__isoc99_fscanf")
+
+ ;
+
+#line 437 "/usr/include/stdio.h"
+extern int scanf (const char *__restrict __format, ...) __asm__ ("" "__isoc99_scanf")
+ ;
+
+#line 439 "/usr/include/stdio.h"
+extern int sscanf (const char *__restrict __s, const char *__restrict __format, ...) __asm__ ("" "__isoc99_sscanf") __attribute__ ((__nothrow__ , __leaf__))
+
+ ;
+
+#line 442 "/usr/include/stdio.h"
+extern int vfscanf (FILE *__restrict __s, const char *__restrict __format,
+ __gnuc_va_list __arg)
+ __attribute__ ((__format__ (__scanf__, 2, 0))) ;
+
+
+
+
+
+
+#line 467 "/usr/include/stdio.h"
+extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg)
+ __attribute__ ((__format__ (__scanf__, 1, 0))) ;
+
+
+
+#line 471 "/usr/include/stdio.h"
+extern int vsscanf (const char *__restrict __s,
+ const char *__restrict __format, __gnuc_va_list __arg)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__format__ (__scanf__, 2, 0)));
+
+
+
+
+
+
+#line 479 "/usr/include/stdio.h"
+extern int vfscanf (FILE *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vfscanf")
+
+
+
+ __attribute__ ((__format__ (__scanf__, 2, 0))) ;
+
+#line 484 "/usr/include/stdio.h"
+extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vscanf")
+
+ __attribute__ ((__format__ (__scanf__, 1, 0))) ;
+
+#line 487 "/usr/include/stdio.h"
+extern int vsscanf (const char *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vsscanf") __attribute__ ((__nothrow__ , __leaf__))
+
+
+
+ __attribute__ ((__format__ (__scanf__, 2, 0)));
+
+#line 492 "/usr/include/stdio.h"
+extern int fgetc (FILE *__stream);
+
+#line 514 "/usr/include/stdio.h"
+extern int getc (FILE *__stream);
+
+
+
+
+
+
+#line 520 "/usr/include/stdio.h"
+extern int getchar (void);
+
+
+
+
+
+
+
+#line 527 "/usr/include/stdio.h"
+extern int getc_unlocked (FILE *__stream);
+
+#line 528 "/usr/include/stdio.h"
+extern int getchar_unlocked (void);
+
+#line 529 "/usr/include/stdio.h"
+extern int fgetc_unlocked (FILE *__stream);
+
+#line 539 "/usr/include/stdio.h"
+extern int fputc (int __c, FILE *__stream);
+
+#line 550 "/usr/include/stdio.h"
+extern int putc (int __c, FILE *__stream);
+
+
+
+
+
+
+#line 556 "/usr/include/stdio.h"
+extern int putchar (int __c);
+
+#line 557 "/usr/include/stdio.h"
+extern int fputc_unlocked (int __c, FILE *__stream);
+
+
+
+
+
+
+
+
+#line 573 "/usr/include/stdio.h"
+extern int putc_unlocked (int __c, FILE *__stream);
+
+#line 574 "/usr/include/stdio.h"
+extern int putchar_unlocked (int __c);
+
+
+
+
+
+
+
+#line 581 "/usr/include/stdio.h"
+extern int getw (FILE *__stream);
+
+
+
+#line 584 "/usr/include/stdio.h"
+extern int putw (int __w, FILE *__stream);
+
+
+
+
+
+
+
+
+#line 592 "/usr/include/stdio.h"
+extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream)
+ __attribute__ ((__access__ (__write_only__, 1, 2)));
+
+#line 594 "/usr/include/stdio.h"
+extern __ssize_t __getdelim (char **__restrict __lineptr,
+ size_t *__restrict __n, int __delimiter,
+ FILE *__restrict __stream) ;
+
+#line 635 "/usr/include/stdio.h"
+extern __ssize_t getdelim (char **__restrict __lineptr,
+ size_t *__restrict __n, int __delimiter,
+ FILE *__restrict __stream) ;
+
+
+
+
+
+
+
+
+#line 645 "/usr/include/stdio.h"
+extern __ssize_t getline (char **__restrict __lineptr,
+ size_t *__restrict __n,
+ FILE *__restrict __stream) ;
+
+
+
+
+
+
+
+
+#line 655 "/usr/include/stdio.h"
+extern int fputs (const char *__restrict __s, FILE *__restrict __stream);
+
+
+
+
+
+
+#line 661 "/usr/include/stdio.h"
+extern int puts (const char *__s);
+
+
+
+
+
+
+
+#line 668 "/usr/include/stdio.h"
+extern int ungetc (int __c, FILE *__stream);
+
+
+
+
+
+
+
+#line 675 "/usr/include/stdio.h"
+extern size_t fread (void *__restrict __ptr, size_t __size,
+ size_t __n, FILE *__restrict __stream) ;
+
+
+
+
+
+#line 681 "/usr/include/stdio.h"
+extern size_t fwrite (const void *__restrict __ptr, size_t __size,
+ size_t __n, FILE *__restrict __s);
+
+#line 683 "/usr/include/stdio.h"
+extern size_t fread_unlocked (void *__restrict __ptr, size_t __size,
+ size_t __n, FILE *__restrict __stream) ;
+
+#line 704 "/usr/include/stdio.h"
+extern size_t fwrite_unlocked (const void *__restrict __ptr, size_t __size,
+ size_t __n, FILE *__restrict __stream);
+
+
+
+
+
+
+
+
+#line 713 "/usr/include/stdio.h"
+extern int fseek (FILE *__stream, long int __off, int __whence);
+
+
+
+
+
+#line 718 "/usr/include/stdio.h"
+extern long int ftell (FILE *__stream) ;
+
+
+
+
+
+#line 723 "/usr/include/stdio.h"
+extern void rewind (FILE *__stream);
+
+#line 724 "/usr/include/stdio.h"
+extern int fseeko (FILE *__stream, __off_t __off, int __whence);
+
+
+
+
+
+#line 741 "/usr/include/stdio.h"
+extern __off_t ftello (FILE *__stream) ;
+
+#line 742 "/usr/include/stdio.h"
+extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos);
+
+
+
+
+
+#line 765 "/usr/include/stdio.h"
+extern int fsetpos (FILE *__stream, const fpos_t *__pos);
+
+#line 766 "/usr/include/stdio.h"
+extern void clearerr (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
+
+
+#line 788 "/usr/include/stdio.h"
+extern int feof (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+#line 790 "/usr/include/stdio.h"
+extern int ferror (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+#line 794 "/usr/include/stdio.h"
+extern void clearerr_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 795 "/usr/include/stdio.h"
+extern int feof_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+#line 796 "/usr/include/stdio.h"
+extern int ferror_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+
+
+
+#line 804 "/usr/include/stdio.h"
+extern void perror (const char *__s);
+
+
+
+
+
+#line 809 "/usr/include/stdio.h"
+extern int fileno (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+#line 814 "/usr/include/stdio.h"
+extern int fileno_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+#line 815 "/usr/include/stdio.h"
+extern int pclose (FILE *__stream);
+
+
+
+
+
+
+#line 829 "/usr/include/stdio.h"
+extern FILE *popen (const char *__command, const char *__modes)
+ __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (pclose, 1))) ;
+
+
+
+
+
+
+
+#line 837 "/usr/include/stdio.h"
+extern char *ctermid (char *__s) __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__access__ (__write_only__, 1)));
+
+#line 839 "/usr/include/stdio.h"
+extern void flockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 871 "/usr/include/stdio.h"
+extern int ftrylockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+#line 874 "/usr/include/stdio.h"
+extern void funlockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 875 "/usr/include/stdio.h"
+extern int __uflow (FILE *);
+
+#line 886 "/usr/include/stdio.h"
+extern int __overflow (FILE *, int);
+
+#line 887 "/usr/include/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+vprintf (const char *__restrict __fmt, __gnuc_va_list __arg)
+{
+ return vfprintf (stdout, __fmt, __arg);
+}
+
+
+
+
+#line 46 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+getchar (void)
+{
+ return getc (stdin);
+}
+
+
+
+
+
+#line 55 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+fgetc_unlocked (FILE *__fp)
+{
+ return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++);
+}
+
+
+
+
+
+
+#line 65 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+getc_unlocked (FILE *__fp)
+{
+ return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++);
+}
+
+
+
+#line 72 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+getchar_unlocked (void)
+{
+ return (__builtin_expect (((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end), 0) ? __uflow (stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++);
+}
+
+
+
+
+
+#line 81 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+putchar (int __c)
+{
+ return putc (__c, stdout);
+}
+
+
+
+
+
+#line 90 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+fputc_unlocked (int __c, FILE *__stream)
+{
+ return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
+}
+
+
+
+
+
+
+#line 100 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+putc_unlocked (int __c, FILE *__stream)
+{
+ return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
+}
+
+
+
+#line 107 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+putchar_unlocked (int __c)
+{
+ return (__builtin_expect (((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end), 0) ? __overflow (stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c)));
+}
+
+#line 112 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+__attribute__ ((__nothrow__ , __leaf__)) feof_unlocked (FILE *__stream)
+{
+ return (((__stream)->_flags & 0x0010) != 0);
+}
+
+
+
+#line 134 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+__attribute__ ((__nothrow__ , __leaf__)) ferror_unlocked (FILE *__stream)
+{
+ return (((__stream)->_flags & 0x0020) != 0);
+}
+
+#line 139 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+
+
+
+
+
+
+
+
+
+struct hashmap_other__other__comma_struct_other_uniq_other_string {
+ struct uniq_string **data;
+ size_t count;
+ size_t cap;
+};
+
+
+#line 139 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+
+
+
+
+
+
+
+
+
+struct hashmap_other__other__comma_struct_other_call {
+ struct call **data;
+ size_t count;
+ size_t cap;
+};
+
+
+#line 17 "gamma.h"
+uint32_t hashmap_other_hash_other__other__comma_struct_other_call(struct call *item);
+
+#line 17 "gamma.h"
+uint32_t hashmap_other_hash_other__other__comma_struct_other_uniq_other_string(struct uniq_string *item);
+
+#line 18 "gamma.h"
+int hashmap_other_eq_other__other__comma_struct_other_call(struct call *A, struct call *B);
+
+
+#line 18 "gamma.h"
+int hashmap_other_eq_other__other__comma_struct_other_uniq_other_string(struct uniq_string *A, struct uniq_string *B);
+
+
+#line 20 "gamma.h"
+struct uniq_string *hashmap_other_lookup_other__other__comma_struct_other_uniq_other_string(struct hashmap_other__other__comma_struct_other_uniq_other_string *hashmap, struct uniq_string *item);
+
+#line 21 "gamma.h"
+struct uniq_string *hashmap_other_lookup_other_weak_other__other__comma_struct_other_uniq_other_string(struct hashmap_other__other__comma_struct_other_uniq_other_string *hashmap, struct uniq_string *item);
+
+#line 21 "gamma.h"
+struct call *hashmap_other_lookup_other_weak_other__other__comma_struct_other_call(struct hashmap_other__other__comma_struct_other_call *hashmap, struct call *item);
+
+#line 22 "gamma.h"
+int hashmap_other_contains_other__other__comma_struct_other_call(struct hashmap_other__other__comma_struct_other_call *hashmap, struct call *item);
+
+#line 23 "gamma.h"
+void hashmap_other_insert_other__other__comma_struct_other_uniq_other_string(struct hashmap_other__other__comma_struct_other_uniq_other_string *hashmap, struct uniq_string *item);
+
+#line 23 "gamma.h"
+void hashmap_other_insert_other__other__comma_struct_other_call(struct hashmap_other__other__comma_struct_other_call *hashmap, struct call *item);
+
+#line 24 "gamma.h"
+struct uniq_string *heapify_other__other__comma_struct_other_uniq_other_string(struct uniq_string item);
+
+
+#line 26 "gamma.h"
+struct vector_other__other__comma_struct_other_call_other__star_ {
+ struct call * *data;
+ size_t count;
+ size_t cap;
+};
+
+#line 31 "gamma.h"
+uint32_t vector_other_push_other__other__comma_struct_other_call_other__star_(struct vector_other__other__comma_struct_other_call_other__star_ *vector, struct call * item);
+
+#line 32 "gamma.h"
+struct call * vector_other_pop_other__other__comma_struct_other_call_other__star_(struct vector_other__other__comma_struct_other_call_other__star_ *vector);
+
+#line 33 "gamma.h"
+struct vector_other__other__comma_struct_other_call_other__star_ *init_other_vector_other__other__comma_struct_other_call_other__star_();
+
+
+#line 35 "gamma.h"
+struct uniq_string {
+ char *string;
+ size_t len;
+
+ struct vector_other__other__comma_struct_other_call_other__star_ instantiations;
+
+ struct chunk *definitions;
+};
+
+
+#line 44 "gamma.h"
+struct arg {
+ char *start;
+ struct uniq_string *string;
+ int is_concrete;
+};
+
+
+#line 50 "gamma.h"
+struct call {
+ char *start;
+ char *end;
+ struct uniq_string *name;
+ struct arg *args;
+ size_t n_args;
+ struct call *next;
+};
+
+
+#line 59 "gamma.h"
+struct chunk {
+ char *start;
+ char *end;
+
+ char *line_filename;
+ size_t line;
+
+ struct call *defining_call;
+ struct call *calls;
+ struct chunk *next;
+ struct chunk *next_definition;
+};
+
+
+#line 72 "gamma.h"
+struct chunked_file {
+ char *contents;
+ char *end;
+ size_t id;
+ struct chunk *chunks;
+ struct chunked_file *next;
+};
+
+
+#line 80 "gamma.h"
+struct chunked_file *chunk(const char *path);
+
+#line 81 "gamma.h"
+struct uniq_string *lookup(char *string, size_t len);
+
+#line 82 "gamma.h"
+struct uniq_string *weak_lookup(char *string, size_t len);
+
+
+
+
+#line 86 "gamma.h"
+struct instantiation_set {
+ struct call **data;
+ size_t n;
+ size_t cap;
+};
+
+
+#line 92 "gamma.h"
+void parse_call(struct call *call);
+
+#line 93 "gamma.h"
+void print_state(struct chunked_file *file);
+
+#line 94 "gamma.h"
+void solve(struct chunked_file *files);
+
+#line 95 "gamma.h"
+void print_string(struct uniq_string *string);
+
+#line 96 "gamma.h"
+void print_call(struct call *call);
+
+#line 97 "gamma.h"
+void print_set(struct instantiation_set *set);
+
+#line 98 "gamma.h"
+void print_chunk(struct chunk *chunk, struct call *instantiation, FILE *out);
+
+#line 99 "gamma.h"
+struct call *replace_variables(struct call *container, struct call *container_instantiation, struct call *call);
+
+#line 100 "gamma.h"
+void fprint_string(FILE *out, struct uniq_string *string);
+
+#line 101 "gamma.h"
+char **read_fakeobj(char *path, char *c_dst);
+
+#line 102 "gamma.h"
+void write_fakeobj(char *src, char *dst, int i);
+
+#line 103 "gamma.h"
+void gamma_sendfile(int dst_fd, int src_fd);
+
+#line 104 "gamma.h"
+void copy_file(char *dst, char *src);
+
+
+#line 106 "gamma.h"
+extern char **ARGV;
+
+#line 107 "gamma.h"
+extern int ARGC;
+
+#line 108 "gamma.h"
+extern char *TMPDIR;
+
+#line 109 "gamma.h"
+extern int GAMMA_TO_C;
+
+#line 110 "gamma.h"
+
+
+
+
+
+typedef __useconds_t useconds_t;
+
+#line 256 "/usr/include/unistd.h"
+typedef __socklen_t socklen_t;
+
+#line 275 "/usr/include/unistd.h"
+extern int access (const char *__name, int __type) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 288 "/usr/include/unistd.h"
+extern int faccessat (int __fd, const char *__file, int __type, int __flag)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))) ;
+
+#line 311 "/usr/include/unistd.h"
+extern __off_t lseek (int __fd, __off_t __offset, int __whence) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 340 "/usr/include/unistd.h"
+extern int close (int __fd);
+
+
+
+
+
+#line 363 "/usr/include/unistd.h"
+extern void closefrom (int __lowfd) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+
+#line 371 "/usr/include/unistd.h"
+extern ssize_t read (int __fd, void *__buf, size_t __nbytes)
+ __attribute__ ((__access__ (__write_only__, 2, 3)));
+
+
+
+
+
+
+#line 378 "/usr/include/unistd.h"
+extern ssize_t write (int __fd, const void *__buf, size_t __n)
+ __attribute__ ((__access__ (__read_only__, 2, 3)));
+
+#line 380 "/usr/include/unistd.h"
+extern ssize_t pread (int __fd, void *__buf, size_t __nbytes,
+ __off_t __offset)
+ __attribute__ ((__access__ (__write_only__, 2, 3)));
+
+
+
+
+
+
+
+#line 398 "/usr/include/unistd.h"
+extern ssize_t pwrite (int __fd, const void *__buf, size_t __n,
+ __off_t __offset)
+ __attribute__ ((__access__ (__read_only__, 2, 3)));
+
+#line 401 "/usr/include/unistd.h"
+extern int pipe (int __pipedes[2]) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+#line 438 "/usr/include/unistd.h"
+extern unsigned int alarm (unsigned int __seconds) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 453 "/usr/include/unistd.h"
+extern unsigned int sleep (unsigned int __seconds);
+
+
+
+
+
+
+
+
+#line 472 "/usr/include/unistd.h"
+extern __useconds_t ualarm (__useconds_t __value, __useconds_t __interval)
+ __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+#line 480 "/usr/include/unistd.h"
+extern int usleep (__useconds_t __useconds);
+
+#line 481 "/usr/include/unistd.h"
+extern int pause (void);
+
+
+
+
+#line 493 "/usr/include/unistd.h"
+extern int chown (const char *__file, __uid_t __owner, __gid_t __group)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+#line 498 "/usr/include/unistd.h"
+extern int fchown (int __fd, __uid_t __owner, __gid_t __group) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+#line 503 "/usr/include/unistd.h"
+extern int lchown (const char *__file, __uid_t __owner, __gid_t __group)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+
+
+
+#line 511 "/usr/include/unistd.h"
+extern int fchownat (int __fd, const char *__file, __uid_t __owner,
+ __gid_t __group, int __flag)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))) ;
+
+
+
+
+#line 517 "/usr/include/unistd.h"
+extern int chdir (const char *__path) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+#line 521 "/usr/include/unistd.h"
+extern int fchdir (int __fd) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+#line 522 "/usr/include/unistd.h"
+extern char *getcwd (char *__buf, size_t __size) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+#line 532 "/usr/include/unistd.h"
+extern char *getwd (char *__buf)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__))
+ __attribute__ ((__access__ (__write_only__, 1)));
+
+
+
+
+
+#line 552 "/usr/include/unistd.h"
+extern int dup (int __fd) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+#line 555 "/usr/include/unistd.h"
+extern int dup2 (int __fd, int __fd2) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 556 "/usr/include/unistd.h"
+extern char **__environ;
+
+
+
+
+
+
+
+
+#line 572 "/usr/include/unistd.h"
+extern int execve (const char *__path, char *const __argv[],
+ char *const __envp[]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+#line 578 "/usr/include/unistd.h"
+extern int fexecve (int __fd, char *const __argv[], char *const __envp[])
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+
+
+
+#line 584 "/usr/include/unistd.h"
+extern int execv (const char *__path, char *const __argv[])
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+#line 589 "/usr/include/unistd.h"
+extern int execle (const char *__path, const char *__arg, ...)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+#line 594 "/usr/include/unistd.h"
+extern int execl (const char *__path, const char *__arg, ...)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+#line 599 "/usr/include/unistd.h"
+extern int execvp (const char *__file, char *const __argv[])
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+#line 605 "/usr/include/unistd.h"
+extern int execlp (const char *__file, const char *__arg, ...)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 607 "/usr/include/unistd.h"
+extern int nice (int __inc) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+#line 624 "/usr/include/unistd.h"
+extern void _exit (int __status) __attribute__ ((__noreturn__));
+
+
+
+
+
+
+#line 630 "/usr/include/unistd.h"
+enum
+ {
+ _PC_LINK_MAX,
+
+ _PC_MAX_CANON,
+
+ _PC_MAX_INPUT,
+
+ _PC_NAME_MAX,
+
+ _PC_PATH_MAX,
+
+ _PC_PIPE_BUF,
+
+ _PC_CHOWN_RESTRICTED,
+
+ _PC_NO_TRUNC,
+
+ _PC_VDISABLE,
+
+ _PC_SYNC_IO,
+
+ _PC_ASYNC_IO,
+
+ _PC_PRIO_IO,
+
+ _PC_SOCK_MAXBUF,
+
+ _PC_FILESIZEBITS,
+
+ _PC_REC_INCR_XFER_SIZE,
+
+ _PC_REC_MAX_XFER_SIZE,
+
+ _PC_REC_MIN_XFER_SIZE,
+
+ _PC_REC_XFER_ALIGN,
+
+ _PC_ALLOC_SIZE_MIN,
+
+ _PC_SYMLINK_MAX,
+
+ _PC_2_SYMLINKS
+
+ };
+
+
+
+#line 71 "/usr/include/x86_64-linux-gnu/bits/confname.h"
+enum
+ {
+ _SC_ARG_MAX,
+
+ _SC_CHILD_MAX,
+
+ _SC_CLK_TCK,
+
+ _SC_NGROUPS_MAX,
+
+ _SC_OPEN_MAX,
+
+ _SC_STREAM_MAX,
+
+ _SC_TZNAME_MAX,
+
+ _SC_JOB_CONTROL,
+
+ _SC_SAVED_IDS,
+
+ _SC_REALTIME_SIGNALS,
+
+ _SC_PRIORITY_SCHEDULING,
+
+ _SC_TIMERS,
+
+ _SC_ASYNCHRONOUS_IO,
+
+ _SC_PRIORITIZED_IO,
+
+ _SC_SYNCHRONIZED_IO,
+
+ _SC_FSYNC,
+
+ _SC_MAPPED_FILES,
+
+ _SC_MEMLOCK,
+
+ _SC_MEMLOCK_RANGE,
+
+ _SC_MEMORY_PROTECTION,
+
+ _SC_MESSAGE_PASSING,
+
+ _SC_SEMAPHORES,
+
+ _SC_SHARED_MEMORY_OBJECTS,
+
+ _SC_AIO_LISTIO_MAX,
+
+ _SC_AIO_MAX,
+
+ _SC_AIO_PRIO_DELTA_MAX,
+
+ _SC_DELAYTIMER_MAX,
+
+ _SC_MQ_OPEN_MAX,
+
+ _SC_MQ_PRIO_MAX,
+
+ _SC_VERSION,
+
+ _SC_PAGESIZE,
+
+
+ _SC_RTSIG_MAX,
+
+ _SC_SEM_NSEMS_MAX,
+
+ _SC_SEM_VALUE_MAX,
+
+ _SC_SIGQUEUE_MAX,
+
+ _SC_TIMER_MAX,
+
+
+
+
+ _SC_BC_BASE_MAX,
+
+ _SC_BC_DIM_MAX,
+
+ _SC_BC_SCALE_MAX,
+
+ _SC_BC_STRING_MAX,
+
+ _SC_COLL_WEIGHTS_MAX,
+
+ _SC_EQUIV_CLASS_MAX,
+
+ _SC_EXPR_NEST_MAX,
+
+ _SC_LINE_MAX,
+
+ _SC_RE_DUP_MAX,
+
+ _SC_CHARCLASS_NAME_MAX,
+
+
+ _SC_2_VERSION,
+
+ _SC_2_C_BIND,
+
+ _SC_2_C_DEV,
+
+ _SC_2_FORT_DEV,
+
+ _SC_2_FORT_RUN,
+
+ _SC_2_SW_DEV,
+
+ _SC_2_LOCALEDEF,
+
+
+ _SC_PII,
+
+ _SC_PII_XTI,
+
+ _SC_PII_SOCKET,
+
+ _SC_PII_INTERNET,
+
+ _SC_PII_OSI,
+
+ _SC_POLL,
+
+ _SC_SELECT,
+
+ _SC_UIO_MAXIOV,
+
+ _SC_IOV_MAX = _SC_UIO_MAXIOV,
+
+ _SC_PII_INTERNET_STREAM,
+
+ _SC_PII_INTERNET_DGRAM,
+
+ _SC_PII_OSI_COTS,
+
+ _SC_PII_OSI_CLTS,
+
+ _SC_PII_OSI_M,
+
+ _SC_T_IOV_MAX,
+
+
+
+ _SC_THREADS,
+
+ _SC_THREAD_SAFE_FUNCTIONS,
+
+ _SC_GETGR_R_SIZE_MAX,
+
+ _SC_GETPW_R_SIZE_MAX,
+
+ _SC_LOGIN_NAME_MAX,
+
+ _SC_TTY_NAME_MAX,
+
+ _SC_THREAD_DESTRUCTOR_ITERATIONS,
+
+ _SC_THREAD_KEYS_MAX,
+
+ _SC_THREAD_STACK_MIN,
+
+ _SC_THREAD_THREADS_MAX,
+
+ _SC_THREAD_ATTR_STACKADDR,
+
+ _SC_THREAD_ATTR_STACKSIZE,
+
+ _SC_THREAD_PRIORITY_SCHEDULING,
+
+ _SC_THREAD_PRIO_INHERIT,
+
+ _SC_THREAD_PRIO_PROTECT,
+
+ _SC_THREAD_PROCESS_SHARED,
+
+
+ _SC_NPROCESSORS_CONF,
+
+ _SC_NPROCESSORS_ONLN,
+
+ _SC_PHYS_PAGES,
+
+ _SC_AVPHYS_PAGES,
+
+ _SC_ATEXIT_MAX,
+
+ _SC_PASS_MAX,
+
+
+ _SC_XOPEN_VERSION,
+
+ _SC_XOPEN_XCU_VERSION,
+
+ _SC_XOPEN_UNIX,
+
+ _SC_XOPEN_CRYPT,
+
+ _SC_XOPEN_ENH_I18N,
+
+ _SC_XOPEN_SHM,
+
+
+ _SC_2_CHAR_TERM,
+
+ _SC_2_C_VERSION,
+
+ _SC_2_UPE,
+
+
+ _SC_XOPEN_XPG2,
+
+ _SC_XOPEN_XPG3,
+
+ _SC_XOPEN_XPG4,
+
+
+ _SC_CHAR_BIT,
+
+ _SC_CHAR_MAX,
+
+ _SC_CHAR_MIN,
+
+ _SC_INT_MAX,
+
+ _SC_INT_MIN,
+
+ _SC_LONG_BIT,
+
+ _SC_WORD_BIT,
+
+ _SC_MB_LEN_MAX,
+
+ _SC_NZERO,
+
+ _SC_SSIZE_MAX,
+
+ _SC_SCHAR_MAX,
+
+ _SC_SCHAR_MIN,
+
+ _SC_SHRT_MAX,
+
+ _SC_SHRT_MIN,
+
+ _SC_UCHAR_MAX,
+
+ _SC_UINT_MAX,
+
+ _SC_ULONG_MAX,
+
+ _SC_USHRT_MAX,
+
+
+ _SC_NL_ARGMAX,
+
+ _SC_NL_LANGMAX,
+
+ _SC_NL_MSGMAX,
+
+ _SC_NL_NMAX,
+
+ _SC_NL_SETMAX,
+
+ _SC_NL_TEXTMAX,
+
+
+ _SC_XBS5_ILP32_OFF32,
+
+ _SC_XBS5_ILP32_OFFBIG,
+
+ _SC_XBS5_LP64_OFF64,
+
+ _SC_XBS5_LPBIG_OFFBIG,
+
+
+ _SC_XOPEN_LEGACY,
+
+ _SC_XOPEN_REALTIME,
+
+ _SC_XOPEN_REALTIME_THREADS,
+
+
+ _SC_ADVISORY_INFO,
+
+ _SC_BARRIERS,
+
+ _SC_BASE,
+
+ _SC_C_LANG_SUPPORT,
+
+ _SC_C_LANG_SUPPORT_R,
+
+ _SC_CLOCK_SELECTION,
+
+ _SC_CPUTIME,
+
+ _SC_THREAD_CPUTIME,
+
+ _SC_DEVICE_IO,
+
+ _SC_DEVICE_SPECIFIC,
+
+ _SC_DEVICE_SPECIFIC_R,
+
+ _SC_FD_MGMT,
+
+ _SC_FIFO,
+
+ _SC_PIPE,
+
+ _SC_FILE_ATTRIBUTES,
+
+ _SC_FILE_LOCKING,
+
+ _SC_FILE_SYSTEM,
+
+ _SC_MONOTONIC_CLOCK,
+
+ _SC_MULTI_PROCESS,
+
+ _SC_SINGLE_PROCESS,
+
+ _SC_NETWORKING,
+
+ _SC_READER_WRITER_LOCKS,
+
+ _SC_SPIN_LOCKS,
+
+ _SC_REGEXP,
+
+ _SC_REGEX_VERSION,
+
+ _SC_SHELL,
+
+ _SC_SIGNALS,
+
+ _SC_SPAWN,
+
+ _SC_SPORADIC_SERVER,
+
+ _SC_THREAD_SPORADIC_SERVER,
+
+ _SC_SYSTEM_DATABASE,
+
+ _SC_SYSTEM_DATABASE_R,
+
+ _SC_TIMEOUTS,
+
+ _SC_TYPED_MEMORY_OBJECTS,
+
+ _SC_USER_GROUPS,
+
+ _SC_USER_GROUPS_R,
+
+ _SC_2_PBS,
+
+ _SC_2_PBS_ACCOUNTING,
+
+ _SC_2_PBS_LOCATE,
+
+ _SC_2_PBS_MESSAGE,
+
+ _SC_2_PBS_TRACK,
+
+ _SC_SYMLOOP_MAX,
+
+ _SC_STREAMS,
+
+ _SC_2_PBS_CHECKPOINT,
+
+
+ _SC_V6_ILP32_OFF32,
+
+ _SC_V6_ILP32_OFFBIG,
+
+ _SC_V6_LP64_OFF64,
+
+ _SC_V6_LPBIG_OFFBIG,
+
+
+ _SC_HOST_NAME_MAX,
+
+ _SC_TRACE,
+
+ _SC_TRACE_EVENT_FILTER,
+
+ _SC_TRACE_INHERIT,
+
+ _SC_TRACE_LOG,
+
+
+ _SC_LEVEL1_ICACHE_SIZE,
+
+ _SC_LEVEL1_ICACHE_ASSOC,
+
+ _SC_LEVEL1_ICACHE_LINESIZE,
+
+ _SC_LEVEL1_DCACHE_SIZE,
+
+ _SC_LEVEL1_DCACHE_ASSOC,
+
+ _SC_LEVEL1_DCACHE_LINESIZE,
+
+ _SC_LEVEL2_CACHE_SIZE,
+
+ _SC_LEVEL2_CACHE_ASSOC,
+
+ _SC_LEVEL2_CACHE_LINESIZE,
+
+ _SC_LEVEL3_CACHE_SIZE,
+
+ _SC_LEVEL3_CACHE_ASSOC,
+
+ _SC_LEVEL3_CACHE_LINESIZE,
+
+ _SC_LEVEL4_CACHE_SIZE,
+
+ _SC_LEVEL4_CACHE_ASSOC,
+
+ _SC_LEVEL4_CACHE_LINESIZE,
+
+
+
+ _SC_IPV6 = _SC_LEVEL1_ICACHE_SIZE + 50,
+
+ _SC_RAW_SOCKETS,
+
+
+ _SC_V7_ILP32_OFF32,
+
+ _SC_V7_ILP32_OFFBIG,
+
+ _SC_V7_LP64_OFF64,
+
+ _SC_V7_LPBIG_OFFBIG,
+
+
+ _SC_SS_REPL_MAX,
+
+
+ _SC_TRACE_EVENT_NAME_MAX,
+
+ _SC_TRACE_NAME_MAX,
+
+ _SC_TRACE_SYS_MAX,
+
+ _SC_TRACE_USER_EVENT_MAX,
+
+
+ _SC_XOPEN_STREAMS,
+
+
+ _SC_THREAD_ROBUST_PRIO_INHERIT,
+
+ _SC_THREAD_ROBUST_PRIO_PROTECT,
+
+
+ _SC_MINSIGSTKSZ,
+
+
+ _SC_SIGSTKSZ
+
+ };
+
+
+
+#line 539 "/usr/include/x86_64-linux-gnu/bits/confname.h"
+enum
+ {
+ _CS_PATH,
+
+
+ _CS_V6_WIDTH_RESTRICTED_ENVS,
+
+
+
+ _CS_GNU_LIBC_VERSION,
+
+ _CS_GNU_LIBPTHREAD_VERSION,
+
+
+ _CS_V5_WIDTH_RESTRICTED_ENVS,
+
+
+
+ _CS_V7_WIDTH_RESTRICTED_ENVS,
+
+
+
+ _CS_LFS_CFLAGS = 1000,
+
+ _CS_LFS_LDFLAGS,
+
+ _CS_LFS_LIBS,
+
+ _CS_LFS_LINTFLAGS,
+
+ _CS_LFS64_CFLAGS,
+
+ _CS_LFS64_LDFLAGS,
+
+ _CS_LFS64_LIBS,
+
+ _CS_LFS64_LINTFLAGS,
+
+
+ _CS_XBS5_ILP32_OFF32_CFLAGS = 1100,
+
+ _CS_XBS5_ILP32_OFF32_LDFLAGS,
+
+ _CS_XBS5_ILP32_OFF32_LIBS,
+
+ _CS_XBS5_ILP32_OFF32_LINTFLAGS,
+
+ _CS_XBS5_ILP32_OFFBIG_CFLAGS,
+
+ _CS_XBS5_ILP32_OFFBIG_LDFLAGS,
+
+ _CS_XBS5_ILP32_OFFBIG_LIBS,
+
+ _CS_XBS5_ILP32_OFFBIG_LINTFLAGS,
+
+ _CS_XBS5_LP64_OFF64_CFLAGS,
+
+ _CS_XBS5_LP64_OFF64_LDFLAGS,
+
+ _CS_XBS5_LP64_OFF64_LIBS,
+
+ _CS_XBS5_LP64_OFF64_LINTFLAGS,
+
+ _CS_XBS5_LPBIG_OFFBIG_CFLAGS,
+
+ _CS_XBS5_LPBIG_OFFBIG_LDFLAGS,
+
+ _CS_XBS5_LPBIG_OFFBIG_LIBS,
+
+ _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS,
+
+
+ _CS_POSIX_V6_ILP32_OFF32_CFLAGS,
+
+ _CS_POSIX_V6_ILP32_OFF32_LDFLAGS,
+
+ _CS_POSIX_V6_ILP32_OFF32_LIBS,
+
+ _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS,
+
+ _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS,
+
+ _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS,
+
+ _CS_POSIX_V6_ILP32_OFFBIG_LIBS,
+
+ _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS,
+
+ _CS_POSIX_V6_LP64_OFF64_CFLAGS,
+
+ _CS_POSIX_V6_LP64_OFF64_LDFLAGS,
+
+ _CS_POSIX_V6_LP64_OFF64_LIBS,
+
+ _CS_POSIX_V6_LP64_OFF64_LINTFLAGS,
+
+ _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS,
+
+ _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS,
+
+ _CS_POSIX_V6_LPBIG_OFFBIG_LIBS,
+
+ _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS,
+
+
+ _CS_POSIX_V7_ILP32_OFF32_CFLAGS,
+
+ _CS_POSIX_V7_ILP32_OFF32_LDFLAGS,
+
+ _CS_POSIX_V7_ILP32_OFF32_LIBS,
+
+ _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS,
+
+ _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS,
+
+ _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS,
+
+ _CS_POSIX_V7_ILP32_OFFBIG_LIBS,
+
+ _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS,
+
+ _CS_POSIX_V7_LP64_OFF64_CFLAGS,
+
+ _CS_POSIX_V7_LP64_OFF64_LDFLAGS,
+
+ _CS_POSIX_V7_LP64_OFF64_LIBS,
+
+ _CS_POSIX_V7_LP64_OFF64_LINTFLAGS,
+
+ _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS,
+
+ _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS,
+
+ _CS_POSIX_V7_LPBIG_OFFBIG_LIBS,
+
+ _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS,
+
+
+ _CS_V6_ENV,
+
+ _CS_V7_ENV
+
+ };
+
+#line 682 "/usr/include/x86_64-linux-gnu/bits/confname.h"
+
+
+extern long int pathconf (const char *__path, int __name)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+#line 637 "/usr/include/unistd.h"
+extern long int fpathconf (int __fd, int __name) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 640 "/usr/include/unistd.h"
+extern long int sysconf (int __name) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 644 "/usr/include/unistd.h"
+extern size_t confstr (int __name, char *__buf, size_t __len) __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__access__ (__write_only__, 2, 3)));
+
+
+
+
+
+#line 650 "/usr/include/unistd.h"
+extern __pid_t getpid (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 653 "/usr/include/unistd.h"
+extern __pid_t getppid (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 656 "/usr/include/unistd.h"
+extern __pid_t getpgrp (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 659 "/usr/include/unistd.h"
+extern __pid_t __getpgid (__pid_t __pid) __attribute__ ((__nothrow__ , __leaf__));
+
+
+#line 661 "/usr/include/unistd.h"
+extern __pid_t getpgid (__pid_t __pid) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+#line 668 "/usr/include/unistd.h"
+extern int setpgid (__pid_t __pid, __pid_t __pgid) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 669 "/usr/include/unistd.h"
+extern int setpgrp (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+#line 689 "/usr/include/unistd.h"
+extern __pid_t setsid (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 693 "/usr/include/unistd.h"
+extern __pid_t getsid (__pid_t __pid) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 697 "/usr/include/unistd.h"
+extern __uid_t getuid (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 700 "/usr/include/unistd.h"
+extern __uid_t geteuid (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 703 "/usr/include/unistd.h"
+extern __gid_t getgid (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 706 "/usr/include/unistd.h"
+extern __gid_t getegid (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+#line 711 "/usr/include/unistd.h"
+extern int getgroups (int __size, __gid_t __list[]) __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__access__ (__write_only__, 2, 1)));
+
+#line 713 "/usr/include/unistd.h"
+extern int setuid (__uid_t __uid) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+#line 727 "/usr/include/unistd.h"
+extern int setreuid (__uid_t __ruid, __uid_t __euid) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+#line 732 "/usr/include/unistd.h"
+extern int seteuid (__uid_t __uid) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+
+
+#line 739 "/usr/include/unistd.h"
+extern int setgid (__gid_t __gid) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+#line 744 "/usr/include/unistd.h"
+extern int setregid (__gid_t __rgid, __gid_t __egid) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+#line 749 "/usr/include/unistd.h"
+extern int setegid (__gid_t __gid) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+#line 750 "/usr/include/unistd.h"
+extern __pid_t fork (void) __attribute__ ((__nothrow__));
+
+
+
+
+
+
+
+
+#line 786 "/usr/include/unistd.h"
+extern __pid_t vfork (void) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 787 "/usr/include/unistd.h"
+extern char *ttyname (int __fd) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 803 "/usr/include/unistd.h"
+extern int ttyname_r (int __fd, char *__buf, size_t __buflen)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)))
+ __attribute__ ((__access__ (__write_only__, 2, 3)));
+
+
+
+
+#line 809 "/usr/include/unistd.h"
+extern int isatty (int __fd) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+#line 814 "/usr/include/unistd.h"
+extern int ttyslot (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+#line 819 "/usr/include/unistd.h"
+extern int link (const char *__from, const char *__to)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))) ;
+
+
+
+
+
+#line 825 "/usr/include/unistd.h"
+extern int linkat (int __fromfd, const char *__from, int __tofd,
+ const char *__to, int __flags)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 4))) ;
+
+
+
+
+
+#line 832 "/usr/include/unistd.h"
+extern int symlink (const char *__from, const char *__to)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))) ;
+
+
+
+
+
+#line 838 "/usr/include/unistd.h"
+extern ssize_t readlink (const char *__restrict __path,
+ char *__restrict __buf, size_t __len)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)))
+ __attribute__ ((__access__ (__write_only__, 2, 3)));
+
+
+
+
+
+
+#line 847 "/usr/include/unistd.h"
+extern int symlinkat (const char *__from, int __tofd,
+ const char *__to) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 3))) ;
+
+
+
+#line 851 "/usr/include/unistd.h"
+extern ssize_t readlinkat (int __fd, const char *__restrict __path,
+ char *__restrict __buf, size_t __len)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3)))
+ __attribute__ ((__access__ (__write_only__, 3, 4)));
+
+
+
+
+#line 858 "/usr/include/unistd.h"
+extern int unlink (const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+#line 862 "/usr/include/unistd.h"
+extern int unlinkat (int __fd, const char *__name, int __flag)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+
+
+#line 867 "/usr/include/unistd.h"
+extern int rmdir (const char *__path) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+#line 871 "/usr/include/unistd.h"
+extern __pid_t tcgetpgrp (int __fd) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 874 "/usr/include/unistd.h"
+extern int tcsetpgrp (int __fd, __pid_t __pgrp_id) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+#line 881 "/usr/include/unistd.h"
+extern char *getlogin (void);
+
+
+
+
+
+
+
+
+#line 889 "/usr/include/unistd.h"
+extern int getlogin_r (char *__name, size_t __name_len) __attribute__ ((__nonnull__ (1)))
+ __attribute__ ((__access__ (__write_only__, 1, 2)));
+
+
+
+
+
+#line 895 "/usr/include/unistd.h"
+extern int setlogin (const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+
+#line 903 "/usr/include/unistd.h"
+
+
+
+
+
+
+
+
+extern char *optarg;
+
+#line 37 "/usr/include/x86_64-linux-gnu/bits/getopt_core.h"
+extern int optind;
+
+
+
+
+
+#line 55 "/usr/include/x86_64-linux-gnu/bits/getopt_core.h"
+extern int opterr;
+
+
+
+
+#line 59 "/usr/include/x86_64-linux-gnu/bits/getopt_core.h"
+extern int optopt;
+
+#line 60 "/usr/include/x86_64-linux-gnu/bits/getopt_core.h"
+extern int getopt (int ___argc, char *const *___argv, const char *__shortopts)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3)));
+
+
+
+#line 95 "/usr/include/x86_64-linux-gnu/bits/getopt_core.h"
+
+
+
+
+
+
+
+
+
+
+extern int gethostname (char *__name, size_t __len) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)))
+ __attribute__ ((__access__ (__write_only__, 1, 2)));
+
+
+
+
+
+
+
+#line 919 "/usr/include/unistd.h"
+extern int sethostname (const char *__name, size_t __len)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__access__ (__read_only__, 1, 2)));
+
+
+
+
+#line 924 "/usr/include/unistd.h"
+extern int sethostid (long int __id) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+
+#line 930 "/usr/include/unistd.h"
+extern int getdomainname (char *__name, size_t __len)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)))
+ __attribute__ ((__access__ (__write_only__, 1, 2)));
+
+#line 933 "/usr/include/unistd.h"
+extern int setdomainname (const char *__name, size_t __len)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__access__ (__read_only__, 1, 2)));
+
+
+
+
+
+#line 939 "/usr/include/unistd.h"
+extern int vhangup (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 942 "/usr/include/unistd.h"
+extern int revoke (const char *__file) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+
+
+
+
+#line 950 "/usr/include/unistd.h"
+extern int profil (unsigned short int *__sample_buffer, size_t __size,
+ size_t __offset, unsigned int __scale)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+#line 958 "/usr/include/unistd.h"
+extern int acct (const char *__name) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 962 "/usr/include/unistd.h"
+extern char *getusershell (void) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 963 "/usr/include/unistd.h"
+extern void endusershell (void) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 964 "/usr/include/unistd.h"
+extern void setusershell (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+#line 970 "/usr/include/unistd.h"
+extern int daemon (int __nochdir, int __noclose) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+
+
+#line 977 "/usr/include/unistd.h"
+extern int chroot (const char *__path) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+#line 981 "/usr/include/unistd.h"
+extern char *getpass (const char *__prompt) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+
+#line 989 "/usr/include/unistd.h"
+extern int fsync (int __fd);
+
+#line 990 "/usr/include/unistd.h"
+extern long int gethostid (void);
+
+
+
+#line 1005 "/usr/include/unistd.h"
+extern void sync (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+#line 1011 "/usr/include/unistd.h"
+extern int getpagesize (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+
+
+
+
+#line 1016 "/usr/include/unistd.h"
+extern int getdtablesize (void) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 1017 "/usr/include/unistd.h"
+extern int truncate (const char *__file, __off_t __length)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+#line 1028 "/usr/include/unistd.h"
+extern int ftruncate (int __fd, __off_t __length) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+#line 1050 "/usr/include/unistd.h"
+extern int brk (void *__addr) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+
+#line 1076 "/usr/include/unistd.h"
+extern void *sbrk (intptr_t __delta) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 1077 "/usr/include/unistd.h"
+extern long int syscall (long int __sysno, ...) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 1092 "/usr/include/unistd.h"
+extern int lockf (int __fd, int __cmd, __off_t __len) ;
+
+#line 1115 "/usr/include/unistd.h"
+extern int fdatasync (int __fildes);
+
+#line 1151 "/usr/include/unistd.h"
+extern char *crypt (const char *__key, const char *__salt)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 1161 "/usr/include/unistd.h"
+int getentropy (void *__buffer, size_t __length)
+ __attribute__ ((__access__ (__write_only__, 1, 2)));
+
+#line 1200 "/usr/include/unistd.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef __sig_atomic_t sig_atomic_t;
+
+#line 9 "/usr/include/x86_64-linux-gnu/bits/types/sig_atomic_t.h"
+
+
+
+
+union sigval
+{
+ int sival_int;
+ void *sival_ptr;
+};
+
+
+#line 30 "/usr/include/x86_64-linux-gnu/bits/types/__sigval_t.h"
+typedef union sigval __sigval_t;
+
+#line 31 "/usr/include/x86_64-linux-gnu/bits/types/__sigval_t.h"
+typedef struct
+ {
+ int si_signo;
+
+ int si_errno;
+
+ int si_code;
+
+
+
+
+
+ int __pad0;
+
+
+ union
+ {
+ int _pad[((128 / sizeof (int)) - 4)];
+
+
+ struct
+ {
+ __pid_t si_pid;
+ __uid_t si_uid;
+ } _kill;
+
+
+ struct
+ {
+ int si_tid;
+ int si_overrun;
+ __sigval_t si_sigval;
+ } _timer;
+
+
+ struct
+ {
+ __pid_t si_pid;
+ __uid_t si_uid;
+ __sigval_t si_sigval;
+ } _rt;
+
+
+ struct
+ {
+ __pid_t si_pid;
+ __uid_t si_uid;
+ int si_status;
+ __clock_t si_utime;
+ __clock_t si_stime;
+ } _sigchld;
+
+
+ struct
+ {
+ void *si_addr;
+
+ short int si_addr_lsb;
+ union
+ {
+
+ struct
+ {
+ void *_lower;
+ void *_upper;
+ } _addr_bnd;
+
+ __uint32_t _pkey;
+ } _bounds;
+ } _sigfault;
+
+
+ struct
+ {
+ long int si_band;
+ int si_fd;
+ } _sigpoll;
+
+
+
+ struct
+ {
+ void *_call_addr;
+ int _syscall;
+ unsigned int _arch;
+ } _sigsys;
+
+ } _sifields;
+ }
+#line 124 "/usr/include/x86_64-linux-gnu/bits/types/siginfo_t.h"
+siginfo_t ;
+
+#line 125 "/usr/include/x86_64-linux-gnu/bits/types/siginfo_t.h"
+enum
+{
+ SI_ASYNCNL = -60,
+ SI_DETHREAD = -7,
+
+ SI_TKILL,
+ SI_SIGIO,
+
+ SI_ASYNCIO,
+ SI_MESGQ,
+ SI_TIMER,
+
+
+
+
+
+ SI_QUEUE,
+ SI_USER,
+ SI_KERNEL = 0x80
+};
+
+
+
+
+
+#line 71 "/usr/include/x86_64-linux-gnu/bits/siginfo-consts.h"
+enum
+{
+ ILL_ILLOPC = 1,
+
+ ILL_ILLOPN,
+
+ ILL_ILLADR,
+
+ ILL_ILLTRP,
+
+ ILL_PRVOPC,
+
+ ILL_PRVREG,
+
+ ILL_COPROC,
+
+ ILL_BADSTK,
+
+ ILL_BADIADDR
+
+};
+
+
+
+#line 94 "/usr/include/x86_64-linux-gnu/bits/siginfo-consts.h"
+enum
+{
+ FPE_INTDIV = 1,
+
+ FPE_INTOVF,
+
+ FPE_FLTDIV,
+
+ FPE_FLTOVF,
+
+ FPE_FLTUND,
+
+ FPE_FLTRES,
+
+ FPE_FLTINV,
+
+ FPE_FLTSUB,
+
+ FPE_FLTUNK = 14,
+
+ FPE_CONDTRAP
+
+};
+
+
+
+#line 119 "/usr/include/x86_64-linux-gnu/bits/siginfo-consts.h"
+enum
+{
+ SEGV_MAPERR = 1,
+
+ SEGV_ACCERR,
+
+ SEGV_BNDERR,
+
+ SEGV_PKUERR,
+
+ SEGV_ACCADI,
+
+ SEGV_ADIDERR,
+
+ SEGV_ADIPERR,
+
+ SEGV_MTEAERR,
+
+ SEGV_MTESERR
+
+};
+
+
+
+#line 142 "/usr/include/x86_64-linux-gnu/bits/siginfo-consts.h"
+enum
+{
+ BUS_ADRALN = 1,
+
+ BUS_ADRERR,
+
+ BUS_OBJERR,
+
+ BUS_MCEERR_AR,
+
+ BUS_MCEERR_AO
+
+};
+
+#line 155 "/usr/include/x86_64-linux-gnu/bits/siginfo-consts.h"
+enum
+{
+ CLD_EXITED = 1,
+
+ CLD_KILLED,
+
+ CLD_DUMPED,
+
+ CLD_TRAPPED,
+
+ CLD_STOPPED,
+
+ CLD_CONTINUED
+
+};
+
+
+
+#line 193 "/usr/include/x86_64-linux-gnu/bits/siginfo-consts.h"
+enum
+{
+ POLL_IN = 1,
+
+ POLL_OUT,
+
+ POLL_MSG,
+
+ POLL_ERR,
+
+ POLL_PRI,
+
+ POLL_HUP
+
+};
+
+#line 208 "/usr/include/x86_64-linux-gnu/bits/siginfo-consts.h"
+
+
+
+typedef __sigval_t sigval_t;
+
+#line 17 "/usr/include/x86_64-linux-gnu/bits/types/sigval_t.h"
+
+
+
+
+
+
+typedef struct sigevent
+ {
+ __sigval_t sigev_value;
+ int sigev_signo;
+ int sigev_notify;
+
+ union
+ {
+ int _pad[((64 / sizeof (int)) - 4)];
+
+
+
+ __pid_t _tid;
+
+ struct
+ {
+ void (*_function) (__sigval_t);
+ pthread_attr_t *_attribute;
+ } _sigev_thread;
+ } _sigev_un;
+ }
+#line 42 "/usr/include/x86_64-linux-gnu/bits/types/sigevent_t.h"
+sigevent_t;
+
+#line 43 "/usr/include/x86_64-linux-gnu/bits/types/sigevent_t.h"
+enum
+{
+ SIGEV_SIGNAL = 0,
+
+ SIGEV_NONE,
+
+ SIGEV_THREAD,
+
+
+ SIGEV_THREAD_ID = 4
+
+
+};
+
+#line 40 "/usr/include/x86_64-linux-gnu/bits/sigevent-consts.h"
+
+
+
+
+typedef void (*__sighandler_t) (int);
+
+
+
+
+
+#line 77 "/usr/include/signal.h"
+extern __sighandler_t __sysv_signal (int __sig, __sighandler_t __handler)
+ __attribute__ ((__nothrow__ , __leaf__));
+
+#line 79 "/usr/include/signal.h"
+extern __sighandler_t signal (int __sig, __sighandler_t __handler)
+ __attribute__ ((__nothrow__ , __leaf__));
+
+#line 90 "/usr/include/signal.h"
+extern int kill (__pid_t __pid, int __sig) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+#line 119 "/usr/include/signal.h"
+extern int killpg (__pid_t __pgrp, int __sig) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 123 "/usr/include/signal.h"
+extern int raise (int __sig) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 127 "/usr/include/signal.h"
+extern __sighandler_t ssignal (int __sig, __sighandler_t __handler)
+ __attribute__ ((__nothrow__ , __leaf__));
+
+#line 129 "/usr/include/signal.h"
+extern int gsignal (int __sig) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+#line 134 "/usr/include/signal.h"
+extern void psignal (int __sig, const char *__s);
+
+
+
+#line 137 "/usr/include/signal.h"
+extern void psiginfo (const siginfo_t *__pinfo, const char *__s);
+
+#line 138 "/usr/include/signal.h"
+extern int sigblock (int __mask) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__deprecated__));
+
+
+
+#line 176 "/usr/include/signal.h"
+extern int sigsetmask (int __mask) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__deprecated__));
+
+
+
+#line 179 "/usr/include/signal.h"
+extern int siggetmask (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__deprecated__));
+
+#line 180 "/usr/include/signal.h"
+typedef __sighandler_t sig_t;
+
+
+
+
+
+
+#line 199 "/usr/include/signal.h"
+extern int sigemptyset (sigset_t *__set) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+#line 202 "/usr/include/signal.h"
+extern int sigfillset (sigset_t *__set) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+#line 205 "/usr/include/signal.h"
+extern int sigaddset (sigset_t *__set, int __signo) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+#line 208 "/usr/include/signal.h"
+extern int sigdelset (sigset_t *__set, int __signo) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+#line 211 "/usr/include/signal.h"
+extern int sigismember (const sigset_t *__set, int __signo)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 213 "/usr/include/signal.h"
+struct sigaction
+ {
+
+
+ union
+ {
+
+ __sighandler_t sa_handler;
+
+ void (*sa_sigaction) (int, siginfo_t *, void *);
+ }
+ __sigaction_handler;
+
+
+
+
+
+
+
+ __sigset_t sa_mask;
+
+
+ int sa_flags;
+
+
+ void (*sa_restorer) (void);
+ };
+
+#line 54 "/usr/include/x86_64-linux-gnu/bits/sigaction.h"
+
+
+extern int sigprocmask (int __how, const sigset_t *__restrict __set,
+ sigset_t *__restrict __oset) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+#line 240 "/usr/include/signal.h"
+extern int sigsuspend (const sigset_t *__set) __attribute__ ((__nonnull__ (1)));
+
+
+
+#line 243 "/usr/include/signal.h"
+extern int sigaction (int __sig, const struct sigaction *__restrict __act,
+ struct sigaction *__restrict __oact) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 247 "/usr/include/signal.h"
+extern int sigpending (sigset_t *__set) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+
+#line 255 "/usr/include/signal.h"
+extern int sigwait (const sigset_t *__restrict __set, int *__restrict __sig)
+ __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+
+
+
+#line 264 "/usr/include/signal.h"
+extern int sigwaitinfo (const sigset_t *__restrict __set,
+ siginfo_t *__restrict __info) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+
+#line 273 "/usr/include/signal.h"
+extern int sigtimedwait (const sigset_t *__restrict __set,
+ siginfo_t *__restrict __info,
+ const struct timespec *__restrict __timeout)
+ __attribute__ ((__nonnull__ (1)));
+
+#line 277 "/usr/include/signal.h"
+extern int sigqueue (__pid_t __pid, int __sig, const union sigval __val)
+ __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+
+#line 301 "/usr/include/signal.h"
+struct _fpx_sw_bytes
+{
+ __uint32_t magic1;
+ __uint32_t extended_size;
+ __uint64_t xstate_bv;
+ __uint32_t xstate_size;
+ __uint32_t __glibc_reserved1[7];
+};
+
+
+#line 40 "/usr/include/x86_64-linux-gnu/bits/sigcontext.h"
+struct _fpreg
+{
+ unsigned short significand[4];
+ unsigned short exponent;
+};
+
+
+#line 46 "/usr/include/x86_64-linux-gnu/bits/sigcontext.h"
+struct _fpxreg
+{
+ unsigned short significand[4];
+ unsigned short exponent;
+ unsigned short __glibc_reserved1[3];
+};
+
+
+#line 53 "/usr/include/x86_64-linux-gnu/bits/sigcontext.h"
+struct _xmmreg
+{
+ __uint32_t element[4];
+};
+
+#line 57 "/usr/include/x86_64-linux-gnu/bits/sigcontext.h"
+struct _fpstate
+{
+
+ __uint16_t cwd;
+ __uint16_t swd;
+ __uint16_t ftw;
+ __uint16_t fop;
+ __uint64_t rip;
+ __uint64_t rdp;
+ __uint32_t mxcsr;
+ __uint32_t mxcr_mask;
+ struct _fpxreg _st[8];
+ struct _xmmreg _xmm[16];
+ __uint32_t __glibc_reserved1[24];
+};
+
+
+#line 139 "/usr/include/x86_64-linux-gnu/bits/sigcontext.h"
+struct sigcontext
+{
+ __uint64_t r8;
+ __uint64_t r9;
+ __uint64_t r10;
+ __uint64_t r11;
+ __uint64_t r12;
+ __uint64_t r13;
+ __uint64_t r14;
+ __uint64_t r15;
+ __uint64_t rdi;
+ __uint64_t rsi;
+ __uint64_t rbp;
+ __uint64_t rbx;
+ __uint64_t rdx;
+ __uint64_t rax;
+ __uint64_t rcx;
+ __uint64_t rsp;
+ __uint64_t rip;
+ __uint64_t eflags;
+ unsigned short cs;
+ unsigned short gs;
+ unsigned short fs;
+ unsigned short __pad0;
+ __uint64_t err;
+ __uint64_t trapno;
+ __uint64_t oldmask;
+ __uint64_t cr2;
+ __extension__ union
+ {
+ struct _fpstate * fpstate;
+ __uint64_t __fpstate_word;
+ };
+ __uint64_t __reserved1 [8];
+};
+
+
+
+
+#line 177 "/usr/include/x86_64-linux-gnu/bits/sigcontext.h"
+struct _xsave_hdr
+{
+ __uint64_t xstate_bv;
+ __uint64_t __glibc_reserved1[2];
+ __uint64_t __glibc_reserved2[5];
+};
+
+
+#line 184 "/usr/include/x86_64-linux-gnu/bits/sigcontext.h"
+struct _ymmh_state
+{
+ __uint32_t ymmh_space[64];
+};
+
+
+#line 189 "/usr/include/x86_64-linux-gnu/bits/sigcontext.h"
+struct _xstate
+{
+ struct _fpstate fpstate;
+ struct _xsave_hdr xstate_hdr;
+ struct _ymmh_state ymmh;
+};
+
+#line 195 "/usr/include/x86_64-linux-gnu/bits/sigcontext.h"
+
+
+extern int sigreturn (struct sigcontext *__scp) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+#line 311 "/usr/include/signal.h"
+
+
+
+typedef struct
+ {
+ void *ss_sp;
+ int ss_flags;
+ size_t ss_size;
+ }
+#line 31 "/usr/include/x86_64-linux-gnu/bits/types/stack_t.h"
+stack_t;
+
+#line 32 "/usr/include/x86_64-linux-gnu/bits/types/stack_t.h"
+
+
+__extension__ typedef long long int greg_t;
+
+#line 38 "/usr/include/x86_64-linux-gnu/sys/ucontext.h"
+typedef greg_t gregset_t[23];
+
+#line 47 "/usr/include/x86_64-linux-gnu/sys/ucontext.h"
+struct _libc_fpxreg
+{
+ unsigned short int significand[4];
+ unsigned short int exponent;
+ unsigned short int __glibc_reserved1[3];
+};
+
+
+#line 108 "/usr/include/x86_64-linux-gnu/sys/ucontext.h"
+struct _libc_xmmreg
+{
+ __uint32_t element[4];
+};
+
+
+#line 113 "/usr/include/x86_64-linux-gnu/sys/ucontext.h"
+struct _libc_fpstate
+{
+
+ __uint16_t cwd;
+ __uint16_t swd;
+ __uint16_t ftw;
+ __uint16_t fop;
+ __uint64_t rip;
+ __uint64_t rdp;
+ __uint32_t mxcsr;
+ __uint32_t mxcr_mask;
+ struct _libc_fpxreg _st[8];
+ struct _libc_xmmreg _xmm[16];
+ __uint32_t __glibc_reserved1[24];
+};
+
+
+
+#line 130 "/usr/include/x86_64-linux-gnu/sys/ucontext.h"
+typedef struct _libc_fpstate *fpregset_t;
+
+
+
+#line 133 "/usr/include/x86_64-linux-gnu/sys/ucontext.h"
+typedef struct
+ {
+ gregset_t gregs;
+
+ fpregset_t fpregs;
+ __extension__ unsigned long long __reserved1 [8];
+}
+#line 139 "/usr/include/x86_64-linux-gnu/sys/ucontext.h"
+mcontext_t;
+
+
+
+#line 142 "/usr/include/x86_64-linux-gnu/sys/ucontext.h"
+typedef struct ucontext_t
+ {
+ unsigned long int uc_flags;
+ struct ucontext_t *uc_link;
+ stack_t uc_stack;
+ mcontext_t uc_mcontext;
+ sigset_t uc_sigmask;
+ struct _libc_fpstate __fpregs_mem;
+ __extension__ unsigned long long int __ssp[4];
+ }
+#line 151 "/usr/include/x86_64-linux-gnu/sys/ucontext.h"
+ucontext_t;
+
+#line 152 "/usr/include/x86_64-linux-gnu/sys/ucontext.h"
+
+
+
+
+
+
+
+extern int siginterrupt (int __sig, int __interrupt) __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__deprecated__ ("Use sigaction with SA_RESTART instead")));
+
+
+#line 327 "/usr/include/signal.h"
+enum
+{
+ SS_ONSTACK = 1,
+
+ SS_DISABLE
+
+};
+
+#line 34 "/usr/include/x86_64-linux-gnu/bits/ss_flags.h"
+
+
+
+extern int sigaltstack (const stack_t *__restrict __ss,
+ stack_t *__restrict __oss) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+#line 339 "/usr/include/signal.h"
+struct sigstack
+ {
+ void *ss_sp;
+ int ss_onstack;
+ };
+
+#line 28 "/usr/include/x86_64-linux-gnu/bits/types/struct_sigstack.h"
+
+
+
+
+
+
+
+extern int sigstack (struct sigstack *__ss, struct sigstack *__oss)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__deprecated__));
+
+#line 349 "/usr/include/signal.h"
+extern int pthread_sigmask (int __how,
+ const __sigset_t *__restrict __newmask,
+ __sigset_t *__restrict __oldmask)__attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 36 "/usr/include/x86_64-linux-gnu/bits/sigthread.h"
+extern int pthread_kill (pthread_t __threadid, int __signo) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 37 "/usr/include/x86_64-linux-gnu/bits/sigthread.h"
+
+
+
+
+
+
+extern int __libc_current_sigrtmin (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+#line 385 "/usr/include/signal.h"
+extern int __libc_current_sigrtmax (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+#line 391 "/usr/include/signal.h"
+
+
+
+
+
+
+typedef enum
+{
+ P_ALL,
+ P_PID,
+ P_PGID,
+ P_PIDFD,
+
+}
+#line 12 "/usr/include/x86_64-linux-gnu/bits/types/idtype_t.h"
+idtype_t;
+
+#line 13 "/usr/include/x86_64-linux-gnu/bits/types/idtype_t.h"
+extern __pid_t wait (int *__stat_loc);
+
+#line 84 "/usr/include/x86_64-linux-gnu/sys/wait.h"
+extern __pid_t waitpid (__pid_t __pid, int *__stat_loc, int __options);
+
+#line 107 "/usr/include/x86_64-linux-gnu/sys/wait.h"
+extern int waitid (idtype_t __idtype, __id_t __id, siginfo_t *__infop,
+ int __options);
+
+
+
+
+
+
+
+#line 135 "/usr/include/x86_64-linux-gnu/sys/wait.h"
+struct rusage;
+
+
+
+
+
+
+
+
+#line 143 "/usr/include/x86_64-linux-gnu/sys/wait.h"
+extern __pid_t wait3 (int *__stat_loc, int __options,
+ struct rusage * __usage) __attribute__ ((__nothrow__));
+
+#line 145 "/usr/include/x86_64-linux-gnu/sys/wait.h"
+extern __pid_t wait4 (__pid_t __pid, int *__stat_loc, int __options,
+ struct rusage *__usage) __attribute__ ((__nothrow__));
+
+#line 161 "/usr/include/x86_64-linux-gnu/sys/wait.h"
+
+
+typedef struct
+ {
+ size_t gl_pathc;
+ char **gl_pathv;
+ size_t gl_offs;
+ int gl_flags;
+
+
+
+ void (*gl_closedir) (void *);
+
+
+
+ void *(*gl_readdir) (void *);
+
+ void *(*gl_opendir) (const char *);
+
+
+
+
+ int (*gl_lstat) (const char *__restrict, void *__restrict);
+ int (*gl_stat) (const char *__restrict, void *__restrict);
+
+ }
+#line 105 "/usr/include/glob.h"
+glob_t;
+
+#line 106 "/usr/include/glob.h"
+extern int glob (const char *__restrict __pattern, int __flags,
+ int (*__errfunc) (const char *, int),
+ glob_t *__restrict __pglob) __attribute__ ((__nothrow__));
+
+
+
+#line 151 "/usr/include/glob.h"
+extern void globfree (glob_t *__pglob) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 152 "/usr/include/glob.h"
+
+
+
+struct stat
+ {
+
+
+
+ __dev_t st_dev;
+
+
+
+
+ __ino_t st_ino;
+
+
+
+
+
+
+
+ __nlink_t st_nlink;
+ __mode_t st_mode;
+
+ __uid_t st_uid;
+ __gid_t st_gid;
+
+ int __pad0;
+
+ __dev_t st_rdev;
+
+
+
+
+ __off_t st_size;
+
+
+
+ __blksize_t st_blksize;
+
+ __blkcnt_t st_blocks;
+ struct timespec st_atim;
+ struct timespec st_mtim;
+ struct timespec st_ctim;
+ __syscall_slong_t __glibc_reserved[3];
+ };
+
+#line 100 "/usr/include/x86_64-linux-gnu/bits/struct_stat.h"
+extern int stat (const char *__restrict __file,
+ struct stat *__restrict __buf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+#line 210 "/usr/include/x86_64-linux-gnu/sys/stat.h"
+extern int fstat (int __fd, struct stat *__buf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+#line 211 "/usr/include/x86_64-linux-gnu/sys/stat.h"
+extern int fstatat (int __fd, const char *__restrict __file,
+ struct stat *__restrict __buf, int __flag)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3)));
+
+#line 267 "/usr/include/x86_64-linux-gnu/sys/stat.h"
+extern int lstat (const char *__restrict __file,
+ struct stat *__restrict __buf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 315 "/usr/include/x86_64-linux-gnu/sys/stat.h"
+extern int chmod (const char *__file, __mode_t __mode)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+#line 359 "/usr/include/x86_64-linux-gnu/sys/stat.h"
+extern int lchmod (const char *__file, __mode_t __mode)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+#line 365 "/usr/include/x86_64-linux-gnu/sys/stat.h"
+extern int fchmod (int __fd, __mode_t __mode) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+#line 371 "/usr/include/x86_64-linux-gnu/sys/stat.h"
+extern int fchmodat (int __fd, const char *__file, __mode_t __mode,
+ int __flag)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))) ;
+
+
+
+
+
+
+
+#line 380 "/usr/include/x86_64-linux-gnu/sys/stat.h"
+extern __mode_t umask (__mode_t __mask) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 381 "/usr/include/x86_64-linux-gnu/sys/stat.h"
+extern int mkdir (const char *__path, __mode_t __mode)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+#line 396 "/usr/include/x86_64-linux-gnu/sys/stat.h"
+extern int mkdirat (int __fd, const char *__path, __mode_t __mode)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+
+
+
+
+
+#line 404 "/usr/include/x86_64-linux-gnu/sys/stat.h"
+extern int mknod (const char *__path, __mode_t __mode, __dev_t __dev)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+#line 411 "/usr/include/x86_64-linux-gnu/sys/stat.h"
+extern int mknodat (int __fd, const char *__path, __mode_t __mode,
+ __dev_t __dev) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+
+
+
+
+#line 418 "/usr/include/x86_64-linux-gnu/sys/stat.h"
+extern int mkfifo (const char *__path, __mode_t __mode)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+#line 425 "/usr/include/x86_64-linux-gnu/sys/stat.h"
+extern int mkfifoat (int __fd, const char *__path, __mode_t __mode)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+
+
+
+
+
+#line 433 "/usr/include/x86_64-linux-gnu/sys/stat.h"
+extern int utimensat (int __fd, const char *__path,
+ const struct timespec __times[2],
+ int __flags)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+#line 437 "/usr/include/x86_64-linux-gnu/sys/stat.h"
+extern int futimens (int __fd, const struct timespec __times[2]) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 453 "/usr/include/x86_64-linux-gnu/sys/stat.h"
+
+
+
+
+
+
+
+enum
+{
+ FTW_F,
+
+ FTW_D,
+
+ FTW_DNR,
+
+ FTW_NS,
+
+
+
+
+ FTW_SL,
+};
+
+#line 61 "/usr/include/ftw.h"
+typedef int (*__ftw_func_t) (const char *__filename,
+ const struct stat *__status, int __flag);
+
+#line 116 "/usr/include/ftw.h"
+extern int ftw (const char *__dir, __ftw_func_t __func, int __descriptors)
+ __attribute__ ((__nonnull__ (1, 2)));
+
+#line 138 "/usr/include/ftw.h"
+
+
+
+static int str_ends_with(char *str, char *suffix) {
+ size_t str_len = strlen(str);
+ size_t suf_len = strlen(suffix);
+ if (str_len < suf_len) return 0;
+ return !strcmp(str + (str_len - suf_len), suffix);
+}
+
+
+#line 15 "main.c"
+char **_obj_files;
+
+#line 16 "main.c"
+size_t _n_object_files;
+
+#line 17 "main.c"
+int walker(const char *path, const struct stat *sb, int typeflag) {
+ if (typeflag !=
+ FTW_F
+ ) return 0;
+ if (str_ends_with(strdup(path), ".o")) {
+ _n_object_files++;
+ _obj_files = realloc(_obj_files, _n_object_files * sizeof(_obj_files[0]));
+ _obj_files[_n_object_files - 1] = strdup(path);
+ }
+ return 0;
+}
+
+#line 26 "main.c"
+char **get_object_files(char *dir, size_t *n_object_files) {
+ _obj_files = 0;
+ _n_object_files = 0;
+ ftw(dir, walker, 32);
+ *n_object_files = _n_object_files;
+ return _obj_files;
+}
+
+
+
+#line 35 "main.c"
+char **ARGV;
+
+#line 36 "main.c"
+int ARGC;
+
+#line 37 "main.c"
+char *TMPDIR;
+
+#line 38 "main.c"
+int GAMMA_TO_C;
+
+
+#line 40 "main.c"
+int main(int argc, char **argv) {
+ if (argc <= 1) {
+ fprintf(
+ stderr
+ , "Usage: ./gc [cc] [cc args]\n");
+ return 1;
+ }
+
+ ARGV = calloc(argc, sizeof(argv[0]));
+ memcpy(ARGV, argv+1, argc * sizeof(argv[0]));
+ ARGC = argc - 1;
+
+
+
+ TMPDIR = calloc(128, sizeof(char));
+ strcpy(TMPDIR, "/tmp/gamma.XXXXXX");
+
+ ((void) sizeof ((
+ mkdtemp(TMPDIR)
+ ) ? 1 : 0), __extension__ ({ if (
+ mkdtemp(TMPDIR)
+ ) ; else __assert_fail (
+ "mkdtemp(TMPDIR)"
+ , "main.c", 54, __extension__ __PRETTY_FUNCTION__); }))
+ ;
+
+
+
+ for (int i = 0; i < ARGC; i++)
+ if (!strcmp(ARGV[i], "--gamma-to-c"))
+ GAMMA_TO_C = 1;
+
+
+
+
+ for (int i = 0; i < ARGC; i++) {
+ if (!strcmp(ARGV[i], "-c")) {
+
+ char *c_file = 0;
+ char *o_file = 0;
+ for (int j = 0; j < ARGC; j++) {
+ if (str_ends_with(ARGV[j], ".c")) c_file = ARGV[j];
+ if (str_ends_with(ARGV[j], ".o")) o_file = ARGV[j];
+ }
+
+ ((void) sizeof ((
+ c_file
+ ) ? 1 : 0), __extension__ ({ if (
+ c_file
+ ) ; else __assert_fail (
+ "c_file"
+ , "main.c", 74, __extension__ __PRETTY_FUNCTION__); }))
+ ;
+ if (!o_file) {
+ o_file = strdup(ARGV[i+1]);
+ o_file[strlen(o_file)-1] = 'o';
+ }
+ write_fakeobj(c_file, o_file, 0);
+ goto cleanup;
+ }
+ }
+
+
+ for (int i = 0; i < ARGC; i++) {
+ if (!str_ends_with(ARGV[i], ".a")) continue;
+
+ char *dir = calloc(256, sizeof(char));
+ sprintf(dir, "%s/%d.unar", TMPDIR, i);
+ mkdir(dir, 0777);
+
+
+ char *subargv[] = {"ar", "-x", ARGV[i], "--output", dir,
+ ((void *)0)
+ };
+ int pid = fork();
+ if (!pid) execvp(subargv[0], subargv);
+ waitpid(pid, 0, 0);
+
+
+ size_t n_object_files;
+ char **object_files = get_object_files(dir, &n_object_files);
+
+ ((void) sizeof ((
+ n_object_files > 0
+ ) ? 1 : 0), __extension__ ({ if (
+ n_object_files > 0
+ ) ; else __assert_fail (
+ "n_object_files > 0"
+ , "main.c", 101, __extension__ __PRETTY_FUNCTION__); }))
+ ;
+ ARGV = realloc(ARGV, (ARGC + n_object_files + 1) * sizeof(ARGV[0]));
+ for (size_t j = i; j <= ARGC; j++)
+ ARGV[j + n_object_files - 1] = ARGV[j];
+ for (size_t j = 0; j < n_object_files; j++)
+ ARGV[i+j] = object_files[j];
+ ARGC += n_object_files - 1;
+ }
+
+
+ int any_sources = 0;
+ for (int i = 0; i < ARGC; i++) {
+ if (!str_ends_with(ARGV[i], ".c")) continue;
+ char *obj_dst = calloc(256, sizeof(char));
+ sprintf(obj_dst, "%s/%d.tmp.o", TMPDIR, i);
+ write_fakeobj(ARGV[i], obj_dst, i);
+ ARGV[i] = obj_dst;
+ }
+
+
+ struct chunked_file *files = 0;
+
+ char ***fake_argvs = calloc(ARGC+1, sizeof(ARGV[0]));
+ for (int i = 0; i < ARGC; i++) {
+ if (!str_ends_with(ARGV[i], ".o")) continue;
+ char *fakeobj_c_dst = calloc(256, sizeof(char));
+ sprintf(fakeobj_c_dst, "%s/%u.unfake.c", TMPDIR, i);
+ fake_argvs[i] = read_fakeobj(ARGV[i], fakeobj_c_dst);
+ if (fake_argvs[i]) {
+ int fake_argc = 0;
+ while (fake_argvs[i][fake_argc]) fake_argc++;
+ fake_argvs[i][fake_argc++] = "-c";
+ fake_argvs[i][fake_argc++] = "-o";
+ char *fakeobj_o_dst = calloc(256, sizeof(char));
+ sprintf(fakeobj_o_dst, "%s/%u.unfake.o", TMPDIR, i);
+ fake_argvs[i][fake_argc++] = fakeobj_o_dst;
+
+
+ char *c_path = calloc(256, sizeof(char));
+ sprintf(c_path, "%s/%d.mangled.c", TMPDIR, i);
+ fake_argvs[i][fake_argc++] = c_path;
+
+ ARGV[i] = fakeobj_o_dst;
+ struct chunked_file *file = chunk(fakeobj_c_dst);
+ file->id = i;
+ file->next = files;
+ files = file;
+ }
+ }
+
+
+ solve(files);
+
+
+ for (struct chunked_file *file = files; file; file = file->next) {
+ char *c_path = calloc(256, sizeof(char));
+ sprintf(c_path, "%s/%ld.mangled.c", TMPDIR, file->id);
+ FILE *c_file = fopen(c_path, "w");
+
+ ((void) sizeof ((
+ c_file
+ ) ? 1 : 0), __extension__ ({ if (
+ c_file
+ ) ; else __assert_fail (
+ "c_file"
+ , "main.c", 159, __extension__ __PRETTY_FUNCTION__); }))
+ ;
+
+ char *dst_path = ARGV[file->id];
+ for (struct chunk *chunk = file->chunks; chunk; chunk = chunk->next) {
+ if (chunk->defining_call) {
+ struct vector_other__other__comma_struct_other_call_other__star_ instantiations
+ = chunk->defining_call->name->instantiations;
+ for (size_t i = 0; i < instantiations.count; i++) {
+ struct call *instantiation = instantiations.data[i];
+ if (instantiation->n_args != chunk->defining_call->n_args) continue;
+
+ for (size_t j = 0; j < instantiation->n_args; j++) {
+ if (!(chunk->defining_call->args[j].is_concrete)) continue;
+ if (chunk->defining_call->args[j].string
+ != instantiation->args[j].string)
+ goto bad_instantiation;
+ }
+ print_chunk(chunk, instantiation, c_file);
+ bad_instantiation: continue;
+ }
+ } else {
+ print_chunk(chunk, 0, c_file);
+ }
+ }
+ fflush(c_file);
+ fclose(c_file);
+
+ if (GAMMA_TO_C) {
+
+ mkdir("c.out", 0755);
+ char out_name[128] = {0};
+ sprintf(out_name, "c.out/%ld.c", file->id);
+ copy_file(out_name, c_path);
+ } else {
+
+ ((void) sizeof ((
+ fake_argvs[file->id]
+ ) ? 1 : 0), __extension__ ({ if (
+ fake_argvs[file->id]
+ ) ; else __assert_fail (
+ "fake_argvs[file->id]"
+ , "main.c", 193, __extension__ __PRETTY_FUNCTION__); }))
+ ;
+ int pid = fork();
+ if (!pid) execvp(fake_argvs[file->id][0], fake_argvs[file->id]);
+ waitpid(pid, 0, 0);
+ }
+ }
+
+ if (GAMMA_TO_C) goto cleanup;
+
+
+ execvp(ARGV[0], ARGV);
+
+cleanup:
+ char *rm_argv[] = {"rm", "-rf", TMPDIR,
+ ((void *)0)
+ };
+ execvp(rm_argv[0], rm_argv);
+ return 0;
+}
+
+#line 210 "main.c"
diff --git a/c_version/7.c b/c_version/7.c
new file mode 100755
index 0000000..9a5ba7e
--- /dev/null
+++ b/c_version/7.c
@@ -0,0 +1,3512 @@
+
+#line 1 "/tmp/gamma.XksNqZ/7.unfake.c"
+
+
+
+
+
+
+extern void __assert_fail (const char *__assertion, const char *__file,
+ unsigned int __line, const char *__function)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+#line 74 "/usr/include/assert.h"
+extern void __assert_perror_fail (int __errnum, const char *__file,
+ unsigned int __line, const char *__function)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+
+#line 81 "/usr/include/assert.h"
+extern void __assert (const char *__assertion, const char *__file, int __line)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+#line 86 "/usr/include/assert.h"
+typedef long int ptrdiff_t;
+
+#line 146 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h"
+typedef long unsigned int size_t;
+
+#line 215 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h"
+typedef int wchar_t;
+
+#line 330 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h"
+typedef struct {
+ long long __max_align_ll __attribute__((__aligned__(__alignof__(long long))));
+ long double __max_align_ld __attribute__((__aligned__(__alignof__(long double))));
+}
+#line 435 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h"
+max_align_t;
+
+#line 436 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h"
+
+
+typedef unsigned char __u_char;
+
+#line 32 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned short int __u_short;
+
+#line 33 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __u_int;
+
+#line 34 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __u_long;
+
+
+
+#line 37 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef signed char __int8_t;
+
+#line 38 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned char __uint8_t;
+
+#line 39 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef signed short int __int16_t;
+
+#line 40 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned short int __uint16_t;
+
+#line 41 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef signed int __int32_t;
+
+#line 42 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __uint32_t;
+
+
+#line 44 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef signed long int __int64_t;
+
+#line 45 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __uint64_t;
+
+
+
+
+
+
+
+#line 52 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __int8_t __int_least8_t;
+
+#line 53 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __uint8_t __uint_least8_t;
+
+#line 54 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __int16_t __int_least16_t;
+
+#line 55 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __uint16_t __uint_least16_t;
+
+#line 56 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __int32_t __int_least32_t;
+
+#line 57 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __uint32_t __uint_least32_t;
+
+#line 58 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __int64_t __int_least64_t;
+
+#line 59 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __uint64_t __uint_least64_t;
+
+
+
+
+#line 63 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __quad_t;
+
+#line 64 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __u_quad_t;
+
+
+
+
+
+
+
+
+#line 72 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __intmax_t;
+
+#line 73 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __uintmax_t;
+
+#line 74 "/usr/include/x86_64-linux-gnu/bits/types.h"
+
+
+typedef unsigned long int __dev_t;
+
+#line 146 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __uid_t;
+
+#line 147 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __gid_t;
+
+#line 148 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __ino_t;
+
+#line 149 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __ino64_t;
+
+#line 150 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __mode_t;
+
+#line 151 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __nlink_t;
+
+#line 152 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __off_t;
+
+#line 153 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __off64_t;
+
+#line 154 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef int __pid_t;
+
+#line 155 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef struct { int __val[2]; }
+#line 155 "/usr/include/x86_64-linux-gnu/bits/types.h"
+__fsid_t;
+
+#line 156 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __clock_t;
+
+#line 157 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __rlim_t;
+
+#line 158 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __rlim64_t;
+
+#line 159 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __id_t;
+
+#line 160 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __time_t;
+
+#line 161 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __useconds_t;
+
+#line 162 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __suseconds_t;
+
+#line 163 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __suseconds64_t;
+
+
+#line 165 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef int __daddr_t;
+
+#line 166 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef int __key_t;
+
+
+
+#line 169 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef int __clockid_t;
+
+
+
+#line 172 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef void * __timer_t;
+
+
+
+#line 175 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __blksize_t;
+
+
+
+
+
+#line 180 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __blkcnt_t;
+
+#line 181 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __blkcnt64_t;
+
+
+
+#line 184 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __fsblkcnt_t;
+
+#line 185 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __fsblkcnt64_t;
+
+
+
+#line 188 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __fsfilcnt_t;
+
+#line 189 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __fsfilcnt64_t;
+
+
+
+#line 192 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __fsword_t;
+
+
+#line 194 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __ssize_t;
+
+
+
+#line 197 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __syscall_slong_t;
+
+
+#line 199 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __syscall_ulong_t;
+
+
+
+
+#line 203 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __off64_t __loff_t;
+
+#line 204 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef char *__caddr_t;
+
+
+
+#line 207 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __intptr_t;
+
+
+
+#line 210 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __socklen_t;
+
+
+
+
+
+#line 215 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef int __sig_atomic_t;
+
+#line 216 "/usr/include/x86_64-linux-gnu/bits/types.h"
+
+
+
+
+typedef __int8_t int8_t;
+
+#line 25 "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h"
+typedef __int16_t int16_t;
+
+#line 26 "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h"
+typedef __int32_t int32_t;
+
+#line 27 "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h"
+typedef __int64_t int64_t;
+
+#line 28 "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h"
+
+
+typedef __uint8_t uint8_t;
+
+#line 25 "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h"
+typedef __uint16_t uint16_t;
+
+#line 26 "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h"
+typedef __uint32_t uint32_t;
+
+#line 27 "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h"
+typedef __uint64_t uint64_t;
+
+#line 28 "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h"
+
+
+
+
+
+typedef __int_least8_t int_least8_t;
+
+#line 44 "/usr/include/stdint.h"
+typedef __int_least16_t int_least16_t;
+
+#line 45 "/usr/include/stdint.h"
+typedef __int_least32_t int_least32_t;
+
+#line 46 "/usr/include/stdint.h"
+typedef __int_least64_t int_least64_t;
+
+
+
+#line 49 "/usr/include/stdint.h"
+typedef __uint_least8_t uint_least8_t;
+
+#line 50 "/usr/include/stdint.h"
+typedef __uint_least16_t uint_least16_t;
+
+#line 51 "/usr/include/stdint.h"
+typedef __uint_least32_t uint_least32_t;
+
+#line 52 "/usr/include/stdint.h"
+typedef __uint_least64_t uint_least64_t;
+
+
+
+
+
+
+#line 58 "/usr/include/stdint.h"
+typedef signed char int_fast8_t;
+
+
+#line 60 "/usr/include/stdint.h"
+typedef long int int_fast16_t;
+
+#line 61 "/usr/include/stdint.h"
+typedef long int int_fast32_t;
+
+#line 62 "/usr/include/stdint.h"
+typedef long int int_fast64_t;
+
+#line 63 "/usr/include/stdint.h"
+typedef unsigned char uint_fast8_t;
+
+
+#line 73 "/usr/include/stdint.h"
+typedef unsigned long int uint_fast16_t;
+
+#line 74 "/usr/include/stdint.h"
+typedef unsigned long int uint_fast32_t;
+
+#line 75 "/usr/include/stdint.h"
+typedef unsigned long int uint_fast64_t;
+
+#line 76 "/usr/include/stdint.h"
+typedef long int intptr_t;
+
+
+
+#line 90 "/usr/include/stdint.h"
+typedef unsigned long int uintptr_t;
+
+#line 91 "/usr/include/stdint.h"
+typedef __intmax_t intmax_t;
+
+#line 102 "/usr/include/stdint.h"
+typedef __uintmax_t uintmax_t;
+
+#line 103 "/usr/include/stdint.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct
+ {
+ int quot;
+ int rem;
+ }
+#line 63 "/usr/include/stdlib.h"
+div_t;
+
+
+
+
+#line 67 "/usr/include/stdlib.h"
+typedef struct
+ {
+ long int quot;
+ long int rem;
+ }
+#line 71 "/usr/include/stdlib.h"
+ldiv_t;
+
+
+
+
+
+
+#line 77 "/usr/include/stdlib.h"
+__extension__ typedef struct
+ {
+ long long int quot;
+ long long int rem;
+ }
+#line 81 "/usr/include/stdlib.h"
+lldiv_t;
+
+#line 82 "/usr/include/stdlib.h"
+extern size_t __ctype_get_mb_cur_max (void) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+#line 102 "/usr/include/stdlib.h"
+extern double atof (const char *__nptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+#line 105 "/usr/include/stdlib.h"
+extern int atoi (const char *__nptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+#line 108 "/usr/include/stdlib.h"
+extern long int atol (const char *__nptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+#line 113 "/usr/include/stdlib.h"
+__extension__ extern long long int atoll (const char *__nptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+#line 118 "/usr/include/stdlib.h"
+extern double strtod (const char *__restrict __nptr,
+ char **__restrict __endptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+#line 124 "/usr/include/stdlib.h"
+extern float strtof (const char *__restrict __nptr,
+ char **__restrict __endptr) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+#line 127 "/usr/include/stdlib.h"
+extern long double strtold (const char *__restrict __nptr,
+ char **__restrict __endptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 130 "/usr/include/stdlib.h"
+extern long int strtol (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+#line 181 "/usr/include/stdlib.h"
+extern unsigned long int strtoul (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+#line 187 "/usr/include/stdlib.h"
+__extension__
+extern long long int strtoq (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+#line 192 "/usr/include/stdlib.h"
+__extension__
+extern unsigned long long int strtouq (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+#line 200 "/usr/include/stdlib.h"
+__extension__
+extern long long int strtoll (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+#line 205 "/usr/include/stdlib.h"
+__extension__
+extern unsigned long long int strtoull (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 209 "/usr/include/stdlib.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+__attribute__ ((__nothrow__ , __leaf__)) atoi (const char *__nptr)
+{
+ return (int) strtol (__nptr, (char **) ((void *)0), 10);
+}
+
+#line 366 "/usr/include/stdlib.h"
+extern __inline __attribute__ ((__gnu_inline__)) long int
+__attribute__ ((__nothrow__ , __leaf__)) atol (const char *__nptr)
+{
+ return strtol (__nptr, (char **) ((void *)0), 10);
+}
+
+
+
+#line 373 "/usr/include/stdlib.h"
+__extension__ extern __inline __attribute__ ((__gnu_inline__)) long long int
+__attribute__ ((__nothrow__ , __leaf__)) atoll (const char *__nptr)
+{
+ return strtoll (__nptr, (char **) ((void *)0), 10);
+}
+
+#line 378 "/usr/include/stdlib.h"
+extern char *l64a (long int __n) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+#line 389 "/usr/include/stdlib.h"
+extern long int a64l (const char *__s)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+
+#line 395 "/usr/include/stdlib.h"
+
+
+
+
+
+
+typedef __u_char u_char;
+
+#line 34 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __u_short u_short;
+
+#line 35 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __u_int u_int;
+
+#line 36 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __u_long u_long;
+
+#line 37 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __quad_t quad_t;
+
+#line 38 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __u_quad_t u_quad_t;
+
+#line 39 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __fsid_t fsid_t;
+
+
+
+#line 42 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __loff_t loff_t;
+
+
+
+
+
+#line 47 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __ino_t ino_t;
+
+#line 48 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __dev_t dev_t;
+
+
+
+
+
+#line 64 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __gid_t gid_t;
+
+
+
+
+
+#line 69 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __mode_t mode_t;
+
+
+
+
+
+#line 74 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __nlink_t nlink_t;
+
+
+
+
+
+#line 79 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __uid_t uid_t;
+
+
+
+
+
+
+#line 85 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __off_t off_t;
+
+#line 86 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __pid_t pid_t;
+
+
+
+
+
+
+#line 103 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __id_t id_t;
+
+
+
+
+
+#line 108 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __ssize_t ssize_t;
+
+
+
+
+
+
+#line 114 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __daddr_t daddr_t;
+
+#line 115 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __caddr_t caddr_t;
+
+
+
+
+
+
+#line 121 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __key_t key_t;
+
+
+
+
+
+#line 126 "/usr/include/x86_64-linux-gnu/sys/types.h"
+
+
+
+
+
+
+typedef __clock_t clock_t;
+
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/clock_t.h"
+
+
+
+
+
+
+
+typedef __clockid_t clockid_t;
+
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h"
+typedef __time_t time_t;
+
+#line 11 "/usr/include/x86_64-linux-gnu/bits/types/time_t.h"
+
+
+
+
+
+
+typedef __timer_t timer_t;
+
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/timer_t.h"
+
+
+
+typedef unsigned long int ulong;
+
+#line 149 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef unsigned short int ushort;
+
+#line 150 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef unsigned int uint;
+
+
+
+
+
+
+
+
+#line 158 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __uint8_t u_int8_t;
+
+#line 159 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __uint16_t u_int16_t;
+
+#line 160 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __uint32_t u_int32_t;
+
+#line 161 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __uint64_t u_int64_t;
+
+
+
+#line 164 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef int register_t __attribute__ ((__mode__ (__word__)));
+
+#line 165 "/usr/include/x86_64-linux-gnu/sys/types.h"
+static __inline __uint16_t
+__bswap_16 (__uint16_t __bsx)
+{
+
+ return __builtin_bswap16 (__bsx);
+
+
+
+}
+
+
+
+
+
+
+
+#line 48 "/usr/include/x86_64-linux-gnu/bits/byteswap.h"
+static __inline __uint32_t
+__bswap_32 (__uint32_t __bsx)
+{
+
+ return __builtin_bswap32 (__bsx);
+
+
+
+}
+
+#line 57 "/usr/include/x86_64-linux-gnu/bits/byteswap.h"
+__extension__ static __inline __uint64_t
+__bswap_64 (__uint64_t __bsx)
+{
+
+ return __builtin_bswap64 (__bsx);
+
+
+
+}
+
+#line 78 "/usr/include/x86_64-linux-gnu/bits/byteswap.h"
+static __inline __uint16_t
+__uint16_identity (__uint16_t __x)
+{
+ return __x;
+}
+
+
+#line 38 "/usr/include/x86_64-linux-gnu/bits/uintn-identity.h"
+static __inline __uint32_t
+__uint32_identity (__uint32_t __x)
+{
+ return __x;
+}
+
+
+#line 44 "/usr/include/x86_64-linux-gnu/bits/uintn-identity.h"
+static __inline __uint64_t
+__uint64_identity (__uint64_t __x)
+{
+ return __x;
+}
+
+#line 49 "/usr/include/x86_64-linux-gnu/bits/uintn-identity.h"
+
+
+
+
+
+
+
+
+
+
+
+typedef struct
+{
+ unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))];
+}
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h"
+__sigset_t;
+
+#line 9 "/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h"
+
+
+typedef __sigset_t sigset_t;
+
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h"
+
+
+
+
+
+
+
+
+
+
+struct timeval
+{
+
+
+
+
+ __time_t tv_sec;
+ __suseconds_t tv_usec;
+
+};
+
+#line 18 "/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h"
+
+struct timespec
+{
+
+
+
+ __time_t tv_sec;
+
+
+
+
+ __syscall_slong_t tv_nsec;
+};
+
+#line 32 "/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h"
+
+
+
+typedef __suseconds_t suseconds_t;
+
+
+
+
+
+
+#line 49 "/usr/include/x86_64-linux-gnu/sys/select.h"
+typedef long int __fd_mask;
+
+#line 50 "/usr/include/x86_64-linux-gnu/sys/select.h"
+typedef struct
+ {
+
+
+
+
+
+
+ __fd_mask __fds_bits[1024 / (8 * (int) sizeof (__fd_mask))];
+
+
+ }
+#line 70 "/usr/include/x86_64-linux-gnu/sys/select.h"
+fd_set;
+
+
+
+
+
+
+
+#line 77 "/usr/include/x86_64-linux-gnu/sys/select.h"
+typedef __fd_mask fd_mask;
+
+#line 78 "/usr/include/x86_64-linux-gnu/sys/select.h"
+
+extern int select (int __nfds, fd_set *__restrict __readfds,
+ fd_set *__restrict __writefds,
+ fd_set *__restrict __exceptfds,
+ struct timeval *__restrict __timeout);
+
+#line 106 "/usr/include/x86_64-linux-gnu/sys/select.h"
+extern int pselect (int __nfds, fd_set *__restrict __readfds,
+ fd_set *__restrict __writefds,
+ fd_set *__restrict __exceptfds,
+ const struct timespec *__restrict __timeout,
+ const __sigset_t *__restrict __sigmask);
+
+#line 132 "/usr/include/x86_64-linux-gnu/sys/select.h"
+
+
+
+
+
+
+typedef __blksize_t blksize_t;
+
+
+
+
+
+
+
+#line 192 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __blkcnt_t blkcnt_t;
+
+
+
+
+#line 196 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __fsblkcnt_t fsblkcnt_t;
+
+
+
+
+#line 200 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __fsfilcnt_t fsfilcnt_t;
+
+#line 201 "/usr/include/x86_64-linux-gnu/sys/types.h"
+
+typedef union
+{
+ __extension__ unsigned long long int __value64;
+ struct
+ {
+ unsigned int __low;
+ unsigned int __high;
+ } __value32;
+}
+#line 33 "/usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h"
+__atomic_wide_counter;
+
+#line 34 "/usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h"
+
+
+
+
+typedef struct __pthread_internal_list
+{
+ struct __pthread_internal_list *__prev;
+ struct __pthread_internal_list *__next;
+}
+#line 55 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+__pthread_list_t;
+
+
+#line 57 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+typedef struct __pthread_internal_slist
+{
+ struct __pthread_internal_slist *__next;
+}
+#line 60 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+__pthread_slist_t;
+
+#line 61 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+struct __pthread_mutex_s
+{
+ int __lock;
+ unsigned int __count;
+ int __owner;
+
+ unsigned int __nusers;
+
+
+
+ int __kind;
+
+ short __spins;
+ short __elision;
+ __pthread_list_t __list;
+};
+
+#line 54 "/usr/include/x86_64-linux-gnu/bits/struct_mutex.h"
+struct __pthread_rwlock_arch_t
+{
+ unsigned int __readers;
+ unsigned int __writers;
+ unsigned int __wrphase_futex;
+ unsigned int __writers_futex;
+ unsigned int __pad3;
+ unsigned int __pad4;
+
+ int __cur_writer;
+ int __shared;
+ signed char __rwelision;
+
+
+
+
+ unsigned char __pad1[7];
+
+
+ unsigned long int __pad2;
+
+
+ unsigned int __flags;
+};
+
+#line 56 "/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h"
+
+
+
+
+struct __pthread_cond_s
+{
+ __atomic_wide_counter __wseq;
+ __atomic_wide_counter __g1_start;
+ unsigned int __g_refs[2] ;
+ unsigned int __g_size[2];
+ unsigned int __g1_orig_size;
+ unsigned int __wrefs;
+ unsigned int __g_signals[2];
+};
+
+
+#line 105 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+typedef unsigned int __tss_t;
+
+#line 106 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+typedef unsigned long int __thrd_t;
+
+
+#line 108 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+typedef struct
+{
+ int __data ;
+}
+#line 111 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+__once_flag;
+
+#line 112 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+
+
+
+typedef unsigned long int pthread_t;
+
+
+
+
+
+#line 32 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ char __size[4];
+ int __align;
+}
+#line 36 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_mutexattr_t;
+
+
+
+
+
+#line 41 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ char __size[4];
+ int __align;
+}
+#line 45 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_condattr_t;
+
+
+
+
+#line 49 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef unsigned int pthread_key_t;
+
+
+
+
+#line 53 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef int pthread_once_t;
+
+
+
+#line 56 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+union pthread_attr_t
+{
+ char __size[56];
+ long int __align;
+};
+
+
+#line 62 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union pthread_attr_t pthread_attr_t;
+
+
+
+
+
+#line 67 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ struct __pthread_mutex_s __data;
+ char __size[40];
+ long int __align;
+}
+#line 72 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_mutex_t;
+
+
+
+#line 75 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ struct __pthread_cond_s __data;
+ char __size[48];
+ __extension__ long long int __align;
+}
+#line 80 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_cond_t;
+
+
+
+
+
+
+#line 86 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ struct __pthread_rwlock_arch_t __data;
+ char __size[56];
+ long int __align;
+}
+#line 91 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_rwlock_t;
+
+
+#line 93 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ char __size[8];
+ long int __align;
+}
+#line 97 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_rwlockattr_t;
+
+
+
+
+
+
+#line 103 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef volatile int pthread_spinlock_t;
+
+
+
+
+
+#line 108 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ char __size[32];
+ long int __align;
+}
+#line 112 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_barrier_t;
+
+
+#line 114 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ char __size[4];
+ int __align;
+}
+#line 118 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_barrierattr_t;
+
+#line 119 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+
+
+
+
+
+
+
+
+
+extern long int random (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 405 "/usr/include/stdlib.h"
+extern void srandom (unsigned int __seed) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+#line 411 "/usr/include/stdlib.h"
+extern char *initstate (unsigned int __seed, char *__statebuf,
+ size_t __statelen) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+
+
+#line 416 "/usr/include/stdlib.h"
+extern char *setstate (char *__statebuf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+
+#line 424 "/usr/include/stdlib.h"
+struct random_data
+ {
+ int32_t *fptr;
+ int32_t *rptr;
+ int32_t *state;
+ int rand_type;
+ int rand_deg;
+ int rand_sep;
+ int32_t *end_ptr;
+ };
+
+
+#line 435 "/usr/include/stdlib.h"
+extern int random_r (struct random_data *__restrict __buf,
+ int32_t *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 438 "/usr/include/stdlib.h"
+extern int srandom_r (unsigned int __seed, struct random_data *__buf)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+#line 441 "/usr/include/stdlib.h"
+extern int initstate_r (unsigned int __seed, char *__restrict __statebuf,
+ size_t __statelen,
+ struct random_data *__restrict __buf)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 4)));
+
+
+#line 446 "/usr/include/stdlib.h"
+extern int setstate_r (char *__restrict __statebuf,
+ struct random_data *__restrict __buf)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+
+#line 454 "/usr/include/stdlib.h"
+extern int rand (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+#line 456 "/usr/include/stdlib.h"
+extern void srand (unsigned int __seed) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 460 "/usr/include/stdlib.h"
+extern int rand_r (unsigned int *__seed) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+
+#line 468 "/usr/include/stdlib.h"
+extern double drand48 (void) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 469 "/usr/include/stdlib.h"
+extern double erand48 (unsigned short int __xsubi[3]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+#line 472 "/usr/include/stdlib.h"
+extern long int lrand48 (void) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 473 "/usr/include/stdlib.h"
+extern long int nrand48 (unsigned short int __xsubi[3])
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+#line 477 "/usr/include/stdlib.h"
+extern long int mrand48 (void) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 478 "/usr/include/stdlib.h"
+extern long int jrand48 (unsigned short int __xsubi[3])
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+#line 482 "/usr/include/stdlib.h"
+extern void srand48 (long int __seedval) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 483 "/usr/include/stdlib.h"
+extern unsigned short int *seed48 (unsigned short int __seed16v[3])
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 485 "/usr/include/stdlib.h"
+extern void lcong48 (unsigned short int __param[7]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+#line 491 "/usr/include/stdlib.h"
+struct drand48_data
+ {
+ unsigned short int __x[3];
+ unsigned short int __old_x[3];
+ unsigned short int __c;
+ unsigned short int __init;
+ __extension__ unsigned long long int __a;
+
+ };
+
+
+
+#line 502 "/usr/include/stdlib.h"
+extern int drand48_r (struct drand48_data *__restrict __buffer,
+ double *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 504 "/usr/include/stdlib.h"
+extern int erand48_r (unsigned short int __xsubi[3],
+ struct drand48_data *__restrict __buffer,
+ double *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 509 "/usr/include/stdlib.h"
+extern int lrand48_r (struct drand48_data *__restrict __buffer,
+ long int *__restrict __result)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 512 "/usr/include/stdlib.h"
+extern int nrand48_r (unsigned short int __xsubi[3],
+ struct drand48_data *__restrict __buffer,
+ long int *__restrict __result)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 518 "/usr/include/stdlib.h"
+extern int mrand48_r (struct drand48_data *__restrict __buffer,
+ long int *__restrict __result)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 521 "/usr/include/stdlib.h"
+extern int jrand48_r (unsigned short int __xsubi[3],
+ struct drand48_data *__restrict __buffer,
+ long int *__restrict __result)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 527 "/usr/include/stdlib.h"
+extern int srand48_r (long int __seedval, struct drand48_data *__buffer)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+#line 530 "/usr/include/stdlib.h"
+extern int seed48_r (unsigned short int __seed16v[3],
+ struct drand48_data *__buffer) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 533 "/usr/include/stdlib.h"
+extern int lcong48_r (unsigned short int __param[7],
+ struct drand48_data *__buffer)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 538 "/usr/include/stdlib.h"
+extern __uint32_t arc4random (void)
+ __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+#line 542 "/usr/include/stdlib.h"
+extern void arc4random_buf (void *__buf, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+#line 547 "/usr/include/stdlib.h"
+extern __uint32_t arc4random_uniform (__uint32_t __upper_bound)
+ __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+#line 553 "/usr/include/stdlib.h"
+extern void *malloc (size_t __size) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__))
+ __attribute__ ((__alloc_size__ (1))) ;
+
+
+#line 556 "/usr/include/stdlib.h"
+extern void *calloc (size_t __nmemb, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__alloc_size__ (1, 2))) ;
+
+
+
+
+
+
+
+#line 564 "/usr/include/stdlib.h"
+extern void *realloc (void *__ptr, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)) __attribute__ ((__alloc_size__ (2)));
+
+
+
+#line 568 "/usr/include/stdlib.h"
+extern void free (void *__ptr) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+
+#line 576 "/usr/include/stdlib.h"
+extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__))
+ __attribute__ ((__alloc_size__ (2, 3)))
+ __attribute__ ((__malloc__ (__builtin_free, 1)));
+
+
+
+#line 582 "/usr/include/stdlib.h"
+extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__ (reallocarray, 1)));
+
+
+
+
+#line 587 "/usr/include/stdlib.h"
+
+
+
+
+
+
+
+extern void *alloca (size_t __size) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+#line 39 "/usr/include/alloca.h"
+
+
+
+
+
+extern void *valloc (size_t __size) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__))
+ __attribute__ ((__alloc_size__ (1))) ;
+
+
+
+
+
+#line 599 "/usr/include/stdlib.h"
+extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+
+#line 605 "/usr/include/stdlib.h"
+extern void *aligned_alloc (size_t __alignment, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__alloc_align__ (1)))
+ __attribute__ ((__alloc_size__ (2))) ;
+
+
+
+
+#line 611 "/usr/include/stdlib.h"
+extern void abort (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+#line 615 "/usr/include/stdlib.h"
+extern int atexit (void (*__func) (void)) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+
+#line 623 "/usr/include/stdlib.h"
+extern int at_quick_exit (void (*__func) (void)) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+#line 630 "/usr/include/stdlib.h"
+extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+#line 637 "/usr/include/stdlib.h"
+extern void exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+
+
+#line 643 "/usr/include/stdlib.h"
+extern void quick_exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+
+
+#line 649 "/usr/include/stdlib.h"
+extern void _Exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+
+#line 654 "/usr/include/stdlib.h"
+extern char *getenv (const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+#line 655 "/usr/include/stdlib.h"
+extern int putenv (char *__string) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+#line 673 "/usr/include/stdlib.h"
+extern int setenv (const char *__name, const char *__value, int __replace)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+
+#line 677 "/usr/include/stdlib.h"
+extern int unsetenv (const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+#line 684 "/usr/include/stdlib.h"
+extern int clearenv (void) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 685 "/usr/include/stdlib.h"
+extern char *mktemp (char *__template) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 696 "/usr/include/stdlib.h"
+extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) ;
+
+#line 709 "/usr/include/stdlib.h"
+extern int mkstemps (char *__template, int __suffixlen) __attribute__ ((__nonnull__ (1))) ;
+
+#line 731 "/usr/include/stdlib.h"
+extern char *mkdtemp (char *__template) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+#line 752 "/usr/include/stdlib.h"
+extern int system (const char *__command) ;
+
+#line 805 "/usr/include/stdlib.h"
+extern char *realpath (const char *__restrict __name,
+ char *__restrict __resolved) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+
+
+#line 829 "/usr/include/stdlib.h"
+typedef int (*__compar_fn_t) (const void *, const void *);
+
+#line 830 "/usr/include/stdlib.h"
+extern void *bsearch (const void *__key, const void *__base,
+ size_t __nmemb, size_t __size, __compar_fn_t __compar)
+ __attribute__ ((__nonnull__ (1, 2, 5))) ;
+
+
+
+#line 846 "/usr/include/stdlib.h"
+extern __inline __attribute__ ((__gnu_inline__)) void *
+bsearch (const void *__key, const void *__base, size_t __nmemb, size_t __size,
+ __compar_fn_t __compar)
+{
+ size_t __l, __u, __idx;
+ const void *__p;
+ int __comparison;
+
+ __l = 0;
+ __u = __nmemb;
+ while (__l < __u)
+ {
+ __idx = (__l + __u) / 2;
+ __p = (const void *) (((const char *) __base) + (__idx * __size));
+ __comparison = (*__compar) (__key, __p);
+ if (__comparison < 0)
+ __u = __idx;
+ else if (__comparison > 0)
+ __l = __idx + 1;
+ else
+ {
+
+
+ return (void *) __p;
+
+
+ }
+ }
+
+ return ((void *)0);
+}
+
+#line 29 "-Wcast-qual"
+
+
+
+
+extern void qsort (void *__base, size_t __nmemb, size_t __size,
+ __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4)));
+
+#line 853 "/usr/include/stdlib.h"
+extern int abs (int __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+#line 862 "/usr/include/stdlib.h"
+extern long int labs (long int __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+
+
+#line 865 "/usr/include/stdlib.h"
+__extension__ extern long long int llabs (long long int __x)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+
+
+
+
+
+
+#line 873 "/usr/include/stdlib.h"
+extern div_t div (int __numer, int __denom)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+#line 875 "/usr/include/stdlib.h"
+extern ldiv_t ldiv (long int __numer, long int __denom)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+
+
+#line 879 "/usr/include/stdlib.h"
+__extension__ extern lldiv_t lldiv (long long int __numer,
+ long long int __denom)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+#line 882 "/usr/include/stdlib.h"
+extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt,
+ int *__restrict __sign) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ;
+
+
+
+
+
+#line 899 "/usr/include/stdlib.h"
+extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt,
+ int *__restrict __sign) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ;
+
+
+
+
+
+#line 905 "/usr/include/stdlib.h"
+extern char *gcvt (double __value, int __ndigit, char *__buf)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3))) ;
+
+
+
+
+
+#line 911 "/usr/include/stdlib.h"
+extern char *qecvt (long double __value, int __ndigit,
+ int *__restrict __decpt, int *__restrict __sign)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ;
+
+#line 914 "/usr/include/stdlib.h"
+extern char *qfcvt (long double __value, int __ndigit,
+ int *__restrict __decpt, int *__restrict __sign)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ;
+
+#line 917 "/usr/include/stdlib.h"
+extern char *qgcvt (long double __value, int __ndigit, char *__buf)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3))) ;
+
+
+
+
+
+#line 923 "/usr/include/stdlib.h"
+extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt,
+ int *__restrict __sign, char *__restrict __buf,
+ size_t __len) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
+
+#line 926 "/usr/include/stdlib.h"
+extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt,
+ int *__restrict __sign, char *__restrict __buf,
+ size_t __len) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
+
+
+#line 930 "/usr/include/stdlib.h"
+extern int qecvt_r (long double __value, int __ndigit,
+ int *__restrict __decpt, int *__restrict __sign,
+ char *__restrict __buf, size_t __len)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
+
+#line 934 "/usr/include/stdlib.h"
+extern int qfcvt_r (long double __value, int __ndigit,
+ int *__restrict __decpt, int *__restrict __sign,
+ char *__restrict __buf, size_t __len)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
+
+
+
+
+
+
+#line 943 "/usr/include/stdlib.h"
+extern int mblen (const char *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 946 "/usr/include/stdlib.h"
+extern int mbtowc (wchar_t *__restrict __pwc,
+ const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 950 "/usr/include/stdlib.h"
+extern int wctomb (char *__s, wchar_t __wchar) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 954 "/usr/include/stdlib.h"
+extern size_t mbstowcs (wchar_t *__restrict __pwcs,
+ const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__access__ (__read_only__, 2)));
+
+
+#line 958 "/usr/include/stdlib.h"
+extern size_t wcstombs (char *__restrict __s,
+ const wchar_t *__restrict __pwcs, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__access__ (__write_only__, 1, 3)))
+ __attribute__ ((__access__ (__read_only__, 2)));
+
+
+
+
+
+
+
+#line 969 "/usr/include/stdlib.h"
+extern int rpmatch (const char *__response) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+#line 970 "/usr/include/stdlib.h"
+extern int getsubopt (char **__restrict __optionp,
+ char *const *__restrict __tokens,
+ char **__restrict __valuep)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2, 3))) ;
+
+#line 984 "/usr/include/stdlib.h"
+extern int getloadavg (double __loadavg[], int __nelem)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 1028 "/usr/include/stdlib.h"
+extern __inline __attribute__ ((__gnu_inline__)) double
+__attribute__ ((__nothrow__ , __leaf__)) atof (const char *__nptr)
+{
+ return strtod (__nptr, (char **) ((void *)0));
+}
+
+#line 29 "/usr/include/x86_64-linux-gnu/bits/stdlib-float.h"
+
+
+enum
+{
+ _ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)),
+ _ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)),
+ _ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)),
+ _ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)),
+ _ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)),
+ _ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)),
+ _ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)),
+ _ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)),
+ _ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)),
+ _IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)),
+ _ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)),
+ _ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8))
+};
+
+#line 61 "/usr/include/ctype.h"
+extern const unsigned short int **__ctype_b_loc (void)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+#line 81 "/usr/include/ctype.h"
+extern const __int32_t **__ctype_tolower_loc (void)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+#line 83 "/usr/include/ctype.h"
+extern const __int32_t **__ctype_toupper_loc (void)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+#line 85 "/usr/include/ctype.h"
+extern int isalnum (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 109 "/usr/include/ctype.h"
+extern int isalpha (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 110 "/usr/include/ctype.h"
+extern int iscntrl (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 111 "/usr/include/ctype.h"
+extern int isdigit (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 112 "/usr/include/ctype.h"
+extern int islower (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 113 "/usr/include/ctype.h"
+extern int isgraph (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 114 "/usr/include/ctype.h"
+extern int isprint (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 115 "/usr/include/ctype.h"
+extern int ispunct (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 116 "/usr/include/ctype.h"
+extern int isspace (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 117 "/usr/include/ctype.h"
+extern int isupper (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 118 "/usr/include/ctype.h"
+extern int isxdigit (int) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 122 "/usr/include/ctype.h"
+extern int tolower (int __c) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 125 "/usr/include/ctype.h"
+extern int toupper (int __c) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+#line 130 "/usr/include/ctype.h"
+extern int isblank (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 131 "/usr/include/ctype.h"
+extern int isascii (int __c) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 146 "/usr/include/ctype.h"
+extern int toascii (int __c) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 150 "/usr/include/ctype.h"
+extern int _toupper (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 151 "/usr/include/ctype.h"
+extern int _tolower (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 152 "/usr/include/ctype.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+__attribute__ ((__nothrow__ , __leaf__)) tolower (int __c)
+{
+ return __c >= -128 && __c < 256 ? (*__ctype_tolower_loc ())[__c] : __c;
+}
+
+
+#line 212 "/usr/include/ctype.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+__attribute__ ((__nothrow__ , __leaf__)) toupper (int __c)
+{
+ return __c >= -128 && __c < 256 ? (*__ctype_toupper_loc ())[__c] : __c;
+}
+
+#line 217 "/usr/include/ctype.h"
+struct __locale_struct
+{
+
+ struct __locale_data *__locales[13];
+
+
+ const unsigned short int *__ctype_b;
+ const int *__ctype_tolower;
+ const int *__ctype_toupper;
+
+
+ const char *__names[13];
+};
+
+
+#line 41 "/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h"
+typedef struct __locale_struct *__locale_t;
+
+#line 42 "/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h"
+
+typedef __locale_t locale_t;
+
+#line 25 "/usr/include/x86_64-linux-gnu/bits/types/locale_t.h"
+extern int isalnum_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 252 "/usr/include/ctype.h"
+extern int isalpha_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 253 "/usr/include/ctype.h"
+extern int iscntrl_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 254 "/usr/include/ctype.h"
+extern int isdigit_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 255 "/usr/include/ctype.h"
+extern int islower_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 256 "/usr/include/ctype.h"
+extern int isgraph_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 257 "/usr/include/ctype.h"
+extern int isprint_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 258 "/usr/include/ctype.h"
+extern int ispunct_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 259 "/usr/include/ctype.h"
+extern int isspace_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 260 "/usr/include/ctype.h"
+extern int isupper_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 261 "/usr/include/ctype.h"
+extern int isxdigit_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+
+#line 263 "/usr/include/ctype.h"
+extern int isblank_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 267 "/usr/include/ctype.h"
+extern int __tolower_l (int __c, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 268 "/usr/include/ctype.h"
+extern int tolower_l (int __c, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 271 "/usr/include/ctype.h"
+extern int __toupper_l (int __c, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 272 "/usr/include/ctype.h"
+extern int toupper_l (int __c, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 273 "/usr/include/ctype.h"
+
+
+
+
+
+
+
+extern void *memcpy (void *__restrict __dest, const void *__restrict __src,
+ size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 47 "/usr/include/string.h"
+extern void *memmove (void *__dest, const void *__src, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+
+#line 54 "/usr/include/string.h"
+extern void *memccpy (void *__restrict __dest, const void *__restrict __src,
+ int __c, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__access__ (__write_only__, 1, 4)));
+
+
+
+
+
+#line 61 "/usr/include/string.h"
+extern void *memset (void *__s, int __c, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+#line 64 "/usr/include/string.h"
+extern int memcmp (const void *__s1, const void *__s2, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 66 "/usr/include/string.h"
+extern int __memcmpeq (const void *__s1, const void *__s2, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 82 "/usr/include/string.h"
+extern void *memchr (const void *__s, int __c, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+#line 109 "/usr/include/string.h"
+extern char *strcpy (char *__restrict __dest, const char *__restrict __src)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 144 "/usr/include/string.h"
+extern char *strncpy (char *__restrict __dest,
+ const char *__restrict __src, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 149 "/usr/include/string.h"
+extern char *strcat (char *__restrict __dest, const char *__restrict __src)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 152 "/usr/include/string.h"
+extern char *strncat (char *__restrict __dest, const char *__restrict __src,
+ size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 156 "/usr/include/string.h"
+extern int strcmp (const char *__s1, const char *__s2)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 159 "/usr/include/string.h"
+extern int strncmp (const char *__s1, const char *__s2, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 163 "/usr/include/string.h"
+extern int strcoll (const char *__s1, const char *__s2)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 166 "/usr/include/string.h"
+extern size_t strxfrm (char *__restrict __dest,
+ const char *__restrict __src, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))) __attribute__ ((__access__ (__write_only__, 1, 3)));
+
+
+
+
+
+
+
+#line 175 "/usr/include/string.h"
+extern int strcoll_l (const char *__s1, const char *__s2, locale_t __l)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));
+
+
+
+#line 179 "/usr/include/string.h"
+extern size_t strxfrm_l (char *__dest, const char *__src, size_t __n,
+ locale_t __l) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 4)))
+ __attribute__ ((__access__ (__write_only__, 1, 3)));
+
+
+
+
+
+
+#line 187 "/usr/include/string.h"
+extern char *strdup (const char *__s)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+#line 195 "/usr/include/string.h"
+extern char *strndup (const char *__string, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
+
+#line 197 "/usr/include/string.h"
+extern char *strchr (const char *__s, int __c)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+#line 248 "/usr/include/string.h"
+extern char *strrchr (const char *__s, int __c)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+#line 275 "/usr/include/string.h"
+extern size_t strcspn (const char *__s, const char *__reject)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 297 "/usr/include/string.h"
+extern size_t strspn (const char *__s, const char *__accept)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 299 "/usr/include/string.h"
+extern char *strpbrk (const char *__s, const char *__accept)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 325 "/usr/include/string.h"
+extern char *strstr (const char *__haystack, const char *__needle)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+#line 356 "/usr/include/string.h"
+extern char *strtok (char *__restrict __s, const char *__restrict __delim)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+
+
+#line 361 "/usr/include/string.h"
+extern char *__strtok_r (char *__restrict __s,
+ const char *__restrict __delim,
+ char **__restrict __save_ptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3)));
+
+
+#line 366 "/usr/include/string.h"
+extern char *strtok_r (char *__restrict __s, const char *__restrict __delim,
+ char **__restrict __save_ptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3)));
+
+#line 369 "/usr/include/string.h"
+extern size_t strlen (const char *__s)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+#line 413 "/usr/include/string.h"
+extern size_t strnlen (const char *__string, size_t __maxlen)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+#line 419 "/usr/include/string.h"
+extern char *strerror (int __errnum) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 420 "/usr/include/string.h"
+extern int strerror_r (int __errnum, char *__buf, size_t __buflen) __asm__ ("" "__xpg_strerror_r") __attribute__ ((__nothrow__ , __leaf__))
+
+ __attribute__ ((__nonnull__ (2)))
+ __attribute__ ((__access__ (__write_only__, 2, 3)));
+
+#line 436 "/usr/include/string.h"
+extern char *strerror_l (int __errnum, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 462 "/usr/include/string.h"
+
+
+
+
+
+
+
+
+
+
+extern int bcmp (const void *__s1, const void *__s2, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 38 "/usr/include/strings.h"
+extern void bcopy (const void *__src, void *__dest, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 42 "/usr/include/strings.h"
+extern void bzero (void *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 43 "/usr/include/strings.h"
+extern char *index (const char *__s, int __c)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+#line 70 "/usr/include/strings.h"
+extern char *rindex (const char *__s, int __c)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+#line 104 "/usr/include/strings.h"
+extern int ffs (int __i) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+
+
+
+
+
+#line 110 "/usr/include/strings.h"
+extern int ffsl (long int __l) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+#line 111 "/usr/include/strings.h"
+__extension__ extern int ffsll (long long int __ll)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+
+
+
+#line 116 "/usr/include/strings.h"
+extern int strcasecmp (const char *__s1, const char *__s2)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 120 "/usr/include/strings.h"
+extern int strncasecmp (const char *__s1, const char *__s2, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+
+
+#line 128 "/usr/include/strings.h"
+extern int strcasecmp_l (const char *__s1, const char *__s2, locale_t __loc)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));
+
+
+
+
+#line 133 "/usr/include/strings.h"
+extern int strncasecmp_l (const char *__s1, const char *__s2,
+ size_t __n, locale_t __loc)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 4)));
+
+
+
+
+#line 139 "/usr/include/strings.h"
+
+
+
+extern void explicit_bzero (void *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)))
+ __attribute__ ((__access__ (__write_only__, 1, 2)));
+
+
+
+
+#line 471 "/usr/include/string.h"
+extern char *strsep (char **__restrict __stringp,
+ const char *__restrict __delim)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+#line 478 "/usr/include/string.h"
+extern char *strsignal (int __sig) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 479 "/usr/include/string.h"
+extern char *__stpcpy (char *__restrict __dest, const char *__restrict __src)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 491 "/usr/include/string.h"
+extern char *stpcpy (char *__restrict __dest, const char *__restrict __src)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+#line 496 "/usr/include/string.h"
+extern char *__stpncpy (char *__restrict __dest,
+ const char *__restrict __src, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 499 "/usr/include/string.h"
+extern char *stpncpy (char *__restrict __dest,
+ const char *__restrict __src, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 502 "/usr/include/string.h"
+
+
+
+
+
+
+
+
+typedef __builtin_va_list __gnuc_va_list;
+
+#line 41 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stdarg.h"
+
+
+
+
+
+
+typedef struct
+{
+ int __count;
+ union
+ {
+ unsigned int __wch;
+ char __wchb[4];
+ } __value;
+}
+#line 21 "/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h"
+__mbstate_t;
+
+#line 22 "/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h"
+
+
+
+
+typedef struct _G_fpos_t
+{
+ __off_t __pos;
+ __mbstate_t __state;
+}
+#line 14 "/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h"
+__fpos_t;
+
+#line 15 "/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h"
+typedef struct _G_fpos64_t
+{
+ __off64_t __pos;
+ __mbstate_t __state;
+}
+#line 14 "/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h"
+__fpos64_t;
+
+#line 15 "/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h"
+
+
+
+struct _IO_FILE;
+
+#line 5 "/usr/include/x86_64-linux-gnu/bits/types/__FILE.h"
+typedef struct _IO_FILE __FILE;
+
+#line 6 "/usr/include/x86_64-linux-gnu/bits/types/__FILE.h"
+
+
+
+struct _IO_FILE;
+
+
+
+#line 7 "/usr/include/x86_64-linux-gnu/bits/types/FILE.h"
+typedef struct _IO_FILE FILE;
+
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/FILE.h"
+struct _IO_FILE;
+
+#line 36 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+struct _IO_marker;
+
+#line 37 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+struct _IO_codecvt;
+
+#line 38 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+struct _IO_wide_data;
+
+
+
+
+
+#line 43 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+typedef void _IO_lock_t;
+
+
+
+
+
+
+#line 49 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+struct _IO_FILE
+{
+ int _flags;
+
+
+ char *_IO_read_ptr;
+ char *_IO_read_end;
+ char *_IO_read_base;
+ char *_IO_write_base;
+ char *_IO_write_ptr;
+ char *_IO_write_end;
+ char *_IO_buf_base;
+ char *_IO_buf_end;
+
+
+ char *_IO_save_base;
+ char *_IO_backup_base;
+ char *_IO_save_end;
+
+ struct _IO_marker *_markers;
+
+ struct _IO_FILE *_chain;
+
+ int _fileno;
+ int _flags2;
+ __off_t _old_offset;
+
+
+ unsigned short _cur_column;
+ signed char _vtable_offset;
+ char _shortbuf[1];
+
+ _IO_lock_t *_lock;
+
+
+
+
+
+
+
+ __off64_t _offset;
+
+ struct _IO_codecvt *_codecvt;
+ struct _IO_wide_data *_wide_data;
+ struct _IO_FILE *_freeres_list;
+ void *_freeres_buf;
+ size_t __pad5;
+ int _mode;
+
+ char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)];
+};
+
+#line 100 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+typedef __gnuc_va_list va_list;
+
+#line 53 "/usr/include/stdio.h"
+typedef __fpos_t fpos_t;
+
+#line 85 "/usr/include/stdio.h"
+extern FILE *stdin;
+
+#line 144 "/usr/include/stdio.h"
+extern FILE *stdout;
+
+#line 145 "/usr/include/stdio.h"
+extern FILE *stderr;
+
+
+
+
+
+
+
+#line 152 "/usr/include/stdio.h"
+extern int remove (const char *__filename) __attribute__ ((__nothrow__ , __leaf__));
+
+
+#line 154 "/usr/include/stdio.h"
+extern int rename (const char *__old, const char *__new) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 158 "/usr/include/stdio.h"
+extern int renameat (int __oldfd, const char *__old, int __newfd,
+ const char *__new) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 160 "/usr/include/stdio.h"
+extern int fclose (FILE *__stream);
+
+#line 179 "/usr/include/stdio.h"
+extern FILE *tmpfile (void)
+ __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ;
+
+#line 190 "/usr/include/stdio.h"
+extern char *tmpnam (char[20]) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+#line 210 "/usr/include/stdio.h"
+extern char *tmpnam_r (char __s[20]) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+#line 211 "/usr/include/stdio.h"
+extern char *tempnam (const char *__dir, const char *__pfx)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (__builtin_free, 1)));
+
+
+
+
+
+
+
+#line 230 "/usr/include/stdio.h"
+extern int fflush (FILE *__stream);
+
+#line 231 "/usr/include/stdio.h"
+extern int fflush_unlocked (FILE *__stream);
+
+#line 240 "/usr/include/stdio.h"
+extern FILE *fopen (const char *__restrict __filename,
+ const char *__restrict __modes)
+ __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ;
+
+
+
+
+
+#line 265 "/usr/include/stdio.h"
+extern FILE *freopen (const char *__restrict __filename,
+ const char *__restrict __modes,
+ FILE *__restrict __stream) ;
+
+#line 268 "/usr/include/stdio.h"
+extern FILE *fdopen (int __fd, const char *__modes) __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ;
+
+#line 295 "/usr/include/stdio.h"
+extern FILE *fmemopen (void *__s, size_t __len, const char *__modes)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ;
+
+
+
+
+
+#line 314 "/usr/include/stdio.h"
+extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ;
+
+#line 316 "/usr/include/stdio.h"
+extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 332 "/usr/include/stdio.h"
+extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf,
+ int __modes, size_t __n) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+#line 338 "/usr/include/stdio.h"
+extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf,
+ size_t __size) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 342 "/usr/include/stdio.h"
+extern void setlinebuf (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+
+#line 350 "/usr/include/stdio.h"
+extern int fprintf (FILE *__restrict __stream,
+ const char *__restrict __format, ...);
+
+
+
+
+
+#line 356 "/usr/include/stdio.h"
+extern int printf (const char *__restrict __format, ...);
+
+
+#line 358 "/usr/include/stdio.h"
+extern int sprintf (char *__restrict __s,
+ const char *__restrict __format, ...) __attribute__ ((__nothrow__));
+
+
+
+
+
+
+#line 365 "/usr/include/stdio.h"
+extern int vfprintf (FILE *__restrict __s, const char *__restrict __format,
+ __gnuc_va_list __arg);
+
+
+
+
+
+#line 371 "/usr/include/stdio.h"
+extern int vprintf (const char *__restrict __format, __gnuc_va_list __arg);
+
+
+#line 373 "/usr/include/stdio.h"
+extern int vsprintf (char *__restrict __s, const char *__restrict __format,
+ __gnuc_va_list __arg) __attribute__ ((__nothrow__));
+
+
+
+
+#line 378 "/usr/include/stdio.h"
+extern int snprintf (char *__restrict __s, size_t __maxlen,
+ const char *__restrict __format, ...)
+ __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 4)));
+
+
+#line 382 "/usr/include/stdio.h"
+extern int vsnprintf (char *__restrict __s, size_t __maxlen,
+ const char *__restrict __format, __gnuc_va_list __arg)
+ __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 0)));
+
+#line 385 "/usr/include/stdio.h"
+extern int vdprintf (int __fd, const char *__restrict __fmt,
+ __gnuc_va_list __arg)
+ __attribute__ ((__format__ (__printf__, 2, 0)));
+
+#line 406 "/usr/include/stdio.h"
+extern int dprintf (int __fd, const char *__restrict __fmt, ...)
+ __attribute__ ((__format__ (__printf__, 2, 3)));
+
+
+
+
+
+
+
+
+#line 415 "/usr/include/stdio.h"
+extern int fscanf (FILE *__restrict __stream,
+ const char *__restrict __format, ...) ;
+
+
+
+
+
+#line 421 "/usr/include/stdio.h"
+extern int scanf (const char *__restrict __format, ...) ;
+
+
+#line 423 "/usr/include/stdio.h"
+extern int sscanf (const char *__restrict __s,
+ const char *__restrict __format, ...) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 425 "/usr/include/stdio.h"
+extern int fscanf (FILE *__restrict __stream, const char *__restrict __format, ...) __asm__ ("" "__isoc99_fscanf")
+
+ ;
+
+#line 437 "/usr/include/stdio.h"
+extern int scanf (const char *__restrict __format, ...) __asm__ ("" "__isoc99_scanf")
+ ;
+
+#line 439 "/usr/include/stdio.h"
+extern int sscanf (const char *__restrict __s, const char *__restrict __format, ...) __asm__ ("" "__isoc99_sscanf") __attribute__ ((__nothrow__ , __leaf__))
+
+ ;
+
+#line 442 "/usr/include/stdio.h"
+extern int vfscanf (FILE *__restrict __s, const char *__restrict __format,
+ __gnuc_va_list __arg)
+ __attribute__ ((__format__ (__scanf__, 2, 0))) ;
+
+
+
+
+
+
+#line 467 "/usr/include/stdio.h"
+extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg)
+ __attribute__ ((__format__ (__scanf__, 1, 0))) ;
+
+
+
+#line 471 "/usr/include/stdio.h"
+extern int vsscanf (const char *__restrict __s,
+ const char *__restrict __format, __gnuc_va_list __arg)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__format__ (__scanf__, 2, 0)));
+
+
+
+
+
+
+#line 479 "/usr/include/stdio.h"
+extern int vfscanf (FILE *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vfscanf")
+
+
+
+ __attribute__ ((__format__ (__scanf__, 2, 0))) ;
+
+#line 484 "/usr/include/stdio.h"
+extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vscanf")
+
+ __attribute__ ((__format__ (__scanf__, 1, 0))) ;
+
+#line 487 "/usr/include/stdio.h"
+extern int vsscanf (const char *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vsscanf") __attribute__ ((__nothrow__ , __leaf__))
+
+
+
+ __attribute__ ((__format__ (__scanf__, 2, 0)));
+
+#line 492 "/usr/include/stdio.h"
+extern int fgetc (FILE *__stream);
+
+#line 514 "/usr/include/stdio.h"
+extern int getc (FILE *__stream);
+
+
+
+
+
+
+#line 520 "/usr/include/stdio.h"
+extern int getchar (void);
+
+
+
+
+
+
+
+#line 527 "/usr/include/stdio.h"
+extern int getc_unlocked (FILE *__stream);
+
+#line 528 "/usr/include/stdio.h"
+extern int getchar_unlocked (void);
+
+#line 529 "/usr/include/stdio.h"
+extern int fgetc_unlocked (FILE *__stream);
+
+#line 539 "/usr/include/stdio.h"
+extern int fputc (int __c, FILE *__stream);
+
+#line 550 "/usr/include/stdio.h"
+extern int putc (int __c, FILE *__stream);
+
+
+
+
+
+
+#line 556 "/usr/include/stdio.h"
+extern int putchar (int __c);
+
+#line 557 "/usr/include/stdio.h"
+extern int fputc_unlocked (int __c, FILE *__stream);
+
+
+
+
+
+
+
+
+#line 573 "/usr/include/stdio.h"
+extern int putc_unlocked (int __c, FILE *__stream);
+
+#line 574 "/usr/include/stdio.h"
+extern int putchar_unlocked (int __c);
+
+
+
+
+
+
+
+#line 581 "/usr/include/stdio.h"
+extern int getw (FILE *__stream);
+
+
+
+#line 584 "/usr/include/stdio.h"
+extern int putw (int __w, FILE *__stream);
+
+
+
+
+
+
+
+
+#line 592 "/usr/include/stdio.h"
+extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream)
+ __attribute__ ((__access__ (__write_only__, 1, 2)));
+
+#line 594 "/usr/include/stdio.h"
+extern __ssize_t __getdelim (char **__restrict __lineptr,
+ size_t *__restrict __n, int __delimiter,
+ FILE *__restrict __stream) ;
+
+#line 635 "/usr/include/stdio.h"
+extern __ssize_t getdelim (char **__restrict __lineptr,
+ size_t *__restrict __n, int __delimiter,
+ FILE *__restrict __stream) ;
+
+
+
+
+
+
+
+
+#line 645 "/usr/include/stdio.h"
+extern __ssize_t getline (char **__restrict __lineptr,
+ size_t *__restrict __n,
+ FILE *__restrict __stream) ;
+
+
+
+
+
+
+
+
+#line 655 "/usr/include/stdio.h"
+extern int fputs (const char *__restrict __s, FILE *__restrict __stream);
+
+
+
+
+
+
+#line 661 "/usr/include/stdio.h"
+extern int puts (const char *__s);
+
+
+
+
+
+
+
+#line 668 "/usr/include/stdio.h"
+extern int ungetc (int __c, FILE *__stream);
+
+
+
+
+
+
+
+#line 675 "/usr/include/stdio.h"
+extern size_t fread (void *__restrict __ptr, size_t __size,
+ size_t __n, FILE *__restrict __stream) ;
+
+
+
+
+
+#line 681 "/usr/include/stdio.h"
+extern size_t fwrite (const void *__restrict __ptr, size_t __size,
+ size_t __n, FILE *__restrict __s);
+
+#line 683 "/usr/include/stdio.h"
+extern size_t fread_unlocked (void *__restrict __ptr, size_t __size,
+ size_t __n, FILE *__restrict __stream) ;
+
+#line 704 "/usr/include/stdio.h"
+extern size_t fwrite_unlocked (const void *__restrict __ptr, size_t __size,
+ size_t __n, FILE *__restrict __stream);
+
+
+
+
+
+
+
+
+#line 713 "/usr/include/stdio.h"
+extern int fseek (FILE *__stream, long int __off, int __whence);
+
+
+
+
+
+#line 718 "/usr/include/stdio.h"
+extern long int ftell (FILE *__stream) ;
+
+
+
+
+
+#line 723 "/usr/include/stdio.h"
+extern void rewind (FILE *__stream);
+
+#line 724 "/usr/include/stdio.h"
+extern int fseeko (FILE *__stream, __off_t __off, int __whence);
+
+
+
+
+
+#line 741 "/usr/include/stdio.h"
+extern __off_t ftello (FILE *__stream) ;
+
+#line 742 "/usr/include/stdio.h"
+extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos);
+
+
+
+
+
+#line 765 "/usr/include/stdio.h"
+extern int fsetpos (FILE *__stream, const fpos_t *__pos);
+
+#line 766 "/usr/include/stdio.h"
+extern void clearerr (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
+
+
+#line 788 "/usr/include/stdio.h"
+extern int feof (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+#line 790 "/usr/include/stdio.h"
+extern int ferror (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+#line 794 "/usr/include/stdio.h"
+extern void clearerr_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 795 "/usr/include/stdio.h"
+extern int feof_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+#line 796 "/usr/include/stdio.h"
+extern int ferror_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+
+
+
+#line 804 "/usr/include/stdio.h"
+extern void perror (const char *__s);
+
+
+
+
+
+#line 809 "/usr/include/stdio.h"
+extern int fileno (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+#line 814 "/usr/include/stdio.h"
+extern int fileno_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+#line 815 "/usr/include/stdio.h"
+extern int pclose (FILE *__stream);
+
+
+
+
+
+
+#line 829 "/usr/include/stdio.h"
+extern FILE *popen (const char *__command, const char *__modes)
+ __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (pclose, 1))) ;
+
+
+
+
+
+
+
+#line 837 "/usr/include/stdio.h"
+extern char *ctermid (char *__s) __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__access__ (__write_only__, 1)));
+
+#line 839 "/usr/include/stdio.h"
+extern void flockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 871 "/usr/include/stdio.h"
+extern int ftrylockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+#line 874 "/usr/include/stdio.h"
+extern void funlockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 875 "/usr/include/stdio.h"
+extern int __uflow (FILE *);
+
+#line 886 "/usr/include/stdio.h"
+extern int __overflow (FILE *, int);
+
+#line 887 "/usr/include/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+vprintf (const char *__restrict __fmt, __gnuc_va_list __arg)
+{
+ return vfprintf (stdout, __fmt, __arg);
+}
+
+
+
+
+#line 46 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+getchar (void)
+{
+ return getc (stdin);
+}
+
+
+
+
+
+#line 55 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+fgetc_unlocked (FILE *__fp)
+{
+ return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++);
+}
+
+
+
+
+
+
+#line 65 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+getc_unlocked (FILE *__fp)
+{
+ return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++);
+}
+
+
+
+#line 72 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+getchar_unlocked (void)
+{
+ return (__builtin_expect (((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end), 0) ? __uflow (stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++);
+}
+
+
+
+
+
+#line 81 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+putchar (int __c)
+{
+ return putc (__c, stdout);
+}
+
+
+
+
+
+#line 90 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+fputc_unlocked (int __c, FILE *__stream)
+{
+ return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
+}
+
+
+
+
+
+
+#line 100 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+putc_unlocked (int __c, FILE *__stream)
+{
+ return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
+}
+
+
+
+#line 107 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+putchar_unlocked (int __c)
+{
+ return (__builtin_expect (((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end), 0) ? __overflow (stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c)));
+}
+
+#line 112 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+__attribute__ ((__nothrow__ , __leaf__)) feof_unlocked (FILE *__stream)
+{
+ return (((__stream)->_flags & 0x0010) != 0);
+}
+
+
+
+#line 134 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+__attribute__ ((__nothrow__ , __leaf__)) ferror_unlocked (FILE *__stream)
+{
+ return (((__stream)->_flags & 0x0020) != 0);
+}
+
+#line 139 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+
+
+
+
+
+
+
+
+
+struct hashmap_other__other__comma_struct_other_uniq_other_string {
+ struct uniq_string **data;
+ size_t count;
+ size_t cap;
+};
+
+
+#line 139 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+
+
+
+
+
+
+
+
+
+struct hashmap_other__other__comma_struct_other_call {
+ struct call **data;
+ size_t count;
+ size_t cap;
+};
+
+
+#line 17 "gamma.h"
+uint32_t hashmap_other_hash_other__other__comma_struct_other_call(struct call *item);
+
+#line 17 "gamma.h"
+uint32_t hashmap_other_hash_other__other__comma_struct_other_uniq_other_string(struct uniq_string *item);
+
+#line 18 "gamma.h"
+int hashmap_other_eq_other__other__comma_struct_other_call(struct call *A, struct call *B);
+
+
+#line 18 "gamma.h"
+int hashmap_other_eq_other__other__comma_struct_other_uniq_other_string(struct uniq_string *A, struct uniq_string *B);
+
+
+#line 20 "gamma.h"
+struct uniq_string *hashmap_other_lookup_other__other__comma_struct_other_uniq_other_string(struct hashmap_other__other__comma_struct_other_uniq_other_string *hashmap, struct uniq_string *item);
+
+#line 21 "gamma.h"
+struct uniq_string *hashmap_other_lookup_other_weak_other__other__comma_struct_other_uniq_other_string(struct hashmap_other__other__comma_struct_other_uniq_other_string *hashmap, struct uniq_string *item);
+
+#line 21 "gamma.h"
+struct call *hashmap_other_lookup_other_weak_other__other__comma_struct_other_call(struct hashmap_other__other__comma_struct_other_call *hashmap, struct call *item);
+
+#line 22 "gamma.h"
+int hashmap_other_contains_other__other__comma_struct_other_call(struct hashmap_other__other__comma_struct_other_call *hashmap, struct call *item);
+
+#line 23 "gamma.h"
+void hashmap_other_insert_other__other__comma_struct_other_uniq_other_string(struct hashmap_other__other__comma_struct_other_uniq_other_string *hashmap, struct uniq_string *item);
+
+#line 23 "gamma.h"
+void hashmap_other_insert_other__other__comma_struct_other_call(struct hashmap_other__other__comma_struct_other_call *hashmap, struct call *item);
+
+#line 24 "gamma.h"
+struct uniq_string *heapify_other__other__comma_struct_other_uniq_other_string(struct uniq_string item);
+
+
+#line 26 "gamma.h"
+struct vector_other__other__comma_struct_other_call_other__star_ {
+ struct call * *data;
+ size_t count;
+ size_t cap;
+};
+
+#line 31 "gamma.h"
+uint32_t vector_other_push_other__other__comma_struct_other_call_other__star_(struct vector_other__other__comma_struct_other_call_other__star_ *vector, struct call * item);
+
+#line 32 "gamma.h"
+struct call * vector_other_pop_other__other__comma_struct_other_call_other__star_(struct vector_other__other__comma_struct_other_call_other__star_ *vector);
+
+#line 33 "gamma.h"
+struct vector_other__other__comma_struct_other_call_other__star_ *init_other_vector_other__other__comma_struct_other_call_other__star_();
+
+
+#line 35 "gamma.h"
+struct uniq_string {
+ char *string;
+ size_t len;
+
+ struct vector_other__other__comma_struct_other_call_other__star_ instantiations;
+
+ struct chunk *definitions;
+};
+
+
+#line 44 "gamma.h"
+struct arg {
+ char *start;
+ struct uniq_string *string;
+ int is_concrete;
+};
+
+
+#line 50 "gamma.h"
+struct call {
+ char *start;
+ char *end;
+ struct uniq_string *name;
+ struct arg *args;
+ size_t n_args;
+ struct call *next;
+};
+
+
+#line 59 "gamma.h"
+struct chunk {
+ char *start;
+ char *end;
+
+ char *line_filename;
+ size_t line;
+
+ struct call *defining_call;
+ struct call *calls;
+ struct chunk *next;
+ struct chunk *next_definition;
+};
+
+
+#line 72 "gamma.h"
+struct chunked_file {
+ char *contents;
+ char *end;
+ size_t id;
+ struct chunk *chunks;
+ struct chunked_file *next;
+};
+
+
+#line 80 "gamma.h"
+struct chunked_file *chunk(const char *path);
+
+#line 81 "gamma.h"
+struct uniq_string *lookup(char *string, size_t len);
+
+#line 82 "gamma.h"
+struct uniq_string *weak_lookup(char *string, size_t len);
+
+
+
+
+#line 86 "gamma.h"
+struct instantiation_set {
+ struct call **data;
+ size_t n;
+ size_t cap;
+};
+
+
+#line 92 "gamma.h"
+void parse_call(struct call *call);
+
+#line 93 "gamma.h"
+void print_state(struct chunked_file *file);
+
+#line 94 "gamma.h"
+void solve(struct chunked_file *files);
+
+#line 95 "gamma.h"
+void print_string(struct uniq_string *string);
+
+#line 96 "gamma.h"
+void print_call(struct call *call);
+
+#line 97 "gamma.h"
+void print_set(struct instantiation_set *set);
+
+#line 98 "gamma.h"
+void print_chunk(struct chunk *chunk, struct call *instantiation, FILE *out);
+
+#line 99 "gamma.h"
+struct call *replace_variables(struct call *container, struct call *container_instantiation, struct call *call);
+
+#line 100 "gamma.h"
+void fprint_string(FILE *out, struct uniq_string *string);
+
+#line 101 "gamma.h"
+char **read_fakeobj(char *path, char *c_dst);
+
+#line 102 "gamma.h"
+void write_fakeobj(char *src, char *dst, int i);
+
+#line 103 "gamma.h"
+void gamma_sendfile(int dst_fd, int src_fd);
+
+#line 104 "gamma.h"
+void copy_file(char *dst, char *src);
+
+
+#line 106 "gamma.h"
+extern char **ARGV;
+
+#line 107 "gamma.h"
+extern int ARGC;
+
+#line 108 "gamma.h"
+extern char *TMPDIR;
+
+#line 109 "gamma.h"
+extern int GAMMA_TO_C;
+
+#line 110 "gamma.h"
+
+static struct arg first_arg(struct call *call);
+
+#line 4 "parse_call.c"
+static struct arg next_arg(struct call *call, struct arg arg);
+
+
+#line 6 "parse_call.c"
+void parse_call(struct call *call) {
+
+ char *c = call->start;
+ while (*c != '!' && *c != ':') c++;
+ c++;
+ if (*c == ':') c++;
+ call->name = lookup(call->start, c - call->start);
+
+
+ struct arg last = first_arg(call);
+ while (last.string) {
+ call->n_args++;
+ last = next_arg(call, last);
+ }
+ if (!(call->n_args)) return;
+
+
+ call->args = malloc(call->n_args * sizeof(call->args[0]));
+ call->args[0] = first_arg(call);
+ for (size_t i = 1; i < call->n_args; i++)
+ call->args[i] = next_arg(call, call->args[i-1]);
+}
+
+
+#line 29 "parse_call.c"
+static struct arg _get_arg(char *c, struct call *call) {
+
+ while (c < call->end && !
+ ((*__ctype_b_loc ())[(int) ((
+ *c
+ ))] & (unsigned short int) _ISalpha)
+ ) c++;
+ if (c == call->end) return (struct arg){0,0,0};
+
+ int is_concrete = 1;
+ if ((call->end - c) > 5 && !strncmp(c, "type ", 5)) {
+ is_concrete = 0;
+ c += 5;
+
+ while (c < call->end && !
+ ((*__ctype_b_loc ())[(int) ((
+ *c
+ ))] & (unsigned short int) _ISalpha)
+ ) c++;
+ }
+
+ char *e = c;
+ while (e < call->end && *e != ',' && *e != ']') e++;
+
+ while (c < e && !
+ ((*__ctype_b_loc ())[(int) ((
+ *c
+ ))] & (unsigned short int) _ISalpha)
+ ) e--;
+ return (struct arg){
+ .start = c,
+ .string = lookup(c, e - c),
+ .is_concrete = is_concrete,
+ };
+}
+
+
+#line 53 "parse_call.c"
+static struct arg first_arg(struct call *call) {
+ char *c = call->start;
+
+ while (c < call->end && *c != '[') c++;
+ return _get_arg(c, call);
+}
+
+
+#line 60 "parse_call.c"
+static struct arg next_arg(struct call *call, struct arg arg) {
+ char *c = arg.start + arg.string->len;
+ while (c < call->end && *c != ',' && *c != ']') c++;
+ if (c == call->end) return (struct arg){0,0,0};
+ return _get_arg(c, call);
+}
+
+#line 66 "parse_call.c"
diff --git a/c_version/8.c b/c_version/8.c
new file mode 100755
index 0000000..88c8efb
--- /dev/null
+++ b/c_version/8.c
@@ -0,0 +1,7238 @@
+
+#line 1 "/tmp/gamma.XksNqZ/8.unfake.c"
+
+
+
+
+
+
+typedef long unsigned int size_t;
+
+#line 215 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h"
+
+
+typedef __builtin_va_list __gnuc_va_list;
+
+#line 41 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stdarg.h"
+
+
+
+typedef unsigned char __u_char;
+
+#line 32 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned short int __u_short;
+
+#line 33 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __u_int;
+
+#line 34 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __u_long;
+
+
+
+#line 37 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef signed char __int8_t;
+
+#line 38 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned char __uint8_t;
+
+#line 39 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef signed short int __int16_t;
+
+#line 40 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned short int __uint16_t;
+
+#line 41 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef signed int __int32_t;
+
+#line 42 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __uint32_t;
+
+
+#line 44 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef signed long int __int64_t;
+
+#line 45 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __uint64_t;
+
+
+
+
+
+
+
+#line 52 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __int8_t __int_least8_t;
+
+#line 53 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __uint8_t __uint_least8_t;
+
+#line 54 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __int16_t __int_least16_t;
+
+#line 55 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __uint16_t __uint_least16_t;
+
+#line 56 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __int32_t __int_least32_t;
+
+#line 57 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __uint32_t __uint_least32_t;
+
+#line 58 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __int64_t __int_least64_t;
+
+#line 59 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __uint64_t __uint_least64_t;
+
+
+
+
+#line 63 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __quad_t;
+
+#line 64 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __u_quad_t;
+
+
+
+
+
+
+
+
+#line 72 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __intmax_t;
+
+#line 73 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __uintmax_t;
+
+#line 74 "/usr/include/x86_64-linux-gnu/bits/types.h"
+
+
+typedef unsigned long int __dev_t;
+
+#line 146 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __uid_t;
+
+#line 147 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __gid_t;
+
+#line 148 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __ino_t;
+
+#line 149 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __ino64_t;
+
+#line 150 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __mode_t;
+
+#line 151 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __nlink_t;
+
+#line 152 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __off_t;
+
+#line 153 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __off64_t;
+
+#line 154 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef int __pid_t;
+
+#line 155 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef struct { int __val[2]; }
+#line 155 "/usr/include/x86_64-linux-gnu/bits/types.h"
+__fsid_t;
+
+#line 156 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __clock_t;
+
+#line 157 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __rlim_t;
+
+#line 158 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __rlim64_t;
+
+#line 159 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __id_t;
+
+#line 160 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __time_t;
+
+#line 161 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __useconds_t;
+
+#line 162 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __suseconds_t;
+
+#line 163 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __suseconds64_t;
+
+
+#line 165 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef int __daddr_t;
+
+#line 166 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef int __key_t;
+
+
+
+#line 169 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef int __clockid_t;
+
+
+
+#line 172 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef void * __timer_t;
+
+
+
+#line 175 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __blksize_t;
+
+
+
+
+
+#line 180 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __blkcnt_t;
+
+#line 181 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __blkcnt64_t;
+
+
+
+#line 184 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __fsblkcnt_t;
+
+#line 185 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __fsblkcnt64_t;
+
+
+
+#line 188 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __fsfilcnt_t;
+
+#line 189 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __fsfilcnt64_t;
+
+
+
+#line 192 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __fsword_t;
+
+
+#line 194 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __ssize_t;
+
+
+
+#line 197 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __syscall_slong_t;
+
+
+#line 199 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __syscall_ulong_t;
+
+
+
+
+#line 203 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __off64_t __loff_t;
+
+#line 204 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef char *__caddr_t;
+
+
+
+#line 207 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __intptr_t;
+
+
+
+#line 210 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __socklen_t;
+
+
+
+
+
+#line 215 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef int __sig_atomic_t;
+
+#line 216 "/usr/include/x86_64-linux-gnu/bits/types.h"
+
+
+
+
+typedef struct
+{
+ int __count;
+ union
+ {
+ unsigned int __wch;
+ char __wchb[4];
+ } __value;
+}
+#line 21 "/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h"
+__mbstate_t;
+
+#line 22 "/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h"
+
+
+
+
+typedef struct _G_fpos_t
+{
+ __off_t __pos;
+ __mbstate_t __state;
+}
+#line 14 "/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h"
+__fpos_t;
+
+#line 15 "/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h"
+typedef struct _G_fpos64_t
+{
+ __off64_t __pos;
+ __mbstate_t __state;
+}
+#line 14 "/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h"
+__fpos64_t;
+
+#line 15 "/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h"
+
+
+
+struct _IO_FILE;
+
+#line 5 "/usr/include/x86_64-linux-gnu/bits/types/__FILE.h"
+typedef struct _IO_FILE __FILE;
+
+#line 6 "/usr/include/x86_64-linux-gnu/bits/types/__FILE.h"
+
+
+
+struct _IO_FILE;
+
+
+
+#line 7 "/usr/include/x86_64-linux-gnu/bits/types/FILE.h"
+typedef struct _IO_FILE FILE;
+
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/FILE.h"
+struct _IO_FILE;
+
+#line 36 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+struct _IO_marker;
+
+#line 37 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+struct _IO_codecvt;
+
+#line 38 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+struct _IO_wide_data;
+
+
+
+
+
+#line 43 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+typedef void _IO_lock_t;
+
+
+
+
+
+
+#line 49 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+struct _IO_FILE
+{
+ int _flags;
+
+
+ char *_IO_read_ptr;
+ char *_IO_read_end;
+ char *_IO_read_base;
+ char *_IO_write_base;
+ char *_IO_write_ptr;
+ char *_IO_write_end;
+ char *_IO_buf_base;
+ char *_IO_buf_end;
+
+
+ char *_IO_save_base;
+ char *_IO_backup_base;
+ char *_IO_save_end;
+
+ struct _IO_marker *_markers;
+
+ struct _IO_FILE *_chain;
+
+ int _fileno;
+ int _flags2;
+ __off_t _old_offset;
+
+
+ unsigned short _cur_column;
+ signed char _vtable_offset;
+ char _shortbuf[1];
+
+ _IO_lock_t *_lock;
+
+
+
+
+
+
+
+ __off64_t _offset;
+
+ struct _IO_codecvt *_codecvt;
+ struct _IO_wide_data *_wide_data;
+ struct _IO_FILE *_freeres_list;
+ void *_freeres_buf;
+ size_t __pad5;
+ int _mode;
+
+ char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)];
+};
+
+#line 100 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+typedef __gnuc_va_list va_list;
+
+#line 53 "/usr/include/stdio.h"
+typedef __off_t off_t;
+
+#line 64 "/usr/include/stdio.h"
+typedef __ssize_t ssize_t;
+
+
+
+
+
+
+
+#line 84 "/usr/include/stdio.h"
+typedef __fpos_t fpos_t;
+
+#line 85 "/usr/include/stdio.h"
+extern FILE *stdin;
+
+#line 144 "/usr/include/stdio.h"
+extern FILE *stdout;
+
+#line 145 "/usr/include/stdio.h"
+extern FILE *stderr;
+
+
+
+
+
+
+
+#line 152 "/usr/include/stdio.h"
+extern int remove (const char *__filename) __attribute__ ((__nothrow__ , __leaf__));
+
+
+#line 154 "/usr/include/stdio.h"
+extern int rename (const char *__old, const char *__new) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 158 "/usr/include/stdio.h"
+extern int renameat (int __oldfd, const char *__old, int __newfd,
+ const char *__new) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 160 "/usr/include/stdio.h"
+extern int fclose (FILE *__stream);
+
+#line 179 "/usr/include/stdio.h"
+extern FILE *tmpfile (void)
+ __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ;
+
+#line 190 "/usr/include/stdio.h"
+extern char *tmpnam (char[20]) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+#line 210 "/usr/include/stdio.h"
+extern char *tmpnam_r (char __s[20]) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+#line 211 "/usr/include/stdio.h"
+extern char *tempnam (const char *__dir, const char *__pfx)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (__builtin_free, 1)));
+
+
+
+
+
+
+
+#line 230 "/usr/include/stdio.h"
+extern int fflush (FILE *__stream);
+
+#line 231 "/usr/include/stdio.h"
+extern int fflush_unlocked (FILE *__stream);
+
+#line 240 "/usr/include/stdio.h"
+extern FILE *fopen (const char *__restrict __filename,
+ const char *__restrict __modes)
+ __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ;
+
+
+
+
+
+#line 265 "/usr/include/stdio.h"
+extern FILE *freopen (const char *__restrict __filename,
+ const char *__restrict __modes,
+ FILE *__restrict __stream) ;
+
+#line 268 "/usr/include/stdio.h"
+extern FILE *fdopen (int __fd, const char *__modes) __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ;
+
+#line 295 "/usr/include/stdio.h"
+extern FILE *fmemopen (void *__s, size_t __len, const char *__modes)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ;
+
+
+
+
+
+#line 314 "/usr/include/stdio.h"
+extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ;
+
+#line 316 "/usr/include/stdio.h"
+extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 332 "/usr/include/stdio.h"
+extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf,
+ int __modes, size_t __n) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+#line 338 "/usr/include/stdio.h"
+extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf,
+ size_t __size) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 342 "/usr/include/stdio.h"
+extern void setlinebuf (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+
+#line 350 "/usr/include/stdio.h"
+extern int fprintf (FILE *__restrict __stream,
+ const char *__restrict __format, ...);
+
+
+
+
+
+#line 356 "/usr/include/stdio.h"
+extern int printf (const char *__restrict __format, ...);
+
+
+#line 358 "/usr/include/stdio.h"
+extern int sprintf (char *__restrict __s,
+ const char *__restrict __format, ...) __attribute__ ((__nothrow__));
+
+
+
+
+
+
+#line 365 "/usr/include/stdio.h"
+extern int vfprintf (FILE *__restrict __s, const char *__restrict __format,
+ __gnuc_va_list __arg);
+
+
+
+
+
+#line 371 "/usr/include/stdio.h"
+extern int vprintf (const char *__restrict __format, __gnuc_va_list __arg);
+
+
+#line 373 "/usr/include/stdio.h"
+extern int vsprintf (char *__restrict __s, const char *__restrict __format,
+ __gnuc_va_list __arg) __attribute__ ((__nothrow__));
+
+
+
+
+#line 378 "/usr/include/stdio.h"
+extern int snprintf (char *__restrict __s, size_t __maxlen,
+ const char *__restrict __format, ...)
+ __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 4)));
+
+
+#line 382 "/usr/include/stdio.h"
+extern int vsnprintf (char *__restrict __s, size_t __maxlen,
+ const char *__restrict __format, __gnuc_va_list __arg)
+ __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 0)));
+
+#line 385 "/usr/include/stdio.h"
+extern int vdprintf (int __fd, const char *__restrict __fmt,
+ __gnuc_va_list __arg)
+ __attribute__ ((__format__ (__printf__, 2, 0)));
+
+#line 406 "/usr/include/stdio.h"
+extern int dprintf (int __fd, const char *__restrict __fmt, ...)
+ __attribute__ ((__format__ (__printf__, 2, 3)));
+
+
+
+
+
+
+
+
+#line 415 "/usr/include/stdio.h"
+extern int fscanf (FILE *__restrict __stream,
+ const char *__restrict __format, ...) ;
+
+
+
+
+
+#line 421 "/usr/include/stdio.h"
+extern int scanf (const char *__restrict __format, ...) ;
+
+
+#line 423 "/usr/include/stdio.h"
+extern int sscanf (const char *__restrict __s,
+ const char *__restrict __format, ...) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+#line 430 "/usr/include/stdio.h"
+
+
+
+extern int fscanf (FILE *__restrict __stream, const char *__restrict __format, ...) __asm__ ("" "__isoc99_fscanf")
+
+ ;
+
+#line 437 "/usr/include/stdio.h"
+extern int scanf (const char *__restrict __format, ...) __asm__ ("" "__isoc99_scanf")
+ ;
+
+#line 439 "/usr/include/stdio.h"
+extern int sscanf (const char *__restrict __s, const char *__restrict __format, ...) __asm__ ("" "__isoc99_sscanf") __attribute__ ((__nothrow__ , __leaf__))
+
+ ;
+
+#line 442 "/usr/include/stdio.h"
+extern int vfscanf (FILE *__restrict __s, const char *__restrict __format,
+ __gnuc_va_list __arg)
+ __attribute__ ((__format__ (__scanf__, 2, 0))) ;
+
+
+
+
+
+
+#line 467 "/usr/include/stdio.h"
+extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg)
+ __attribute__ ((__format__ (__scanf__, 1, 0))) ;
+
+
+
+#line 471 "/usr/include/stdio.h"
+extern int vsscanf (const char *__restrict __s,
+ const char *__restrict __format, __gnuc_va_list __arg)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__format__ (__scanf__, 2, 0)));
+
+
+
+
+
+
+#line 479 "/usr/include/stdio.h"
+extern int vfscanf (FILE *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vfscanf")
+
+
+
+ __attribute__ ((__format__ (__scanf__, 2, 0))) ;
+
+#line 484 "/usr/include/stdio.h"
+extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vscanf")
+
+ __attribute__ ((__format__ (__scanf__, 1, 0))) ;
+
+#line 487 "/usr/include/stdio.h"
+extern int vsscanf (const char *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vsscanf") __attribute__ ((__nothrow__ , __leaf__))
+
+
+
+ __attribute__ ((__format__ (__scanf__, 2, 0)));
+
+#line 492 "/usr/include/stdio.h"
+extern int fgetc (FILE *__stream);
+
+#line 514 "/usr/include/stdio.h"
+extern int getc (FILE *__stream);
+
+
+
+
+
+
+#line 520 "/usr/include/stdio.h"
+extern int getchar (void);
+
+
+
+
+
+
+
+#line 527 "/usr/include/stdio.h"
+extern int getc_unlocked (FILE *__stream);
+
+#line 528 "/usr/include/stdio.h"
+extern int getchar_unlocked (void);
+
+#line 529 "/usr/include/stdio.h"
+extern int fgetc_unlocked (FILE *__stream);
+
+#line 539 "/usr/include/stdio.h"
+extern int fputc (int __c, FILE *__stream);
+
+#line 550 "/usr/include/stdio.h"
+extern int putc (int __c, FILE *__stream);
+
+
+
+
+
+
+#line 556 "/usr/include/stdio.h"
+extern int putchar (int __c);
+
+#line 557 "/usr/include/stdio.h"
+extern int fputc_unlocked (int __c, FILE *__stream);
+
+
+
+
+
+
+
+
+#line 573 "/usr/include/stdio.h"
+extern int putc_unlocked (int __c, FILE *__stream);
+
+#line 574 "/usr/include/stdio.h"
+extern int putchar_unlocked (int __c);
+
+
+
+
+
+
+
+#line 581 "/usr/include/stdio.h"
+extern int getw (FILE *__stream);
+
+
+
+#line 584 "/usr/include/stdio.h"
+extern int putw (int __w, FILE *__stream);
+
+
+
+
+
+
+
+
+#line 592 "/usr/include/stdio.h"
+extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream)
+ __attribute__ ((__access__ (__write_only__, 1, 2)));
+
+#line 594 "/usr/include/stdio.h"
+extern __ssize_t __getdelim (char **__restrict __lineptr,
+ size_t *__restrict __n, int __delimiter,
+ FILE *__restrict __stream) ;
+
+#line 635 "/usr/include/stdio.h"
+extern __ssize_t getdelim (char **__restrict __lineptr,
+ size_t *__restrict __n, int __delimiter,
+ FILE *__restrict __stream) ;
+
+
+
+
+
+
+
+
+#line 645 "/usr/include/stdio.h"
+extern __ssize_t getline (char **__restrict __lineptr,
+ size_t *__restrict __n,
+ FILE *__restrict __stream) ;
+
+
+
+
+
+
+
+
+#line 655 "/usr/include/stdio.h"
+extern int fputs (const char *__restrict __s, FILE *__restrict __stream);
+
+
+
+
+
+
+#line 661 "/usr/include/stdio.h"
+extern int puts (const char *__s);
+
+
+
+
+
+
+
+#line 668 "/usr/include/stdio.h"
+extern int ungetc (int __c, FILE *__stream);
+
+
+
+
+
+
+
+#line 675 "/usr/include/stdio.h"
+extern size_t fread (void *__restrict __ptr, size_t __size,
+ size_t __n, FILE *__restrict __stream) ;
+
+
+
+
+
+#line 681 "/usr/include/stdio.h"
+extern size_t fwrite (const void *__restrict __ptr, size_t __size,
+ size_t __n, FILE *__restrict __s);
+
+#line 683 "/usr/include/stdio.h"
+extern size_t fread_unlocked (void *__restrict __ptr, size_t __size,
+ size_t __n, FILE *__restrict __stream) ;
+
+#line 704 "/usr/include/stdio.h"
+extern size_t fwrite_unlocked (const void *__restrict __ptr, size_t __size,
+ size_t __n, FILE *__restrict __stream);
+
+
+
+
+
+
+
+
+#line 713 "/usr/include/stdio.h"
+extern int fseek (FILE *__stream, long int __off, int __whence);
+
+
+
+
+
+#line 718 "/usr/include/stdio.h"
+extern long int ftell (FILE *__stream) ;
+
+
+
+
+
+#line 723 "/usr/include/stdio.h"
+extern void rewind (FILE *__stream);
+
+#line 724 "/usr/include/stdio.h"
+extern int fseeko (FILE *__stream, __off_t __off, int __whence);
+
+
+
+
+
+#line 741 "/usr/include/stdio.h"
+extern __off_t ftello (FILE *__stream) ;
+
+#line 742 "/usr/include/stdio.h"
+extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos);
+
+
+
+
+
+#line 765 "/usr/include/stdio.h"
+extern int fsetpos (FILE *__stream, const fpos_t *__pos);
+
+#line 766 "/usr/include/stdio.h"
+extern void clearerr (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
+
+
+#line 788 "/usr/include/stdio.h"
+extern int feof (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+#line 790 "/usr/include/stdio.h"
+extern int ferror (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+#line 794 "/usr/include/stdio.h"
+extern void clearerr_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 795 "/usr/include/stdio.h"
+extern int feof_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+#line 796 "/usr/include/stdio.h"
+extern int ferror_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+
+
+
+#line 804 "/usr/include/stdio.h"
+extern void perror (const char *__s);
+
+
+
+
+
+#line 809 "/usr/include/stdio.h"
+extern int fileno (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+#line 814 "/usr/include/stdio.h"
+extern int fileno_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+#line 815 "/usr/include/stdio.h"
+extern int pclose (FILE *__stream);
+
+
+
+
+
+
+#line 829 "/usr/include/stdio.h"
+extern FILE *popen (const char *__command, const char *__modes)
+ __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (pclose, 1))) ;
+
+
+
+
+
+
+
+#line 837 "/usr/include/stdio.h"
+extern char *ctermid (char *__s) __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__access__ (__write_only__, 1)));
+
+#line 839 "/usr/include/stdio.h"
+extern void flockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 871 "/usr/include/stdio.h"
+extern int ftrylockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+#line 874 "/usr/include/stdio.h"
+extern void funlockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 875 "/usr/include/stdio.h"
+extern int __uflow (FILE *);
+
+#line 886 "/usr/include/stdio.h"
+extern int __overflow (FILE *, int);
+
+#line 887 "/usr/include/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+vprintf (const char *__restrict __fmt, __gnuc_va_list __arg)
+{
+ return vfprintf (stdout, __fmt, __arg);
+}
+
+
+
+
+#line 46 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+getchar (void)
+{
+ return getc (stdin);
+}
+
+
+
+
+
+#line 55 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+fgetc_unlocked (FILE *__fp)
+{
+ return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++);
+}
+
+
+
+
+
+
+#line 65 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+getc_unlocked (FILE *__fp)
+{
+ return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++);
+}
+
+
+
+#line 72 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+getchar_unlocked (void)
+{
+ return (__builtin_expect (((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end), 0) ? __uflow (stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++);
+}
+
+
+
+
+
+#line 81 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+putchar (int __c)
+{
+ return putc (__c, stdout);
+}
+
+
+
+
+
+#line 90 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+fputc_unlocked (int __c, FILE *__stream)
+{
+ return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
+}
+
+
+
+
+
+
+#line 100 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+putc_unlocked (int __c, FILE *__stream)
+{
+ return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
+}
+
+
+
+#line 107 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+putchar_unlocked (int __c)
+{
+ return (__builtin_expect (((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end), 0) ? __overflow (stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c)));
+}
+
+#line 112 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+__attribute__ ((__nothrow__ , __leaf__)) feof_unlocked (FILE *__stream)
+{
+ return (((__stream)->_flags & 0x0010) != 0);
+}
+
+
+
+#line 134 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+__attribute__ ((__nothrow__ , __leaf__)) ferror_unlocked (FILE *__stream)
+{
+ return (((__stream)->_flags & 0x0020) != 0);
+}
+
+#line 139 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+extern void *memcpy (void *__restrict __dest, const void *__restrict __src,
+ size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 47 "/usr/include/string.h"
+extern void *memmove (void *__dest, const void *__src, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+
+#line 54 "/usr/include/string.h"
+extern void *memccpy (void *__restrict __dest, const void *__restrict __src,
+ int __c, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__access__ (__write_only__, 1, 4)));
+
+
+
+
+
+#line 61 "/usr/include/string.h"
+extern void *memset (void *__s, int __c, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+#line 64 "/usr/include/string.h"
+extern int memcmp (const void *__s1, const void *__s2, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 66 "/usr/include/string.h"
+extern int __memcmpeq (const void *__s1, const void *__s2, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 82 "/usr/include/string.h"
+extern void *memchr (const void *__s, int __c, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+#line 109 "/usr/include/string.h"
+extern char *strcpy (char *__restrict __dest, const char *__restrict __src)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 144 "/usr/include/string.h"
+extern char *strncpy (char *__restrict __dest,
+ const char *__restrict __src, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 149 "/usr/include/string.h"
+extern char *strcat (char *__restrict __dest, const char *__restrict __src)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 152 "/usr/include/string.h"
+extern char *strncat (char *__restrict __dest, const char *__restrict __src,
+ size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 156 "/usr/include/string.h"
+extern int strcmp (const char *__s1, const char *__s2)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 159 "/usr/include/string.h"
+extern int strncmp (const char *__s1, const char *__s2, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 163 "/usr/include/string.h"
+extern int strcoll (const char *__s1, const char *__s2)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 166 "/usr/include/string.h"
+extern size_t strxfrm (char *__restrict __dest,
+ const char *__restrict __src, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))) __attribute__ ((__access__ (__write_only__, 1, 3)));
+
+
+
+
+#line 172 "/usr/include/string.h"
+struct __locale_struct
+{
+
+ struct __locale_data *__locales[13];
+
+
+ const unsigned short int *__ctype_b;
+ const int *__ctype_tolower;
+ const int *__ctype_toupper;
+
+
+ const char *__names[13];
+};
+
+
+#line 41 "/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h"
+typedef struct __locale_struct *__locale_t;
+
+#line 42 "/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h"
+
+typedef __locale_t locale_t;
+
+#line 25 "/usr/include/x86_64-linux-gnu/bits/types/locale_t.h"
+
+
+extern int strcoll_l (const char *__s1, const char *__s2, locale_t __l)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));
+
+
+
+#line 179 "/usr/include/string.h"
+extern size_t strxfrm_l (char *__dest, const char *__src, size_t __n,
+ locale_t __l) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 4)))
+ __attribute__ ((__access__ (__write_only__, 1, 3)));
+
+
+
+
+
+
+#line 187 "/usr/include/string.h"
+extern char *strdup (const char *__s)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+#line 195 "/usr/include/string.h"
+extern char *strndup (const char *__string, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
+
+#line 197 "/usr/include/string.h"
+extern char *strchr (const char *__s, int __c)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+#line 248 "/usr/include/string.h"
+extern char *strrchr (const char *__s, int __c)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+#line 275 "/usr/include/string.h"
+extern size_t strcspn (const char *__s, const char *__reject)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 297 "/usr/include/string.h"
+extern size_t strspn (const char *__s, const char *__accept)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 299 "/usr/include/string.h"
+extern char *strpbrk (const char *__s, const char *__accept)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 325 "/usr/include/string.h"
+extern char *strstr (const char *__haystack, const char *__needle)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+#line 356 "/usr/include/string.h"
+extern char *strtok (char *__restrict __s, const char *__restrict __delim)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+
+
+#line 361 "/usr/include/string.h"
+extern char *__strtok_r (char *__restrict __s,
+ const char *__restrict __delim,
+ char **__restrict __save_ptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3)));
+
+
+#line 366 "/usr/include/string.h"
+extern char *strtok_r (char *__restrict __s, const char *__restrict __delim,
+ char **__restrict __save_ptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3)));
+
+#line 369 "/usr/include/string.h"
+extern size_t strlen (const char *__s)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+#line 413 "/usr/include/string.h"
+extern size_t strnlen (const char *__string, size_t __maxlen)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+#line 419 "/usr/include/string.h"
+extern char *strerror (int __errnum) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 420 "/usr/include/string.h"
+extern int strerror_r (int __errnum, char *__buf, size_t __buflen) __asm__ ("" "__xpg_strerror_r") __attribute__ ((__nothrow__ , __leaf__))
+
+ __attribute__ ((__nonnull__ (2)))
+ __attribute__ ((__access__ (__write_only__, 2, 3)));
+
+#line 436 "/usr/include/string.h"
+extern char *strerror_l (int __errnum, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 462 "/usr/include/string.h"
+
+
+
+
+
+
+
+
+
+
+extern int bcmp (const void *__s1, const void *__s2, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 38 "/usr/include/strings.h"
+extern void bcopy (const void *__src, void *__dest, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 42 "/usr/include/strings.h"
+extern void bzero (void *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 43 "/usr/include/strings.h"
+extern char *index (const char *__s, int __c)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+#line 70 "/usr/include/strings.h"
+extern char *rindex (const char *__s, int __c)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+#line 104 "/usr/include/strings.h"
+extern int ffs (int __i) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+
+
+
+
+
+#line 110 "/usr/include/strings.h"
+extern int ffsl (long int __l) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+#line 111 "/usr/include/strings.h"
+__extension__ extern int ffsll (long long int __ll)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+
+
+
+#line 116 "/usr/include/strings.h"
+extern int strcasecmp (const char *__s1, const char *__s2)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 120 "/usr/include/strings.h"
+extern int strncasecmp (const char *__s1, const char *__s2, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+
+
+#line 128 "/usr/include/strings.h"
+extern int strcasecmp_l (const char *__s1, const char *__s2, locale_t __loc)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));
+
+
+
+
+#line 133 "/usr/include/strings.h"
+extern int strncasecmp_l (const char *__s1, const char *__s2,
+ size_t __n, locale_t __loc)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 4)));
+
+
+
+
+#line 139 "/usr/include/strings.h"
+
+
+
+extern void explicit_bzero (void *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)))
+ __attribute__ ((__access__ (__write_only__, 1, 2)));
+
+
+
+
+#line 471 "/usr/include/string.h"
+extern char *strsep (char **__restrict __stringp,
+ const char *__restrict __delim)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+#line 478 "/usr/include/string.h"
+extern char *strsignal (int __sig) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 479 "/usr/include/string.h"
+extern char *__stpcpy (char *__restrict __dest, const char *__restrict __src)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 491 "/usr/include/string.h"
+extern char *stpcpy (char *__restrict __dest, const char *__restrict __src)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+#line 496 "/usr/include/string.h"
+extern char *__stpncpy (char *__restrict __dest,
+ const char *__restrict __src, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 499 "/usr/include/string.h"
+extern char *stpncpy (char *__restrict __dest,
+ const char *__restrict __src, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 502 "/usr/include/string.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+extern int *__errno_location (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+#line 38 "/usr/include/errno.h"
+
+
+
+
+
+
+typedef int wchar_t;
+
+#line 330 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h"
+
+
+
+
+
+
+
+typedef struct
+ {
+ int quot;
+ int rem;
+ }
+#line 63 "/usr/include/stdlib.h"
+div_t;
+
+
+
+
+#line 67 "/usr/include/stdlib.h"
+typedef struct
+ {
+ long int quot;
+ long int rem;
+ }
+#line 71 "/usr/include/stdlib.h"
+ldiv_t;
+
+
+
+
+
+
+#line 77 "/usr/include/stdlib.h"
+__extension__ typedef struct
+ {
+ long long int quot;
+ long long int rem;
+ }
+#line 81 "/usr/include/stdlib.h"
+lldiv_t;
+
+#line 82 "/usr/include/stdlib.h"
+extern size_t __ctype_get_mb_cur_max (void) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+#line 102 "/usr/include/stdlib.h"
+extern double atof (const char *__nptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+#line 105 "/usr/include/stdlib.h"
+extern int atoi (const char *__nptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+#line 108 "/usr/include/stdlib.h"
+extern long int atol (const char *__nptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+#line 113 "/usr/include/stdlib.h"
+__extension__ extern long long int atoll (const char *__nptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+#line 118 "/usr/include/stdlib.h"
+extern double strtod (const char *__restrict __nptr,
+ char **__restrict __endptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+#line 124 "/usr/include/stdlib.h"
+extern float strtof (const char *__restrict __nptr,
+ char **__restrict __endptr) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+#line 127 "/usr/include/stdlib.h"
+extern long double strtold (const char *__restrict __nptr,
+ char **__restrict __endptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 130 "/usr/include/stdlib.h"
+extern long int strtol (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+#line 181 "/usr/include/stdlib.h"
+extern unsigned long int strtoul (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+#line 187 "/usr/include/stdlib.h"
+__extension__
+extern long long int strtoq (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+#line 192 "/usr/include/stdlib.h"
+__extension__
+extern unsigned long long int strtouq (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+#line 200 "/usr/include/stdlib.h"
+__extension__
+extern long long int strtoll (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+#line 205 "/usr/include/stdlib.h"
+__extension__
+extern unsigned long long int strtoull (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 209 "/usr/include/stdlib.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+__attribute__ ((__nothrow__ , __leaf__)) atoi (const char *__nptr)
+{
+ return (int) strtol (__nptr, (char **) ((void *)0), 10);
+}
+
+#line 366 "/usr/include/stdlib.h"
+extern __inline __attribute__ ((__gnu_inline__)) long int
+__attribute__ ((__nothrow__ , __leaf__)) atol (const char *__nptr)
+{
+ return strtol (__nptr, (char **) ((void *)0), 10);
+}
+
+
+
+#line 373 "/usr/include/stdlib.h"
+__extension__ extern __inline __attribute__ ((__gnu_inline__)) long long int
+__attribute__ ((__nothrow__ , __leaf__)) atoll (const char *__nptr)
+{
+ return strtoll (__nptr, (char **) ((void *)0), 10);
+}
+
+#line 378 "/usr/include/stdlib.h"
+extern char *l64a (long int __n) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+#line 389 "/usr/include/stdlib.h"
+extern long int a64l (const char *__s)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+
+#line 395 "/usr/include/stdlib.h"
+
+
+
+
+
+
+typedef __u_char u_char;
+
+#line 34 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __u_short u_short;
+
+#line 35 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __u_int u_int;
+
+#line 36 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __u_long u_long;
+
+#line 37 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __quad_t quad_t;
+
+#line 38 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __u_quad_t u_quad_t;
+
+#line 39 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __fsid_t fsid_t;
+
+
+
+#line 42 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __loff_t loff_t;
+
+
+
+
+
+#line 47 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __ino_t ino_t;
+
+#line 48 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __dev_t dev_t;
+
+
+
+
+
+#line 64 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __gid_t gid_t;
+
+
+
+
+
+#line 69 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __mode_t mode_t;
+
+
+
+
+
+#line 74 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __nlink_t nlink_t;
+
+
+
+
+
+#line 79 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __uid_t uid_t;
+
+#line 80 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __pid_t pid_t;
+
+
+
+
+
+
+#line 103 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __id_t id_t;
+
+#line 104 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __daddr_t daddr_t;
+
+#line 115 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __caddr_t caddr_t;
+
+
+
+
+
+
+#line 121 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __key_t key_t;
+
+
+
+
+
+#line 126 "/usr/include/x86_64-linux-gnu/sys/types.h"
+
+
+
+
+
+
+typedef __clock_t clock_t;
+
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/clock_t.h"
+
+
+
+
+
+
+
+typedef __clockid_t clockid_t;
+
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h"
+typedef __time_t time_t;
+
+#line 11 "/usr/include/x86_64-linux-gnu/bits/types/time_t.h"
+
+
+
+
+
+
+typedef __timer_t timer_t;
+
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/timer_t.h"
+
+
+
+typedef unsigned long int ulong;
+
+#line 149 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef unsigned short int ushort;
+
+#line 150 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef unsigned int uint;
+
+
+
+
+
+#line 155 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __int8_t int8_t;
+
+#line 25 "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h"
+typedef __int16_t int16_t;
+
+#line 26 "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h"
+typedef __int32_t int32_t;
+
+#line 27 "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h"
+typedef __int64_t int64_t;
+
+#line 28 "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h"
+
+
+typedef __uint8_t u_int8_t;
+
+#line 159 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __uint16_t u_int16_t;
+
+#line 160 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __uint32_t u_int32_t;
+
+#line 161 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __uint64_t u_int64_t;
+
+
+
+#line 164 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef int register_t __attribute__ ((__mode__ (__word__)));
+
+#line 165 "/usr/include/x86_64-linux-gnu/sys/types.h"
+static __inline __uint16_t
+__bswap_16 (__uint16_t __bsx)
+{
+
+ return __builtin_bswap16 (__bsx);
+
+
+
+}
+
+
+
+
+
+
+
+#line 48 "/usr/include/x86_64-linux-gnu/bits/byteswap.h"
+static __inline __uint32_t
+__bswap_32 (__uint32_t __bsx)
+{
+
+ return __builtin_bswap32 (__bsx);
+
+
+
+}
+
+#line 57 "/usr/include/x86_64-linux-gnu/bits/byteswap.h"
+__extension__ static __inline __uint64_t
+__bswap_64 (__uint64_t __bsx)
+{
+
+ return __builtin_bswap64 (__bsx);
+
+
+
+}
+
+#line 78 "/usr/include/x86_64-linux-gnu/bits/byteswap.h"
+static __inline __uint16_t
+__uint16_identity (__uint16_t __x)
+{
+ return __x;
+}
+
+
+#line 38 "/usr/include/x86_64-linux-gnu/bits/uintn-identity.h"
+static __inline __uint32_t
+__uint32_identity (__uint32_t __x)
+{
+ return __x;
+}
+
+
+#line 44 "/usr/include/x86_64-linux-gnu/bits/uintn-identity.h"
+static __inline __uint64_t
+__uint64_identity (__uint64_t __x)
+{
+ return __x;
+}
+
+#line 49 "/usr/include/x86_64-linux-gnu/bits/uintn-identity.h"
+
+
+
+
+
+
+
+
+
+
+
+typedef struct
+{
+ unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))];
+}
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h"
+__sigset_t;
+
+#line 9 "/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h"
+
+
+typedef __sigset_t sigset_t;
+
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h"
+
+
+
+
+
+
+
+
+
+
+struct timeval
+{
+
+
+
+
+ __time_t tv_sec;
+ __suseconds_t tv_usec;
+
+};
+
+#line 18 "/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h"
+
+struct timespec
+{
+
+
+
+ __time_t tv_sec;
+
+
+
+
+ __syscall_slong_t tv_nsec;
+};
+
+#line 32 "/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h"
+
+
+
+typedef __suseconds_t suseconds_t;
+
+
+
+
+
+
+#line 49 "/usr/include/x86_64-linux-gnu/sys/select.h"
+typedef long int __fd_mask;
+
+#line 50 "/usr/include/x86_64-linux-gnu/sys/select.h"
+typedef struct
+ {
+
+
+
+
+
+
+ __fd_mask __fds_bits[1024 / (8 * (int) sizeof (__fd_mask))];
+
+
+ }
+#line 70 "/usr/include/x86_64-linux-gnu/sys/select.h"
+fd_set;
+
+
+
+
+
+
+
+#line 77 "/usr/include/x86_64-linux-gnu/sys/select.h"
+typedef __fd_mask fd_mask;
+
+#line 78 "/usr/include/x86_64-linux-gnu/sys/select.h"
+
+extern int select (int __nfds, fd_set *__restrict __readfds,
+ fd_set *__restrict __writefds,
+ fd_set *__restrict __exceptfds,
+ struct timeval *__restrict __timeout);
+
+#line 106 "/usr/include/x86_64-linux-gnu/sys/select.h"
+extern int pselect (int __nfds, fd_set *__restrict __readfds,
+ fd_set *__restrict __writefds,
+ fd_set *__restrict __exceptfds,
+ const struct timespec *__restrict __timeout,
+ const __sigset_t *__restrict __sigmask);
+
+#line 132 "/usr/include/x86_64-linux-gnu/sys/select.h"
+
+
+
+
+
+
+typedef __blksize_t blksize_t;
+
+
+
+
+
+
+
+#line 192 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __blkcnt_t blkcnt_t;
+
+
+
+
+#line 196 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __fsblkcnt_t fsblkcnt_t;
+
+
+
+
+#line 200 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __fsfilcnt_t fsfilcnt_t;
+
+#line 201 "/usr/include/x86_64-linux-gnu/sys/types.h"
+
+typedef union
+{
+ __extension__ unsigned long long int __value64;
+ struct
+ {
+ unsigned int __low;
+ unsigned int __high;
+ } __value32;
+}
+#line 33 "/usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h"
+__atomic_wide_counter;
+
+#line 34 "/usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h"
+
+
+
+
+typedef struct __pthread_internal_list
+{
+ struct __pthread_internal_list *__prev;
+ struct __pthread_internal_list *__next;
+}
+#line 55 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+__pthread_list_t;
+
+
+#line 57 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+typedef struct __pthread_internal_slist
+{
+ struct __pthread_internal_slist *__next;
+}
+#line 60 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+__pthread_slist_t;
+
+#line 61 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+struct __pthread_mutex_s
+{
+ int __lock;
+ unsigned int __count;
+ int __owner;
+
+ unsigned int __nusers;
+
+
+
+ int __kind;
+
+ short __spins;
+ short __elision;
+ __pthread_list_t __list;
+};
+
+#line 54 "/usr/include/x86_64-linux-gnu/bits/struct_mutex.h"
+struct __pthread_rwlock_arch_t
+{
+ unsigned int __readers;
+ unsigned int __writers;
+ unsigned int __wrphase_futex;
+ unsigned int __writers_futex;
+ unsigned int __pad3;
+ unsigned int __pad4;
+
+ int __cur_writer;
+ int __shared;
+ signed char __rwelision;
+
+
+
+
+ unsigned char __pad1[7];
+
+
+ unsigned long int __pad2;
+
+
+ unsigned int __flags;
+};
+
+#line 56 "/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h"
+
+
+
+
+struct __pthread_cond_s
+{
+ __atomic_wide_counter __wseq;
+ __atomic_wide_counter __g1_start;
+ unsigned int __g_refs[2] ;
+ unsigned int __g_size[2];
+ unsigned int __g1_orig_size;
+ unsigned int __wrefs;
+ unsigned int __g_signals[2];
+};
+
+
+#line 105 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+typedef unsigned int __tss_t;
+
+#line 106 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+typedef unsigned long int __thrd_t;
+
+
+#line 108 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+typedef struct
+{
+ int __data ;
+}
+#line 111 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+__once_flag;
+
+#line 112 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+
+
+
+typedef unsigned long int pthread_t;
+
+
+
+
+
+#line 32 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ char __size[4];
+ int __align;
+}
+#line 36 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_mutexattr_t;
+
+
+
+
+
+#line 41 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ char __size[4];
+ int __align;
+}
+#line 45 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_condattr_t;
+
+
+
+
+#line 49 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef unsigned int pthread_key_t;
+
+
+
+
+#line 53 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef int pthread_once_t;
+
+
+
+#line 56 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+union pthread_attr_t
+{
+ char __size[56];
+ long int __align;
+};
+
+
+#line 62 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union pthread_attr_t pthread_attr_t;
+
+
+
+
+
+#line 67 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ struct __pthread_mutex_s __data;
+ char __size[40];
+ long int __align;
+}
+#line 72 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_mutex_t;
+
+
+
+#line 75 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ struct __pthread_cond_s __data;
+ char __size[48];
+ __extension__ long long int __align;
+}
+#line 80 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_cond_t;
+
+
+
+
+
+
+#line 86 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ struct __pthread_rwlock_arch_t __data;
+ char __size[56];
+ long int __align;
+}
+#line 91 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_rwlock_t;
+
+
+#line 93 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ char __size[8];
+ long int __align;
+}
+#line 97 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_rwlockattr_t;
+
+
+
+
+
+
+#line 103 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef volatile int pthread_spinlock_t;
+
+
+
+
+
+#line 108 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ char __size[32];
+ long int __align;
+}
+#line 112 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_barrier_t;
+
+
+#line 114 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ char __size[4];
+ int __align;
+}
+#line 118 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_barrierattr_t;
+
+#line 119 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+
+
+
+
+
+
+
+
+
+extern long int random (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 405 "/usr/include/stdlib.h"
+extern void srandom (unsigned int __seed) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+#line 411 "/usr/include/stdlib.h"
+extern char *initstate (unsigned int __seed, char *__statebuf,
+ size_t __statelen) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+
+
+#line 416 "/usr/include/stdlib.h"
+extern char *setstate (char *__statebuf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+
+#line 424 "/usr/include/stdlib.h"
+struct random_data
+ {
+ int32_t *fptr;
+ int32_t *rptr;
+ int32_t *state;
+ int rand_type;
+ int rand_deg;
+ int rand_sep;
+ int32_t *end_ptr;
+ };
+
+
+#line 435 "/usr/include/stdlib.h"
+extern int random_r (struct random_data *__restrict __buf,
+ int32_t *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 438 "/usr/include/stdlib.h"
+extern int srandom_r (unsigned int __seed, struct random_data *__buf)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+#line 441 "/usr/include/stdlib.h"
+extern int initstate_r (unsigned int __seed, char *__restrict __statebuf,
+ size_t __statelen,
+ struct random_data *__restrict __buf)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 4)));
+
+
+#line 446 "/usr/include/stdlib.h"
+extern int setstate_r (char *__restrict __statebuf,
+ struct random_data *__restrict __buf)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+
+#line 454 "/usr/include/stdlib.h"
+extern int rand (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+#line 456 "/usr/include/stdlib.h"
+extern void srand (unsigned int __seed) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 460 "/usr/include/stdlib.h"
+extern int rand_r (unsigned int *__seed) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+
+#line 468 "/usr/include/stdlib.h"
+extern double drand48 (void) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 469 "/usr/include/stdlib.h"
+extern double erand48 (unsigned short int __xsubi[3]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+#line 472 "/usr/include/stdlib.h"
+extern long int lrand48 (void) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 473 "/usr/include/stdlib.h"
+extern long int nrand48 (unsigned short int __xsubi[3])
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+#line 477 "/usr/include/stdlib.h"
+extern long int mrand48 (void) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 478 "/usr/include/stdlib.h"
+extern long int jrand48 (unsigned short int __xsubi[3])
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+#line 482 "/usr/include/stdlib.h"
+extern void srand48 (long int __seedval) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 483 "/usr/include/stdlib.h"
+extern unsigned short int *seed48 (unsigned short int __seed16v[3])
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 485 "/usr/include/stdlib.h"
+extern void lcong48 (unsigned short int __param[7]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+#line 491 "/usr/include/stdlib.h"
+struct drand48_data
+ {
+ unsigned short int __x[3];
+ unsigned short int __old_x[3];
+ unsigned short int __c;
+ unsigned short int __init;
+ __extension__ unsigned long long int __a;
+
+ };
+
+
+
+#line 502 "/usr/include/stdlib.h"
+extern int drand48_r (struct drand48_data *__restrict __buffer,
+ double *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 504 "/usr/include/stdlib.h"
+extern int erand48_r (unsigned short int __xsubi[3],
+ struct drand48_data *__restrict __buffer,
+ double *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 509 "/usr/include/stdlib.h"
+extern int lrand48_r (struct drand48_data *__restrict __buffer,
+ long int *__restrict __result)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 512 "/usr/include/stdlib.h"
+extern int nrand48_r (unsigned short int __xsubi[3],
+ struct drand48_data *__restrict __buffer,
+ long int *__restrict __result)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 518 "/usr/include/stdlib.h"
+extern int mrand48_r (struct drand48_data *__restrict __buffer,
+ long int *__restrict __result)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 521 "/usr/include/stdlib.h"
+extern int jrand48_r (unsigned short int __xsubi[3],
+ struct drand48_data *__restrict __buffer,
+ long int *__restrict __result)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 527 "/usr/include/stdlib.h"
+extern int srand48_r (long int __seedval, struct drand48_data *__buffer)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+#line 530 "/usr/include/stdlib.h"
+extern int seed48_r (unsigned short int __seed16v[3],
+ struct drand48_data *__buffer) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 533 "/usr/include/stdlib.h"
+extern int lcong48_r (unsigned short int __param[7],
+ struct drand48_data *__buffer)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 538 "/usr/include/stdlib.h"
+extern __uint32_t arc4random (void)
+ __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+#line 542 "/usr/include/stdlib.h"
+extern void arc4random_buf (void *__buf, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+#line 547 "/usr/include/stdlib.h"
+extern __uint32_t arc4random_uniform (__uint32_t __upper_bound)
+ __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+#line 553 "/usr/include/stdlib.h"
+extern void *malloc (size_t __size) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__))
+ __attribute__ ((__alloc_size__ (1))) ;
+
+
+#line 556 "/usr/include/stdlib.h"
+extern void *calloc (size_t __nmemb, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__alloc_size__ (1, 2))) ;
+
+
+
+
+
+
+
+#line 564 "/usr/include/stdlib.h"
+extern void *realloc (void *__ptr, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)) __attribute__ ((__alloc_size__ (2)));
+
+
+
+#line 568 "/usr/include/stdlib.h"
+extern void free (void *__ptr) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+
+#line 576 "/usr/include/stdlib.h"
+extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__))
+ __attribute__ ((__alloc_size__ (2, 3)))
+ __attribute__ ((__malloc__ (__builtin_free, 1)));
+
+
+
+#line 582 "/usr/include/stdlib.h"
+extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__ (reallocarray, 1)));
+
+
+
+
+#line 587 "/usr/include/stdlib.h"
+
+
+
+
+
+
+
+extern void *alloca (size_t __size) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+#line 39 "/usr/include/alloca.h"
+
+
+
+
+
+extern void *valloc (size_t __size) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__))
+ __attribute__ ((__alloc_size__ (1))) ;
+
+
+
+
+
+#line 599 "/usr/include/stdlib.h"
+extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+
+#line 605 "/usr/include/stdlib.h"
+extern void *aligned_alloc (size_t __alignment, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__alloc_align__ (1)))
+ __attribute__ ((__alloc_size__ (2))) ;
+
+
+
+
+#line 611 "/usr/include/stdlib.h"
+extern void abort (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+#line 615 "/usr/include/stdlib.h"
+extern int atexit (void (*__func) (void)) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+
+#line 623 "/usr/include/stdlib.h"
+extern int at_quick_exit (void (*__func) (void)) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+#line 630 "/usr/include/stdlib.h"
+extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+#line 637 "/usr/include/stdlib.h"
+extern void exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+
+
+#line 643 "/usr/include/stdlib.h"
+extern void quick_exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+
+
+#line 649 "/usr/include/stdlib.h"
+extern void _Exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+
+#line 654 "/usr/include/stdlib.h"
+extern char *getenv (const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+#line 655 "/usr/include/stdlib.h"
+extern int putenv (char *__string) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+#line 673 "/usr/include/stdlib.h"
+extern int setenv (const char *__name, const char *__value, int __replace)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+
+#line 677 "/usr/include/stdlib.h"
+extern int unsetenv (const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+#line 684 "/usr/include/stdlib.h"
+extern int clearenv (void) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 685 "/usr/include/stdlib.h"
+extern char *mktemp (char *__template) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 696 "/usr/include/stdlib.h"
+extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) ;
+
+#line 709 "/usr/include/stdlib.h"
+extern int mkstemps (char *__template, int __suffixlen) __attribute__ ((__nonnull__ (1))) ;
+
+#line 731 "/usr/include/stdlib.h"
+extern char *mkdtemp (char *__template) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+#line 752 "/usr/include/stdlib.h"
+extern int system (const char *__command) ;
+
+#line 805 "/usr/include/stdlib.h"
+extern char *realpath (const char *__restrict __name,
+ char *__restrict __resolved) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+
+
+#line 829 "/usr/include/stdlib.h"
+typedef int (*__compar_fn_t) (const void *, const void *);
+
+#line 830 "/usr/include/stdlib.h"
+extern void *bsearch (const void *__key, const void *__base,
+ size_t __nmemb, size_t __size, __compar_fn_t __compar)
+ __attribute__ ((__nonnull__ (1, 2, 5))) ;
+
+
+
+#line 846 "/usr/include/stdlib.h"
+extern __inline __attribute__ ((__gnu_inline__)) void *
+bsearch (const void *__key, const void *__base, size_t __nmemb, size_t __size,
+ __compar_fn_t __compar)
+{
+ size_t __l, __u, __idx;
+ const void *__p;
+ int __comparison;
+
+ __l = 0;
+ __u = __nmemb;
+ while (__l < __u)
+ {
+ __idx = (__l + __u) / 2;
+ __p = (const void *) (((const char *) __base) + (__idx * __size));
+ __comparison = (*__compar) (__key, __p);
+ if (__comparison < 0)
+ __u = __idx;
+ else if (__comparison > 0)
+ __l = __idx + 1;
+ else
+ {
+
+
+ return (void *) __p;
+
+
+ }
+ }
+
+ return ((void *)0);
+}
+
+#line 29 "-Wcast-qual"
+
+
+
+
+extern void qsort (void *__base, size_t __nmemb, size_t __size,
+ __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4)));
+
+#line 853 "/usr/include/stdlib.h"
+extern int abs (int __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+#line 862 "/usr/include/stdlib.h"
+extern long int labs (long int __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+
+
+#line 865 "/usr/include/stdlib.h"
+__extension__ extern long long int llabs (long long int __x)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+
+
+
+
+
+
+#line 873 "/usr/include/stdlib.h"
+extern div_t div (int __numer, int __denom)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+#line 875 "/usr/include/stdlib.h"
+extern ldiv_t ldiv (long int __numer, long int __denom)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+
+
+#line 879 "/usr/include/stdlib.h"
+__extension__ extern lldiv_t lldiv (long long int __numer,
+ long long int __denom)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+#line 882 "/usr/include/stdlib.h"
+extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt,
+ int *__restrict __sign) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ;
+
+
+
+
+
+#line 899 "/usr/include/stdlib.h"
+extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt,
+ int *__restrict __sign) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ;
+
+
+
+
+
+#line 905 "/usr/include/stdlib.h"
+extern char *gcvt (double __value, int __ndigit, char *__buf)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3))) ;
+
+
+
+
+
+#line 911 "/usr/include/stdlib.h"
+extern char *qecvt (long double __value, int __ndigit,
+ int *__restrict __decpt, int *__restrict __sign)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ;
+
+#line 914 "/usr/include/stdlib.h"
+extern char *qfcvt (long double __value, int __ndigit,
+ int *__restrict __decpt, int *__restrict __sign)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ;
+
+#line 917 "/usr/include/stdlib.h"
+extern char *qgcvt (long double __value, int __ndigit, char *__buf)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3))) ;
+
+
+
+
+
+#line 923 "/usr/include/stdlib.h"
+extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt,
+ int *__restrict __sign, char *__restrict __buf,
+ size_t __len) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
+
+#line 926 "/usr/include/stdlib.h"
+extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt,
+ int *__restrict __sign, char *__restrict __buf,
+ size_t __len) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
+
+
+#line 930 "/usr/include/stdlib.h"
+extern int qecvt_r (long double __value, int __ndigit,
+ int *__restrict __decpt, int *__restrict __sign,
+ char *__restrict __buf, size_t __len)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
+
+#line 934 "/usr/include/stdlib.h"
+extern int qfcvt_r (long double __value, int __ndigit,
+ int *__restrict __decpt, int *__restrict __sign,
+ char *__restrict __buf, size_t __len)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
+
+
+
+
+
+
+#line 943 "/usr/include/stdlib.h"
+extern int mblen (const char *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 946 "/usr/include/stdlib.h"
+extern int mbtowc (wchar_t *__restrict __pwc,
+ const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 950 "/usr/include/stdlib.h"
+extern int wctomb (char *__s, wchar_t __wchar) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 954 "/usr/include/stdlib.h"
+extern size_t mbstowcs (wchar_t *__restrict __pwcs,
+ const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__access__ (__read_only__, 2)));
+
+
+#line 958 "/usr/include/stdlib.h"
+extern size_t wcstombs (char *__restrict __s,
+ const wchar_t *__restrict __pwcs, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__access__ (__write_only__, 1, 3)))
+ __attribute__ ((__access__ (__read_only__, 2)));
+
+
+
+
+
+
+
+#line 969 "/usr/include/stdlib.h"
+extern int rpmatch (const char *__response) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+#line 970 "/usr/include/stdlib.h"
+extern int getsubopt (char **__restrict __optionp,
+ char *const *__restrict __tokens,
+ char **__restrict __valuep)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2, 3))) ;
+
+#line 984 "/usr/include/stdlib.h"
+extern int getloadavg (double __loadavg[], int __nelem)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 1028 "/usr/include/stdlib.h"
+extern __inline __attribute__ ((__gnu_inline__)) double
+__attribute__ ((__nothrow__ , __leaf__)) atof (const char *__nptr)
+{
+ return strtod (__nptr, (char **) ((void *)0));
+}
+
+#line 29 "/usr/include/x86_64-linux-gnu/bits/stdlib-float.h"
+
+
+
+
+
+
+
+
+
+typedef __uint8_t uint8_t;
+
+#line 25 "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h"
+typedef __uint16_t uint16_t;
+
+#line 26 "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h"
+typedef __uint32_t uint32_t;
+
+#line 27 "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h"
+typedef __uint64_t uint64_t;
+
+#line 28 "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h"
+
+
+
+
+
+typedef __int_least8_t int_least8_t;
+
+#line 44 "/usr/include/stdint.h"
+typedef __int_least16_t int_least16_t;
+
+#line 45 "/usr/include/stdint.h"
+typedef __int_least32_t int_least32_t;
+
+#line 46 "/usr/include/stdint.h"
+typedef __int_least64_t int_least64_t;
+
+
+
+#line 49 "/usr/include/stdint.h"
+typedef __uint_least8_t uint_least8_t;
+
+#line 50 "/usr/include/stdint.h"
+typedef __uint_least16_t uint_least16_t;
+
+#line 51 "/usr/include/stdint.h"
+typedef __uint_least32_t uint_least32_t;
+
+#line 52 "/usr/include/stdint.h"
+typedef __uint_least64_t uint_least64_t;
+
+
+
+
+
+
+#line 58 "/usr/include/stdint.h"
+typedef signed char int_fast8_t;
+
+
+#line 60 "/usr/include/stdint.h"
+typedef long int int_fast16_t;
+
+#line 61 "/usr/include/stdint.h"
+typedef long int int_fast32_t;
+
+#line 62 "/usr/include/stdint.h"
+typedef long int int_fast64_t;
+
+#line 63 "/usr/include/stdint.h"
+typedef unsigned char uint_fast8_t;
+
+
+#line 73 "/usr/include/stdint.h"
+typedef unsigned long int uint_fast16_t;
+
+#line 74 "/usr/include/stdint.h"
+typedef unsigned long int uint_fast32_t;
+
+#line 75 "/usr/include/stdint.h"
+typedef unsigned long int uint_fast64_t;
+
+#line 76 "/usr/include/stdint.h"
+typedef long int intptr_t;
+
+
+
+#line 90 "/usr/include/stdint.h"
+typedef unsigned long int uintptr_t;
+
+#line 91 "/usr/include/stdint.h"
+typedef __intmax_t intmax_t;
+
+#line 102 "/usr/include/stdint.h"
+typedef __uintmax_t uintmax_t;
+
+#line 103 "/usr/include/stdint.h"
+
+
+
+
+
+
+typedef int __gwchar_t;
+
+#line 35 "/usr/include/inttypes.h"
+
+
+
+
+
+typedef struct
+ {
+ long int quot;
+ long int rem;
+ }
+#line 275 "/usr/include/inttypes.h"
+imaxdiv_t;
+
+#line 276 "/usr/include/inttypes.h"
+extern intmax_t imaxabs (intmax_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+
+
+#line 293 "/usr/include/inttypes.h"
+extern imaxdiv_t imaxdiv (intmax_t __numer, intmax_t __denom)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+
+
+#line 297 "/usr/include/inttypes.h"
+extern intmax_t strtoimax (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 301 "/usr/include/inttypes.h"
+extern uintmax_t strtoumax (const char *__restrict __nptr,
+ char ** __restrict __endptr, int __base) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 305 "/usr/include/inttypes.h"
+extern intmax_t wcstoimax (const __gwchar_t *__restrict __nptr,
+ __gwchar_t **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 310 "/usr/include/inttypes.h"
+extern uintmax_t wcstoumax (const __gwchar_t *__restrict __nptr,
+ __gwchar_t ** __restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 315 "/usr/include/inttypes.h"
+
+typedef int8_t flex_int8_t;
+
+#line 44 "<stdout>"
+typedef uint8_t flex_uint8_t;
+
+#line 45 "<stdout>"
+typedef int16_t flex_int16_t;
+
+#line 46 "<stdout>"
+typedef uint16_t flex_uint16_t;
+
+#line 47 "<stdout>"
+typedef int32_t flex_int32_t;
+
+#line 48 "<stdout>"
+typedef uint32_t flex_uint32_t;
+
+#line 49 "<stdout>"
+typedef void* yyscan_t;
+
+#line 117 "<stdout>"
+typedef struct yy_buffer_state *YY_BUFFER_STATE;
+
+
+
+
+
+#line 171 "<stdout>"
+typedef size_t yy_size_t;
+
+#line 172 "<stdout>"
+struct yy_buffer_state
+ {
+ FILE *yy_input_file;
+
+ char *yy_ch_buf;
+ char *yy_buf_pos;
+
+
+
+
+ int yy_buf_size;
+
+
+
+
+ int yy_n_chars;
+
+
+
+
+
+ int yy_is_our_buffer;
+
+
+
+
+
+
+ int yy_is_interactive;
+
+
+
+
+
+ int yy_at_bol;
+
+ int yy_bs_lineno;
+ int yy_bs_column;
+
+
+
+
+ int yy_fill_buffer;
+
+ int yy_buffer_status;
+ };
+
+#line 259 "<stdout>"
+void yyrestart ( FILE *input_file , yyscan_t yyscanner );
+
+#line 276 "<stdout>"
+void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer , yyscan_t yyscanner );
+
+#line 277 "<stdout>"
+YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size , yyscan_t yyscanner );
+
+#line 278 "<stdout>"
+void yy_delete_buffer ( YY_BUFFER_STATE b , yyscan_t yyscanner );
+
+#line 279 "<stdout>"
+void yy_flush_buffer ( YY_BUFFER_STATE b , yyscan_t yyscanner );
+
+#line 280 "<stdout>"
+void yypush_buffer_state ( YY_BUFFER_STATE new_buffer , yyscan_t yyscanner );
+
+#line 281 "<stdout>"
+void yypop_buffer_state ( yyscan_t yyscanner );
+
+
+#line 283 "<stdout>"
+static void yyensure_buffer_stack ( yyscan_t yyscanner );
+
+#line 284 "<stdout>"
+static void yy_load_buffer_state ( yyscan_t yyscanner );
+
+#line 285 "<stdout>"
+static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file , yyscan_t yyscanner );
+
+
+
+#line 288 "<stdout>"
+YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size , yyscan_t yyscanner );
+
+#line 289 "<stdout>"
+YY_BUFFER_STATE yy_scan_string ( const char *yy_str , yyscan_t yyscanner );
+
+#line 290 "<stdout>"
+YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len , yyscan_t yyscanner );
+
+
+#line 292 "<stdout>"
+void *yyalloc ( yy_size_t , yyscan_t yyscanner );
+
+#line 293 "<stdout>"
+void *yyrealloc ( void *, yy_size_t , yyscan_t yyscanner );
+
+#line 294 "<stdout>"
+void yyfree ( void * , yyscan_t yyscanner );
+
+#line 295 "<stdout>"
+typedef flex_uint8_t YY_CHAR;
+
+
+#line 323 "<stdout>"
+typedef int yy_state_type;
+
+
+
+
+#line 327 "<stdout>"
+static yy_state_type yy_get_previous_state ( yyscan_t yyscanner );
+
+#line 328 "<stdout>"
+static yy_state_type yy_try_NUL_trans ( yy_state_type current_state , yyscan_t yyscanner);
+
+#line 329 "<stdout>"
+static int yy_get_next_buffer ( yyscan_t yyscanner );
+
+#line 330 "<stdout>"
+static void __attribute__((__noreturn__)) yy_fatal_error ( const char* msg , yyscan_t yyscanner );
+
+#line 331 "<stdout>"
+struct yy_trans_info
+ {
+ flex_int32_t yy_verify;
+ flex_int32_t yy_nxt;
+ };
+
+#line 350 "<stdout>"
+static const flex_int16_t yy_accept[69] =
+ { 0,
+ 0, 0, 20, 18, 11, 10, 12, 18, 12, 12,
+ 18, 2, 6, 12, 12, 12, 12, 15, 15, 5,
+ 12, 12, 12, 14, 18, 3, 12, 4, 18, 12,
+ 0, 16, 0, 12, 0, 17, 0, 0, 0, 15,
+ 15, 15, 15, 5, 12, 0, 14, 0, 9, 4,
+ 4, 0, 7, 0, 13, 0, 8, 15, 15, 15,
+ 12, 0, 1, 4, 7, 15, 15, 0
+ } ;
+
+
+#line 361 "<stdout>"
+static const YY_CHAR yy_ec[256] =
+ { 0,
+ 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
+ 1, 1, 4, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 5, 6, 7, 8, 1, 9, 10, 11, 12,
+ 13, 14, 15, 9, 16, 17, 18, 19, 20, 20,
+ 20, 20, 20, 20, 20, 20, 20, 21, 22, 23,
+ 24, 25, 9, 1, 26, 26, 26, 26, 26, 26,
+ 27, 27, 27, 27, 27, 28, 27, 27, 27, 27,
+ 27, 27, 27, 27, 28, 27, 27, 27, 27, 27,
+ 29, 30, 31, 14, 27, 1, 26, 26, 26, 26,
+
+ 26, 26, 27, 27, 27, 27, 27, 28, 27, 27,
+ 27, 27, 27, 27, 27, 27, 28, 27, 27, 32,
+ 27, 27, 12, 33, 34, 9, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1
+ } ;
+
+
+#line 393 "<stdout>"
+static const YY_CHAR yy_meta[35] =
+ { 0,
+ 1, 1, 2, 1, 1, 3, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 3, 3,
+ 3, 1, 1, 1, 1, 3, 3, 3, 1, 1,
+ 1, 3, 1, 1
+ } ;
+
+
+#line 401 "<stdout>"
+static const flex_int16_t yy_base[74] =
+ { 0,
+ 0, 154, 160, 184, 184, 184, 133, 28, 184, 26,
+ 26, 184, 184, 23, 24, 125, 21, 34, 24, 65,
+ 36, 115, 39, 36, 135, 184, 22, 69, 58, 184,
+ 68, 184, 134, 184, 54, 184, 128, 105, 116, 59,
+ 66, 72, 73, 100, 65, 104, 74, 61, 184, 108,
+ 112, 93, 184, 94, 184, 78, 184, 108, 101, 115,
+ 184, 142, 184, 146, 123, 135, 139, 184, 171, 174,
+ 74, 177, 180
+ } ;
+
+
+#line 413 "<stdout>"
+static const flex_int16_t yy_def[74] =
+ { 0,
+ 68, 1, 68, 68, 68, 68, 68, 69, 68, 68,
+ 70, 68, 68, 68, 68, 68, 68, 68, 68, 68,
+ 68, 68, 68, 71, 68, 68, 68, 68, 72, 68,
+ 69, 68, 69, 68, 70, 68, 70, 68, 73, 68,
+ 68, 68, 68, 68, 68, 68, 71, 68, 68, 68,
+ 68, 72, 68, 72, 68, 73, 68, 68, 68, 68,
+ 68, 68, 68, 68, 72, 68, 68, 0, 68, 68,
+ 68, 68, 68
+ } ;
+
+
+#line 425 "<stdout>"
+static const flex_int16_t yy_nxt[219] =
+ { 0,
+ 4, 5, 6, 4, 5, 7, 8, 4, 9, 10,
+ 11, 12, 13, 7, 14, 15, 16, 17, 18, 19,
+ 9, 20, 21, 22, 23, 24, 24, 24, 12, 25,
+ 26, 24, 27, 28, 32, 34, 36, 34, 39, 34,
+ 40, 46, 41, 41, 30, 30, 30, 30, 34, 30,
+ 40, 42, 41, 41, 34, 37, 48, 33, 45, 30,
+ 53, 42, 30, 45, 36, 43, 44, 44, 44, 44,
+ 50, 50, 50, 50, 32, 40, 47, 58, 59, 46,
+ 57, 46, 40, 37, 41, 41, 42, 54, 61, 40,
+ 51, 60, 60, 42, 48, 53, 65, 33, 60, 42,
+
+ 42, 44, 44, 44, 44, 62, 62, 62, 62, 50,
+ 50, 50, 50, 64, 64, 64, 64, 40, 57, 59,
+ 59, 55, 54, 54, 40, 53, 59, 59, 42, 51,
+ 35, 40, 63, 60, 60, 42, 31, 49, 34, 66,
+ 60, 38, 42, 62, 62, 62, 62, 64, 64, 64,
+ 64, 40, 54, 67, 67, 40, 30, 67, 67, 68,
+ 67, 29, 42, 68, 67, 68, 42, 68, 68, 68,
+ 63, 31, 68, 31, 35, 68, 35, 52, 52, 52,
+ 56, 56, 56, 3, 68, 68, 68, 68, 68, 68,
+ 68, 68, 68, 68, 68, 68, 68, 68, 68, 68,
+
+ 68, 68, 68, 68, 68, 68, 68, 68, 68, 68,
+ 68, 68, 68, 68, 68, 68, 68, 68
+ } ;
+
+
+#line 453 "<stdout>"
+static const flex_int16_t yy_chk[219] =
+ { 0,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 8, 10, 11, 14, 17, 15,
+ 19, 24, 19, 19, 17, 27, 14, 15, 15, 10,
+ 18, 19, 18, 18, 27, 11, 24, 8, 21, 21,
+ 29, 18, 23, 23, 35, 18, 20, 20, 20, 20,
+ 28, 28, 28, 28, 31, 40, 71, 40, 40, 47,
+ 56, 48, 41, 35, 41, 41, 40, 29, 45, 43,
+ 28, 43, 43, 41, 47, 52, 54, 31, 43, 42,
+
+ 43, 44, 44, 44, 44, 46, 46, 46, 46, 50,
+ 50, 50, 50, 51, 51, 51, 51, 59, 39, 59,
+ 59, 38, 52, 54, 58, 65, 58, 58, 59, 50,
+ 37, 60, 46, 60, 60, 58, 33, 25, 22, 58,
+ 60, 16, 60, 62, 62, 62, 62, 64, 64, 64,
+ 64, 66, 65, 66, 66, 67, 7, 67, 67, 3,
+ 66, 2, 66, 0, 67, 0, 67, 0, 0, 0,
+ 62, 69, 0, 69, 70, 0, 70, 72, 72, 72,
+ 73, 73, 73, 68, 68, 68, 68, 68, 68, 68,
+ 68, 68, 68, 68, 68, 68, 68, 68, 68, 68,
+
+ 68, 68, 68, 68, 68, 68, 68, 68, 68, 68,
+ 68, 68, 68, 68, 68, 68, 68, 68
+ } ;
+
+#line 480 "<stdout>"
+
+
+
+
+
+extern void __assert_fail (const char *__assertion, const char *__file,
+ unsigned int __line, const char *__function)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+#line 74 "/usr/include/assert.h"
+extern void __assert_perror_fail (int __errnum, const char *__file,
+ unsigned int __line, const char *__function)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+
+#line 81 "/usr/include/assert.h"
+extern void __assert (const char *__assertion, const char *__file, int __line)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+#line 86 "/usr/include/assert.h"
+
+
+
+
+struct stat
+ {
+
+
+
+ __dev_t st_dev;
+
+
+
+
+ __ino_t st_ino;
+
+
+
+
+
+
+
+ __nlink_t st_nlink;
+ __mode_t st_mode;
+
+ __uid_t st_uid;
+ __gid_t st_gid;
+
+ int __pad0;
+
+ __dev_t st_rdev;
+
+
+
+
+ __off_t st_size;
+
+
+
+ __blksize_t st_blksize;
+
+ __blkcnt_t st_blocks;
+ struct timespec st_atim;
+ struct timespec st_mtim;
+ struct timespec st_ctim;
+ __syscall_slong_t __glibc_reserved[3];
+ };
+
+#line 100 "/usr/include/x86_64-linux-gnu/bits/struct_stat.h"
+extern int stat (const char *__restrict __file,
+ struct stat *__restrict __buf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+#line 210 "/usr/include/x86_64-linux-gnu/sys/stat.h"
+extern int fstat (int __fd, struct stat *__buf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+#line 211 "/usr/include/x86_64-linux-gnu/sys/stat.h"
+extern int fstatat (int __fd, const char *__restrict __file,
+ struct stat *__restrict __buf, int __flag)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3)));
+
+#line 267 "/usr/include/x86_64-linux-gnu/sys/stat.h"
+extern int lstat (const char *__restrict __file,
+ struct stat *__restrict __buf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 315 "/usr/include/x86_64-linux-gnu/sys/stat.h"
+extern int chmod (const char *__file, __mode_t __mode)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+#line 359 "/usr/include/x86_64-linux-gnu/sys/stat.h"
+extern int lchmod (const char *__file, __mode_t __mode)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+#line 365 "/usr/include/x86_64-linux-gnu/sys/stat.h"
+extern int fchmod (int __fd, __mode_t __mode) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+#line 371 "/usr/include/x86_64-linux-gnu/sys/stat.h"
+extern int fchmodat (int __fd, const char *__file, __mode_t __mode,
+ int __flag)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))) ;
+
+
+
+
+
+
+
+#line 380 "/usr/include/x86_64-linux-gnu/sys/stat.h"
+extern __mode_t umask (__mode_t __mask) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 381 "/usr/include/x86_64-linux-gnu/sys/stat.h"
+extern int mkdir (const char *__path, __mode_t __mode)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+#line 396 "/usr/include/x86_64-linux-gnu/sys/stat.h"
+extern int mkdirat (int __fd, const char *__path, __mode_t __mode)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+
+
+
+
+
+#line 404 "/usr/include/x86_64-linux-gnu/sys/stat.h"
+extern int mknod (const char *__path, __mode_t __mode, __dev_t __dev)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+#line 411 "/usr/include/x86_64-linux-gnu/sys/stat.h"
+extern int mknodat (int __fd, const char *__path, __mode_t __mode,
+ __dev_t __dev) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+
+
+
+
+#line 418 "/usr/include/x86_64-linux-gnu/sys/stat.h"
+extern int mkfifo (const char *__path, __mode_t __mode)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+#line 425 "/usr/include/x86_64-linux-gnu/sys/stat.h"
+extern int mkfifoat (int __fd, const char *__path, __mode_t __mode)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+
+
+
+
+
+#line 433 "/usr/include/x86_64-linux-gnu/sys/stat.h"
+extern int utimensat (int __fd, const char *__path,
+ const struct timespec __times[2],
+ int __flags)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+#line 437 "/usr/include/x86_64-linux-gnu/sys/stat.h"
+extern int futimens (int __fd, const struct timespec __times[2]) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 453 "/usr/include/x86_64-linux-gnu/sys/stat.h"
+
+
+
+
+
+
+
+
+struct flock
+ {
+ short int l_type;
+ short int l_whence;
+
+ __off_t l_start;
+ __off_t l_len;
+
+
+
+
+ __pid_t l_pid;
+ };
+
+#line 48 "/usr/include/x86_64-linux-gnu/bits/fcntl.h"
+
+
+extern int fcntl (int __fd, int __cmd, ...);
+
+#line 150 "/usr/include/fcntl.h"
+extern int open (const char *__file, int __oflag, ...) __attribute__ ((__nonnull__ (1)));
+
+#line 182 "/usr/include/fcntl.h"
+extern int openat (int __fd, const char *__file, int __oflag, ...)
+ __attribute__ ((__nonnull__ (2)));
+
+#line 207 "/usr/include/fcntl.h"
+extern int creat (const char *__file, mode_t __mode) __attribute__ ((__nonnull__ (1)));
+
+#line 228 "/usr/include/fcntl.h"
+extern int lockf (int __fd, int __cmd, off_t __len);
+
+#line 257 "/usr/include/fcntl.h"
+extern int posix_fadvise (int __fd, off_t __offset, off_t __len,
+ int __advise) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 275 "/usr/include/fcntl.h"
+extern int posix_fallocate (int __fd, off_t __offset, off_t __len);
+
+#line 296 "/usr/include/fcntl.h"
+
+
+
+
+
+
+
+
+extern void *mmap (void *__addr, size_t __len, int __prot,
+ int __flags, int __fd, __off_t __offset) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 59 "/usr/include/x86_64-linux-gnu/sys/mman.h"
+extern int munmap (void *__addr, size_t __len) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+#line 81 "/usr/include/x86_64-linux-gnu/sys/mman.h"
+extern int mprotect (void *__addr, size_t __len, int __prot) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+
+#line 89 "/usr/include/x86_64-linux-gnu/sys/mman.h"
+extern int msync (void *__addr, size_t __len, int __flags);
+
+
+
+
+
+#line 94 "/usr/include/x86_64-linux-gnu/sys/mman.h"
+extern int madvise (void *__addr, size_t __len, int __advice) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 98 "/usr/include/x86_64-linux-gnu/sys/mman.h"
+extern int posix_madvise (void *__addr, size_t __len, int __advice) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+#line 103 "/usr/include/x86_64-linux-gnu/sys/mman.h"
+extern int mlock (const void *__addr, size_t __len) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 106 "/usr/include/x86_64-linux-gnu/sys/mman.h"
+extern int munlock (const void *__addr, size_t __len) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+#line 111 "/usr/include/x86_64-linux-gnu/sys/mman.h"
+extern int mlockall (int __flags) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 115 "/usr/include/x86_64-linux-gnu/sys/mman.h"
+extern int munlockall (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+
+#line 123 "/usr/include/x86_64-linux-gnu/sys/mman.h"
+extern int mincore (void *__start, size_t __len, unsigned char *__vec)
+ __attribute__ ((__nothrow__ , __leaf__));
+
+#line 125 "/usr/include/x86_64-linux-gnu/sys/mman.h"
+extern int shm_open (const char *__name, int __oflag, mode_t __mode);
+
+
+
+#line 147 "/usr/include/x86_64-linux-gnu/sys/mman.h"
+extern int shm_unlink (const char *__name);
+
+
+
+#line 150 "/usr/include/x86_64-linux-gnu/sys/mman.h"
+
+
+
+
+typedef long int ptrdiff_t;
+
+#line 146 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h"
+typedef struct {
+ long long __max_align_ll __attribute__((__aligned__(__alignof__(long long))));
+ long double __max_align_ld __attribute__((__aligned__(__alignof__(long double))));
+}
+#line 435 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h"
+max_align_t;
+
+#line 436 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h"
+
+
+
+enum
+{
+ _ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)),
+ _ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)),
+ _ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)),
+ _ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)),
+ _ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)),
+ _ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)),
+ _ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)),
+ _ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)),
+ _ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)),
+ _IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)),
+ _ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)),
+ _ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8))
+};
+
+#line 61 "/usr/include/ctype.h"
+extern const unsigned short int **__ctype_b_loc (void)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+#line 81 "/usr/include/ctype.h"
+extern const __int32_t **__ctype_tolower_loc (void)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+#line 83 "/usr/include/ctype.h"
+extern const __int32_t **__ctype_toupper_loc (void)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+#line 85 "/usr/include/ctype.h"
+extern int isalnum (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 109 "/usr/include/ctype.h"
+extern int isalpha (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 110 "/usr/include/ctype.h"
+extern int iscntrl (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 111 "/usr/include/ctype.h"
+extern int isdigit (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 112 "/usr/include/ctype.h"
+extern int islower (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 113 "/usr/include/ctype.h"
+extern int isgraph (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 114 "/usr/include/ctype.h"
+extern int isprint (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 115 "/usr/include/ctype.h"
+extern int ispunct (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 116 "/usr/include/ctype.h"
+extern int isspace (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 117 "/usr/include/ctype.h"
+extern int isupper (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 118 "/usr/include/ctype.h"
+extern int isxdigit (int) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 122 "/usr/include/ctype.h"
+extern int tolower (int __c) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 125 "/usr/include/ctype.h"
+extern int toupper (int __c) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+#line 130 "/usr/include/ctype.h"
+extern int isblank (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 131 "/usr/include/ctype.h"
+extern int isascii (int __c) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 146 "/usr/include/ctype.h"
+extern int toascii (int __c) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 150 "/usr/include/ctype.h"
+extern int _toupper (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 151 "/usr/include/ctype.h"
+extern int _tolower (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 152 "/usr/include/ctype.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+__attribute__ ((__nothrow__ , __leaf__)) tolower (int __c)
+{
+ return __c >= -128 && __c < 256 ? (*__ctype_tolower_loc ())[__c] : __c;
+}
+
+
+#line 212 "/usr/include/ctype.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+__attribute__ ((__nothrow__ , __leaf__)) toupper (int __c)
+{
+ return __c >= -128 && __c < 256 ? (*__ctype_toupper_loc ())[__c] : __c;
+}
+
+#line 217 "/usr/include/ctype.h"
+extern int isalnum_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 252 "/usr/include/ctype.h"
+extern int isalpha_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 253 "/usr/include/ctype.h"
+extern int iscntrl_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 254 "/usr/include/ctype.h"
+extern int isdigit_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 255 "/usr/include/ctype.h"
+extern int islower_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 256 "/usr/include/ctype.h"
+extern int isgraph_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 257 "/usr/include/ctype.h"
+extern int isprint_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 258 "/usr/include/ctype.h"
+extern int ispunct_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 259 "/usr/include/ctype.h"
+extern int isspace_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 260 "/usr/include/ctype.h"
+extern int isupper_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 261 "/usr/include/ctype.h"
+extern int isxdigit_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+
+#line 263 "/usr/include/ctype.h"
+extern int isblank_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 267 "/usr/include/ctype.h"
+extern int __tolower_l (int __c, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 268 "/usr/include/ctype.h"
+extern int tolower_l (int __c, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 271 "/usr/include/ctype.h"
+extern int __toupper_l (int __c, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 272 "/usr/include/ctype.h"
+extern int toupper_l (int __c, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 273 "/usr/include/ctype.h"
+
+
+
+
+
+struct hashmap_other__other__comma_struct_other_uniq_other_string {
+ struct uniq_string **data;
+ size_t count;
+ size_t cap;
+};
+
+
+#line 273 "/usr/include/ctype.h"
+
+
+
+
+
+struct hashmap_other__other__comma_struct_other_call {
+ struct call **data;
+ size_t count;
+ size_t cap;
+};
+
+
+#line 17 "./gamma.h"
+uint32_t hashmap_other_hash_other__other__comma_struct_other_call(struct call *item);
+
+#line 17 "./gamma.h"
+uint32_t hashmap_other_hash_other__other__comma_struct_other_uniq_other_string(struct uniq_string *item);
+
+#line 18 "./gamma.h"
+int hashmap_other_eq_other__other__comma_struct_other_call(struct call *A, struct call *B);
+
+
+#line 18 "./gamma.h"
+int hashmap_other_eq_other__other__comma_struct_other_uniq_other_string(struct uniq_string *A, struct uniq_string *B);
+
+
+#line 20 "./gamma.h"
+struct uniq_string *hashmap_other_lookup_other__other__comma_struct_other_uniq_other_string(struct hashmap_other__other__comma_struct_other_uniq_other_string *hashmap, struct uniq_string *item);
+
+#line 21 "./gamma.h"
+struct uniq_string *hashmap_other_lookup_other_weak_other__other__comma_struct_other_uniq_other_string(struct hashmap_other__other__comma_struct_other_uniq_other_string *hashmap, struct uniq_string *item);
+
+#line 21 "./gamma.h"
+struct call *hashmap_other_lookup_other_weak_other__other__comma_struct_other_call(struct hashmap_other__other__comma_struct_other_call *hashmap, struct call *item);
+
+#line 22 "./gamma.h"
+int hashmap_other_contains_other__other__comma_struct_other_call(struct hashmap_other__other__comma_struct_other_call *hashmap, struct call *item);
+
+#line 23 "./gamma.h"
+void hashmap_other_insert_other__other__comma_struct_other_uniq_other_string(struct hashmap_other__other__comma_struct_other_uniq_other_string *hashmap, struct uniq_string *item);
+
+#line 23 "./gamma.h"
+void hashmap_other_insert_other__other__comma_struct_other_call(struct hashmap_other__other__comma_struct_other_call *hashmap, struct call *item);
+
+#line 24 "./gamma.h"
+struct uniq_string *heapify_other__other__comma_struct_other_uniq_other_string(struct uniq_string item);
+
+
+#line 26 "./gamma.h"
+struct vector_other__other__comma_struct_other_call_other__star_ {
+ struct call * *data;
+ size_t count;
+ size_t cap;
+};
+
+#line 31 "./gamma.h"
+uint32_t vector_other_push_other__other__comma_struct_other_call_other__star_(struct vector_other__other__comma_struct_other_call_other__star_ *vector, struct call * item);
+
+#line 32 "./gamma.h"
+struct call * vector_other_pop_other__other__comma_struct_other_call_other__star_(struct vector_other__other__comma_struct_other_call_other__star_ *vector);
+
+#line 33 "./gamma.h"
+struct vector_other__other__comma_struct_other_call_other__star_ *init_other_vector_other__other__comma_struct_other_call_other__star_();
+
+
+#line 35 "./gamma.h"
+struct uniq_string {
+ char *string;
+ size_t len;
+
+ struct vector_other__other__comma_struct_other_call_other__star_ instantiations;
+
+ struct chunk *definitions;
+};
+
+
+#line 44 "./gamma.h"
+struct arg {
+ char *start;
+ struct uniq_string *string;
+ int is_concrete;
+};
+
+
+#line 50 "./gamma.h"
+struct call {
+ char *start;
+ char *end;
+ struct uniq_string *name;
+ struct arg *args;
+ size_t n_args;
+ struct call *next;
+};
+
+
+#line 59 "./gamma.h"
+struct chunk {
+ char *start;
+ char *end;
+
+ char *line_filename;
+ size_t line;
+
+ struct call *defining_call;
+ struct call *calls;
+ struct chunk *next;
+ struct chunk *next_definition;
+};
+
+
+#line 72 "./gamma.h"
+struct chunked_file {
+ char *contents;
+ char *end;
+ size_t id;
+ struct chunk *chunks;
+ struct chunked_file *next;
+};
+
+
+#line 80 "./gamma.h"
+struct chunked_file *chunk(const char *path);
+
+#line 81 "./gamma.h"
+struct uniq_string *lookup(char *string, size_t len);
+
+#line 82 "./gamma.h"
+struct uniq_string *weak_lookup(char *string, size_t len);
+
+
+
+
+#line 86 "./gamma.h"
+struct instantiation_set {
+ struct call **data;
+ size_t n;
+ size_t cap;
+};
+
+
+#line 92 "./gamma.h"
+void parse_call(struct call *call);
+
+#line 93 "./gamma.h"
+void print_state(struct chunked_file *file);
+
+#line 94 "./gamma.h"
+void solve(struct chunked_file *files);
+
+#line 95 "./gamma.h"
+void print_string(struct uniq_string *string);
+
+#line 96 "./gamma.h"
+void print_call(struct call *call);
+
+#line 97 "./gamma.h"
+void print_set(struct instantiation_set *set);
+
+#line 98 "./gamma.h"
+void print_chunk(struct chunk *chunk, struct call *instantiation, FILE *out);
+
+#line 99 "./gamma.h"
+struct call *replace_variables(struct call *container, struct call *container_instantiation, struct call *call);
+
+#line 100 "./gamma.h"
+void fprint_string(FILE *out, struct uniq_string *string);
+
+#line 101 "./gamma.h"
+char **read_fakeobj(char *path, char *c_dst);
+
+#line 102 "./gamma.h"
+void write_fakeobj(char *src, char *dst, int i);
+
+#line 103 "./gamma.h"
+void gamma_sendfile(int dst_fd, int src_fd);
+
+#line 104 "./gamma.h"
+void copy_file(char *dst, char *src);
+
+
+#line 106 "./gamma.h"
+extern char **ARGV;
+
+#line 107 "./gamma.h"
+extern int ARGC;
+
+#line 108 "./gamma.h"
+extern char *TMPDIR;
+
+#line 109 "./gamma.h"
+extern int GAMMA_TO_C;
+
+#line 110 "./gamma.h"
+
+enum TOK_KIND {
+ OP,
+ IDENT,
+ LIT,
+};
+
+
+#line 20 "lexer.l"
+struct chunked_file *CHUNKED_FILE = 0;
+
+#line 21 "lexer.l"
+uint32_t DEPTH = 0;
+
+#line 22 "lexer.l"
+char *FILE_PTR = 0;
+
+#line 23 "lexer.l"
+yyscan_t SCANNER;
+
+
+
+#line 26 "lexer.l"
+char *LINE_MARK = 0;
+
+#line 27 "lexer.l"
+char *LINE_FILE = 0;
+
+#line 28 "lexer.l"
+size_t LINE = 0;
+
+
+
+
+
+#line 33 "lexer.l"
+void begin_call();
+
+#line 34 "lexer.l"
+void maybe_end_chunk();
+
+#line 35 "lexer.l"
+void maybe_end_call();
+
+#line 36 "lexer.l"
+
+
+
+
+
+typedef __useconds_t useconds_t;
+
+#line 256 "/usr/include/unistd.h"
+typedef __socklen_t socklen_t;
+
+#line 275 "/usr/include/unistd.h"
+extern int access (const char *__name, int __type) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 288 "/usr/include/unistd.h"
+extern int faccessat (int __fd, const char *__file, int __type, int __flag)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))) ;
+
+#line 311 "/usr/include/unistd.h"
+extern __off_t lseek (int __fd, __off_t __offset, int __whence) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 340 "/usr/include/unistd.h"
+extern int close (int __fd);
+
+
+
+
+
+#line 363 "/usr/include/unistd.h"
+extern void closefrom (int __lowfd) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+
+#line 371 "/usr/include/unistd.h"
+extern ssize_t read (int __fd, void *__buf, size_t __nbytes)
+ __attribute__ ((__access__ (__write_only__, 2, 3)));
+
+
+
+
+
+
+#line 378 "/usr/include/unistd.h"
+extern ssize_t write (int __fd, const void *__buf, size_t __n)
+ __attribute__ ((__access__ (__read_only__, 2, 3)));
+
+#line 380 "/usr/include/unistd.h"
+extern ssize_t pread (int __fd, void *__buf, size_t __nbytes,
+ __off_t __offset)
+ __attribute__ ((__access__ (__write_only__, 2, 3)));
+
+
+
+
+
+
+
+#line 398 "/usr/include/unistd.h"
+extern ssize_t pwrite (int __fd, const void *__buf, size_t __n,
+ __off_t __offset)
+ __attribute__ ((__access__ (__read_only__, 2, 3)));
+
+#line 401 "/usr/include/unistd.h"
+extern int pipe (int __pipedes[2]) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+#line 438 "/usr/include/unistd.h"
+extern unsigned int alarm (unsigned int __seconds) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 453 "/usr/include/unistd.h"
+extern unsigned int sleep (unsigned int __seconds);
+
+
+
+
+
+
+
+
+#line 472 "/usr/include/unistd.h"
+extern __useconds_t ualarm (__useconds_t __value, __useconds_t __interval)
+ __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+#line 480 "/usr/include/unistd.h"
+extern int usleep (__useconds_t __useconds);
+
+#line 481 "/usr/include/unistd.h"
+extern int pause (void);
+
+
+
+
+#line 493 "/usr/include/unistd.h"
+extern int chown (const char *__file, __uid_t __owner, __gid_t __group)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+#line 498 "/usr/include/unistd.h"
+extern int fchown (int __fd, __uid_t __owner, __gid_t __group) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+#line 503 "/usr/include/unistd.h"
+extern int lchown (const char *__file, __uid_t __owner, __gid_t __group)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+
+
+
+#line 511 "/usr/include/unistd.h"
+extern int fchownat (int __fd, const char *__file, __uid_t __owner,
+ __gid_t __group, int __flag)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))) ;
+
+
+
+
+#line 517 "/usr/include/unistd.h"
+extern int chdir (const char *__path) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+#line 521 "/usr/include/unistd.h"
+extern int fchdir (int __fd) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+#line 522 "/usr/include/unistd.h"
+extern char *getcwd (char *__buf, size_t __size) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+#line 532 "/usr/include/unistd.h"
+extern char *getwd (char *__buf)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__))
+ __attribute__ ((__access__ (__write_only__, 1)));
+
+
+
+
+
+#line 552 "/usr/include/unistd.h"
+extern int dup (int __fd) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+#line 555 "/usr/include/unistd.h"
+extern int dup2 (int __fd, int __fd2) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 556 "/usr/include/unistd.h"
+extern char **__environ;
+
+
+
+
+
+
+
+
+#line 572 "/usr/include/unistd.h"
+extern int execve (const char *__path, char *const __argv[],
+ char *const __envp[]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+#line 578 "/usr/include/unistd.h"
+extern int fexecve (int __fd, char *const __argv[], char *const __envp[])
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+
+
+
+#line 584 "/usr/include/unistd.h"
+extern int execv (const char *__path, char *const __argv[])
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+#line 589 "/usr/include/unistd.h"
+extern int execle (const char *__path, const char *__arg, ...)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+#line 594 "/usr/include/unistd.h"
+extern int execl (const char *__path, const char *__arg, ...)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+#line 599 "/usr/include/unistd.h"
+extern int execvp (const char *__file, char *const __argv[])
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+#line 605 "/usr/include/unistd.h"
+extern int execlp (const char *__file, const char *__arg, ...)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 607 "/usr/include/unistd.h"
+extern int nice (int __inc) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+#line 624 "/usr/include/unistd.h"
+extern void _exit (int __status) __attribute__ ((__noreturn__));
+
+
+
+
+
+
+#line 630 "/usr/include/unistd.h"
+enum
+ {
+ _PC_LINK_MAX,
+
+ _PC_MAX_CANON,
+
+ _PC_MAX_INPUT,
+
+ _PC_NAME_MAX,
+
+ _PC_PATH_MAX,
+
+ _PC_PIPE_BUF,
+
+ _PC_CHOWN_RESTRICTED,
+
+ _PC_NO_TRUNC,
+
+ _PC_VDISABLE,
+
+ _PC_SYNC_IO,
+
+ _PC_ASYNC_IO,
+
+ _PC_PRIO_IO,
+
+ _PC_SOCK_MAXBUF,
+
+ _PC_FILESIZEBITS,
+
+ _PC_REC_INCR_XFER_SIZE,
+
+ _PC_REC_MAX_XFER_SIZE,
+
+ _PC_REC_MIN_XFER_SIZE,
+
+ _PC_REC_XFER_ALIGN,
+
+ _PC_ALLOC_SIZE_MIN,
+
+ _PC_SYMLINK_MAX,
+
+ _PC_2_SYMLINKS
+
+ };
+
+
+
+#line 71 "/usr/include/x86_64-linux-gnu/bits/confname.h"
+enum
+ {
+ _SC_ARG_MAX,
+
+ _SC_CHILD_MAX,
+
+ _SC_CLK_TCK,
+
+ _SC_NGROUPS_MAX,
+
+ _SC_OPEN_MAX,
+
+ _SC_STREAM_MAX,
+
+ _SC_TZNAME_MAX,
+
+ _SC_JOB_CONTROL,
+
+ _SC_SAVED_IDS,
+
+ _SC_REALTIME_SIGNALS,
+
+ _SC_PRIORITY_SCHEDULING,
+
+ _SC_TIMERS,
+
+ _SC_ASYNCHRONOUS_IO,
+
+ _SC_PRIORITIZED_IO,
+
+ _SC_SYNCHRONIZED_IO,
+
+ _SC_FSYNC,
+
+ _SC_MAPPED_FILES,
+
+ _SC_MEMLOCK,
+
+ _SC_MEMLOCK_RANGE,
+
+ _SC_MEMORY_PROTECTION,
+
+ _SC_MESSAGE_PASSING,
+
+ _SC_SEMAPHORES,
+
+ _SC_SHARED_MEMORY_OBJECTS,
+
+ _SC_AIO_LISTIO_MAX,
+
+ _SC_AIO_MAX,
+
+ _SC_AIO_PRIO_DELTA_MAX,
+
+ _SC_DELAYTIMER_MAX,
+
+ _SC_MQ_OPEN_MAX,
+
+ _SC_MQ_PRIO_MAX,
+
+ _SC_VERSION,
+
+ _SC_PAGESIZE,
+
+
+ _SC_RTSIG_MAX,
+
+ _SC_SEM_NSEMS_MAX,
+
+ _SC_SEM_VALUE_MAX,
+
+ _SC_SIGQUEUE_MAX,
+
+ _SC_TIMER_MAX,
+
+
+
+
+ _SC_BC_BASE_MAX,
+
+ _SC_BC_DIM_MAX,
+
+ _SC_BC_SCALE_MAX,
+
+ _SC_BC_STRING_MAX,
+
+ _SC_COLL_WEIGHTS_MAX,
+
+ _SC_EQUIV_CLASS_MAX,
+
+ _SC_EXPR_NEST_MAX,
+
+ _SC_LINE_MAX,
+
+ _SC_RE_DUP_MAX,
+
+ _SC_CHARCLASS_NAME_MAX,
+
+
+ _SC_2_VERSION,
+
+ _SC_2_C_BIND,
+
+ _SC_2_C_DEV,
+
+ _SC_2_FORT_DEV,
+
+ _SC_2_FORT_RUN,
+
+ _SC_2_SW_DEV,
+
+ _SC_2_LOCALEDEF,
+
+
+ _SC_PII,
+
+ _SC_PII_XTI,
+
+ _SC_PII_SOCKET,
+
+ _SC_PII_INTERNET,
+
+ _SC_PII_OSI,
+
+ _SC_POLL,
+
+ _SC_SELECT,
+
+ _SC_UIO_MAXIOV,
+
+ _SC_IOV_MAX = _SC_UIO_MAXIOV,
+
+ _SC_PII_INTERNET_STREAM,
+
+ _SC_PII_INTERNET_DGRAM,
+
+ _SC_PII_OSI_COTS,
+
+ _SC_PII_OSI_CLTS,
+
+ _SC_PII_OSI_M,
+
+ _SC_T_IOV_MAX,
+
+
+
+ _SC_THREADS,
+
+ _SC_THREAD_SAFE_FUNCTIONS,
+
+ _SC_GETGR_R_SIZE_MAX,
+
+ _SC_GETPW_R_SIZE_MAX,
+
+ _SC_LOGIN_NAME_MAX,
+
+ _SC_TTY_NAME_MAX,
+
+ _SC_THREAD_DESTRUCTOR_ITERATIONS,
+
+ _SC_THREAD_KEYS_MAX,
+
+ _SC_THREAD_STACK_MIN,
+
+ _SC_THREAD_THREADS_MAX,
+
+ _SC_THREAD_ATTR_STACKADDR,
+
+ _SC_THREAD_ATTR_STACKSIZE,
+
+ _SC_THREAD_PRIORITY_SCHEDULING,
+
+ _SC_THREAD_PRIO_INHERIT,
+
+ _SC_THREAD_PRIO_PROTECT,
+
+ _SC_THREAD_PROCESS_SHARED,
+
+
+ _SC_NPROCESSORS_CONF,
+
+ _SC_NPROCESSORS_ONLN,
+
+ _SC_PHYS_PAGES,
+
+ _SC_AVPHYS_PAGES,
+
+ _SC_ATEXIT_MAX,
+
+ _SC_PASS_MAX,
+
+
+ _SC_XOPEN_VERSION,
+
+ _SC_XOPEN_XCU_VERSION,
+
+ _SC_XOPEN_UNIX,
+
+ _SC_XOPEN_CRYPT,
+
+ _SC_XOPEN_ENH_I18N,
+
+ _SC_XOPEN_SHM,
+
+
+ _SC_2_CHAR_TERM,
+
+ _SC_2_C_VERSION,
+
+ _SC_2_UPE,
+
+
+ _SC_XOPEN_XPG2,
+
+ _SC_XOPEN_XPG3,
+
+ _SC_XOPEN_XPG4,
+
+
+ _SC_CHAR_BIT,
+
+ _SC_CHAR_MAX,
+
+ _SC_CHAR_MIN,
+
+ _SC_INT_MAX,
+
+ _SC_INT_MIN,
+
+ _SC_LONG_BIT,
+
+ _SC_WORD_BIT,
+
+ _SC_MB_LEN_MAX,
+
+ _SC_NZERO,
+
+ _SC_SSIZE_MAX,
+
+ _SC_SCHAR_MAX,
+
+ _SC_SCHAR_MIN,
+
+ _SC_SHRT_MAX,
+
+ _SC_SHRT_MIN,
+
+ _SC_UCHAR_MAX,
+
+ _SC_UINT_MAX,
+
+ _SC_ULONG_MAX,
+
+ _SC_USHRT_MAX,
+
+
+ _SC_NL_ARGMAX,
+
+ _SC_NL_LANGMAX,
+
+ _SC_NL_MSGMAX,
+
+ _SC_NL_NMAX,
+
+ _SC_NL_SETMAX,
+
+ _SC_NL_TEXTMAX,
+
+
+ _SC_XBS5_ILP32_OFF32,
+
+ _SC_XBS5_ILP32_OFFBIG,
+
+ _SC_XBS5_LP64_OFF64,
+
+ _SC_XBS5_LPBIG_OFFBIG,
+
+
+ _SC_XOPEN_LEGACY,
+
+ _SC_XOPEN_REALTIME,
+
+ _SC_XOPEN_REALTIME_THREADS,
+
+
+ _SC_ADVISORY_INFO,
+
+ _SC_BARRIERS,
+
+ _SC_BASE,
+
+ _SC_C_LANG_SUPPORT,
+
+ _SC_C_LANG_SUPPORT_R,
+
+ _SC_CLOCK_SELECTION,
+
+ _SC_CPUTIME,
+
+ _SC_THREAD_CPUTIME,
+
+ _SC_DEVICE_IO,
+
+ _SC_DEVICE_SPECIFIC,
+
+ _SC_DEVICE_SPECIFIC_R,
+
+ _SC_FD_MGMT,
+
+ _SC_FIFO,
+
+ _SC_PIPE,
+
+ _SC_FILE_ATTRIBUTES,
+
+ _SC_FILE_LOCKING,
+
+ _SC_FILE_SYSTEM,
+
+ _SC_MONOTONIC_CLOCK,
+
+ _SC_MULTI_PROCESS,
+
+ _SC_SINGLE_PROCESS,
+
+ _SC_NETWORKING,
+
+ _SC_READER_WRITER_LOCKS,
+
+ _SC_SPIN_LOCKS,
+
+ _SC_REGEXP,
+
+ _SC_REGEX_VERSION,
+
+ _SC_SHELL,
+
+ _SC_SIGNALS,
+
+ _SC_SPAWN,
+
+ _SC_SPORADIC_SERVER,
+
+ _SC_THREAD_SPORADIC_SERVER,
+
+ _SC_SYSTEM_DATABASE,
+
+ _SC_SYSTEM_DATABASE_R,
+
+ _SC_TIMEOUTS,
+
+ _SC_TYPED_MEMORY_OBJECTS,
+
+ _SC_USER_GROUPS,
+
+ _SC_USER_GROUPS_R,
+
+ _SC_2_PBS,
+
+ _SC_2_PBS_ACCOUNTING,
+
+ _SC_2_PBS_LOCATE,
+
+ _SC_2_PBS_MESSAGE,
+
+ _SC_2_PBS_TRACK,
+
+ _SC_SYMLOOP_MAX,
+
+ _SC_STREAMS,
+
+ _SC_2_PBS_CHECKPOINT,
+
+
+ _SC_V6_ILP32_OFF32,
+
+ _SC_V6_ILP32_OFFBIG,
+
+ _SC_V6_LP64_OFF64,
+
+ _SC_V6_LPBIG_OFFBIG,
+
+
+ _SC_HOST_NAME_MAX,
+
+ _SC_TRACE,
+
+ _SC_TRACE_EVENT_FILTER,
+
+ _SC_TRACE_INHERIT,
+
+ _SC_TRACE_LOG,
+
+
+ _SC_LEVEL1_ICACHE_SIZE,
+
+ _SC_LEVEL1_ICACHE_ASSOC,
+
+ _SC_LEVEL1_ICACHE_LINESIZE,
+
+ _SC_LEVEL1_DCACHE_SIZE,
+
+ _SC_LEVEL1_DCACHE_ASSOC,
+
+ _SC_LEVEL1_DCACHE_LINESIZE,
+
+ _SC_LEVEL2_CACHE_SIZE,
+
+ _SC_LEVEL2_CACHE_ASSOC,
+
+ _SC_LEVEL2_CACHE_LINESIZE,
+
+ _SC_LEVEL3_CACHE_SIZE,
+
+ _SC_LEVEL3_CACHE_ASSOC,
+
+ _SC_LEVEL3_CACHE_LINESIZE,
+
+ _SC_LEVEL4_CACHE_SIZE,
+
+ _SC_LEVEL4_CACHE_ASSOC,
+
+ _SC_LEVEL4_CACHE_LINESIZE,
+
+
+
+ _SC_IPV6 = _SC_LEVEL1_ICACHE_SIZE + 50,
+
+ _SC_RAW_SOCKETS,
+
+
+ _SC_V7_ILP32_OFF32,
+
+ _SC_V7_ILP32_OFFBIG,
+
+ _SC_V7_LP64_OFF64,
+
+ _SC_V7_LPBIG_OFFBIG,
+
+
+ _SC_SS_REPL_MAX,
+
+
+ _SC_TRACE_EVENT_NAME_MAX,
+
+ _SC_TRACE_NAME_MAX,
+
+ _SC_TRACE_SYS_MAX,
+
+ _SC_TRACE_USER_EVENT_MAX,
+
+
+ _SC_XOPEN_STREAMS,
+
+
+ _SC_THREAD_ROBUST_PRIO_INHERIT,
+
+ _SC_THREAD_ROBUST_PRIO_PROTECT,
+
+
+ _SC_MINSIGSTKSZ,
+
+
+ _SC_SIGSTKSZ
+
+ };
+
+
+
+#line 539 "/usr/include/x86_64-linux-gnu/bits/confname.h"
+enum
+ {
+ _CS_PATH,
+
+
+ _CS_V6_WIDTH_RESTRICTED_ENVS,
+
+
+
+ _CS_GNU_LIBC_VERSION,
+
+ _CS_GNU_LIBPTHREAD_VERSION,
+
+
+ _CS_V5_WIDTH_RESTRICTED_ENVS,
+
+
+
+ _CS_V7_WIDTH_RESTRICTED_ENVS,
+
+
+
+ _CS_LFS_CFLAGS = 1000,
+
+ _CS_LFS_LDFLAGS,
+
+ _CS_LFS_LIBS,
+
+ _CS_LFS_LINTFLAGS,
+
+ _CS_LFS64_CFLAGS,
+
+ _CS_LFS64_LDFLAGS,
+
+ _CS_LFS64_LIBS,
+
+ _CS_LFS64_LINTFLAGS,
+
+
+ _CS_XBS5_ILP32_OFF32_CFLAGS = 1100,
+
+ _CS_XBS5_ILP32_OFF32_LDFLAGS,
+
+ _CS_XBS5_ILP32_OFF32_LIBS,
+
+ _CS_XBS5_ILP32_OFF32_LINTFLAGS,
+
+ _CS_XBS5_ILP32_OFFBIG_CFLAGS,
+
+ _CS_XBS5_ILP32_OFFBIG_LDFLAGS,
+
+ _CS_XBS5_ILP32_OFFBIG_LIBS,
+
+ _CS_XBS5_ILP32_OFFBIG_LINTFLAGS,
+
+ _CS_XBS5_LP64_OFF64_CFLAGS,
+
+ _CS_XBS5_LP64_OFF64_LDFLAGS,
+
+ _CS_XBS5_LP64_OFF64_LIBS,
+
+ _CS_XBS5_LP64_OFF64_LINTFLAGS,
+
+ _CS_XBS5_LPBIG_OFFBIG_CFLAGS,
+
+ _CS_XBS5_LPBIG_OFFBIG_LDFLAGS,
+
+ _CS_XBS5_LPBIG_OFFBIG_LIBS,
+
+ _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS,
+
+
+ _CS_POSIX_V6_ILP32_OFF32_CFLAGS,
+
+ _CS_POSIX_V6_ILP32_OFF32_LDFLAGS,
+
+ _CS_POSIX_V6_ILP32_OFF32_LIBS,
+
+ _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS,
+
+ _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS,
+
+ _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS,
+
+ _CS_POSIX_V6_ILP32_OFFBIG_LIBS,
+
+ _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS,
+
+ _CS_POSIX_V6_LP64_OFF64_CFLAGS,
+
+ _CS_POSIX_V6_LP64_OFF64_LDFLAGS,
+
+ _CS_POSIX_V6_LP64_OFF64_LIBS,
+
+ _CS_POSIX_V6_LP64_OFF64_LINTFLAGS,
+
+ _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS,
+
+ _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS,
+
+ _CS_POSIX_V6_LPBIG_OFFBIG_LIBS,
+
+ _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS,
+
+
+ _CS_POSIX_V7_ILP32_OFF32_CFLAGS,
+
+ _CS_POSIX_V7_ILP32_OFF32_LDFLAGS,
+
+ _CS_POSIX_V7_ILP32_OFF32_LIBS,
+
+ _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS,
+
+ _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS,
+
+ _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS,
+
+ _CS_POSIX_V7_ILP32_OFFBIG_LIBS,
+
+ _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS,
+
+ _CS_POSIX_V7_LP64_OFF64_CFLAGS,
+
+ _CS_POSIX_V7_LP64_OFF64_LDFLAGS,
+
+ _CS_POSIX_V7_LP64_OFF64_LIBS,
+
+ _CS_POSIX_V7_LP64_OFF64_LINTFLAGS,
+
+ _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS,
+
+ _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS,
+
+ _CS_POSIX_V7_LPBIG_OFFBIG_LIBS,
+
+ _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS,
+
+
+ _CS_V6_ENV,
+
+ _CS_V7_ENV
+
+ };
+
+#line 682 "/usr/include/x86_64-linux-gnu/bits/confname.h"
+
+
+extern long int pathconf (const char *__path, int __name)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+#line 637 "/usr/include/unistd.h"
+extern long int fpathconf (int __fd, int __name) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 640 "/usr/include/unistd.h"
+extern long int sysconf (int __name) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 644 "/usr/include/unistd.h"
+extern size_t confstr (int __name, char *__buf, size_t __len) __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__access__ (__write_only__, 2, 3)));
+
+
+
+
+
+#line 650 "/usr/include/unistd.h"
+extern __pid_t getpid (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 653 "/usr/include/unistd.h"
+extern __pid_t getppid (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 656 "/usr/include/unistd.h"
+extern __pid_t getpgrp (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 659 "/usr/include/unistd.h"
+extern __pid_t __getpgid (__pid_t __pid) __attribute__ ((__nothrow__ , __leaf__));
+
+
+#line 661 "/usr/include/unistd.h"
+extern __pid_t getpgid (__pid_t __pid) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+#line 668 "/usr/include/unistd.h"
+extern int setpgid (__pid_t __pid, __pid_t __pgid) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 669 "/usr/include/unistd.h"
+extern int setpgrp (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+#line 689 "/usr/include/unistd.h"
+extern __pid_t setsid (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 693 "/usr/include/unistd.h"
+extern __pid_t getsid (__pid_t __pid) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 697 "/usr/include/unistd.h"
+extern __uid_t getuid (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 700 "/usr/include/unistd.h"
+extern __uid_t geteuid (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 703 "/usr/include/unistd.h"
+extern __gid_t getgid (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 706 "/usr/include/unistd.h"
+extern __gid_t getegid (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+#line 711 "/usr/include/unistd.h"
+extern int getgroups (int __size, __gid_t __list[]) __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__access__ (__write_only__, 2, 1)));
+
+#line 713 "/usr/include/unistd.h"
+extern int setuid (__uid_t __uid) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+#line 727 "/usr/include/unistd.h"
+extern int setreuid (__uid_t __ruid, __uid_t __euid) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+#line 732 "/usr/include/unistd.h"
+extern int seteuid (__uid_t __uid) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+
+
+#line 739 "/usr/include/unistd.h"
+extern int setgid (__gid_t __gid) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+#line 744 "/usr/include/unistd.h"
+extern int setregid (__gid_t __rgid, __gid_t __egid) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+#line 749 "/usr/include/unistd.h"
+extern int setegid (__gid_t __gid) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+#line 750 "/usr/include/unistd.h"
+extern __pid_t fork (void) __attribute__ ((__nothrow__));
+
+
+
+
+
+
+
+
+#line 786 "/usr/include/unistd.h"
+extern __pid_t vfork (void) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 787 "/usr/include/unistd.h"
+extern char *ttyname (int __fd) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 803 "/usr/include/unistd.h"
+extern int ttyname_r (int __fd, char *__buf, size_t __buflen)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)))
+ __attribute__ ((__access__ (__write_only__, 2, 3)));
+
+
+
+
+#line 809 "/usr/include/unistd.h"
+extern int isatty (int __fd) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+#line 814 "/usr/include/unistd.h"
+extern int ttyslot (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+#line 819 "/usr/include/unistd.h"
+extern int link (const char *__from, const char *__to)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))) ;
+
+
+
+
+
+#line 825 "/usr/include/unistd.h"
+extern int linkat (int __fromfd, const char *__from, int __tofd,
+ const char *__to, int __flags)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 4))) ;
+
+
+
+
+
+#line 832 "/usr/include/unistd.h"
+extern int symlink (const char *__from, const char *__to)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))) ;
+
+
+
+
+
+#line 838 "/usr/include/unistd.h"
+extern ssize_t readlink (const char *__restrict __path,
+ char *__restrict __buf, size_t __len)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)))
+ __attribute__ ((__access__ (__write_only__, 2, 3)));
+
+
+
+
+
+
+#line 847 "/usr/include/unistd.h"
+extern int symlinkat (const char *__from, int __tofd,
+ const char *__to) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 3))) ;
+
+
+
+#line 851 "/usr/include/unistd.h"
+extern ssize_t readlinkat (int __fd, const char *__restrict __path,
+ char *__restrict __buf, size_t __len)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3)))
+ __attribute__ ((__access__ (__write_only__, 3, 4)));
+
+
+
+
+#line 858 "/usr/include/unistd.h"
+extern int unlink (const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+#line 862 "/usr/include/unistd.h"
+extern int unlinkat (int __fd, const char *__name, int __flag)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+
+
+#line 867 "/usr/include/unistd.h"
+extern int rmdir (const char *__path) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+#line 871 "/usr/include/unistd.h"
+extern __pid_t tcgetpgrp (int __fd) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 874 "/usr/include/unistd.h"
+extern int tcsetpgrp (int __fd, __pid_t __pgrp_id) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+#line 881 "/usr/include/unistd.h"
+extern char *getlogin (void);
+
+
+
+
+
+
+
+
+#line 889 "/usr/include/unistd.h"
+extern int getlogin_r (char *__name, size_t __name_len) __attribute__ ((__nonnull__ (1)))
+ __attribute__ ((__access__ (__write_only__, 1, 2)));
+
+
+
+
+
+#line 895 "/usr/include/unistd.h"
+extern int setlogin (const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+
+#line 903 "/usr/include/unistd.h"
+
+
+
+
+
+
+
+
+extern char *optarg;
+
+#line 37 "/usr/include/x86_64-linux-gnu/bits/getopt_core.h"
+extern int optind;
+
+
+
+
+
+#line 55 "/usr/include/x86_64-linux-gnu/bits/getopt_core.h"
+extern int opterr;
+
+
+
+
+#line 59 "/usr/include/x86_64-linux-gnu/bits/getopt_core.h"
+extern int optopt;
+
+#line 60 "/usr/include/x86_64-linux-gnu/bits/getopt_core.h"
+extern int getopt (int ___argc, char *const *___argv, const char *__shortopts)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3)));
+
+
+
+#line 95 "/usr/include/x86_64-linux-gnu/bits/getopt_core.h"
+
+
+
+
+
+
+
+
+
+
+extern int gethostname (char *__name, size_t __len) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)))
+ __attribute__ ((__access__ (__write_only__, 1, 2)));
+
+
+
+
+
+
+
+#line 919 "/usr/include/unistd.h"
+extern int sethostname (const char *__name, size_t __len)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__access__ (__read_only__, 1, 2)));
+
+
+
+
+#line 924 "/usr/include/unistd.h"
+extern int sethostid (long int __id) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+
+#line 930 "/usr/include/unistd.h"
+extern int getdomainname (char *__name, size_t __len)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)))
+ __attribute__ ((__access__ (__write_only__, 1, 2)));
+
+#line 933 "/usr/include/unistd.h"
+extern int setdomainname (const char *__name, size_t __len)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__access__ (__read_only__, 1, 2)));
+
+
+
+
+
+#line 939 "/usr/include/unistd.h"
+extern int vhangup (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 942 "/usr/include/unistd.h"
+extern int revoke (const char *__file) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+
+
+
+
+#line 950 "/usr/include/unistd.h"
+extern int profil (unsigned short int *__sample_buffer, size_t __size,
+ size_t __offset, unsigned int __scale)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+#line 958 "/usr/include/unistd.h"
+extern int acct (const char *__name) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 962 "/usr/include/unistd.h"
+extern char *getusershell (void) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 963 "/usr/include/unistd.h"
+extern void endusershell (void) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 964 "/usr/include/unistd.h"
+extern void setusershell (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+#line 970 "/usr/include/unistd.h"
+extern int daemon (int __nochdir, int __noclose) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+
+
+#line 977 "/usr/include/unistd.h"
+extern int chroot (const char *__path) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+#line 981 "/usr/include/unistd.h"
+extern char *getpass (const char *__prompt) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+
+#line 989 "/usr/include/unistd.h"
+extern int fsync (int __fd);
+
+#line 990 "/usr/include/unistd.h"
+extern long int gethostid (void);
+
+
+
+#line 1005 "/usr/include/unistd.h"
+extern void sync (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+#line 1011 "/usr/include/unistd.h"
+extern int getpagesize (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+
+
+
+
+#line 1016 "/usr/include/unistd.h"
+extern int getdtablesize (void) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 1017 "/usr/include/unistd.h"
+extern int truncate (const char *__file, __off_t __length)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+#line 1028 "/usr/include/unistd.h"
+extern int ftruncate (int __fd, __off_t __length) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+#line 1050 "/usr/include/unistd.h"
+extern int brk (void *__addr) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+
+#line 1076 "/usr/include/unistd.h"
+extern void *sbrk (intptr_t __delta) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 1077 "/usr/include/unistd.h"
+extern long int syscall (long int __sysno, ...) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 1092 "/usr/include/unistd.h"
+extern int fdatasync (int __fildes);
+
+#line 1151 "/usr/include/unistd.h"
+extern char *crypt (const char *__key, const char *__salt)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 1161 "/usr/include/unistd.h"
+int getentropy (void *__buffer, size_t __length)
+ __attribute__ ((__access__ (__write_only__, 1, 2)));
+
+#line 1200 "/usr/include/unistd.h"
+
+
+
+
+
+
+
+
+
+
+struct yyguts_t
+ {
+
+
+ void * yyextra_r;
+
+
+ FILE *yyin_r, *yyout_r;
+ size_t yy_buffer_stack_top;
+ size_t yy_buffer_stack_max;
+ YY_BUFFER_STATE * yy_buffer_stack;
+ char yy_hold_char;
+ int yy_n_chars;
+ int yyleng_r;
+ char *yy_c_buf_p;
+ int yy_init;
+ int yy_start;
+ int yy_did_buffer_switch_on_eof;
+ int yy_start_stack_ptr;
+ int yy_start_stack_depth;
+ int *yy_start_stack;
+ yy_state_type yy_last_accepting_state;
+ char* yy_last_accepting_cpos;
+
+ int yylineno_r;
+ int yy_flex_debug_r;
+
+ char *yytext_r;
+ int yy_more_flag;
+ int yy_more_len;
+
+ };
+
+
+#line 575 "<stdout>"
+static int yy_init_globals ( yyscan_t yyscanner );
+
+
+#line 577 "<stdout>"
+int yylex_init (yyscan_t* scanner);
+
+
+#line 579 "<stdout>"
+int yylex_init_extra ( void * user_defined, yyscan_t* scanner);
+
+
+
+
+
+#line 584 "<stdout>"
+int yylex_destroy ( yyscan_t yyscanner );
+
+
+#line 586 "<stdout>"
+int yyget_debug ( yyscan_t yyscanner );
+
+
+#line 588 "<stdout>"
+void yyset_debug ( int debug_flag , yyscan_t yyscanner );
+
+
+#line 590 "<stdout>"
+void * yyget_extra ( yyscan_t yyscanner );
+
+
+#line 592 "<stdout>"
+void yyset_extra ( void * user_defined , yyscan_t yyscanner );
+
+
+#line 594 "<stdout>"
+FILE *yyget_in ( yyscan_t yyscanner );
+
+
+#line 596 "<stdout>"
+void yyset_in ( FILE * _in_str , yyscan_t yyscanner );
+
+
+#line 598 "<stdout>"
+FILE *yyget_out ( yyscan_t yyscanner );
+
+
+#line 600 "<stdout>"
+void yyset_out ( FILE * _out_str , yyscan_t yyscanner );
+
+
+#line 602 "<stdout>"
+int yyget_leng ( yyscan_t yyscanner );
+
+
+#line 604 "<stdout>"
+char *yyget_text ( yyscan_t yyscanner );
+
+
+#line 606 "<stdout>"
+int yyget_lineno ( yyscan_t yyscanner );
+
+
+#line 608 "<stdout>"
+void yyset_lineno ( int _line_number , yyscan_t yyscanner );
+
+
+#line 610 "<stdout>"
+int yyget_column ( yyscan_t yyscanner );
+
+
+#line 612 "<stdout>"
+void yyset_column ( int _column_no , yyscan_t yyscanner );
+
+#line 613 "<stdout>"
+ static void yyunput ( int c, char *buf_ptr , yyscan_t yyscanner);
+
+#line 629 "<stdout>"
+static int input ( yyscan_t yyscanner );
+
+#line 645 "<stdout>"
+extern int yylex (yyscan_t yyscanner);
+
+#line 730 "<stdout>"
+int yylex (yyscan_t yyscanner)
+{
+ yy_state_type yy_current_state;
+ char *yy_cp, *yy_bp;
+ int yy_act;
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+
+ if ( !yyg->yy_init )
+ {
+ yyg->yy_init = 1;
+
+
+
+
+
+ if ( ! yyg->yy_start )
+ yyg->yy_start = 1;
+
+ if ( ! yyg->yyin_r )
+ yyg->yyin_r =
+ stdin
+ ;
+
+ if ( ! yyg->yyout_r )
+ yyg->yyout_r =
+ stdout
+ ;
+
+ if ( ! ( yyg->yy_buffer_stack ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] :
+ ((void *)0)
+ ) ) {
+ yyensure_buffer_stack (yyscanner);
+ yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] =
+ yy_create_buffer( yyg->yyin_r, 16384 , yyscanner);
+ }
+
+ yy_load_buffer_state( yyscanner );
+ }
+
+ {
+
+ while ( 1 )
+ {
+ yy_cp = yyg->yy_c_buf_p;
+
+
+ *yy_cp = yyg->yy_hold_char;
+
+
+
+
+ yy_bp = yy_cp;
+
+ yy_current_state = yyg->yy_start;
+ yy_current_state += (yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_at_bol);
+yy_match:
+ do
+ {
+ YY_CHAR yy_c = yy_ec[((YY_CHAR) (*yy_cp))] ;
+ if ( yy_accept[yy_current_state] )
+ {
+ yyg->yy_last_accepting_state = yy_current_state;
+ yyg->yy_last_accepting_cpos = yy_cp;
+ }
+ while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
+ {
+ yy_current_state = (int) yy_def[yy_current_state];
+ if ( yy_current_state >= 69 )
+ yy_c = yy_meta[yy_c];
+ }
+ yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
+ ++yy_cp;
+ }
+ while ( yy_base[yy_current_state] != 184 );
+
+yy_find_action:
+ yy_act = yy_accept[yy_current_state];
+ if ( yy_act == 0 )
+ {
+ yy_cp = yyg->yy_last_accepting_cpos;
+ yy_current_state = yyg->yy_last_accepting_state;
+ yy_act = yy_accept[yy_current_state];
+ }
+
+ yyg->yytext_r = yy_bp; yyg->yyleng_r = (int) (yy_cp - yy_bp); yyg->yy_hold_char = *yy_cp; *yy_cp = '\0'; yyg->yy_c_buf_p = yy_cp;;
+
+do_action:
+
+ switch ( yy_act )
+ {
+ case 0:
+
+ *yy_cp = yyg->yy_hold_char;
+ yy_cp = yyg->yy_last_accepting_cpos;
+ yy_current_state = yyg->yy_last_accepting_state;
+ goto yy_find_action;
+
+case 1:
+
+if ( yyg->yyleng_r > 0 ) yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_at_bol = (yyg->yytext_r[yyg->yyleng_r - 1] == '\n'); FILE_PTR += yyg->yyleng_r;
+{ begin_call(); DEPTH++; }
+ break;
+case 2:
+if ( yyg->yyleng_r > 0 ) yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_at_bol = (yyg->yytext_r[yyg->yyleng_r - 1] == '\n'); FILE_PTR += yyg->yyleng_r;
+{ DEPTH++; }
+ break;
+case 3:
+if ( yyg->yyleng_r > 0 ) yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_at_bol = (yyg->yytext_r[yyg->yyleng_r - 1] == '\n'); FILE_PTR += yyg->yyleng_r;
+{ DEPTH--; maybe_end_call(); }
+ break;
+case 4:
+
+if ( yyg->yyleng_r > 0 ) yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_at_bol = (yyg->yytext_r[yyg->yyleng_r - 1] == '\n'); FILE_PTR += yyg->yyleng_r;
+{ DEPTH--; maybe_end_chunk(); }
+ break;
+case 5:
+
+if ( yyg->yyleng_r > 0 ) yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_at_bol = (yyg->yytext_r[yyg->yyleng_r - 1] == '\n'); FILE_PTR += yyg->yyleng_r;
+{ maybe_end_chunk(); }
+ break;
+case 6:
+if ( yyg->yyleng_r > 0 ) yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_at_bol = (yyg->yytext_r[yyg->yyleng_r - 1] == '\n'); FILE_PTR += yyg->yyleng_r;
+{ DEPTH--; }
+ break;
+case 7:
+
+if ( yyg->yyleng_r > 0 ) yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_at_bol = (yyg->yytext_r[yyg->yyleng_r - 1] == '\n'); FILE_PTR += yyg->yyleng_r;
+{
+ char *lineproc_start = FILE_PTR - yyget_leng(SCANNER);
+
+
+ int n_quotes = 0;
+ for (char *c = lineproc_start; c < FILE_PTR; c++) {
+ n_quotes += (*c == '"');
+ }
+
+ if (n_quotes == 2) {
+ LINE_MARK = FILE_PTR;
+ sscanf(lineproc_start + 1, " %lu ", &LINE);
+ LINE_FILE = calloc(yyget_leng(SCANNER), sizeof(char) + 1);
+ while (*lineproc_start != '"') {
+ lineproc_start++;
+
+ ((void) sizeof ((
+ lineproc_start < FILE_PTR
+ ) ? 1 : 0), __extension__ ({ if (
+ lineproc_start < FILE_PTR
+ ) ; else __assert_fail (
+ "lineproc_start < FILE_PTR"
+ , "lexer.l", 62, __extension__ __PRETTY_FUNCTION__); }))
+ ;
+ }
+ lineproc_start++;
+ int i = 0;
+ while (*lineproc_start != '"') {
+ LINE_FILE[i++] = *lineproc_start;
+ lineproc_start++;
+
+ ((void) sizeof ((
+ lineproc_start < FILE_PTR
+ ) ? 1 : 0), __extension__ ({ if (
+ lineproc_start < FILE_PTR
+ ) ; else __assert_fail (
+ "lineproc_start < FILE_PTR"
+ , "lexer.l", 69, __extension__ __PRETTY_FUNCTION__); }))
+ ;
+ }
+ }
+}
+ break;
+case 8:
+
+if ( yyg->yyleng_r > 0 ) yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_at_bol = (yyg->yytext_r[yyg->yyleng_r - 1] == '\n'); FILE_PTR += yyg->yyleng_r;
+{ }
+ break;
+case 9:
+
+if ( yyg->yyleng_r > 0 ) yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_at_bol = (yyg->yytext_r[yyg->yyleng_r - 1] == '\n'); FILE_PTR += yyg->yyleng_r;
+{ }
+ break;
+case 10:
+
+if ( yyg->yyleng_r > 0 ) yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_at_bol = (yyg->yytext_r[yyg->yyleng_r - 1] == '\n'); FILE_PTR += yyg->yyleng_r;
+{ }
+ break;
+case 11:
+if ( yyg->yyleng_r > 0 ) yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_at_bol = (yyg->yytext_r[yyg->yyleng_r - 1] == '\n'); FILE_PTR += yyg->yyleng_r;
+{ }
+ break;
+case 12:
+if ( yyg->yyleng_r > 0 ) yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_at_bol = (yyg->yytext_r[yyg->yyleng_r - 1] == '\n'); FILE_PTR += yyg->yyleng_r;
+{ }
+ break;
+case 13:
+if ( yyg->yyleng_r > 0 ) yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_at_bol = (yyg->yytext_r[yyg->yyleng_r - 1] == '\n'); FILE_PTR += yyg->yyleng_r;
+{ }
+ break;
+case 14:
+if ( yyg->yyleng_r > 0 ) yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_at_bol = (yyg->yytext_r[yyg->yyleng_r - 1] == '\n'); FILE_PTR += yyg->yyleng_r;
+{ }
+ break;
+case 15:
+if ( yyg->yyleng_r > 0 ) yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_at_bol = (yyg->yytext_r[yyg->yyleng_r - 1] == '\n'); FILE_PTR += yyg->yyleng_r;
+{ }
+ break;
+case 16:
+
+if ( yyg->yyleng_r > 0 ) yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_at_bol = (yyg->yytext_r[yyg->yyleng_r - 1] == '\n'); FILE_PTR += yyg->yyleng_r;
+{ }
+ break;
+case 17:
+
+if ( yyg->yyleng_r > 0 ) yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_at_bol = (yyg->yytext_r[yyg->yyleng_r - 1] == '\n'); FILE_PTR += yyg->yyleng_r;
+{ }
+ break;
+case 18:
+if ( yyg->yyleng_r > 0 ) yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_at_bol = (yyg->yytext_r[yyg->yyleng_r - 1] == '\n'); FILE_PTR += yyg->yyleng_r;
+{ fprintf(
+ stderr
+ , "Issue lexing! '%s'\n", yyg->yytext_r); }
+ break;
+case 19:
+if ( yyg->yyleng_r > 0 ) yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_at_bol = (yyg->yytext_r[yyg->yyleng_r - 1] == '\n'); FILE_PTR += yyg->yyleng_r;
+do { if (fwrite( yyg->yytext_r, (size_t) yyg->yyleng_r, 1, yyg->yyout_r )) {} } while (0);
+ break;
+case (20 + 0 + 1):
+ return 0;
+
+ case 20:
+ {
+
+ int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_r) - 1;
+
+
+ *yy_cp = yyg->yy_hold_char;
+
+
+ if ( yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_buffer_status == 0 )
+ {
+ yyg->yy_n_chars = yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_n_chars;
+ yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_input_file = yyg->yyin_r;
+ yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_buffer_status = 1;
+ }
+ if ( yyg->yy_c_buf_p <= &yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_ch_buf[yyg->yy_n_chars] )
+ {
+ yy_state_type yy_next_state;
+
+ yyg->yy_c_buf_p = yyg->yytext_r + yy_amount_of_matched_text;
+
+ yy_current_state = yy_get_previous_state( yyscanner );
+ yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner);
+
+ yy_bp = yyg->yytext_r + 0;
+
+ if ( yy_next_state )
+ {
+
+ yy_cp = ++yyg->yy_c_buf_p;
+ yy_current_state = yy_next_state;
+ goto yy_match;
+ }
+
+ else
+ {
+ yy_cp = yyg->yy_c_buf_p;
+ goto yy_find_action;
+ }
+ }
+
+ else switch ( yy_get_next_buffer( yyscanner ) )
+ {
+ case 1:
+ {
+ yyg->yy_did_buffer_switch_on_eof = 0;
+
+ if ( ( 1) )
+ {
+ yyg->yy_c_buf_p = yyg->yytext_r + 0;
+
+ yy_act = (20 + ((yyg->yy_start - 1) / 2) + 1);
+ goto do_action;
+ }
+
+ else
+ {
+ if ( ! yyg->yy_did_buffer_switch_on_eof )
+ yyrestart( yyg->yyin_r , yyscanner );
+ }
+ break;
+ }
+
+ case 0:
+ yyg->yy_c_buf_p =
+ yyg->yytext_r + yy_amount_of_matched_text;
+
+ yy_current_state = yy_get_previous_state( yyscanner );
+
+ yy_cp = yyg->yy_c_buf_p;
+ yy_bp = yyg->yytext_r + 0;
+ goto yy_match;
+
+ case 2:
+ yyg->yy_c_buf_p =
+ &yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_ch_buf[yyg->yy_n_chars];
+
+ yy_current_state = yy_get_previous_state( yyscanner );
+
+ yy_cp = yyg->yy_c_buf_p;
+ yy_bp = yyg->yytext_r + 0;
+ goto yy_find_action;
+ }
+ break;
+ }
+
+ default:
+ yy_fatal_error( "fatal flex scanner internal error--no action found" , yyscanner)
+ ;
+ }
+ }
+ }
+}
+
+#line 1110 "<stdout>"
+static int yy_get_next_buffer (yyscan_t yyscanner)
+{
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+ char *dest = yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_ch_buf;
+ char *source = yyg->yytext_r;
+ int number_to_move, i;
+ int ret_val;
+
+ if ( yyg->yy_c_buf_p > &yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_ch_buf[yyg->yy_n_chars + 1] )
+ yy_fatal_error( "fatal flex scanner internal error--end of buffer missed" , yyscanner)
+ ;
+
+ if ( yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_fill_buffer == 0 )
+ {
+ if ( yyg->yy_c_buf_p - yyg->yytext_r - 0 == 1 )
+ {
+
+
+
+ return 1;
+ }
+
+ else
+ {
+
+
+
+ return 2;
+ }
+ }
+
+
+
+
+ number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_r - 1);
+
+ for ( i = 0; i < number_to_move; ++i )
+ *(dest++) = *(source++);
+
+ if ( yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_buffer_status == 2 )
+
+
+
+ yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_n_chars = yyg->yy_n_chars = 0;
+
+ else
+ {
+ int num_to_read =
+ yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_buf_size - number_to_move - 1;
+
+ while ( num_to_read <= 0 )
+ {
+
+
+ YY_BUFFER_STATE b = yyg->yy_buffer_stack[yyg->yy_buffer_stack_top];
+
+ int yy_c_buf_p_offset =
+ (int) (yyg->yy_c_buf_p - b->yy_ch_buf);
+
+ if ( b->yy_is_our_buffer )
+ {
+ int new_size = b->yy_buf_size * 2;
+
+ if ( new_size <= 0 )
+ b->yy_buf_size += b->yy_buf_size / 8;
+ else
+ b->yy_buf_size *= 2;
+
+ b->yy_ch_buf = (char *)
+
+ yyrealloc( (void *) b->yy_ch_buf,
+ (yy_size_t) (b->yy_buf_size + 2) , yyscanner );
+ }
+ else
+
+ b->yy_ch_buf =
+ ((void *)0)
+ ;
+
+ if ( ! b->yy_ch_buf )
+ yy_fatal_error( "fatal error - scanner input buffer overflow" , yyscanner)
+ ;
+
+ yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
+
+ num_to_read = yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_buf_size -
+ number_to_move - 1;
+
+ }
+
+ if ( num_to_read > 8192 )
+ num_to_read = 8192;
+
+
+ if ( yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_is_interactive ) { int c = '*'; int n; for ( n = 0; n < num_to_read && (c = getc( yyg->yyin_r )) !=
+ (-1)
+ && c != '\n'; ++n ) (&yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_ch_buf[number_to_move])[n] = (char) c; if ( c == '\n' ) (&yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_ch_buf[number_to_move])[n++] = (char) c; if ( c ==
+ (-1)
+ && ferror( yyg->yyin_r ) ) yy_fatal_error( "input in flex scanner failed" , yyscanner); yyg->yy_n_chars = n; } else {
+ (*__errno_location ())
+ =0; while ( (yyg->yy_n_chars = (int) fread((&yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_ch_buf[number_to_move]), 1, (yy_size_t) num_to_read, yyg->yyin_r)) == 0 && ferror(yyg->yyin_r)) { if(
+ (*__errno_location ())
+ !=
+ 4
+ ) { yy_fatal_error( "input in flex scanner failed" , yyscanner); break; }
+ (*__errno_location ())
+ =0; clearerr(yyg->yyin_r); } }
+ ;
+
+ yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_n_chars = yyg->yy_n_chars;
+ }
+
+ if ( yyg->yy_n_chars == 0 )
+ {
+ if ( number_to_move == 0 )
+ {
+ ret_val = 1;
+ yyrestart( yyg->yyin_r , yyscanner);
+ }
+
+ else
+ {
+ ret_val = 2;
+ yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_buffer_status =
+ 2;
+ }
+ }
+
+ else
+ ret_val = 0;
+
+ if ((yyg->yy_n_chars + number_to_move) > yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_buf_size) {
+
+ int new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1);
+ yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_ch_buf = (char *) yyrealloc(
+ (void *) yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_ch_buf, (yy_size_t) new_size , yyscanner );
+ if ( ! yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_ch_buf )
+ yy_fatal_error( "out of dynamic memory in yy_get_next_buffer()" , yyscanner);
+
+ yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_buf_size = (int) (new_size - 2);
+ }
+
+ yyg->yy_n_chars += number_to_move;
+ yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_ch_buf[yyg->yy_n_chars] = 0;
+ yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_ch_buf[yyg->yy_n_chars + 1] = 0;
+
+ yyg->yytext_r = &yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_ch_buf[0];
+
+ return ret_val;
+}
+
+
+
+
+#line 1257 "<stdout>"
+static yy_state_type yy_get_previous_state (yyscan_t yyscanner)
+{
+ yy_state_type yy_current_state;
+ char *yy_cp;
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+
+ yy_current_state = yyg->yy_start;
+ yy_current_state += (yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_at_bol);
+
+ for ( yy_cp = yyg->yytext_r + 0; yy_cp < yyg->yy_c_buf_p; ++yy_cp )
+ {
+ YY_CHAR yy_c = (*yy_cp ? yy_ec[((YY_CHAR) (*yy_cp))] : 1);
+ if ( yy_accept[yy_current_state] )
+ {
+ yyg->yy_last_accepting_state = yy_current_state;
+ yyg->yy_last_accepting_cpos = yy_cp;
+ }
+ while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
+ {
+ yy_current_state = (int) yy_def[yy_current_state];
+ if ( yy_current_state >= 69 )
+ yy_c = yy_meta[yy_c];
+ }
+ yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
+ }
+
+ return yy_current_state;
+}
+
+
+
+
+
+
+
+#line 1291 "<stdout>"
+static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state , yyscan_t yyscanner)
+{
+ int yy_is_jam;
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+ char *yy_cp = yyg->yy_c_buf_p;
+
+ YY_CHAR yy_c = 1;
+ if ( yy_accept[yy_current_state] )
+ {
+ yyg->yy_last_accepting_state = yy_current_state;
+ yyg->yy_last_accepting_cpos = yy_cp;
+ }
+ while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
+ {
+ yy_current_state = (int) yy_def[yy_current_state];
+ if ( yy_current_state >= 69 )
+ yy_c = yy_meta[yy_c];
+ }
+ yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
+ yy_is_jam = (yy_current_state == 68);
+
+ (void)yyg;
+ return yy_is_jam ? 0 : yy_current_state;
+}
+
+
+
+
+#line 1318 "<stdout>"
+static void yyunput (int c, char * yy_bp , yyscan_t yyscanner)
+{
+ char *yy_cp;
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+
+ yy_cp = yyg->yy_c_buf_p;
+
+
+ *yy_cp = yyg->yy_hold_char;
+
+ if ( yy_cp < yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_ch_buf + 2 )
+ {
+
+ int number_to_move = yyg->yy_n_chars + 2;
+ char *dest = &yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_ch_buf[
+ yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_buf_size + 2];
+ char *source =
+ &yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_ch_buf[number_to_move];
+
+ while ( source > yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_ch_buf )
+ *--dest = *--source;
+
+ yy_cp += (int) (dest - source);
+ yy_bp += (int) (dest - source);
+ yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_n_chars =
+ yyg->yy_n_chars = (int) yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_buf_size;
+
+ if ( yy_cp < yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_ch_buf + 2 )
+ yy_fatal_error( "flex scanner push-back overflow" , yyscanner);
+ }
+
+ *--yy_cp = (char) c;
+
+ yyg->yytext_r = yy_bp;
+ yyg->yy_hold_char = *yy_cp;
+ yyg->yy_c_buf_p = yy_cp;
+}
+
+
+
+
+
+
+
+
+#line 1362 "<stdout>"
+static int input (yyscan_t yyscanner)
+
+
+{
+ int c;
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+
+ *yyg->yy_c_buf_p = yyg->yy_hold_char;
+
+ if ( *yyg->yy_c_buf_p == 0 )
+ {
+
+
+
+
+ if ( yyg->yy_c_buf_p < &yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_ch_buf[yyg->yy_n_chars] )
+
+ *yyg->yy_c_buf_p = '\0';
+
+ else
+ {
+ int offset = (int) (yyg->yy_c_buf_p - yyg->yytext_r);
+ ++yyg->yy_c_buf_p;
+
+ switch ( yy_get_next_buffer( yyscanner ) )
+ {
+ case 2:
+ yyrestart( yyg->yyin_r , yyscanner);
+
+
+
+ case 1:
+ {
+ if ( ( 1) )
+ return 0;
+
+ if ( ! yyg->yy_did_buffer_switch_on_eof )
+ yyrestart( yyg->yyin_r , yyscanner );
+
+
+
+ return input(yyscanner);
+
+ }
+
+ case 0:
+ yyg->yy_c_buf_p = yyg->yytext_r + offset;
+ break;
+ }
+ }
+ }
+
+ c = *(unsigned char *) yyg->yy_c_buf_p;
+ *yyg->yy_c_buf_p = '\0';
+ yyg->yy_hold_char = *++yyg->yy_c_buf_p;
+
+ yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_at_bol = (c == '\n');
+
+ return c;
+}
+
+
+
+
+
+
+
+
+#line 1440 "<stdout>"
+void yyrestart (FILE * input_file , yyscan_t yyscanner)
+{
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+
+ if ( ! ( yyg->yy_buffer_stack ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] :
+ ((void *)0)
+ ) ){
+ yyensure_buffer_stack (yyscanner);
+ yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] =
+ yy_create_buffer( yyg->yyin_r, 16384 , yyscanner);
+ }
+
+ yy_init_buffer( ( yyg->yy_buffer_stack ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] :
+ ((void *)0)
+ ), input_file , yyscanner);
+ yy_load_buffer_state( yyscanner );
+}
+
+
+
+
+
+
+#line 1458 "<stdout>"
+void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
+{
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+
+
+
+
+
+
+ yyensure_buffer_stack (yyscanner);
+ if ( ( yyg->yy_buffer_stack ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] :
+ ((void *)0)
+ ) == new_buffer )
+ return;
+
+ if ( ( yyg->yy_buffer_stack ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] :
+ ((void *)0)
+ ) )
+ {
+
+ *yyg->yy_c_buf_p = yyg->yy_hold_char;
+ yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_buf_pos = yyg->yy_c_buf_p;
+ yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_n_chars = yyg->yy_n_chars;
+ }
+
+ yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] = new_buffer;
+ yy_load_buffer_state( yyscanner );
+
+
+
+
+
+
+ yyg->yy_did_buffer_switch_on_eof = 1;
+}
+
+
+#line 1490 "<stdout>"
+static void yy_load_buffer_state (yyscan_t yyscanner)
+{
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+ yyg->yy_n_chars = yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_n_chars;
+ yyg->yytext_r = yyg->yy_c_buf_p = yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_buf_pos;
+ yyg->yyin_r = yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_input_file;
+ yyg->yy_hold_char = *yyg->yy_c_buf_p;
+}
+
+
+
+
+
+
+
+
+#line 1505 "<stdout>"
+YY_BUFFER_STATE yy_create_buffer (FILE * file, int size , yyscan_t yyscanner)
+{
+ YY_BUFFER_STATE b;
+
+ b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) , yyscanner );
+ if ( ! b )
+ yy_fatal_error( "out of dynamic memory in yy_create_buffer()" , yyscanner);
+
+ b->yy_buf_size = size;
+
+
+
+
+ b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) , yyscanner );
+ if ( ! b->yy_ch_buf )
+ yy_fatal_error( "out of dynamic memory in yy_create_buffer()" , yyscanner);
+
+ b->yy_is_our_buffer = 1;
+
+ yy_init_buffer( b, file , yyscanner);
+
+ return b;
+}
+
+
+
+
+
+
+#line 1533 "<stdout>"
+void yy_delete_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner)
+{
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+
+ if ( ! b )
+ return;
+
+ if ( b == ( yyg->yy_buffer_stack ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] :
+ ((void *)0)
+ ) )
+ yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] = (YY_BUFFER_STATE) 0;
+
+ if ( b->yy_is_our_buffer )
+ yyfree( (void *) b->yy_ch_buf , yyscanner );
+
+ yyfree( (void *) b , yyscanner );
+}
+
+
+
+
+
+
+#line 1553 "<stdout>"
+static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file , yyscan_t yyscanner)
+
+{
+ int oerrno =
+ (*__errno_location ())
+ ;
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+
+ yy_flush_buffer( b , yyscanner);
+
+ b->yy_input_file = file;
+ b->yy_fill_buffer = 1;
+
+
+
+
+
+ if (b != ( yyg->yy_buffer_stack ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] :
+ ((void *)0)
+ )){
+ b->yy_bs_lineno = 1;
+ b->yy_bs_column = 0;
+ }
+
+ b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
+
+
+(*__errno_location ())
+ = oerrno;
+}
+
+
+
+
+
+
+#line 1582 "<stdout>"
+void yy_flush_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner)
+{
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+ if ( ! b )
+ return;
+
+ b->yy_n_chars = 0;
+
+
+
+
+
+ b->yy_ch_buf[0] = 0;
+ b->yy_ch_buf[1] = 0;
+
+ b->yy_buf_pos = &b->yy_ch_buf[0];
+
+ b->yy_at_bol = 1;
+ b->yy_buffer_status = 0;
+
+ if ( b == ( yyg->yy_buffer_stack ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] :
+ ((void *)0)
+ ) )
+ yy_load_buffer_state( yyscanner );
+}
+
+
+
+
+
+
+
+
+#line 1612 "<stdout>"
+void yypush_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
+{
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+ if (new_buffer ==
+ ((void *)0)
+ )
+ return;
+
+ yyensure_buffer_stack(yyscanner);
+
+
+ if ( ( yyg->yy_buffer_stack ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] :
+ ((void *)0)
+ ) )
+ {
+
+ *yyg->yy_c_buf_p = yyg->yy_hold_char;
+ yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_buf_pos = yyg->yy_c_buf_p;
+ yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_n_chars = yyg->yy_n_chars;
+ }
+
+
+ if (( yyg->yy_buffer_stack ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] :
+ ((void *)0)
+ ))
+ yyg->yy_buffer_stack_top++;
+ yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] = new_buffer;
+
+
+ yy_load_buffer_state( yyscanner );
+ yyg->yy_did_buffer_switch_on_eof = 1;
+}
+
+
+
+
+
+
+#line 1643 "<stdout>"
+void yypop_buffer_state (yyscan_t yyscanner)
+{
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+ if (!( yyg->yy_buffer_stack ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] :
+ ((void *)0)
+ ))
+ return;
+
+ yy_delete_buffer(( yyg->yy_buffer_stack ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] :
+ ((void *)0)
+ ) , yyscanner);
+ yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] =
+ ((void *)0)
+ ;
+ if (yyg->yy_buffer_stack_top > 0)
+ --yyg->yy_buffer_stack_top;
+
+ if (( yyg->yy_buffer_stack ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] :
+ ((void *)0)
+ )) {
+ yy_load_buffer_state( yyscanner );
+ yyg->yy_did_buffer_switch_on_eof = 1;
+ }
+}
+
+
+
+
+
+#line 1663 "<stdout>"
+static void yyensure_buffer_stack (yyscan_t yyscanner)
+{
+ yy_size_t num_to_alloc;
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+
+ if (!yyg->yy_buffer_stack) {
+
+
+
+
+
+ num_to_alloc = 1;
+ yyg->yy_buffer_stack = (struct yy_buffer_state**)yyalloc
+ (num_to_alloc * sizeof(struct yy_buffer_state*)
+ , yyscanner);
+ if ( ! yyg->yy_buffer_stack )
+ yy_fatal_error( "out of dynamic memory in yyensure_buffer_stack()" , yyscanner);
+
+ memset(yyg->yy_buffer_stack, 0, num_to_alloc * sizeof(struct yy_buffer_state*));
+
+ yyg->yy_buffer_stack_max = num_to_alloc;
+ yyg->yy_buffer_stack_top = 0;
+ return;
+ }
+
+ if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){
+
+
+ yy_size_t grow_size = 8 ;
+
+ num_to_alloc = yyg->yy_buffer_stack_max + grow_size;
+ yyg->yy_buffer_stack = (struct yy_buffer_state**)yyrealloc
+ (yyg->yy_buffer_stack,
+ num_to_alloc * sizeof(struct yy_buffer_state*)
+ , yyscanner);
+ if ( ! yyg->yy_buffer_stack )
+ yy_fatal_error( "out of dynamic memory in yyensure_buffer_stack()" , yyscanner);
+
+
+ memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*));
+ yyg->yy_buffer_stack_max = num_to_alloc;
+ }
+}
+
+
+
+
+
+
+
+
+#line 1713 "<stdout>"
+YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size , yyscan_t yyscanner)
+{
+ YY_BUFFER_STATE b;
+
+ if ( size < 2 ||
+ base[size-2] != 0 ||
+ base[size-1] != 0 )
+
+ return
+ ((void *)0)
+ ;
+
+ b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) , yyscanner );
+ if ( ! b )
+ yy_fatal_error( "out of dynamic memory in yy_scan_buffer()" , yyscanner);
+
+ b->yy_buf_size = (int) (size - 2);
+ b->yy_buf_pos = b->yy_ch_buf = base;
+ b->yy_is_our_buffer = 0;
+ b->yy_input_file =
+ ((void *)0)
+ ;
+ b->yy_n_chars = b->yy_buf_size;
+ b->yy_is_interactive = 0;
+ b->yy_at_bol = 1;
+ b->yy_fill_buffer = 0;
+ b->yy_buffer_status = 0;
+
+ yy_switch_to_buffer( b , yyscanner );
+
+ return b;
+}
+
+#line 1741 "<stdout>"
+YY_BUFFER_STATE yy_scan_string (const char * yystr , yyscan_t yyscanner)
+{
+
+ return yy_scan_bytes( yystr, (int) strlen(yystr) , yyscanner);
+}
+
+#line 1755 "<stdout>"
+YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len , yyscan_t yyscanner)
+{
+ YY_BUFFER_STATE b;
+ char *buf;
+ yy_size_t n;
+ int i;
+
+
+ n = (yy_size_t) (_yybytes_len + 2);
+ buf = (char *) yyalloc( n , yyscanner );
+ if ( ! buf )
+ yy_fatal_error( "out of dynamic memory in yy_scan_bytes()" , yyscanner);
+
+ for ( i = 0; i < _yybytes_len; ++i )
+ buf[i] = yybytes[i];
+
+ buf[_yybytes_len] = buf[_yybytes_len+1] = 0;
+
+ b = yy_scan_buffer( buf, n , yyscanner);
+ if ( ! b )
+ yy_fatal_error( "bad buffer in yy_scan_bytes()" , yyscanner);
+
+
+
+
+ b->yy_is_our_buffer = 1;
+
+ return b;
+}
+
+
+
+
+
+
+#line 1797 "<stdout>"
+static void __attribute__((__noreturn__)) yy_fatal_error (const char* msg , yyscan_t yyscanner)
+{
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+ (void)yyg;
+ fprintf(
+ stderr
+ , "%s\n", msg );
+ exit( 2 );
+}
+
+#line 1804 "<stdout>"
+void * yyget_extra (yyscan_t yyscanner)
+{
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+ return yyg->yyextra_r;
+}
+
+
+
+
+
+#line 1836 "<stdout>"
+int yyget_lineno (yyscan_t yyscanner)
+{
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+
+ if (! ( yyg->yy_buffer_stack ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] :
+ ((void *)0)
+ ))
+ return 0;
+
+ return (yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_bs_lineno);
+}
+
+
+
+
+
+#line 1849 "<stdout>"
+int yyget_column (yyscan_t yyscanner)
+{
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+
+ if (! ( yyg->yy_buffer_stack ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] :
+ ((void *)0)
+ ))
+ return 0;
+
+ return (yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_bs_column);
+}
+
+
+
+
+
+#line 1862 "<stdout>"
+FILE *yyget_in (yyscan_t yyscanner)
+{
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+ return yyg->yyin_r;
+}
+
+
+
+
+
+#line 1871 "<stdout>"
+FILE *yyget_out (yyscan_t yyscanner)
+{
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+ return yyg->yyout_r;
+}
+
+
+
+
+
+#line 1880 "<stdout>"
+int yyget_leng (yyscan_t yyscanner)
+{
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+ return yyg->yyleng_r;
+}
+
+
+
+
+
+
+#line 1890 "<stdout>"
+char *yyget_text (yyscan_t yyscanner)
+{
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+ return yyg->yytext_r;
+}
+
+
+
+
+
+
+#line 1900 "<stdout>"
+void yyset_extra (void * user_defined , yyscan_t yyscanner)
+{
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+ yyg->yyextra_r = user_defined ;
+}
+
+
+
+
+
+
+#line 1910 "<stdout>"
+void yyset_lineno (int _line_number , yyscan_t yyscanner)
+{
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+
+
+ if (! ( yyg->yy_buffer_stack ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] :
+ ((void *)0)
+ ) )
+ yy_fatal_error( "yyset_lineno called with no buffer" , yyscanner);
+
+ (yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_bs_lineno) = _line_number;
+}
+
+
+
+
+
+
+#line 1925 "<stdout>"
+void yyset_column (int _column_no , yyscan_t yyscanner)
+{
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+
+
+ if (! ( yyg->yy_buffer_stack ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] :
+ ((void *)0)
+ ) )
+ yy_fatal_error( "yyset_column called with no buffer" , yyscanner);
+
+ (yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_bs_column) = _column_no;
+}
+
+
+
+
+
+
+
+
+#line 1942 "<stdout>"
+void yyset_in (FILE * _in_str , yyscan_t yyscanner)
+{
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+ yyg->yyin_r = _in_str ;
+}
+
+
+#line 1948 "<stdout>"
+void yyset_out (FILE * _out_str , yyscan_t yyscanner)
+{
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+ yyg->yyout_r = _out_str ;
+}
+
+
+#line 1954 "<stdout>"
+int yyget_debug (yyscan_t yyscanner)
+{
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+ return yyg->yy_flex_debug_r;
+}
+
+
+#line 1960 "<stdout>"
+void yyset_debug (int _bdebug , yyscan_t yyscanner)
+{
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+ yyg->yy_flex_debug_r = _bdebug ;
+}
+
+#line 1965 "<stdout>"
+int yylex_init(yyscan_t* ptr_yy_globals)
+{
+ if (ptr_yy_globals ==
+ ((void *)0)
+ ){
+
+ (*__errno_location ())
+ =
+ 22
+ ;
+ return 1;
+ }
+
+ *ptr_yy_globals = (yyscan_t) yyalloc ( sizeof( struct yyguts_t ),
+ ((void *)0)
+ );
+
+ if (*ptr_yy_globals ==
+ ((void *)0)
+ ){
+
+ (*__errno_location ())
+ =
+ 12
+ ;
+ return 1;
+ }
+
+
+ memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
+
+ return yy_init_globals ( *ptr_yy_globals );
+}
+
+#line 1993 "<stdout>"
+int yylex_init_extra( void * yy_user_defined, yyscan_t* ptr_yy_globals )
+{
+ struct yyguts_t dummy_yyguts;
+
+ yyset_extra (yy_user_defined, &dummy_yyguts);
+
+ if (ptr_yy_globals ==
+ ((void *)0)
+ ){
+
+ (*__errno_location ())
+ =
+ 22
+ ;
+ return 1;
+ }
+
+ *ptr_yy_globals = (yyscan_t) yyalloc ( sizeof( struct yyguts_t ), &dummy_yyguts );
+
+ if (*ptr_yy_globals ==
+ ((void *)0)
+ ){
+
+ (*__errno_location ())
+ =
+ 12
+ ;
+ return 1;
+ }
+
+
+
+ memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
+
+ yyset_extra (yy_user_defined, *ptr_yy_globals);
+
+ return yy_init_globals ( *ptr_yy_globals );
+}
+
+
+#line 2028 "<stdout>"
+static int yy_init_globals (yyscan_t yyscanner)
+{
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+
+
+
+
+ yyg->yy_buffer_stack =
+ ((void *)0)
+ ;
+ yyg->yy_buffer_stack_top = 0;
+ yyg->yy_buffer_stack_max = 0;
+ yyg->yy_c_buf_p =
+ ((void *)0)
+ ;
+ yyg->yy_init = 0;
+ yyg->yy_start = 0;
+
+ yyg->yy_start_stack_ptr = 0;
+ yyg->yy_start_stack_depth = 0;
+ yyg->yy_start_stack =
+ ((void *)0)
+ ;
+
+
+
+
+
+
+ yyg->yyin_r =
+ ((void *)0)
+ ;
+ yyg->yyout_r =
+ ((void *)0)
+ ;
+
+
+
+
+
+ return 0;
+}
+
+
+
+#line 2062 "<stdout>"
+int yylex_destroy (yyscan_t yyscanner)
+{
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+
+
+ while(( yyg->yy_buffer_stack ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] :
+ ((void *)0)
+ )){
+ yy_delete_buffer( ( yyg->yy_buffer_stack ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] :
+ ((void *)0)
+ ) , yyscanner );
+ yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] =
+ ((void *)0)
+ ;
+ yypop_buffer_state(yyscanner);
+ }
+
+
+ yyfree(yyg->yy_buffer_stack , yyscanner);
+ yyg->yy_buffer_stack =
+ ((void *)0)
+ ;
+
+
+ yyfree( yyg->yy_start_stack , yyscanner );
+ yyg->yy_start_stack =
+ ((void *)0)
+ ;
+
+
+
+ yy_init_globals( yyscanner);
+
+
+ yyfree ( yyscanner , yyscanner );
+ yyscanner =
+ ((void *)0)
+ ;
+ return 0;
+}
+
+#line 2090 "<stdout>"
+void *yyalloc (yy_size_t size , yyscan_t yyscanner)
+{
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+ (void)yyg;
+ return malloc(size);
+}
+
+
+#line 2125 "<stdout>"
+void *yyrealloc (void * ptr, yy_size_t size , yyscan_t yyscanner)
+{
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+ (void)yyg;
+ return realloc(ptr, size);
+}
+
+
+#line 2140 "<stdout>"
+void yyfree (void * ptr , yyscan_t yyscanner)
+{
+ struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
+ (void)yyg;
+ free( (char *) ptr );
+}
+
+#line 2146 "<stdout>"
+
+struct chunk *CHUNK;
+
+#line 88 "lexer.l"
+struct call **NEXT_CALL;
+
+#line 89 "lexer.l"
+struct call *CALL;
+
+#line 90 "lexer.l"
+uint32_t CALL_START_DEPTH = 0;
+
+
+#line 92 "lexer.l"
+char *ptr_start() {
+ return FILE_PTR - yyget_leng(SCANNER);
+}
+
+
+#line 96 "lexer.l"
+void begin_call() {
+ CALL_START_DEPTH = DEPTH;
+ *NEXT_CALL = calloc(1, sizeof *CALL);
+ CALL = *NEXT_CALL;
+ CALL->start = ptr_start();
+ if (DEPTH == 0) CHUNK->defining_call = CALL;
+}
+
+#line 103 "lexer.l"
+void maybe_end_call() {
+ if (!CALL || CALL_START_DEPTH != DEPTH) return;
+ CALL->end = FILE_PTR;
+ parse_call(CALL);
+ NEXT_CALL = &(CALL->next);
+ CALL = 0;
+}
+
+#line 110 "lexer.l"
+void maybe_end_chunk() {
+ if (DEPTH != 0) return;
+ CHUNK->end = FILE_PTR;
+ CHUNK->next = calloc(1, sizeof *CHUNK);
+ CHUNK = CHUNK->next;
+ CHUNK->start = FILE_PTR;
+ NEXT_CALL = &(CHUNK->calls);
+
+
+ while (LINE_MARK < FILE_PTR) {
+ LINE += (*LINE_MARK == '\n');
+ LINE_MARK++;
+ }
+ CHUNK->line_filename = LINE_FILE;
+ CHUNK->line = LINE;
+}
+
+#line 126 "lexer.l"
+struct chunked_file *chunk(const char *path) {
+ struct stat statbuf;
+ stat(path, &statbuf);
+ int fd = open(path,
+ 00
+ );
+
+ ((void) sizeof ((
+ fd >= 0
+ ) ? 1 : 0), __extension__ ({ if (
+ fd >= 0
+ ) ; else __assert_fail (
+ "fd >= 0"
+ , "lexer.l", 130, __extension__ __PRETTY_FUNCTION__); }))
+ ;
+ CHUNKED_FILE = calloc(1, sizeof *CHUNKED_FILE);
+ CHUNKED_FILE->contents = mmap(
+ ((void *)0)
+ , statbuf.st_size,
+ 0x1
+ ,
+ 0x02
+ , fd, 0);
+ CHUNKED_FILE->end = CHUNKED_FILE->contents + statbuf.st_size;
+ FILE_PTR = CHUNKED_FILE->contents;
+ CHUNKED_FILE->chunks = calloc(1, sizeof(struct chunk));
+ CHUNK = CHUNKED_FILE->chunks;
+ CHUNK->start = FILE_PTR;
+ NEXT_CALL = &(CHUNK->calls);
+
+ LINE_MARK = FILE_PTR;
+ LINE_FILE = CHUNK->line_filename = strdup(path);
+ LINE = CHUNK->line = 1;
+
+ char *zero_term = strndup(CHUNKED_FILE->contents, CHUNKED_FILE->end - CHUNKED_FILE->contents);
+
+ yylex_init(&SCANNER);
+ yy_scan_string(zero_term, SCANNER);
+ yylex(SCANNER);
+ yylex_destroy(SCANNER);
+
+ free(zero_term);
+
+ CHUNK->end = FILE_PTR;
+
+ return CHUNKED_FILE;
+}
+
+#line 157 "lexer.l"
diff --git a/c_version/9.c b/c_version/9.c
new file mode 100755
index 0000000..4729645
--- /dev/null
+++ b/c_version/9.c
@@ -0,0 +1,3457 @@
+
+#line 1 "/tmp/gamma.XksNqZ/9.unfake.c"
+
+
+
+
+
+
+extern void __assert_fail (const char *__assertion, const char *__file,
+ unsigned int __line, const char *__function)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+#line 74 "/usr/include/assert.h"
+extern void __assert_perror_fail (int __errnum, const char *__file,
+ unsigned int __line, const char *__function)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+
+#line 81 "/usr/include/assert.h"
+extern void __assert (const char *__assertion, const char *__file, int __line)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+#line 86 "/usr/include/assert.h"
+typedef long int ptrdiff_t;
+
+#line 146 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h"
+typedef long unsigned int size_t;
+
+#line 215 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h"
+typedef int wchar_t;
+
+#line 330 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h"
+typedef struct {
+ long long __max_align_ll __attribute__((__aligned__(__alignof__(long long))));
+ long double __max_align_ld __attribute__((__aligned__(__alignof__(long double))));
+}
+#line 435 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h"
+max_align_t;
+
+#line 436 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stddef.h"
+
+
+typedef unsigned char __u_char;
+
+#line 32 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned short int __u_short;
+
+#line 33 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __u_int;
+
+#line 34 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __u_long;
+
+
+
+#line 37 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef signed char __int8_t;
+
+#line 38 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned char __uint8_t;
+
+#line 39 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef signed short int __int16_t;
+
+#line 40 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned short int __uint16_t;
+
+#line 41 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef signed int __int32_t;
+
+#line 42 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __uint32_t;
+
+
+#line 44 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef signed long int __int64_t;
+
+#line 45 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __uint64_t;
+
+
+
+
+
+
+
+#line 52 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __int8_t __int_least8_t;
+
+#line 53 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __uint8_t __uint_least8_t;
+
+#line 54 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __int16_t __int_least16_t;
+
+#line 55 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __uint16_t __uint_least16_t;
+
+#line 56 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __int32_t __int_least32_t;
+
+#line 57 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __uint32_t __uint_least32_t;
+
+#line 58 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __int64_t __int_least64_t;
+
+#line 59 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __uint64_t __uint_least64_t;
+
+
+
+
+#line 63 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __quad_t;
+
+#line 64 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __u_quad_t;
+
+
+
+
+
+
+
+
+#line 72 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __intmax_t;
+
+#line 73 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __uintmax_t;
+
+#line 74 "/usr/include/x86_64-linux-gnu/bits/types.h"
+
+
+typedef unsigned long int __dev_t;
+
+#line 146 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __uid_t;
+
+#line 147 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __gid_t;
+
+#line 148 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __ino_t;
+
+#line 149 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __ino64_t;
+
+#line 150 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __mode_t;
+
+#line 151 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __nlink_t;
+
+#line 152 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __off_t;
+
+#line 153 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __off64_t;
+
+#line 154 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef int __pid_t;
+
+#line 155 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef struct { int __val[2]; }
+#line 155 "/usr/include/x86_64-linux-gnu/bits/types.h"
+__fsid_t;
+
+#line 156 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __clock_t;
+
+#line 157 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __rlim_t;
+
+#line 158 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __rlim64_t;
+
+#line 159 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __id_t;
+
+#line 160 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __time_t;
+
+#line 161 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __useconds_t;
+
+#line 162 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __suseconds_t;
+
+#line 163 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __suseconds64_t;
+
+
+#line 165 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef int __daddr_t;
+
+#line 166 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef int __key_t;
+
+
+
+#line 169 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef int __clockid_t;
+
+
+
+#line 172 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef void * __timer_t;
+
+
+
+#line 175 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __blksize_t;
+
+
+
+
+
+#line 180 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __blkcnt_t;
+
+#line 181 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __blkcnt64_t;
+
+
+
+#line 184 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __fsblkcnt_t;
+
+#line 185 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __fsblkcnt64_t;
+
+
+
+#line 188 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __fsfilcnt_t;
+
+#line 189 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __fsfilcnt64_t;
+
+
+
+#line 192 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __fsword_t;
+
+
+#line 194 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __ssize_t;
+
+
+
+#line 197 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __syscall_slong_t;
+
+
+#line 199 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned long int __syscall_ulong_t;
+
+
+
+
+#line 203 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef __off64_t __loff_t;
+
+#line 204 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef char *__caddr_t;
+
+
+
+#line 207 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef long int __intptr_t;
+
+
+
+#line 210 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef unsigned int __socklen_t;
+
+
+
+
+
+#line 215 "/usr/include/x86_64-linux-gnu/bits/types.h"
+typedef int __sig_atomic_t;
+
+#line 216 "/usr/include/x86_64-linux-gnu/bits/types.h"
+
+
+
+
+typedef __int8_t int8_t;
+
+#line 25 "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h"
+typedef __int16_t int16_t;
+
+#line 26 "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h"
+typedef __int32_t int32_t;
+
+#line 27 "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h"
+typedef __int64_t int64_t;
+
+#line 28 "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h"
+
+
+typedef __uint8_t uint8_t;
+
+#line 25 "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h"
+typedef __uint16_t uint16_t;
+
+#line 26 "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h"
+typedef __uint32_t uint32_t;
+
+#line 27 "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h"
+typedef __uint64_t uint64_t;
+
+#line 28 "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h"
+
+
+
+
+
+typedef __int_least8_t int_least8_t;
+
+#line 44 "/usr/include/stdint.h"
+typedef __int_least16_t int_least16_t;
+
+#line 45 "/usr/include/stdint.h"
+typedef __int_least32_t int_least32_t;
+
+#line 46 "/usr/include/stdint.h"
+typedef __int_least64_t int_least64_t;
+
+
+
+#line 49 "/usr/include/stdint.h"
+typedef __uint_least8_t uint_least8_t;
+
+#line 50 "/usr/include/stdint.h"
+typedef __uint_least16_t uint_least16_t;
+
+#line 51 "/usr/include/stdint.h"
+typedef __uint_least32_t uint_least32_t;
+
+#line 52 "/usr/include/stdint.h"
+typedef __uint_least64_t uint_least64_t;
+
+
+
+
+
+
+#line 58 "/usr/include/stdint.h"
+typedef signed char int_fast8_t;
+
+
+#line 60 "/usr/include/stdint.h"
+typedef long int int_fast16_t;
+
+#line 61 "/usr/include/stdint.h"
+typedef long int int_fast32_t;
+
+#line 62 "/usr/include/stdint.h"
+typedef long int int_fast64_t;
+
+#line 63 "/usr/include/stdint.h"
+typedef unsigned char uint_fast8_t;
+
+
+#line 73 "/usr/include/stdint.h"
+typedef unsigned long int uint_fast16_t;
+
+#line 74 "/usr/include/stdint.h"
+typedef unsigned long int uint_fast32_t;
+
+#line 75 "/usr/include/stdint.h"
+typedef unsigned long int uint_fast64_t;
+
+#line 76 "/usr/include/stdint.h"
+typedef long int intptr_t;
+
+
+
+#line 90 "/usr/include/stdint.h"
+typedef unsigned long int uintptr_t;
+
+#line 91 "/usr/include/stdint.h"
+typedef __intmax_t intmax_t;
+
+#line 102 "/usr/include/stdint.h"
+typedef __uintmax_t uintmax_t;
+
+#line 103 "/usr/include/stdint.h"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+typedef struct
+ {
+ int quot;
+ int rem;
+ }
+#line 63 "/usr/include/stdlib.h"
+div_t;
+
+
+
+
+#line 67 "/usr/include/stdlib.h"
+typedef struct
+ {
+ long int quot;
+ long int rem;
+ }
+#line 71 "/usr/include/stdlib.h"
+ldiv_t;
+
+
+
+
+
+
+#line 77 "/usr/include/stdlib.h"
+__extension__ typedef struct
+ {
+ long long int quot;
+ long long int rem;
+ }
+#line 81 "/usr/include/stdlib.h"
+lldiv_t;
+
+#line 82 "/usr/include/stdlib.h"
+extern size_t __ctype_get_mb_cur_max (void) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+#line 102 "/usr/include/stdlib.h"
+extern double atof (const char *__nptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+#line 105 "/usr/include/stdlib.h"
+extern int atoi (const char *__nptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+#line 108 "/usr/include/stdlib.h"
+extern long int atol (const char *__nptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+#line 113 "/usr/include/stdlib.h"
+__extension__ extern long long int atoll (const char *__nptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+#line 118 "/usr/include/stdlib.h"
+extern double strtod (const char *__restrict __nptr,
+ char **__restrict __endptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+#line 124 "/usr/include/stdlib.h"
+extern float strtof (const char *__restrict __nptr,
+ char **__restrict __endptr) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+#line 127 "/usr/include/stdlib.h"
+extern long double strtold (const char *__restrict __nptr,
+ char **__restrict __endptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 130 "/usr/include/stdlib.h"
+extern long int strtol (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+#line 181 "/usr/include/stdlib.h"
+extern unsigned long int strtoul (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+#line 187 "/usr/include/stdlib.h"
+__extension__
+extern long long int strtoq (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+#line 192 "/usr/include/stdlib.h"
+__extension__
+extern unsigned long long int strtouq (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+#line 200 "/usr/include/stdlib.h"
+__extension__
+extern long long int strtoll (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+#line 205 "/usr/include/stdlib.h"
+__extension__
+extern unsigned long long int strtoull (const char *__restrict __nptr,
+ char **__restrict __endptr, int __base)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 209 "/usr/include/stdlib.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+__attribute__ ((__nothrow__ , __leaf__)) atoi (const char *__nptr)
+{
+ return (int) strtol (__nptr, (char **) ((void *)0), 10);
+}
+
+#line 366 "/usr/include/stdlib.h"
+extern __inline __attribute__ ((__gnu_inline__)) long int
+__attribute__ ((__nothrow__ , __leaf__)) atol (const char *__nptr)
+{
+ return strtol (__nptr, (char **) ((void *)0), 10);
+}
+
+
+
+#line 373 "/usr/include/stdlib.h"
+__extension__ extern __inline __attribute__ ((__gnu_inline__)) long long int
+__attribute__ ((__nothrow__ , __leaf__)) atoll (const char *__nptr)
+{
+ return strtoll (__nptr, (char **) ((void *)0), 10);
+}
+
+#line 378 "/usr/include/stdlib.h"
+extern char *l64a (long int __n) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+#line 389 "/usr/include/stdlib.h"
+extern long int a64l (const char *__s)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+
+#line 395 "/usr/include/stdlib.h"
+
+
+
+
+
+
+typedef __u_char u_char;
+
+#line 34 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __u_short u_short;
+
+#line 35 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __u_int u_int;
+
+#line 36 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __u_long u_long;
+
+#line 37 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __quad_t quad_t;
+
+#line 38 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __u_quad_t u_quad_t;
+
+#line 39 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __fsid_t fsid_t;
+
+
+
+#line 42 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __loff_t loff_t;
+
+
+
+
+
+#line 47 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __ino_t ino_t;
+
+#line 48 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __dev_t dev_t;
+
+
+
+
+
+#line 64 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __gid_t gid_t;
+
+
+
+
+
+#line 69 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __mode_t mode_t;
+
+
+
+
+
+#line 74 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __nlink_t nlink_t;
+
+
+
+
+
+#line 79 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __uid_t uid_t;
+
+
+
+
+
+
+#line 85 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __off_t off_t;
+
+#line 86 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __pid_t pid_t;
+
+
+
+
+
+
+#line 103 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __id_t id_t;
+
+
+
+
+
+#line 108 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __ssize_t ssize_t;
+
+
+
+
+
+
+#line 114 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __daddr_t daddr_t;
+
+#line 115 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __caddr_t caddr_t;
+
+
+
+
+
+
+#line 121 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __key_t key_t;
+
+
+
+
+
+#line 126 "/usr/include/x86_64-linux-gnu/sys/types.h"
+
+
+
+
+
+
+typedef __clock_t clock_t;
+
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/clock_t.h"
+
+
+
+
+
+
+
+typedef __clockid_t clockid_t;
+
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/clockid_t.h"
+typedef __time_t time_t;
+
+#line 11 "/usr/include/x86_64-linux-gnu/bits/types/time_t.h"
+
+
+
+
+
+
+typedef __timer_t timer_t;
+
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/timer_t.h"
+
+
+
+typedef unsigned long int ulong;
+
+#line 149 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef unsigned short int ushort;
+
+#line 150 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef unsigned int uint;
+
+
+
+
+
+
+
+
+#line 158 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __uint8_t u_int8_t;
+
+#line 159 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __uint16_t u_int16_t;
+
+#line 160 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __uint32_t u_int32_t;
+
+#line 161 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __uint64_t u_int64_t;
+
+
+
+#line 164 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef int register_t __attribute__ ((__mode__ (__word__)));
+
+#line 165 "/usr/include/x86_64-linux-gnu/sys/types.h"
+static __inline __uint16_t
+__bswap_16 (__uint16_t __bsx)
+{
+
+ return __builtin_bswap16 (__bsx);
+
+
+
+}
+
+
+
+
+
+
+
+#line 48 "/usr/include/x86_64-linux-gnu/bits/byteswap.h"
+static __inline __uint32_t
+__bswap_32 (__uint32_t __bsx)
+{
+
+ return __builtin_bswap32 (__bsx);
+
+
+
+}
+
+#line 57 "/usr/include/x86_64-linux-gnu/bits/byteswap.h"
+__extension__ static __inline __uint64_t
+__bswap_64 (__uint64_t __bsx)
+{
+
+ return __builtin_bswap64 (__bsx);
+
+
+
+}
+
+#line 78 "/usr/include/x86_64-linux-gnu/bits/byteswap.h"
+static __inline __uint16_t
+__uint16_identity (__uint16_t __x)
+{
+ return __x;
+}
+
+
+#line 38 "/usr/include/x86_64-linux-gnu/bits/uintn-identity.h"
+static __inline __uint32_t
+__uint32_identity (__uint32_t __x)
+{
+ return __x;
+}
+
+
+#line 44 "/usr/include/x86_64-linux-gnu/bits/uintn-identity.h"
+static __inline __uint64_t
+__uint64_identity (__uint64_t __x)
+{
+ return __x;
+}
+
+#line 49 "/usr/include/x86_64-linux-gnu/bits/uintn-identity.h"
+
+
+
+
+
+
+
+
+
+
+
+typedef struct
+{
+ unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))];
+}
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h"
+__sigset_t;
+
+#line 9 "/usr/include/x86_64-linux-gnu/bits/types/__sigset_t.h"
+
+
+typedef __sigset_t sigset_t;
+
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/sigset_t.h"
+
+
+
+
+
+
+
+
+
+
+struct timeval
+{
+
+
+
+
+ __time_t tv_sec;
+ __suseconds_t tv_usec;
+
+};
+
+#line 18 "/usr/include/x86_64-linux-gnu/bits/types/struct_timeval.h"
+
+struct timespec
+{
+
+
+
+ __time_t tv_sec;
+
+
+
+
+ __syscall_slong_t tv_nsec;
+};
+
+#line 32 "/usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h"
+
+
+
+typedef __suseconds_t suseconds_t;
+
+
+
+
+
+
+#line 49 "/usr/include/x86_64-linux-gnu/sys/select.h"
+typedef long int __fd_mask;
+
+#line 50 "/usr/include/x86_64-linux-gnu/sys/select.h"
+typedef struct
+ {
+
+
+
+
+
+
+ __fd_mask __fds_bits[1024 / (8 * (int) sizeof (__fd_mask))];
+
+
+ }
+#line 70 "/usr/include/x86_64-linux-gnu/sys/select.h"
+fd_set;
+
+
+
+
+
+
+
+#line 77 "/usr/include/x86_64-linux-gnu/sys/select.h"
+typedef __fd_mask fd_mask;
+
+#line 78 "/usr/include/x86_64-linux-gnu/sys/select.h"
+
+extern int select (int __nfds, fd_set *__restrict __readfds,
+ fd_set *__restrict __writefds,
+ fd_set *__restrict __exceptfds,
+ struct timeval *__restrict __timeout);
+
+#line 106 "/usr/include/x86_64-linux-gnu/sys/select.h"
+extern int pselect (int __nfds, fd_set *__restrict __readfds,
+ fd_set *__restrict __writefds,
+ fd_set *__restrict __exceptfds,
+ const struct timespec *__restrict __timeout,
+ const __sigset_t *__restrict __sigmask);
+
+#line 132 "/usr/include/x86_64-linux-gnu/sys/select.h"
+
+
+
+
+
+
+typedef __blksize_t blksize_t;
+
+
+
+
+
+
+
+#line 192 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __blkcnt_t blkcnt_t;
+
+
+
+
+#line 196 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __fsblkcnt_t fsblkcnt_t;
+
+
+
+
+#line 200 "/usr/include/x86_64-linux-gnu/sys/types.h"
+typedef __fsfilcnt_t fsfilcnt_t;
+
+#line 201 "/usr/include/x86_64-linux-gnu/sys/types.h"
+
+typedef union
+{
+ __extension__ unsigned long long int __value64;
+ struct
+ {
+ unsigned int __low;
+ unsigned int __high;
+ } __value32;
+}
+#line 33 "/usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h"
+__atomic_wide_counter;
+
+#line 34 "/usr/include/x86_64-linux-gnu/bits/atomic_wide_counter.h"
+
+
+
+
+typedef struct __pthread_internal_list
+{
+ struct __pthread_internal_list *__prev;
+ struct __pthread_internal_list *__next;
+}
+#line 55 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+__pthread_list_t;
+
+
+#line 57 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+typedef struct __pthread_internal_slist
+{
+ struct __pthread_internal_slist *__next;
+}
+#line 60 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+__pthread_slist_t;
+
+#line 61 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+struct __pthread_mutex_s
+{
+ int __lock;
+ unsigned int __count;
+ int __owner;
+
+ unsigned int __nusers;
+
+
+
+ int __kind;
+
+ short __spins;
+ short __elision;
+ __pthread_list_t __list;
+};
+
+#line 54 "/usr/include/x86_64-linux-gnu/bits/struct_mutex.h"
+struct __pthread_rwlock_arch_t
+{
+ unsigned int __readers;
+ unsigned int __writers;
+ unsigned int __wrphase_futex;
+ unsigned int __writers_futex;
+ unsigned int __pad3;
+ unsigned int __pad4;
+
+ int __cur_writer;
+ int __shared;
+ signed char __rwelision;
+
+
+
+
+ unsigned char __pad1[7];
+
+
+ unsigned long int __pad2;
+
+
+ unsigned int __flags;
+};
+
+#line 56 "/usr/include/x86_64-linux-gnu/bits/struct_rwlock.h"
+
+
+
+
+struct __pthread_cond_s
+{
+ __atomic_wide_counter __wseq;
+ __atomic_wide_counter __g1_start;
+ unsigned int __g_refs[2] ;
+ unsigned int __g_size[2];
+ unsigned int __g1_orig_size;
+ unsigned int __wrefs;
+ unsigned int __g_signals[2];
+};
+
+
+#line 105 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+typedef unsigned int __tss_t;
+
+#line 106 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+typedef unsigned long int __thrd_t;
+
+
+#line 108 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+typedef struct
+{
+ int __data ;
+}
+#line 111 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+__once_flag;
+
+#line 112 "/usr/include/x86_64-linux-gnu/bits/thread-shared-types.h"
+
+
+
+typedef unsigned long int pthread_t;
+
+
+
+
+
+#line 32 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ char __size[4];
+ int __align;
+}
+#line 36 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_mutexattr_t;
+
+
+
+
+
+#line 41 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ char __size[4];
+ int __align;
+}
+#line 45 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_condattr_t;
+
+
+
+
+#line 49 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef unsigned int pthread_key_t;
+
+
+
+
+#line 53 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef int pthread_once_t;
+
+
+
+#line 56 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+union pthread_attr_t
+{
+ char __size[56];
+ long int __align;
+};
+
+
+#line 62 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union pthread_attr_t pthread_attr_t;
+
+
+
+
+
+#line 67 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ struct __pthread_mutex_s __data;
+ char __size[40];
+ long int __align;
+}
+#line 72 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_mutex_t;
+
+
+
+#line 75 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ struct __pthread_cond_s __data;
+ char __size[48];
+ __extension__ long long int __align;
+}
+#line 80 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_cond_t;
+
+
+
+
+
+
+#line 86 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ struct __pthread_rwlock_arch_t __data;
+ char __size[56];
+ long int __align;
+}
+#line 91 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_rwlock_t;
+
+
+#line 93 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ char __size[8];
+ long int __align;
+}
+#line 97 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_rwlockattr_t;
+
+
+
+
+
+
+#line 103 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef volatile int pthread_spinlock_t;
+
+
+
+
+
+#line 108 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ char __size[32];
+ long int __align;
+}
+#line 112 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_barrier_t;
+
+
+#line 114 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+typedef union
+{
+ char __size[4];
+ int __align;
+}
+#line 118 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+pthread_barrierattr_t;
+
+#line 119 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h"
+
+
+
+
+
+
+
+
+
+extern long int random (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 405 "/usr/include/stdlib.h"
+extern void srandom (unsigned int __seed) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+#line 411 "/usr/include/stdlib.h"
+extern char *initstate (unsigned int __seed, char *__statebuf,
+ size_t __statelen) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+
+
+#line 416 "/usr/include/stdlib.h"
+extern char *setstate (char *__statebuf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+
+#line 424 "/usr/include/stdlib.h"
+struct random_data
+ {
+ int32_t *fptr;
+ int32_t *rptr;
+ int32_t *state;
+ int rand_type;
+ int rand_deg;
+ int rand_sep;
+ int32_t *end_ptr;
+ };
+
+
+#line 435 "/usr/include/stdlib.h"
+extern int random_r (struct random_data *__restrict __buf,
+ int32_t *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 438 "/usr/include/stdlib.h"
+extern int srandom_r (unsigned int __seed, struct random_data *__buf)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+#line 441 "/usr/include/stdlib.h"
+extern int initstate_r (unsigned int __seed, char *__restrict __statebuf,
+ size_t __statelen,
+ struct random_data *__restrict __buf)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 4)));
+
+
+#line 446 "/usr/include/stdlib.h"
+extern int setstate_r (char *__restrict __statebuf,
+ struct random_data *__restrict __buf)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+
+#line 454 "/usr/include/stdlib.h"
+extern int rand (void) __attribute__ ((__nothrow__ , __leaf__));
+
+
+#line 456 "/usr/include/stdlib.h"
+extern void srand (unsigned int __seed) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 460 "/usr/include/stdlib.h"
+extern int rand_r (unsigned int *__seed) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+
+#line 468 "/usr/include/stdlib.h"
+extern double drand48 (void) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 469 "/usr/include/stdlib.h"
+extern double erand48 (unsigned short int __xsubi[3]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+#line 472 "/usr/include/stdlib.h"
+extern long int lrand48 (void) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 473 "/usr/include/stdlib.h"
+extern long int nrand48 (unsigned short int __xsubi[3])
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+#line 477 "/usr/include/stdlib.h"
+extern long int mrand48 (void) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 478 "/usr/include/stdlib.h"
+extern long int jrand48 (unsigned short int __xsubi[3])
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+#line 482 "/usr/include/stdlib.h"
+extern void srand48 (long int __seedval) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 483 "/usr/include/stdlib.h"
+extern unsigned short int *seed48 (unsigned short int __seed16v[3])
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 485 "/usr/include/stdlib.h"
+extern void lcong48 (unsigned short int __param[7]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+#line 491 "/usr/include/stdlib.h"
+struct drand48_data
+ {
+ unsigned short int __x[3];
+ unsigned short int __old_x[3];
+ unsigned short int __c;
+ unsigned short int __init;
+ __extension__ unsigned long long int __a;
+
+ };
+
+
+
+#line 502 "/usr/include/stdlib.h"
+extern int drand48_r (struct drand48_data *__restrict __buffer,
+ double *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 504 "/usr/include/stdlib.h"
+extern int erand48_r (unsigned short int __xsubi[3],
+ struct drand48_data *__restrict __buffer,
+ double *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 509 "/usr/include/stdlib.h"
+extern int lrand48_r (struct drand48_data *__restrict __buffer,
+ long int *__restrict __result)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 512 "/usr/include/stdlib.h"
+extern int nrand48_r (unsigned short int __xsubi[3],
+ struct drand48_data *__restrict __buffer,
+ long int *__restrict __result)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 518 "/usr/include/stdlib.h"
+extern int mrand48_r (struct drand48_data *__restrict __buffer,
+ long int *__restrict __result)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 521 "/usr/include/stdlib.h"
+extern int jrand48_r (unsigned short int __xsubi[3],
+ struct drand48_data *__restrict __buffer,
+ long int *__restrict __result)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 527 "/usr/include/stdlib.h"
+extern int srand48_r (long int __seedval, struct drand48_data *__buffer)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+#line 530 "/usr/include/stdlib.h"
+extern int seed48_r (unsigned short int __seed16v[3],
+ struct drand48_data *__buffer) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 533 "/usr/include/stdlib.h"
+extern int lcong48_r (unsigned short int __param[7],
+ struct drand48_data *__buffer)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 538 "/usr/include/stdlib.h"
+extern __uint32_t arc4random (void)
+ __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+#line 542 "/usr/include/stdlib.h"
+extern void arc4random_buf (void *__buf, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+#line 547 "/usr/include/stdlib.h"
+extern __uint32_t arc4random_uniform (__uint32_t __upper_bound)
+ __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+#line 553 "/usr/include/stdlib.h"
+extern void *malloc (size_t __size) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__))
+ __attribute__ ((__alloc_size__ (1))) ;
+
+
+#line 556 "/usr/include/stdlib.h"
+extern void *calloc (size_t __nmemb, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__alloc_size__ (1, 2))) ;
+
+
+
+
+
+
+
+#line 564 "/usr/include/stdlib.h"
+extern void *realloc (void *__ptr, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)) __attribute__ ((__alloc_size__ (2)));
+
+
+
+#line 568 "/usr/include/stdlib.h"
+extern void free (void *__ptr) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+
+#line 576 "/usr/include/stdlib.h"
+extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__))
+ __attribute__ ((__alloc_size__ (2, 3)))
+ __attribute__ ((__malloc__ (__builtin_free, 1)));
+
+
+
+#line 582 "/usr/include/stdlib.h"
+extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__ (reallocarray, 1)));
+
+
+
+
+#line 587 "/usr/include/stdlib.h"
+
+
+
+
+
+
+
+extern void *alloca (size_t __size) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+#line 39 "/usr/include/alloca.h"
+
+
+
+
+
+extern void *valloc (size_t __size) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__))
+ __attribute__ ((__alloc_size__ (1))) ;
+
+
+
+
+
+#line 599 "/usr/include/stdlib.h"
+extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+
+
+
+
+#line 605 "/usr/include/stdlib.h"
+extern void *aligned_alloc (size_t __alignment, size_t __size)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__alloc_align__ (1)))
+ __attribute__ ((__alloc_size__ (2))) ;
+
+
+
+
+#line 611 "/usr/include/stdlib.h"
+extern void abort (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+#line 615 "/usr/include/stdlib.h"
+extern int atexit (void (*__func) (void)) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+
+#line 623 "/usr/include/stdlib.h"
+extern int at_quick_exit (void (*__func) (void)) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+#line 630 "/usr/include/stdlib.h"
+extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+#line 637 "/usr/include/stdlib.h"
+extern void exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+
+
+#line 643 "/usr/include/stdlib.h"
+extern void quick_exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+
+
+#line 649 "/usr/include/stdlib.h"
+extern void _Exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__));
+
+
+
+
+
+#line 654 "/usr/include/stdlib.h"
+extern char *getenv (const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+#line 655 "/usr/include/stdlib.h"
+extern int putenv (char *__string) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+#line 673 "/usr/include/stdlib.h"
+extern int setenv (const char *__name, const char *__value, int __replace)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+
+#line 677 "/usr/include/stdlib.h"
+extern int unsetenv (const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+#line 684 "/usr/include/stdlib.h"
+extern int clearenv (void) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 685 "/usr/include/stdlib.h"
+extern char *mktemp (char *__template) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 696 "/usr/include/stdlib.h"
+extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) ;
+
+#line 709 "/usr/include/stdlib.h"
+extern int mkstemps (char *__template, int __suffixlen) __attribute__ ((__nonnull__ (1))) ;
+
+#line 731 "/usr/include/stdlib.h"
+extern char *mkdtemp (char *__template) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+#line 752 "/usr/include/stdlib.h"
+extern int system (const char *__command) ;
+
+#line 805 "/usr/include/stdlib.h"
+extern char *realpath (const char *__restrict __name,
+ char *__restrict __resolved) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+
+
+#line 829 "/usr/include/stdlib.h"
+typedef int (*__compar_fn_t) (const void *, const void *);
+
+#line 830 "/usr/include/stdlib.h"
+extern void *bsearch (const void *__key, const void *__base,
+ size_t __nmemb, size_t __size, __compar_fn_t __compar)
+ __attribute__ ((__nonnull__ (1, 2, 5))) ;
+
+
+
+#line 846 "/usr/include/stdlib.h"
+extern __inline __attribute__ ((__gnu_inline__)) void *
+bsearch (const void *__key, const void *__base, size_t __nmemb, size_t __size,
+ __compar_fn_t __compar)
+{
+ size_t __l, __u, __idx;
+ const void *__p;
+ int __comparison;
+
+ __l = 0;
+ __u = __nmemb;
+ while (__l < __u)
+ {
+ __idx = (__l + __u) / 2;
+ __p = (const void *) (((const char *) __base) + (__idx * __size));
+ __comparison = (*__compar) (__key, __p);
+ if (__comparison < 0)
+ __u = __idx;
+ else if (__comparison > 0)
+ __l = __idx + 1;
+ else
+ {
+
+
+ return (void *) __p;
+
+
+ }
+ }
+
+ return ((void *)0);
+}
+
+#line 29 "-Wcast-qual"
+
+
+
+
+extern void qsort (void *__base, size_t __nmemb, size_t __size,
+ __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4)));
+
+#line 853 "/usr/include/stdlib.h"
+extern int abs (int __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+#line 862 "/usr/include/stdlib.h"
+extern long int labs (long int __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+
+
+#line 865 "/usr/include/stdlib.h"
+__extension__ extern long long int llabs (long long int __x)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+
+
+
+
+
+
+#line 873 "/usr/include/stdlib.h"
+extern div_t div (int __numer, int __denom)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+#line 875 "/usr/include/stdlib.h"
+extern ldiv_t ldiv (long int __numer, long int __denom)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+
+
+#line 879 "/usr/include/stdlib.h"
+__extension__ extern lldiv_t lldiv (long long int __numer,
+ long long int __denom)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) ;
+
+#line 882 "/usr/include/stdlib.h"
+extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt,
+ int *__restrict __sign) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ;
+
+
+
+
+
+#line 899 "/usr/include/stdlib.h"
+extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt,
+ int *__restrict __sign) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ;
+
+
+
+
+
+#line 905 "/usr/include/stdlib.h"
+extern char *gcvt (double __value, int __ndigit, char *__buf)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3))) ;
+
+
+
+
+
+#line 911 "/usr/include/stdlib.h"
+extern char *qecvt (long double __value, int __ndigit,
+ int *__restrict __decpt, int *__restrict __sign)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ;
+
+#line 914 "/usr/include/stdlib.h"
+extern char *qfcvt (long double __value, int __ndigit,
+ int *__restrict __decpt, int *__restrict __sign)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) ;
+
+#line 917 "/usr/include/stdlib.h"
+extern char *qgcvt (long double __value, int __ndigit, char *__buf)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3))) ;
+
+
+
+
+
+#line 923 "/usr/include/stdlib.h"
+extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt,
+ int *__restrict __sign, char *__restrict __buf,
+ size_t __len) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
+
+#line 926 "/usr/include/stdlib.h"
+extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt,
+ int *__restrict __sign, char *__restrict __buf,
+ size_t __len) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
+
+
+#line 930 "/usr/include/stdlib.h"
+extern int qecvt_r (long double __value, int __ndigit,
+ int *__restrict __decpt, int *__restrict __sign,
+ char *__restrict __buf, size_t __len)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
+
+#line 934 "/usr/include/stdlib.h"
+extern int qfcvt_r (long double __value, int __ndigit,
+ int *__restrict __decpt, int *__restrict __sign,
+ char *__restrict __buf, size_t __len)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5)));
+
+
+
+
+
+
+#line 943 "/usr/include/stdlib.h"
+extern int mblen (const char *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 946 "/usr/include/stdlib.h"
+extern int mbtowc (wchar_t *__restrict __pwc,
+ const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 950 "/usr/include/stdlib.h"
+extern int wctomb (char *__s, wchar_t __wchar) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 954 "/usr/include/stdlib.h"
+extern size_t mbstowcs (wchar_t *__restrict __pwcs,
+ const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__access__ (__read_only__, 2)));
+
+
+#line 958 "/usr/include/stdlib.h"
+extern size_t wcstombs (char *__restrict __s,
+ const wchar_t *__restrict __pwcs, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__access__ (__write_only__, 1, 3)))
+ __attribute__ ((__access__ (__read_only__, 2)));
+
+
+
+
+
+
+
+#line 969 "/usr/include/stdlib.h"
+extern int rpmatch (const char *__response) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) ;
+
+#line 970 "/usr/include/stdlib.h"
+extern int getsubopt (char **__restrict __optionp,
+ char *const *__restrict __tokens,
+ char **__restrict __valuep)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2, 3))) ;
+
+#line 984 "/usr/include/stdlib.h"
+extern int getloadavg (double __loadavg[], int __nelem)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 1028 "/usr/include/stdlib.h"
+extern __inline __attribute__ ((__gnu_inline__)) double
+__attribute__ ((__nothrow__ , __leaf__)) atof (const char *__nptr)
+{
+ return strtod (__nptr, (char **) ((void *)0));
+}
+
+#line 29 "/usr/include/x86_64-linux-gnu/bits/stdlib-float.h"
+
+
+enum
+{
+ _ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)),
+ _ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)),
+ _ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)),
+ _ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)),
+ _ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)),
+ _ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)),
+ _ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)),
+ _ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)),
+ _ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)),
+ _IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)),
+ _ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)),
+ _ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8))
+};
+
+#line 61 "/usr/include/ctype.h"
+extern const unsigned short int **__ctype_b_loc (void)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+#line 81 "/usr/include/ctype.h"
+extern const __int32_t **__ctype_tolower_loc (void)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+#line 83 "/usr/include/ctype.h"
+extern const __int32_t **__ctype_toupper_loc (void)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+#line 85 "/usr/include/ctype.h"
+extern int isalnum (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 109 "/usr/include/ctype.h"
+extern int isalpha (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 110 "/usr/include/ctype.h"
+extern int iscntrl (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 111 "/usr/include/ctype.h"
+extern int isdigit (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 112 "/usr/include/ctype.h"
+extern int islower (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 113 "/usr/include/ctype.h"
+extern int isgraph (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 114 "/usr/include/ctype.h"
+extern int isprint (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 115 "/usr/include/ctype.h"
+extern int ispunct (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 116 "/usr/include/ctype.h"
+extern int isspace (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 117 "/usr/include/ctype.h"
+extern int isupper (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 118 "/usr/include/ctype.h"
+extern int isxdigit (int) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 122 "/usr/include/ctype.h"
+extern int tolower (int __c) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 125 "/usr/include/ctype.h"
+extern int toupper (int __c) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+#line 130 "/usr/include/ctype.h"
+extern int isblank (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 131 "/usr/include/ctype.h"
+extern int isascii (int __c) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 146 "/usr/include/ctype.h"
+extern int toascii (int __c) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 150 "/usr/include/ctype.h"
+extern int _toupper (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 151 "/usr/include/ctype.h"
+extern int _tolower (int) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 152 "/usr/include/ctype.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+__attribute__ ((__nothrow__ , __leaf__)) tolower (int __c)
+{
+ return __c >= -128 && __c < 256 ? (*__ctype_tolower_loc ())[__c] : __c;
+}
+
+
+#line 212 "/usr/include/ctype.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+__attribute__ ((__nothrow__ , __leaf__)) toupper (int __c)
+{
+ return __c >= -128 && __c < 256 ? (*__ctype_toupper_loc ())[__c] : __c;
+}
+
+#line 217 "/usr/include/ctype.h"
+struct __locale_struct
+{
+
+ struct __locale_data *__locales[13];
+
+
+ const unsigned short int *__ctype_b;
+ const int *__ctype_tolower;
+ const int *__ctype_toupper;
+
+
+ const char *__names[13];
+};
+
+
+#line 41 "/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h"
+typedef struct __locale_struct *__locale_t;
+
+#line 42 "/usr/include/x86_64-linux-gnu/bits/types/__locale_t.h"
+
+typedef __locale_t locale_t;
+
+#line 25 "/usr/include/x86_64-linux-gnu/bits/types/locale_t.h"
+extern int isalnum_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 252 "/usr/include/ctype.h"
+extern int isalpha_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 253 "/usr/include/ctype.h"
+extern int iscntrl_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 254 "/usr/include/ctype.h"
+extern int isdigit_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 255 "/usr/include/ctype.h"
+extern int islower_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 256 "/usr/include/ctype.h"
+extern int isgraph_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 257 "/usr/include/ctype.h"
+extern int isprint_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 258 "/usr/include/ctype.h"
+extern int ispunct_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 259 "/usr/include/ctype.h"
+extern int isspace_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 260 "/usr/include/ctype.h"
+extern int isupper_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 261 "/usr/include/ctype.h"
+extern int isxdigit_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+
+#line 263 "/usr/include/ctype.h"
+extern int isblank_l (int, locale_t) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 267 "/usr/include/ctype.h"
+extern int __tolower_l (int __c, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 268 "/usr/include/ctype.h"
+extern int tolower_l (int __c, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 271 "/usr/include/ctype.h"
+extern int __toupper_l (int __c, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 272 "/usr/include/ctype.h"
+extern int toupper_l (int __c, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 273 "/usr/include/ctype.h"
+
+
+
+
+
+
+
+extern void *memcpy (void *__restrict __dest, const void *__restrict __src,
+ size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 47 "/usr/include/string.h"
+extern void *memmove (void *__dest, const void *__src, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+
+#line 54 "/usr/include/string.h"
+extern void *memccpy (void *__restrict __dest, const void *__restrict __src,
+ int __c, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__access__ (__write_only__, 1, 4)));
+
+
+
+
+
+#line 61 "/usr/include/string.h"
+extern void *memset (void *__s, int __c, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+#line 64 "/usr/include/string.h"
+extern int memcmp (const void *__s1, const void *__s2, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 66 "/usr/include/string.h"
+extern int __memcmpeq (const void *__s1, const void *__s2, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 82 "/usr/include/string.h"
+extern void *memchr (const void *__s, int __c, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+#line 109 "/usr/include/string.h"
+extern char *strcpy (char *__restrict __dest, const char *__restrict __src)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 144 "/usr/include/string.h"
+extern char *strncpy (char *__restrict __dest,
+ const char *__restrict __src, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 149 "/usr/include/string.h"
+extern char *strcat (char *__restrict __dest, const char *__restrict __src)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 152 "/usr/include/string.h"
+extern char *strncat (char *__restrict __dest, const char *__restrict __src,
+ size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 156 "/usr/include/string.h"
+extern int strcmp (const char *__s1, const char *__s2)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 159 "/usr/include/string.h"
+extern int strncmp (const char *__s1, const char *__s2, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 163 "/usr/include/string.h"
+extern int strcoll (const char *__s1, const char *__s2)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+#line 166 "/usr/include/string.h"
+extern size_t strxfrm (char *__restrict __dest,
+ const char *__restrict __src, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))) __attribute__ ((__access__ (__write_only__, 1, 3)));
+
+
+
+
+
+
+
+#line 175 "/usr/include/string.h"
+extern int strcoll_l (const char *__s1, const char *__s2, locale_t __l)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));
+
+
+
+#line 179 "/usr/include/string.h"
+extern size_t strxfrm_l (char *__dest, const char *__src, size_t __n,
+ locale_t __l) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 4)))
+ __attribute__ ((__access__ (__write_only__, 1, 3)));
+
+
+
+
+
+
+#line 187 "/usr/include/string.h"
+extern char *strdup (const char *__s)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+#line 195 "/usr/include/string.h"
+extern char *strndup (const char *__string, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
+
+#line 197 "/usr/include/string.h"
+extern char *strchr (const char *__s, int __c)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+#line 248 "/usr/include/string.h"
+extern char *strrchr (const char *__s, int __c)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+#line 275 "/usr/include/string.h"
+extern size_t strcspn (const char *__s, const char *__reject)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 297 "/usr/include/string.h"
+extern size_t strspn (const char *__s, const char *__accept)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 299 "/usr/include/string.h"
+extern char *strpbrk (const char *__s, const char *__accept)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 325 "/usr/include/string.h"
+extern char *strstr (const char *__haystack, const char *__needle)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+#line 356 "/usr/include/string.h"
+extern char *strtok (char *__restrict __s, const char *__restrict __delim)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2)));
+
+
+
+
+#line 361 "/usr/include/string.h"
+extern char *__strtok_r (char *__restrict __s,
+ const char *__restrict __delim,
+ char **__restrict __save_ptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3)));
+
+
+#line 366 "/usr/include/string.h"
+extern char *strtok_r (char *__restrict __s, const char *__restrict __delim,
+ char **__restrict __save_ptr)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3)));
+
+#line 369 "/usr/include/string.h"
+extern size_t strlen (const char *__s)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+#line 413 "/usr/include/string.h"
+extern size_t strnlen (const char *__string, size_t __maxlen)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+#line 419 "/usr/include/string.h"
+extern char *strerror (int __errnum) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 420 "/usr/include/string.h"
+extern int strerror_r (int __errnum, char *__buf, size_t __buflen) __asm__ ("" "__xpg_strerror_r") __attribute__ ((__nothrow__ , __leaf__))
+
+ __attribute__ ((__nonnull__ (2)))
+ __attribute__ ((__access__ (__write_only__, 2, 3)));
+
+#line 436 "/usr/include/string.h"
+extern char *strerror_l (int __errnum, locale_t __l) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 462 "/usr/include/string.h"
+
+
+
+
+
+
+
+
+
+
+extern int bcmp (const void *__s1, const void *__s2, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 38 "/usr/include/strings.h"
+extern void bcopy (const void *__src, void *__dest, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 42 "/usr/include/strings.h"
+extern void bzero (void *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)));
+
+#line 43 "/usr/include/strings.h"
+extern char *index (const char *__s, int __c)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+#line 70 "/usr/include/strings.h"
+extern char *rindex (const char *__s, int __c)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+
+
+
+
+
+
+
+#line 104 "/usr/include/strings.h"
+extern int ffs (int __i) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+
+
+
+
+
+#line 110 "/usr/include/strings.h"
+extern int ffsl (long int __l) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+#line 111 "/usr/include/strings.h"
+__extension__ extern int ffsll (long long int __ll)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__));
+
+
+
+
+#line 116 "/usr/include/strings.h"
+extern int strcasecmp (const char *__s1, const char *__s2)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+#line 120 "/usr/include/strings.h"
+extern int strncasecmp (const char *__s1, const char *__s2, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+
+
+#line 128 "/usr/include/strings.h"
+extern int strcasecmp_l (const char *__s1, const char *__s2, locale_t __loc)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));
+
+
+
+
+#line 133 "/usr/include/strings.h"
+extern int strncasecmp_l (const char *__s1, const char *__s2,
+ size_t __n, locale_t __loc)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 4)));
+
+
+
+
+#line 139 "/usr/include/strings.h"
+
+
+
+extern void explicit_bzero (void *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1)))
+ __attribute__ ((__access__ (__write_only__, 1, 2)));
+
+
+
+
+#line 471 "/usr/include/string.h"
+extern char *strsep (char **__restrict __stringp,
+ const char *__restrict __delim)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+
+#line 478 "/usr/include/string.h"
+extern char *strsignal (int __sig) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 479 "/usr/include/string.h"
+extern char *__stpcpy (char *__restrict __dest, const char *__restrict __src)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 491 "/usr/include/string.h"
+extern char *stpcpy (char *__restrict __dest, const char *__restrict __src)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+
+
+
+#line 496 "/usr/include/string.h"
+extern char *__stpncpy (char *__restrict __dest,
+ const char *__restrict __src, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 499 "/usr/include/string.h"
+extern char *stpncpy (char *__restrict __dest,
+ const char *__restrict __src, size_t __n)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2)));
+
+#line 502 "/usr/include/string.h"
+
+
+
+
+
+
+
+
+typedef __builtin_va_list __gnuc_va_list;
+
+#line 41 "/usr/lib/gcc/x86_64-linux-gnu/12/include/stdarg.h"
+
+
+
+
+
+
+typedef struct
+{
+ int __count;
+ union
+ {
+ unsigned int __wch;
+ char __wchb[4];
+ } __value;
+}
+#line 21 "/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h"
+__mbstate_t;
+
+#line 22 "/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h"
+
+
+
+
+typedef struct _G_fpos_t
+{
+ __off_t __pos;
+ __mbstate_t __state;
+}
+#line 14 "/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h"
+__fpos_t;
+
+#line 15 "/usr/include/x86_64-linux-gnu/bits/types/__fpos_t.h"
+typedef struct _G_fpos64_t
+{
+ __off64_t __pos;
+ __mbstate_t __state;
+}
+#line 14 "/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h"
+__fpos64_t;
+
+#line 15 "/usr/include/x86_64-linux-gnu/bits/types/__fpos64_t.h"
+
+
+
+struct _IO_FILE;
+
+#line 5 "/usr/include/x86_64-linux-gnu/bits/types/__FILE.h"
+typedef struct _IO_FILE __FILE;
+
+#line 6 "/usr/include/x86_64-linux-gnu/bits/types/__FILE.h"
+
+
+
+struct _IO_FILE;
+
+
+
+#line 7 "/usr/include/x86_64-linux-gnu/bits/types/FILE.h"
+typedef struct _IO_FILE FILE;
+
+#line 8 "/usr/include/x86_64-linux-gnu/bits/types/FILE.h"
+struct _IO_FILE;
+
+#line 36 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+struct _IO_marker;
+
+#line 37 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+struct _IO_codecvt;
+
+#line 38 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+struct _IO_wide_data;
+
+
+
+
+
+#line 43 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+typedef void _IO_lock_t;
+
+
+
+
+
+
+#line 49 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+struct _IO_FILE
+{
+ int _flags;
+
+
+ char *_IO_read_ptr;
+ char *_IO_read_end;
+ char *_IO_read_base;
+ char *_IO_write_base;
+ char *_IO_write_ptr;
+ char *_IO_write_end;
+ char *_IO_buf_base;
+ char *_IO_buf_end;
+
+
+ char *_IO_save_base;
+ char *_IO_backup_base;
+ char *_IO_save_end;
+
+ struct _IO_marker *_markers;
+
+ struct _IO_FILE *_chain;
+
+ int _fileno;
+ int _flags2;
+ __off_t _old_offset;
+
+
+ unsigned short _cur_column;
+ signed char _vtable_offset;
+ char _shortbuf[1];
+
+ _IO_lock_t *_lock;
+
+
+
+
+
+
+
+ __off64_t _offset;
+
+ struct _IO_codecvt *_codecvt;
+ struct _IO_wide_data *_wide_data;
+ struct _IO_FILE *_freeres_list;
+ void *_freeres_buf;
+ size_t __pad5;
+ int _mode;
+
+ char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)];
+};
+
+#line 100 "/usr/include/x86_64-linux-gnu/bits/types/struct_FILE.h"
+typedef __gnuc_va_list va_list;
+
+#line 53 "/usr/include/stdio.h"
+typedef __fpos_t fpos_t;
+
+#line 85 "/usr/include/stdio.h"
+extern FILE *stdin;
+
+#line 144 "/usr/include/stdio.h"
+extern FILE *stdout;
+
+#line 145 "/usr/include/stdio.h"
+extern FILE *stderr;
+
+
+
+
+
+
+
+#line 152 "/usr/include/stdio.h"
+extern int remove (const char *__filename) __attribute__ ((__nothrow__ , __leaf__));
+
+
+#line 154 "/usr/include/stdio.h"
+extern int rename (const char *__old, const char *__new) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 158 "/usr/include/stdio.h"
+extern int renameat (int __oldfd, const char *__old, int __newfd,
+ const char *__new) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 160 "/usr/include/stdio.h"
+extern int fclose (FILE *__stream);
+
+#line 179 "/usr/include/stdio.h"
+extern FILE *tmpfile (void)
+ __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ;
+
+#line 190 "/usr/include/stdio.h"
+extern char *tmpnam (char[20]) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+#line 210 "/usr/include/stdio.h"
+extern char *tmpnam_r (char __s[20]) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+#line 211 "/usr/include/stdio.h"
+extern char *tempnam (const char *__dir, const char *__pfx)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (__builtin_free, 1)));
+
+
+
+
+
+
+
+#line 230 "/usr/include/stdio.h"
+extern int fflush (FILE *__stream);
+
+#line 231 "/usr/include/stdio.h"
+extern int fflush_unlocked (FILE *__stream);
+
+#line 240 "/usr/include/stdio.h"
+extern FILE *fopen (const char *__restrict __filename,
+ const char *__restrict __modes)
+ __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ;
+
+
+
+
+
+#line 265 "/usr/include/stdio.h"
+extern FILE *freopen (const char *__restrict __filename,
+ const char *__restrict __modes,
+ FILE *__restrict __stream) ;
+
+#line 268 "/usr/include/stdio.h"
+extern FILE *fdopen (int __fd, const char *__modes) __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ;
+
+#line 295 "/usr/include/stdio.h"
+extern FILE *fmemopen (void *__s, size_t __len, const char *__modes)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ;
+
+
+
+
+
+#line 314 "/usr/include/stdio.h"
+extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (fclose, 1))) ;
+
+#line 316 "/usr/include/stdio.h"
+extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 332 "/usr/include/stdio.h"
+extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf,
+ int __modes, size_t __n) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+#line 338 "/usr/include/stdio.h"
+extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf,
+ size_t __size) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+#line 342 "/usr/include/stdio.h"
+extern void setlinebuf (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+
+
+
+
+#line 350 "/usr/include/stdio.h"
+extern int fprintf (FILE *__restrict __stream,
+ const char *__restrict __format, ...);
+
+
+
+
+
+#line 356 "/usr/include/stdio.h"
+extern int printf (const char *__restrict __format, ...);
+
+
+#line 358 "/usr/include/stdio.h"
+extern int sprintf (char *__restrict __s,
+ const char *__restrict __format, ...) __attribute__ ((__nothrow__));
+
+
+
+
+
+
+#line 365 "/usr/include/stdio.h"
+extern int vfprintf (FILE *__restrict __s, const char *__restrict __format,
+ __gnuc_va_list __arg);
+
+
+
+
+
+#line 371 "/usr/include/stdio.h"
+extern int vprintf (const char *__restrict __format, __gnuc_va_list __arg);
+
+
+#line 373 "/usr/include/stdio.h"
+extern int vsprintf (char *__restrict __s, const char *__restrict __format,
+ __gnuc_va_list __arg) __attribute__ ((__nothrow__));
+
+
+
+
+#line 378 "/usr/include/stdio.h"
+extern int snprintf (char *__restrict __s, size_t __maxlen,
+ const char *__restrict __format, ...)
+ __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 4)));
+
+
+#line 382 "/usr/include/stdio.h"
+extern int vsnprintf (char *__restrict __s, size_t __maxlen,
+ const char *__restrict __format, __gnuc_va_list __arg)
+ __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 0)));
+
+#line 385 "/usr/include/stdio.h"
+extern int vdprintf (int __fd, const char *__restrict __fmt,
+ __gnuc_va_list __arg)
+ __attribute__ ((__format__ (__printf__, 2, 0)));
+
+#line 406 "/usr/include/stdio.h"
+extern int dprintf (int __fd, const char *__restrict __fmt, ...)
+ __attribute__ ((__format__ (__printf__, 2, 3)));
+
+
+
+
+
+
+
+
+#line 415 "/usr/include/stdio.h"
+extern int fscanf (FILE *__restrict __stream,
+ const char *__restrict __format, ...) ;
+
+
+
+
+
+#line 421 "/usr/include/stdio.h"
+extern int scanf (const char *__restrict __format, ...) ;
+
+
+#line 423 "/usr/include/stdio.h"
+extern int sscanf (const char *__restrict __s,
+ const char *__restrict __format, ...) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 425 "/usr/include/stdio.h"
+extern int fscanf (FILE *__restrict __stream, const char *__restrict __format, ...) __asm__ ("" "__isoc99_fscanf")
+
+ ;
+
+#line 437 "/usr/include/stdio.h"
+extern int scanf (const char *__restrict __format, ...) __asm__ ("" "__isoc99_scanf")
+ ;
+
+#line 439 "/usr/include/stdio.h"
+extern int sscanf (const char *__restrict __s, const char *__restrict __format, ...) __asm__ ("" "__isoc99_sscanf") __attribute__ ((__nothrow__ , __leaf__))
+
+ ;
+
+#line 442 "/usr/include/stdio.h"
+extern int vfscanf (FILE *__restrict __s, const char *__restrict __format,
+ __gnuc_va_list __arg)
+ __attribute__ ((__format__ (__scanf__, 2, 0))) ;
+
+
+
+
+
+
+#line 467 "/usr/include/stdio.h"
+extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg)
+ __attribute__ ((__format__ (__scanf__, 1, 0))) ;
+
+
+
+#line 471 "/usr/include/stdio.h"
+extern int vsscanf (const char *__restrict __s,
+ const char *__restrict __format, __gnuc_va_list __arg)
+ __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__format__ (__scanf__, 2, 0)));
+
+
+
+
+
+
+#line 479 "/usr/include/stdio.h"
+extern int vfscanf (FILE *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vfscanf")
+
+
+
+ __attribute__ ((__format__ (__scanf__, 2, 0))) ;
+
+#line 484 "/usr/include/stdio.h"
+extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vscanf")
+
+ __attribute__ ((__format__ (__scanf__, 1, 0))) ;
+
+#line 487 "/usr/include/stdio.h"
+extern int vsscanf (const char *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vsscanf") __attribute__ ((__nothrow__ , __leaf__))
+
+
+
+ __attribute__ ((__format__ (__scanf__, 2, 0)));
+
+#line 492 "/usr/include/stdio.h"
+extern int fgetc (FILE *__stream);
+
+#line 514 "/usr/include/stdio.h"
+extern int getc (FILE *__stream);
+
+
+
+
+
+
+#line 520 "/usr/include/stdio.h"
+extern int getchar (void);
+
+
+
+
+
+
+
+#line 527 "/usr/include/stdio.h"
+extern int getc_unlocked (FILE *__stream);
+
+#line 528 "/usr/include/stdio.h"
+extern int getchar_unlocked (void);
+
+#line 529 "/usr/include/stdio.h"
+extern int fgetc_unlocked (FILE *__stream);
+
+#line 539 "/usr/include/stdio.h"
+extern int fputc (int __c, FILE *__stream);
+
+#line 550 "/usr/include/stdio.h"
+extern int putc (int __c, FILE *__stream);
+
+
+
+
+
+
+#line 556 "/usr/include/stdio.h"
+extern int putchar (int __c);
+
+#line 557 "/usr/include/stdio.h"
+extern int fputc_unlocked (int __c, FILE *__stream);
+
+
+
+
+
+
+
+
+#line 573 "/usr/include/stdio.h"
+extern int putc_unlocked (int __c, FILE *__stream);
+
+#line 574 "/usr/include/stdio.h"
+extern int putchar_unlocked (int __c);
+
+
+
+
+
+
+
+#line 581 "/usr/include/stdio.h"
+extern int getw (FILE *__stream);
+
+
+
+#line 584 "/usr/include/stdio.h"
+extern int putw (int __w, FILE *__stream);
+
+
+
+
+
+
+
+
+#line 592 "/usr/include/stdio.h"
+extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream)
+ __attribute__ ((__access__ (__write_only__, 1, 2)));
+
+#line 594 "/usr/include/stdio.h"
+extern __ssize_t __getdelim (char **__restrict __lineptr,
+ size_t *__restrict __n, int __delimiter,
+ FILE *__restrict __stream) ;
+
+#line 635 "/usr/include/stdio.h"
+extern __ssize_t getdelim (char **__restrict __lineptr,
+ size_t *__restrict __n, int __delimiter,
+ FILE *__restrict __stream) ;
+
+
+
+
+
+
+
+
+#line 645 "/usr/include/stdio.h"
+extern __ssize_t getline (char **__restrict __lineptr,
+ size_t *__restrict __n,
+ FILE *__restrict __stream) ;
+
+
+
+
+
+
+
+
+#line 655 "/usr/include/stdio.h"
+extern int fputs (const char *__restrict __s, FILE *__restrict __stream);
+
+
+
+
+
+
+#line 661 "/usr/include/stdio.h"
+extern int puts (const char *__s);
+
+
+
+
+
+
+
+#line 668 "/usr/include/stdio.h"
+extern int ungetc (int __c, FILE *__stream);
+
+
+
+
+
+
+
+#line 675 "/usr/include/stdio.h"
+extern size_t fread (void *__restrict __ptr, size_t __size,
+ size_t __n, FILE *__restrict __stream) ;
+
+
+
+
+
+#line 681 "/usr/include/stdio.h"
+extern size_t fwrite (const void *__restrict __ptr, size_t __size,
+ size_t __n, FILE *__restrict __s);
+
+#line 683 "/usr/include/stdio.h"
+extern size_t fread_unlocked (void *__restrict __ptr, size_t __size,
+ size_t __n, FILE *__restrict __stream) ;
+
+#line 704 "/usr/include/stdio.h"
+extern size_t fwrite_unlocked (const void *__restrict __ptr, size_t __size,
+ size_t __n, FILE *__restrict __stream);
+
+
+
+
+
+
+
+
+#line 713 "/usr/include/stdio.h"
+extern int fseek (FILE *__stream, long int __off, int __whence);
+
+
+
+
+
+#line 718 "/usr/include/stdio.h"
+extern long int ftell (FILE *__stream) ;
+
+
+
+
+
+#line 723 "/usr/include/stdio.h"
+extern void rewind (FILE *__stream);
+
+#line 724 "/usr/include/stdio.h"
+extern int fseeko (FILE *__stream, __off_t __off, int __whence);
+
+
+
+
+
+#line 741 "/usr/include/stdio.h"
+extern __off_t ftello (FILE *__stream) ;
+
+#line 742 "/usr/include/stdio.h"
+extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos);
+
+
+
+
+
+#line 765 "/usr/include/stdio.h"
+extern int fsetpos (FILE *__stream, const fpos_t *__pos);
+
+#line 766 "/usr/include/stdio.h"
+extern void clearerr (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
+
+
+#line 788 "/usr/include/stdio.h"
+extern int feof (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+#line 790 "/usr/include/stdio.h"
+extern int ferror (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+#line 794 "/usr/include/stdio.h"
+extern void clearerr_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 795 "/usr/include/stdio.h"
+extern int feof_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+#line 796 "/usr/include/stdio.h"
+extern int ferror_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+
+
+
+#line 804 "/usr/include/stdio.h"
+extern void perror (const char *__s);
+
+
+
+
+
+#line 809 "/usr/include/stdio.h"
+extern int fileno (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+
+
+#line 814 "/usr/include/stdio.h"
+extern int fileno_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+#line 815 "/usr/include/stdio.h"
+extern int pclose (FILE *__stream);
+
+
+
+
+
+
+#line 829 "/usr/include/stdio.h"
+extern FILE *popen (const char *__command, const char *__modes)
+ __attribute__ ((__malloc__)) __attribute__ ((__malloc__ (pclose, 1))) ;
+
+
+
+
+
+
+
+#line 837 "/usr/include/stdio.h"
+extern char *ctermid (char *__s) __attribute__ ((__nothrow__ , __leaf__))
+ __attribute__ ((__access__ (__write_only__, 1)));
+
+#line 839 "/usr/include/stdio.h"
+extern void flockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
+
+
+
+
+#line 871 "/usr/include/stdio.h"
+extern int ftrylockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
+
+
+
+#line 874 "/usr/include/stdio.h"
+extern void funlockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
+
+#line 875 "/usr/include/stdio.h"
+extern int __uflow (FILE *);
+
+#line 886 "/usr/include/stdio.h"
+extern int __overflow (FILE *, int);
+
+#line 887 "/usr/include/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+vprintf (const char *__restrict __fmt, __gnuc_va_list __arg)
+{
+ return vfprintf (stdout, __fmt, __arg);
+}
+
+
+
+
+#line 46 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+getchar (void)
+{
+ return getc (stdin);
+}
+
+
+
+
+
+#line 55 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+fgetc_unlocked (FILE *__fp)
+{
+ return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++);
+}
+
+
+
+
+
+
+#line 65 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+getc_unlocked (FILE *__fp)
+{
+ return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++);
+}
+
+
+
+#line 72 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+getchar_unlocked (void)
+{
+ return (__builtin_expect (((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end), 0) ? __uflow (stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++);
+}
+
+
+
+
+
+#line 81 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+putchar (int __c)
+{
+ return putc (__c, stdout);
+}
+
+
+
+
+
+#line 90 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+fputc_unlocked (int __c, FILE *__stream)
+{
+ return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
+}
+
+
+
+
+
+
+#line 100 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+putc_unlocked (int __c, FILE *__stream)
+{
+ return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
+}
+
+
+
+#line 107 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+putchar_unlocked (int __c)
+{
+ return (__builtin_expect (((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end), 0) ? __overflow (stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c)));
+}
+
+#line 112 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+__attribute__ ((__nothrow__ , __leaf__)) feof_unlocked (FILE *__stream)
+{
+ return (((__stream)->_flags & 0x0010) != 0);
+}
+
+
+
+#line 134 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+extern __inline __attribute__ ((__gnu_inline__)) int
+__attribute__ ((__nothrow__ , __leaf__)) ferror_unlocked (FILE *__stream)
+{
+ return (((__stream)->_flags & 0x0020) != 0);
+}
+
+#line 139 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+
+
+
+
+
+
+
+
+
+struct hashmap_other__other__comma_struct_other_uniq_other_string {
+ struct uniq_string **data;
+ size_t count;
+ size_t cap;
+};
+
+
+#line 139 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+
+
+
+
+
+
+
+
+
+struct hashmap_other__other__comma_struct_other_call {
+ struct call **data;
+ size_t count;
+ size_t cap;
+};
+
+
+#line 17 "gamma.h"
+uint32_t hashmap_other_hash_other__other__comma_struct_other_call(struct call *item);
+
+#line 17 "gamma.h"
+uint32_t hashmap_other_hash_other__other__comma_struct_other_uniq_other_string(struct uniq_string *item);
+
+#line 18 "gamma.h"
+int hashmap_other_eq_other__other__comma_struct_other_call(struct call *A, struct call *B);
+
+
+#line 18 "gamma.h"
+int hashmap_other_eq_other__other__comma_struct_other_uniq_other_string(struct uniq_string *A, struct uniq_string *B);
+
+
+#line 20 "gamma.h"
+struct uniq_string *hashmap_other_lookup_other__other__comma_struct_other_uniq_other_string(struct hashmap_other__other__comma_struct_other_uniq_other_string *hashmap, struct uniq_string *item);
+
+#line 21 "gamma.h"
+struct uniq_string *hashmap_other_lookup_other_weak_other__other__comma_struct_other_uniq_other_string(struct hashmap_other__other__comma_struct_other_uniq_other_string *hashmap, struct uniq_string *item);
+
+#line 21 "gamma.h"
+struct call *hashmap_other_lookup_other_weak_other__other__comma_struct_other_call(struct hashmap_other__other__comma_struct_other_call *hashmap, struct call *item);
+
+#line 22 "gamma.h"
+int hashmap_other_contains_other__other__comma_struct_other_call(struct hashmap_other__other__comma_struct_other_call *hashmap, struct call *item);
+
+#line 23 "gamma.h"
+void hashmap_other_insert_other__other__comma_struct_other_uniq_other_string(struct hashmap_other__other__comma_struct_other_uniq_other_string *hashmap, struct uniq_string *item);
+
+#line 23 "gamma.h"
+void hashmap_other_insert_other__other__comma_struct_other_call(struct hashmap_other__other__comma_struct_other_call *hashmap, struct call *item);
+
+#line 24 "gamma.h"
+struct uniq_string *heapify_other__other__comma_struct_other_uniq_other_string(struct uniq_string item);
+
+
+#line 26 "gamma.h"
+struct vector_other__other__comma_struct_other_call_other__star_ {
+ struct call * *data;
+ size_t count;
+ size_t cap;
+};
+
+#line 31 "gamma.h"
+uint32_t vector_other_push_other__other__comma_struct_other_call_other__star_(struct vector_other__other__comma_struct_other_call_other__star_ *vector, struct call * item);
+
+#line 32 "gamma.h"
+struct call * vector_other_pop_other__other__comma_struct_other_call_other__star_(struct vector_other__other__comma_struct_other_call_other__star_ *vector);
+
+#line 33 "gamma.h"
+struct vector_other__other__comma_struct_other_call_other__star_ *init_other_vector_other__other__comma_struct_other_call_other__star_();
+
+
+#line 35 "gamma.h"
+struct uniq_string {
+ char *string;
+ size_t len;
+
+ struct vector_other__other__comma_struct_other_call_other__star_ instantiations;
+
+ struct chunk *definitions;
+};
+
+
+#line 44 "gamma.h"
+struct arg {
+ char *start;
+ struct uniq_string *string;
+ int is_concrete;
+};
+
+
+#line 50 "gamma.h"
+struct call {
+ char *start;
+ char *end;
+ struct uniq_string *name;
+ struct arg *args;
+ size_t n_args;
+ struct call *next;
+};
+
+
+#line 59 "gamma.h"
+struct chunk {
+ char *start;
+ char *end;
+
+ char *line_filename;
+ size_t line;
+
+ struct call *defining_call;
+ struct call *calls;
+ struct chunk *next;
+ struct chunk *next_definition;
+};
+
+
+#line 72 "gamma.h"
+struct chunked_file {
+ char *contents;
+ char *end;
+ size_t id;
+ struct chunk *chunks;
+ struct chunked_file *next;
+};
+
+
+#line 80 "gamma.h"
+struct chunked_file *chunk(const char *path);
+
+#line 81 "gamma.h"
+struct uniq_string *lookup(char *string, size_t len);
+
+#line 82 "gamma.h"
+struct uniq_string *weak_lookup(char *string, size_t len);
+
+
+
+
+#line 86 "gamma.h"
+struct instantiation_set {
+ struct call **data;
+ size_t n;
+ size_t cap;
+};
+
+
+#line 92 "gamma.h"
+void parse_call(struct call *call);
+
+#line 93 "gamma.h"
+void print_state(struct chunked_file *file);
+
+#line 94 "gamma.h"
+void solve(struct chunked_file *files);
+
+#line 95 "gamma.h"
+void print_string(struct uniq_string *string);
+
+#line 96 "gamma.h"
+void print_call(struct call *call);
+
+#line 97 "gamma.h"
+void print_set(struct instantiation_set *set);
+
+#line 98 "gamma.h"
+void print_chunk(struct chunk *chunk, struct call *instantiation, FILE *out);
+
+#line 99 "gamma.h"
+struct call *replace_variables(struct call *container, struct call *container_instantiation, struct call *call);
+
+#line 100 "gamma.h"
+void fprint_string(FILE *out, struct uniq_string *string);
+
+#line 101 "gamma.h"
+char **read_fakeobj(char *path, char *c_dst);
+
+#line 102 "gamma.h"
+void write_fakeobj(char *src, char *dst, int i);
+
+#line 103 "gamma.h"
+void gamma_sendfile(int dst_fd, int src_fd);
+
+#line 104 "gamma.h"
+void copy_file(char *dst, char *src);
+
+
+#line 106 "gamma.h"
+extern char **ARGV;
+
+#line 107 "gamma.h"
+extern int ARGC;
+
+#line 108 "gamma.h"
+extern char *TMPDIR;
+
+#line 109 "gamma.h"
+extern int GAMMA_TO_C;
+
+#line 110 "gamma.h"
+
+static struct hashmap_other__other__comma_struct_other_uniq_other_string HMAP;
+
+
+#line 5 "uniq_string.c"
+struct uniq_string *lookup(char *string, size_t len) {
+ struct uniq_string ustring = (struct uniq_string){string, len};
+ struct uniq_string *normal = hashmap_other_lookup_other_weak_other__other__comma_struct_other_uniq_other_string(&HMAP, &ustring);
+ if (normal) return normal;
+ return hashmap_other_lookup_other__other__comma_struct_other_uniq_other_string(&HMAP, heapify_other__other__comma_struct_other_uniq_other_string(ustring));
+}
+
+
+#line 12 "uniq_string.c"
+struct uniq_string *weak_lookup(char *string, size_t len) {
+ struct uniq_string ustring = (struct uniq_string){string, len};
+ return hashmap_other_lookup_other_weak_other__other__comma_struct_other_uniq_other_string(&HMAP, &ustring);
+}
+
+
+#line 17 "uniq_string.c"
+void print_string(struct uniq_string *string) {
+ for (size_t i = 0; i < string->len; i++)
+ printf("%c", string->string[i]);
+}
+
+#line 21 "uniq_string.c"
+void fprint_string(FILE *out, struct uniq_string *string) {
+ for (size_t i = 0; i < string->len; i++)
+ fprintf(out, "%c", string->string[i]);
+}
+
+#line 25 "uniq_string.c"
diff --git a/c_version/Makefile b/c_version/Makefile
index 2359148..dd4eba9 100644
--- a/c_version/Makefile
+++ b/c_version/Makefile
@@ -1,28 +1,2 @@
-# CFLAGS += -fsanitize=address
-# LDFLAGS += -fsanitize=address
-CFLAGS += -g
-LDFLAGS += -g
-CFLAGS += -O3
-LDFLAGS += -O3
-
-OBJS=build/main.o \
- build/parse_call.o \
- build/lexer.o \
- build/instantiation_set.o \
- build/uniq_string.o \
- build/solve.o \
- build/mangler.o \
- build/fakeobj.o \
- build/debug.o
-
-build/gc: $(OBJS)
- $(CC) $(CFLAGS) -o $@ $^
-
-build/%.o: %.c
- @mkdir -p build
- $(CC) $(CFLAGS) -c $^ -o $@
-
-build/%.o: %.l
- @mkdir -p build
- flex -t $^ > $@.c
- $(CC) -I./ $(CFLAGS) -c $@.c -o $@
+gc: *.c
+ cc -O3 *.c -o gc
diff --git a/old_versions/c_version/Makefile b/old_versions/c_version/Makefile
new file mode 100644
index 0000000..2359148
--- /dev/null
+++ b/old_versions/c_version/Makefile
@@ -0,0 +1,28 @@
+# CFLAGS += -fsanitize=address
+# LDFLAGS += -fsanitize=address
+CFLAGS += -g
+LDFLAGS += -g
+CFLAGS += -O3
+LDFLAGS += -O3
+
+OBJS=build/main.o \
+ build/parse_call.o \
+ build/lexer.o \
+ build/instantiation_set.o \
+ build/uniq_string.o \
+ build/solve.o \
+ build/mangler.o \
+ build/fakeobj.o \
+ build/debug.o
+
+build/gc: $(OBJS)
+ $(CC) $(CFLAGS) -o $@ $^
+
+build/%.o: %.c
+ @mkdir -p build
+ $(CC) $(CFLAGS) -c $^ -o $@
+
+build/%.o: %.l
+ @mkdir -p build
+ flex -t $^ > $@.c
+ $(CC) -I./ $(CFLAGS) -c $@.c -o $@
diff --git a/c_version/README.txt b/old_versions/c_version/README.txt
index d836bb6..d836bb6 100644
--- a/c_version/README.txt
+++ b/old_versions/c_version/README.txt
diff --git a/c_version/debug.c b/old_versions/c_version/debug.c
index 74e0bb7..74e0bb7 100644
--- a/c_version/debug.c
+++ b/old_versions/c_version/debug.c
diff --git a/c_version/examples/hashmap.c b/old_versions/c_version/examples/hashmap.c
index 2c142e2..2c142e2 100644
--- a/c_version/examples/hashmap.c
+++ b/old_versions/c_version/examples/hashmap.c
diff --git a/c_version/examples/just_c.c b/old_versions/c_version/examples/just_c.c
index 52dd093..52dd093 100644
--- a/c_version/examples/just_c.c
+++ b/old_versions/c_version/examples/just_c.c
diff --git a/c_version/examples/mini.c b/old_versions/c_version/examples/mini.c
index 3548d6d..3548d6d 100644
--- a/c_version/examples/mini.c
+++ b/old_versions/c_version/examples/mini.c
diff --git a/c_version/examples/simple.c b/old_versions/c_version/examples/simple.c
index 102ae58..102ae58 100644
--- a/c_version/examples/simple.c
+++ b/old_versions/c_version/examples/simple.c
diff --git a/c_version/examples/test_ar/.gitignore b/old_versions/c_version/examples/test_ar/.gitignore
index 87e54c2..87e54c2 100644
--- a/c_version/examples/test_ar/.gitignore
+++ b/old_versions/c_version/examples/test_ar/.gitignore
diff --git a/c_version/examples/test_ar/Makefile b/old_versions/c_version/examples/test_ar/Makefile
index 3a768a6..3a768a6 100644
--- a/c_version/examples/test_ar/Makefile
+++ b/old_versions/c_version/examples/test_ar/Makefile
diff --git a/c_version/examples/test_ar/main.c b/old_versions/c_version/examples/test_ar/main.c
index 8918d72..8918d72 100644
--- a/c_version/examples/test_ar/main.c
+++ b/old_versions/c_version/examples/test_ar/main.c
diff --git a/c_version/examples/test_ar/vector.c b/old_versions/c_version/examples/test_ar/vector.c
index a15a113..a15a113 100644
--- a/c_version/examples/test_ar/vector.c
+++ b/old_versions/c_version/examples/test_ar/vector.c
diff --git a/c_version/examples/test_ar/vector.h b/old_versions/c_version/examples/test_ar/vector.h
index 0e6d946..0e6d946 100644
--- a/c_version/examples/test_ar/vector.h
+++ b/old_versions/c_version/examples/test_ar/vector.h
diff --git a/c_version/examples/transitive.c b/old_versions/c_version/examples/transitive.c
index 57a7982..57a7982 100644
--- a/c_version/examples/transitive.c
+++ b/old_versions/c_version/examples/transitive.c
diff --git a/c_version/fakeobj.c b/old_versions/c_version/fakeobj.c
index cc23d7c..cc23d7c 100644
--- a/c_version/fakeobj.c
+++ b/old_versions/c_version/fakeobj.c
diff --git a/c_version/gamma.h b/old_versions/c_version/gamma.h
index 5fcc282..5fcc282 100644
--- a/c_version/gamma.h
+++ b/old_versions/c_version/gamma.h
diff --git a/c_version/instantiation_set.c b/old_versions/c_version/instantiation_set.c
index f4f1c02..f4f1c02 100644
--- a/c_version/instantiation_set.c
+++ b/old_versions/c_version/instantiation_set.c
diff --git a/c_version/lexer.l b/old_versions/c_version/lexer.l
index fa22744..fa22744 100644
--- a/c_version/lexer.l
+++ b/old_versions/c_version/lexer.l
diff --git a/c_version/main.c b/old_versions/c_version/main.c
index 5f60673..5f60673 100644
--- a/c_version/main.c
+++ b/old_versions/c_version/main.c
diff --git a/c_version/mangler.c b/old_versions/c_version/mangler.c
index 4c87102..4c87102 100644
--- a/c_version/mangler.c
+++ b/old_versions/c_version/mangler.c
diff --git a/c_version/parse_call.c b/old_versions/c_version/parse_call.c
index cc26b2f..cc26b2f 100644
--- a/c_version/parse_call.c
+++ b/old_versions/c_version/parse_call.c
diff --git a/c_version/solve.c b/old_versions/c_version/solve.c
index b260135..b260135 100644
--- a/c_version/solve.c
+++ b/old_versions/c_version/solve.c
diff --git a/c_version/uniq_string.c b/old_versions/c_version/uniq_string.c
index 60125c6..60125c6 100644
--- a/c_version/uniq_string.c
+++ b/old_versions/c_version/uniq_string.c
diff --git a/py_version/README.md b/old_versions/py_version/README.md
index 28f26f1..28f26f1 100644
--- a/py_version/README.md
+++ b/old_versions/py_version/README.md
diff --git a/py_version/gamma/Makefile b/old_versions/py_version/gamma/Makefile
index 9e09399..9e09399 100644
--- a/py_version/gamma/Makefile
+++ b/old_versions/py_version/gamma/Makefile
diff --git a/py_version/gamma/__init__.py b/old_versions/py_version/gamma/__init__.py
index 48f551c..48f551c 100644
--- a/py_version/gamma/__init__.py
+++ b/old_versions/py_version/gamma/__init__.py
diff --git a/py_version/gamma/instantiator.py b/old_versions/py_version/gamma/instantiator.py
index f278491..f278491 100644
--- a/py_version/gamma/instantiator.py
+++ b/old_versions/py_version/gamma/instantiator.py
diff --git a/py_version/gamma/lexer.l b/old_versions/py_version/gamma/lexer.l
index 623000a..623000a 100644
--- a/py_version/gamma/lexer.l
+++ b/old_versions/py_version/gamma/lexer.l
diff --git a/py_version/gamma/lexer.py b/old_versions/py_version/gamma/lexer.py
index 35f6ed5..35f6ed5 100644
--- a/py_version/gamma/lexer.py
+++ b/old_versions/py_version/gamma/lexer.py
diff --git a/py_version/gamma/mangler.py b/old_versions/py_version/gamma/mangler.py
index 26e21ce..26e21ce 100644
--- a/py_version/gamma/mangler.py
+++ b/old_versions/py_version/gamma/mangler.py
diff --git a/py_version/gamma/parser.py b/old_versions/py_version/gamma/parser.py
index 13b1bc8..13b1bc8 100644
--- a/py_version/gamma/parser.py
+++ b/old_versions/py_version/gamma/parser.py
diff --git a/py_version/gamma/splitter.py b/old_versions/py_version/gamma/splitter.py
index 23f2518..23f2518 100644
--- a/py_version/gamma/splitter.py
+++ b/old_versions/py_version/gamma/splitter.py
diff --git a/py_version/gc b/py_version/gc
deleted file mode 100755
index d302704..0000000
--- a/py_version/gc
+++ /dev/null
@@ -1,83 +0,0 @@
-#!/usr/bin/env python3
-import tempfile
-import os
-import shutil
-import sys
-import glob
-import pickle
-import pathlib
-from gamma import solve_instantiations, do_instantiation, Parser
-
-GMA_HEADER = b"\x7FGMA"
-ELF_HEADER = b"\x7FELF"
-
-DIR = pathlib.Path(__file__).parent.resolve()
-
-def clean_opts(opts):
- opts = opts.copy()
- while "-o" in opts:
- i = opts.index("-o")
- opts = opts[:i] + opts[i+2:]
- opts = [o for o in opts if o[-2:] not in (".c", ".o", ".a")]
- opts = " ".join(opts)
- return opts
-
-args = sys.argv[1:]
-if "-c" in args:
- in_file = next(arg for arg in args if arg.endswith(".c"))
- if "-o" in args:
- out_file = args[args.index("-o")+1]
- else:
- out_file = in_file.split("/")[-1][:-2] + ".o"
-
- # .o files are just preprocessed+parsed C files with a single-line header
- # explaining how to build it
- with tempfile.TemporaryDirectory() as d:
- subopts = clean_opts(args)
- os.system(f"{subopts} -E {in_file} > {d}/preproc.c")
- parsed = Parser(f"{d}/preproc.c")
- if parsed.definitions or parsed.uses:
- with open(out_file, "wb") as f:
- f.write(GMA_HEADER)
- pickle.dump([' '.join(args), parsed], f,
- protocol=pickle.HIGHEST_PROTOCOL)
- else:
- # No templates involved! Just compile the object file.
- os.system(' '.join(args))
-else:
- opts = clean_opts(args)
-
- # FIRST: unar any archives
- with tempfile.TemporaryDirectory() as unar_dir:
- for i, arg in list(enumerate(args.copy()))[::-1]:
- if not arg.endswith(".a"): continue
- os.system(f"mkdir {unar_dir}/{i}")
- os.system(f"ar -x {arg} --output {unar_dir}/{i}")
- contents = sorted(glob.glob(f"{unar_dir}/{i}/**/*.o", recursive=True))
- args = args[:i] + contents + args[i+1:]
-
- with tempfile.TemporaryDirectory() as srcs_dir:
- indices = []
- for i, arg in enumerate(args.copy()):
- if arg[-2:] not in (".c", ".o"): continue
- if arg.endswith(".c"):
- os.system(f"{DIR}/gc {opts} {arg} -c -o {srcs_dir}/{i}.o")
- arg = f"{srcs_dir}/{i}.o"
-
- assert arg.endswith(".o")
- with open(arg, "rb") as f:
- header = f.read(4)
- if header == GMA_HEADER:
- subopts, parsed = pickle.load(f)
- subopts = clean_opts(subopts.split())
- indices.append((i, subopts, parsed))
-
- concretes = solve_instantiations([parsed for _, _, parsed in indices])
- for i, subopts, parsed in indices:
- with open(f"{srcs_dir}/{i}.done.c", "w") as f:
- f.write(do_instantiation(parsed, concretes))
- os.system(f"{subopts} {srcs_dir}/{i}.done.c -c -o {srcs_dir}/{i}.o")
- args[i] = f"{srcs_dir}/{i}.o"
-
- # print(" ".join(args))
- os.system(" ".join(args))
diff --git a/self_hosting/bootstrap.sh b/self_hosting/bootstrap.sh
index 6aa966f..33a02b4 100755
--- a/self_hosting/bootstrap.sh
+++ b/self_hosting/bootstrap.sh
@@ -6,12 +6,12 @@ C_VERSION=../c_version
GAMMA_VERSION=../gamma_version
echo "------------- Using GCC to build the C version -------------"
-rm -rf $C_VERSION/build
+rm -rf $C_VERSION/gc
make -C $C_VERSION
echo "------------- Using the C version to build the Gamma version -------------"
rm -rf $GAMMA_VERSION/build
-GC=$(pwd)/$C_VERSION/build/gc make -C $GAMMA_VERSION
+GC=$(pwd)/$C_VERSION/gc make -C $GAMMA_VERSION
echo "------------- Using the Gamma version to build the Gamma version -------------"
rm -rf self_hosted_version
@@ -28,4 +28,4 @@ cp Makefile.gamma_to_c gamma_to_c_version/Makefile
echo "------------- Building the gamma_to_c version with GCC -------------"
make -C gamma_to_c_version
-echo "------------- Done! See self_hosted_version/build/gc -------------"
+echo "------------- Done! See gamma_to_c_version/gc -------------"
diff --git a/update_c_version.sh b/update_c_version.sh
new file mode 100644
index 0000000..c362180
--- /dev/null
+++ b/update_c_version.sh
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+set -x
+set -e
+
+cd self_hosting
+bash bootstrap.sh
+rm -rf ../c_version
+cp -r gamma_to_c_version ../c_version
+cd ..
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback