/* config/config.h.  Generated from config.h.in by configure.  */
/* config/config.h.in.  Generated from configure.ac by autoheader.  */

/* Define to 1 to call abort() on panics (internal errors), for debugging. */
/* #undef ABORT_ON_PANIC */

/* Define if building universal (internal helper macro) */
/* #undef AC_APPLE_UNIVERSAL_BUILD */

/* Define to 1 if compiled with the `-fdata-sections' compiler flag */
/* #undef CFLAG_FDATA_SECTIONS */

/* Define to 1 if compiled with the `-ffunction-sections' compiler flag */
/* #undef CFLAG_FFUNCTION_SECTIONS */

/* Define to 1 if compiled with the `-fgnu89-inline' compiler flag */
/* #undef CFLAG_FGNU89_INLINE */

/* Define to 1 if compiled with the `-flto' compiler flag */
/* #undef CFLAG_FLTO */

/* Define to 1 if compiled with the `-fno-common' compiler flag */
#define CFLAG_FNO_COMMON 1

/* Define to 1 if compiled with the `-fno-omit-frame-pointer' compiler flag */
/* #undef CFLAG_FNO_OMIT_FRAME_POINTER */

/* Define to 1 if compiled with the `-fsanitize=address' compiler flag */
/* #undef CFLAG_FSANITIZE_ADDRESS */

/* Define to 1 if compiled with the `-fsanitize=undefined' compiler flag */
/* #undef CFLAG_FSANITIZE_UNDEFINED */

/* Define to 1 if compiled with the `-fvisibility=hidden' compiler flag */
#define CFLAG_FVISIBILITY_HIDDEN 1

/* Define to 1 if compiled with the `-fwrapv' compiler flag */
#define CFLAG_FWRAPV 1

/* Define to 1 if compiled with the `-ggdb3' compiler flag */
/* #undef CFLAG_GGDB3 */

/* Define to 1 if compiled with the `-pedantic' compiler flag */
#define CFLAG_PEDANTIC 1

/* Define to 1 if compiled with the `-U__STRICT_ANSI__' compiler flag */
#define CFLAG_U_STRICT_ANSI 1

/* Define to 1 if compiled with the `-W' compiler flag */
#define CFLAG_W 1

/* Define to 1 if compiled with the `-Wall' compiler flag */
#define CFLAG_WALL 1

/* Define to 1 if compiled with the `-Wc90-c99-compat' compiler flag */
/* #undef CFLAG_WC90_C99_COMPAT */

/* Define to 1 if compiled with the `-Werror' compiler flag */
/* #undef CFLAG_WERROR */

/* Define to 1 if compiled with the `-Werror=attributes' compiler flag */
#define CFLAG_WERROR_ATTRIBUTES 1

/* Define to 1 if compiled with the `-Werror=comment' compiler flag */
#define CFLAG_WERROR_COMMENT 1

/* Define to 1 if compiled with the `-Werror=implicit' compiler flag */
#define CFLAG_WERROR_IMPLICIT 1

/* Define to 1 if compiled with the `-Werror=missing-braces' compiler flag */
#define CFLAG_WERROR_MISSING_BRACES 1

/* Define to 1 if compiled with the `-Werror=missing-declarations' compiler
   flag */
#define CFLAG_WERROR_MISSING_DECLARATIONS 1

/* Define to 1 if compiled with the `-Werror=missing-prototypes' compiler flag
 */
#define CFLAG_WERROR_MISSING_PROTOTYPES 1

/* Define to 1 if compiled with the `-Werror=pointer-arith' compiler flag */
#define CFLAG_WERROR_POINTER_ARITH 1

/* Define to 1 if compiled with the `-Werror=return-type' compiler flag */
#define CFLAG_WERROR_RETURN_TYPE 1

/* Define to 1 if compiled with the `-Werror=strict-prototypes' compiler flag
 */
/* #undef CFLAG_WERROR_STRICT_PROTOTYPES */

/* Define to 1 if compiled with the `-Werror=trigraphs' compiler flag */
#define CFLAG_WERROR_TRIGRAPHS 1

/* Define to 1 if compiled with the `-Werror=unknown-warning-option' compiler
   flag */
