diff options
author | Matthew Sotoudeh <matthew@masot.net> | 2024-04-20 17:21:12 -0700 |
---|---|---|
committer | Matthew Sotoudeh <matthew@masot.net> | 2024-04-20 17:21:12 -0700 |
commit | fed4f1b98d154ac4a240ed98c00a672286beeeb7 (patch) | |
tree | 492039b40582236b5109fecc6b6f24a32a7e68f7 | |
parent | 378b80c38369159fe2171df80151f609c84a3863 (diff) |
new self-hosting system
-rw-r--r-- | .gitignore | 2 | ||||
-rwxr-xr-x | c_version/10.c | 3551 | ||||
-rwxr-xr-x | c_version/11.c | 3527 | ||||
-rwxr-xr-x | c_version/12.c | 6248 | ||||
-rwxr-xr-x | c_version/13.c | 3522 | ||||
-rwxr-xr-x | c_version/14.c | 3464 | ||||
-rwxr-xr-x | c_version/15.c | 3447 | ||||
-rwxr-xr-x | c_version/16.c | 3485 | ||||
-rwxr-xr-x | c_version/17.c | 5112 | ||||
-rwxr-xr-x | c_version/6.c | 6232 | ||||
-rwxr-xr-x | c_version/7.c | 3512 | ||||
-rwxr-xr-x | c_version/8.c | 7238 | ||||
-rwxr-xr-x | c_version/9.c | 3457 | ||||
-rw-r--r-- | c_version/Makefile | 30 | ||||
-rw-r--r-- | old_versions/c_version/Makefile | 28 | ||||
-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-x | py_version/gc | 83 | ||||
-rwxr-xr-x | self_hosting/bootstrap.sh | 6 | ||||
-rw-r--r-- | update_c_version.sh | 10 |
48 files changed, 52840 insertions, 114 deletions
@@ -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 .. |