/* #undef CFLAG_WERROR_UNKNOWN_WARNING_OPTION */

/* Define to 1 if compiled with the `-Werror=vla' compiler flag */
#define CFLAG_WERROR_VLA 1

/* Define to 1 if compiled with the `-Wlong-long' compiler flag */
#define CFLAG_WLONG_LONG 1

/* Define to 1 if compiled with the `-Wl,--gc-sections' compiler flag */
/* #undef CFLAG_WL_GC_SECTIONS */

/* Define to 1 if compiled with the `-Wpedantic-ms-format' compiler flag */
/* #undef CFLAG_WPEDANTIC_MS_FORMAT */

/* Define to 1 if compiled with the `-Wshift-negative-value' compiler flag */
#define CFLAG_WSHIFT_NEGATIVE_VALUE 1

/* Define to 1 if compiled with the `-Wstringop-truncation' compiler flag */
/* #undef CFLAG_WSTRINGOP_TRUNCATION */

/* Define to 1 if you have the `access' function. */
#define HAVE_ACCESS 1

/* Define to 1 if you have the `canonicalize_file_name' function. */
/* #undef HAVE_CANONICALIZE_FILE_NAME */

/* Define to 1 if you have the `cpu_to_le16' intrinsic function. */
/* #undef HAVE_CPU_TO_LE16 */

/* Define to 1 if you have the `cpu_to_le32' intrinsic function. */
/* #undef HAVE_CPU_TO_LE32 */

/* Define to 1 if you have the `cpu_to_le64' intrinsic function. */
/* #undef HAVE_CPU_TO_LE64 */

/* Define to 1 if you have the declaration of `strcasecmp', and to 0 if you
   don't. */
#define HAVE_DECL_STRCASECMP 1

/* Define to 1 if you have the declaration of `stricmp', and to 0 if you
   don't. */
#define HAVE_DECL_STRICMP 0

/* Define to 1 if you have the declaration of `strlcpy', and to 0 if you
   don't. */
#define HAVE_DECL_STRLCPY 0

/* Define to 1 if you have the declaration of `strncasecmp', and to 0 if you
   don't. */
#define HAVE_DECL_STRNCASECMP 1

/* Define to 1 if you have the declaration of `strnicmp', and to 0 if you
   don't. */
#define HAVE_DECL_STRNICMP 0

/* Define to 1 if you have the declaration of `strnlen', and to 0 if you
   don't. */
#define HAVE_DECL_STRNLEN 1

/* Define to 1 if you have the declaration of `strrchrnul', and to 0 if you
   don't. */
#define HAVE_DECL_STRRCHRNUL 0

/* Define to 1 if you have the declaration of `strsep', and to 0 if you don't.
 */
#define HAVE_DECL_STRSEP 1

/* Define to 1 if you have the <endian.h> header file. */
/* #undef HAVE_ENDIAN_H */

/* Define to 1 if you have the `faccessat' function. */
#define HAVE_FACCESSAT 1

/* Define to 1 if you have the <fcntl.h> header file. */
#define HAVE_FCNTL_H 1

/* Define to 1 if you have the `fileno' function. */
#define HAVE_FILENO 1

/* Define to 1 if fseeko (and presumably ftello) exists and is declared. */
#define HAVE_FSEEKO 1

/* Define to 1 if you have the `fstat' function. */
#define HAVE_FSTAT 1

/* Define to 1 if you have the `ftruncate' function. */
#define HAVE_FTRUNCATE 1

/* Define to 1 if your compiler supports __attribute__((alloc_size)) on
   functions */
#define HAVE_FUNC_ATTRIBUTE_ALLOC_SIZE 1

/* Define to 1 if your compiler supports __attribute__((cold)) on functions */
#define HAVE_FUNC_ATTRIBUTE_COLD 1

/* Define to 1 if your compiler supports __attribute__((const)) on functions
 */
#define HAVE_FUNC_ATTRIBUTE_CONST 1

/* Define to 1 if your compiler supports __attribute__((error)) on functions
 */
/* #undef HAVE_FUNC_ATTRIBUTE_ERROR */

/* Define to 1 if your compiler supports __attribute__((format)) on functions
 */
#define HAVE_FUNC_ATTRIBUTE_FORMAT 1

/* Define to 1 if your compiler supports __attribute__((malloc)) on functions
 */
#define HAVE_FUNC_ATTRIBUTE_MALLOC 1

/* Define to 1 if your compiler supports __attribute__((noreturn)) on
   functions */
#define HAVE_FUNC_ATTRIBUTE_NORETURN 1

/* Define to 1 if your compiler supports __attribute__((pure)) on functions */
#define HAVE_FUNC_ATTRIBUTE_PURE 1

/* Define to 1 if your compiler supports __attribute__((returns_nonnull)) on
   functions */
#define HAVE_FUNC_ATTRIBUTE_RETURNS_NONNULL 1

/* Define to 1 if your compiler supports __attribute__((sentinel)) on
   functions */
#define HAVE_FUNC_ATTRIBUTE_SENTINEL 1

/* Define to 1 if you have the `getgid' function. */
#define HAVE_GETGID 1

/* Define to 1 if you have the `getpagesize' function. */
#define HAVE_GETPAGESIZE 1

/* Define to 1 if you have the `getuid' function. */
#define HAVE_GETUID 1

/* Define to 1 if you have the `htole16' intrinsic function. */
/* #undef HAVE_HTOLE16 */

/* Define to 1 if you have the `htole32' intrinsic function. */
/* #undef HAVE_HTOLE32 */

/* Define to 1 if you have the `htole64' intrinsic function. */
/* #undef HAVE_HTOLE64 */

/* Define to 1 if you have the <intrin.h> header file. */
/* #undef HAVE_INTRIN_H */

/* Define to 1 if you have the <inttypes.h> header file. */
#define HAVE_INTTYPES_H 1

/* Define to 1 if you have the <io.h> header file. */
/* #undef HAVE_IO_H */

/* Define to 1 if you have the <machine/endian.h> header file. */
/* #undef HAVE_MACHINE_ENDIAN_H */

/* Define to 1 if you have the <memory.h> header file. */
#define HAVE_MEMORY_H 1

/* Define to 1 if you have a working `mmap' system call. */
#define HAVE_MMAP 1

/* Define to 1 if you have the `pathconf' function. */
#define HAVE_PATHCONF 1

/* Define to 1 if you have the `realpath' function. */
#define HAVE_REALPATH 1

/* Define to 1 if you have the `snprintf' function. */
#define HAVE_SNPRINTF 1

/* Define to 1 if you have the `stat' function. */
#define HAVE_STAT 1

/* Define to 1 if stdbool.h conforms to C99. */
#define HAVE_STDBOOL_H 1

/* Define to 1 if your compiler supports C99 extern inline */
#define HAVE_STDC_INLINE 1

/* Define to 1 if you have the <stdint.h> header file. */
#define HAVE_STDINT_H 1

/* Define to 1 if you have the <stdlib.h> header file. */
#define HAVE_STDLIB_H 1

/* Define to 1 if you have the <stdnoreturn.h> header file. */
#define HAVE_STDNORETURN_H 1

/* Define to 1 if you have the `strcasecmp' function. */
#define HAVE_STRCASECMP 1

/* Define to 1 if you have the `stricmp' function. */
/* #undef HAVE_STRICMP */

/* Define to 1 if you have the <strings.h> header file. */
#define HAVE_STRINGS_H 1

/* Define to 1 if you have the <string.h> header file. */
#define HAVE_STRING_H 1

/* Define to 1 if you have the `strlcpy' function. */
/* #undef HAVE_STRLCPY */

/* Define to 1 if you have the `strncasecmp' function. */
#define HAVE_STRNCASECMP 1

/* Define to 1 if you have the `strnicmp' function. */
/* #undef HAVE_STRNICMP */

/* Define to 1 if you have the `strnlen' function. */
#define HAVE_STRNLEN 1

/* Define to 1 if you have the `strrchrnul' function. */
/* #undef HAVE_STRRCHRNUL */

/* Define to 1 if you have the `strsep' function. */
#define HAVE_STRSEP 1

/* Define to 1 if the system has the type `struct stat'. */
#define HAVE_STRUCT_STAT 1

/* Define to 1 if the system has the type `struct _stati64'. */
/* #undef HAVE_STRUCT__STATI64 */

/* Define to 1 if you have the `sysconf' function. */
#define HAVE_SYSCONF 1

/* Define to 1 if you have the <sys/endian.h> header file. */
/* #undef HAVE_SYS_ENDIAN_H */

/* Define to 1 if you have the <sys/mman.h> header file. */
#define HAVE_SYS_MMAN_H 1

/* Define to 1 if you have the <sys/param.h> header file. */
#define HAVE_SYS_PARAM_H 1

/* Define to 1 if you have the <sys/stat.h> header file. */
#define HAVE_SYS_STAT_H 1

/* Define to 1 if you have the <sys/types.h> header file. */
#define HAVE_SYS_TYPES_H 1

/* Define to 1 if the system has the type `uintptr_t'. */
#define HAVE_UINTPTR_T 1

/* Define to 1 if you have the <unistd.h> header file. */
#define HAVE_UNISTD_H 1

/* Define to 1 if you have the `vsnprintf' function. */
#define HAVE_VSNPRINTF 1

/* Define to 1 if you have the `_access' function. */
/* #undef HAVE__ACCESS */

/* Define to 1 if you have the `_BitScanReverse' intrinsic function. */
/* #undef HAVE__BITSCANREVERSE */

/* Define to 1 if you have the `_BitScanReverse64' intrinsic function. */
/* #undef HAVE__BITSCANREVERSE64 */

/* Define to 1 if the system has the type `_Bool'. */
#define HAVE__BOOL 1

/* Define to 1 if you have the `_byteswap_uint64' intrinsic function. */
/* #undef HAVE__BYTESWAP_UINT64 */

/* Define to 1 if you have the `_byteswap_ulong' intrinsic function. */
/* #undef HAVE__BYTESWAP_ULONG */

/* Define to 1 if you have the `_byteswap_ushort' intrinsic function. */
/* #undef HAVE__BYTESWAP_USHORT */

/* Define to 1 if you have the `_chsize' function. */
/* #undef HAVE__CHSIZE */

/* Define to 1 if you have the `_chsize_s' function. */
/* #undef HAVE__CHSIZE_S */

/* Define to 1 if you have the `_filelengthi64' function. */
/* #undef HAVE__FILELENGTHI64 */

/* Define to 1 if you have the `_fileno' function. */
/* #undef HAVE__FILENO */

/* Define to 1 if you have the `_fseeki64' function. */
/* #undef HAVE__FSEEKI64 */

/* Define to 1 if you have the `_fstati64' function. */
/* #undef HAVE__FSTATI64 */

/* Define to 1 if you have the `_fullpath' function. */
/* #undef HAVE__FULLPATH */

/* Define to 1 if you have the `_snprintf' function. */
/* #undef HAVE__SNPRINTF */

/* Define to 1 if you have the `_stati64' function. */
/* #undef HAVE__STATI64 */

/* Define to 1 if you have the `_vsnprintf' function. */
/* #undef HAVE__VSNPRINTF */

/* Define to 1 if you have the `__bswap_16' intrinsic function. */
/* #undef HAVE___BSWAP_16 */

/* Define to 1 if you have the `__bswap_32' intrinsic function. */
/* #undef HAVE___BSWAP_32 */

/* Define to 1 if you have the `__bswap_64' intrinsic function. */
/* #undef HAVE___BSWAP_64 */

/* Define to 1 if you have the `__builtin_bswap16' intrinsic function. */
#define HAVE___BUILTIN_BSWAP16 1

/* Define to 1 if you have the `__builtin_bswap32' intrinsic function. */
#define HAVE___BUILTIN_BSWAP32 1

/* Define to 1 if you have the `__builtin_bswap64' intrinsic function. */
#define HAVE___BUILTIN_BSWAP64 1

/* Define to 1 if you have the `__builtin_clz' intrinsic function. */
#define HAVE___BUILTIN_CLZ 1

/* Define to 1 if you have the `__builtin_clzl' intrinsic function. */
#define HAVE___BUILTIN_CLZL 1

/* Define to 1 if you have the `__builtin_clzll' intrinsic function. */
#define HAVE___BUILTIN_CLZLL 1

/* Define to 1 if you have the `__builtin_constant_p' intrinsic function. */
#define HAVE___BUILTIN_CONSTANT_P 1

/* Define to 1 if you have the `__builtin_expect' intrinsic function. */
#define HAVE___BUILTIN_EXPECT 1

/* Define to 1 if you have the `__cpu_to_le16' intrinsic function. */
/* #undef HAVE___CPU_TO_LE16 */

/* Define to 1 if you have the `__cpu_to_le32' intrinsic function. */
/* #undef HAVE___CPU_TO_LE32 */

/* Define to 1 if you have the `__cpu_to_le64' intrinsic function. */
/* #undef HAVE___CPU_TO_LE64 */

/* Define to the address where bug reports for this package should be sent. */
#define PACKAGE_BUGREPORT ""

/* Define to the full name of this package. */
#define PACKAGE_NAME ""

/* Define to the full name and version of this package. */
#define PACKAGE_STRING ""

/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME ""

/* Define to the home page for this package. */
#define PACKAGE_URL ""

/* Define to the version of this package. */
#define PACKAGE_VERSION ""

/* Define to 1 if you have the ANSI C header files. */
#define STDC_HEADERS 1

/* Enable extensions on AIX 3, Interix.  */
#ifndef _ALL_SOURCE
#define _ALL_SOURCE 1
#endif
/* Enable GNU extensions on systems that have them.  */
#ifndef _GNU_SOURCE
#define _GNU_SOURCE 1
#endif
/* Enable threading extensions on Solaris.  */
#ifndef _POSIX_PTHREAD_SEMANTICS
#define _POSIX_PTHREAD_SEMANTICS 1
#endif
/* Enable extensions on HP NonStop.  */
#ifndef _TANDEM_SOURCE
#define _TANDEM_SOURCE 1
#endif
/* Enable general extensions on Solaris.  */
#ifndef __EXTENSIONS__
#define __EXTENSIONS__ 1
#endif

/* Define to 1 if your processor stores words with the most significant byte
   first (like Motorola and SPARC, unlike Intel and VAX). */
/* #undef WORDS_BIGENDIAN */

/* Define to 1 if your processor stores words with the least significant byte
   first (like Intel and VAX, unlike Motorola and SPARC). */
#define WORDS_LITTLEENDIAN 1

/* Enable large inode numbers on Mac OS X 10.5.  */
#ifndef _DARWIN_USE_64_BIT_INODE
#define _DARWIN_USE_64_BIT_INODE 1
#endif

/* Number of bits in a file offset, on hosts where this is settable. */
/* #undef _FILE_OFFSET_BITS */

/* Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2). */
/* #undef _LARGEFILE_SOURCE */

/* Define for large files, on AIX-style hosts. */
/* #undef _LARGE_FILES */

/* Define to 1 if on MINIX. */
/* #undef _MINIX */

/* Define to 2 if the system does not provide POSIX.1 features except with
   this defined. */
/* #undef _POSIX_1_SOURCE */

/* Define to 1 if you need to in order for `stat' and other things to work. */
/* #undef _POSIX_SOURCE */

/* Define to empty if `const' does not conform to ANSI C. */
/* #undef const */

/* Define to `__inline__' or `__inline' if that's what the C compiler
   calls it, or to nothing if 'inline' is not supported under any name.  */
#ifndef __cplusplus
/* #undef inline */
#endif

/* Define to the equivalent of the C99 'restrict' keyword, or to
   nothing if this is not supported.  Do not define if restrict is
   supported directly.  */
#define restrict __restrict
/* Work around a bug in Sun C++: it does not support _Restrict or
   __restrict__, even though the corresponding Sun C compiler ends up with
   "#define restrict _Restrict" or "#define restrict __restrict__" in the
   previous line.  Perhaps some future version of Sun C++ will work with
   restrict; if so, hopefully it defines __RESTRICT like Sun C does.  */
#if defined __SUNPRO_CC && !defined __RESTRICT
#define _Restrict
#define __restrict__
#endif

/* Define to `unsigned int' if <sys/types.h> does not define. */
/* #undef size_t */

/* Define to the type of an unsigned integer type wide enough to hold a
   pointer, if such a type exists, and if the system does not define it. */
/* #undef uintptr_t */
