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

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

/* Define if you have a getaddrinfo that fails for the all-zeros IPv6 address
   */
#undef AIX_GETNAMEINFO_HACK

/* Define if your AIX loginfailed() function takes 4 arguments (AIX >= 5.2) */
#undef AIX_LOGINFAILED_4ARG

/* System only supports IPv4 audit records */
#undef AU_IPv4

/* Define if your resolver libs need this for getrrsetbyname */
#undef BIND_8_COMPAT

/* The system has incomplete BSM API */
#undef BROKEN_BSM_API

/* Define if cmsg_type is not passed correctly */
#undef BROKEN_CMSG_TYPE

/* getaddrinfo is broken (if present) */
#undef BROKEN_GETADDRINFO

/* getgroups(0,NULL) will return -1 */
#undef BROKEN_GETGROUPS

/* FreeBSD glob does not do what we need */
#undef BROKEN_GLOB

/* Define if you system's inet_ntoa is busted (e.g. Irix gcc issue) */
#undef BROKEN_INET_NTOA

/* ia_uinfo routines not supported by OS yet */
#undef BROKEN_LIBIAF

/* Define if your struct dirent expects you to allocate extra space for d_name
   */
#undef BROKEN_ONE_BYTE_DIRENT_D_NAME

/* Can't do comparisons on readv */
#undef BROKEN_READV_COMPARISON

/* NetBSD read function is sometimes redirected, breaking atomicio comparisons
   against it */
#undef BROKEN_READ_COMPARISON

/* realpath does not work with nonexistent files */
#undef BROKEN_REALPATH

/* Needed for NeXT */
#undef BROKEN_SAVED_UIDS

/* Define if your setregid() is broken */
#undef BROKEN_SETREGID

/* Define if your setresgid() is broken */
#undef BROKEN_SETRESGID

/* Define if your setresuid() is broken */
#undef BROKEN_SETRESUID

/* Define if your setreuid() is broken */
#undef BROKEN_SETREUID

/* LynxOS has broken setvbuf() implementation */
#undef BROKEN_SETVBUF

/* QNX shadow support is broken */
#undef BROKEN_SHADOW_EXPIRE

/* Define if your snprintf is busted */
#undef BROKEN_SNPRINTF

/* strnvis detected broken */
#undef BROKEN_STRNVIS

/* tcgetattr with ICANON may hang */
#undef BROKEN_TCGETATTR_ICANON

/* updwtmpx is broken (if present) */
#undef BROKEN_UPDWTMPX

/* Define if you have BSD auth support */
#undef BSD_AUTH

/* Define if you want to specify the path to your lastlog file */
#undef CONF_LASTLOG_FILE

/* Define if you want to specify the path to your utmp file */
#undef CONF_UTMP_FILE

/* Define if you want to specify the path to your wtmpx file */
#undef CONF_WTMPX_FILE

/* Define if you want to specify the path to your wtmp file */
#undef CONF_WTMP_FILE

/* Define if your platform needs to skip post auth file descriptor passing */
#undef DISABLE_FD_PASSING

/* Define if you don't want to use lastlog */
#undef DISABLE_LASTLOG

/* Define if you don't want to use your system's login() call */
#undef DISABLE_LOGIN

/* Define if you don't want to use pututline() etc. to write [uw]tmp */
#undef DISABLE_PUTUTLINE

/* Define if you don't want to use pututxline() etc. to write [uw]tmpx */
#undef DISABLE_PUTUTXLINE

/* Define if you want to disable shadow passwords */
#undef DISABLE_SHADOW

/* Define if you don't want to use utmp */
#undef DISABLE_UTMP

/* Define if you don't want to use utmpx */
#undef DISABLE_UTMPX

/* Define if you don't want to use wtmp */
#undef DISABLE_WTMP

/* Define if you don't want to use wtmpx */
#undef DISABLE_WTMPX

/* Enable for PKCS#11 support */
#undef ENABLE_PKCS11

/* File names may not contain backslash characters */
#undef FILESYSTEM_NO_BACKSLASH

/* fsid_t has member val */
#undef FSID_HAS_VAL

/* fsid_t has member __val */
#undef FSID_HAS___VAL

/* Define to 1 if the `getpgrp' function requires zero arguments. */
#undef GETPGRP_VOID

/* Conflicting defs for getspnam */
#undef GETSPNAM_CONFLICTING_DEFS

/* Define if your system glob() function has the GLOB_ALTDIRFUNC extension */
#undef GLOB_HAS_ALTDIRFUNC

/* Define if your system glob() function has gl_matchc options in glob_t */
#undef GLOB_HAS_GL_MATCHC

/* Define if your system glob() function has gl_statv options in glob_t */
#undef GLOB_HAS_GL_STATV

/* Define this if you want GSSAPI support in the version 2 protocol */
#undef GSSAPI

/* Define if you want to use shadow password expire field */
#undef HAS_SHADOW_EXPIRE

/* Define if your system uses access rights style file descriptor passing */
#undef HAVE_ACCRIGHTS_IN_MSGHDR

/* Define if you have ut_addr in utmp.h */
#undef HAVE_ADDR_IN_UTMP

/* Define if you have ut_addr in utmpx.h */
#undef HAVE_ADDR_IN_UTMPX

/* Define if you have ut_addr_v6 in utmp.h */
#undef HAVE_ADDR_V6_IN_UTMP

/* Define if you have ut_addr_v6 in utmpx.h */
#undef HAVE_ADDR_V6_IN_UTMPX

/* Define to 1 if you have the `arc4random' function. */
#undef HAVE_ARC4RANDOM

/* Define to 1 if you have the `arc4random_buf' function. */
#undef HAVE_ARC4RANDOM_BUF

/* Define to 1 if you have the `arc4random_stir' function. */
#undef HAVE_ARC4RANDOM_STIR

/* Define to 1 if you have the `arc4random_uniform' function. */
#undef HAVE_ARC4RANDOM_UNIFORM

/* Define to 1 if you have the `asprintf' function. */
#undef HAVE_ASPRINTF

/* OpenBSD's gcc has bounded */
#undef HAVE_ATTRIBUTE__BOUNDED__

/* Have attribute nonnull */
#undef HAVE_ATTRIBUTE__NONNULL__

/* OpenBSD's gcc has sentinel */
#undef HAVE_ATTRIBUTE__SENTINEL__

/* Define to 1 if you have the `aug_get_machine' function. */
#undef HAVE_AUG_GET_MACHINE

/* Define to 1 if you have the `b64_ntop' function. */
#undef HAVE_B64_NTOP

/* Define to 1 if you have the `b64_pton' function. */
#undef HAVE_B64_PTON

/* Define if you have the basename function. */
#undef HAVE_BASENAME

/* Define to 1 if you have the `bcopy' function. */
#undef HAVE_BCOPY

/* Define to 1 if you have the `bcrypt_pbkdf' function. */
#undef HAVE_BCRYPT_PBKDF

/* Define to 1 if you have the `bindresvport_sa' function. */
#undef HAVE_BINDRESVPORT_SA

/* Define to 1 if you have the `blf_enc' function. */
#undef HAVE_BLF_ENC

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

/* Define to 1 if you have the `Blowfish_expand0state' function. */
#undef HAVE_BLOWFISH_EXPAND0STATE

/* Define to 1 if you have the `Blowfish_expandstate' function. */
#undef HAVE_BLOWFISH_EXPANDSTATE

/* Define to 1 if you have the `Blowfish_initstate' function. */
#undef HAVE_BLOWFISH_INITSTATE

/* Define to 1 if you have the `Blowfish_stream2word' function. */
#undef HAVE_BLOWFISH_STREAM2WORD

/* Define to 1 if you have the `BN_is_prime_ex' function. */
#undef HAVE_BN_IS_PRIME_EX

/* Define to 1 if you have the <bsd/libutil.h> header file. */
#undef HAVE_BSD_LIBUTIL_H

/* Define to 1 if you have the <bsm/audit.h> header file. */
#undef HAVE_BSM_AUDIT_H

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

/* Define to 1 if you have the `cap_rights_limit' function. */
#undef HAVE_CAP_RIGHTS_LIMIT

/* Define to 1 if you have the `clock' function. */
#undef HAVE_CLOCK

/* Have clock_gettime */
#undef HAVE_CLOCK_GETTIME

/* define if you have clock_t data type */
#undef HAVE_CLOCK_T

/* Define to 1 if you have the `closefrom' function. */
#undef HAVE_CLOSEFROM

/* Define if gai_strerror() returns const char * */
#undef HAVE_CONST_GAI_STRERROR_PROTO

/* Define if your system uses ancillary data style file descriptor passing */
#undef HAVE_CONTROL_IN_MSGHDR

/* Define to 1 if you have the `crypt' function. */
#undef HAVE_CRYPT

/* Define to 1 if you have the <crypto/sha2.h> header file. */
#undef HAVE_CRYPTO_SHA2_H

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

/* Define if you are on Cygwin */
#undef HAVE_CYGWIN

/* Define if your libraries define daemon() */
#undef HAVE_DAEMON

/* Define to 1 if you have the declaration of `AI_NUMERICSERV', and to 0 if
   you don't. */
#undef HAVE_DECL_AI_NUMERICSERV

/* Define to 1 if you have the declaration of `authenticate', and to 0 if you
   don't. */
#undef HAVE_DECL_AUTHENTICATE

/* Define to 1 if you have the declaration of `GLOB_NOMATCH', and to 0 if you
   don't. */
#undef HAVE_DECL_GLOB_NOMATCH

/* Define to 1 if you have the declaration of `GSS_C_NT_HOSTBASED_SERVICE',
   and to 0 if you don't. */
#undef HAVE_DECL_GSS_C_NT_HOSTBASED_SERVICE

/* Define to 1 if you have the declaration of `howmany', and to 0 if you
   don't. */
#undef HAVE_DECL_HOWMANY

/* Define to 1 if you have the declaration of `h_errno', and to 0 if you
   don't. */
#undef HAVE_DECL_H_ERRNO

/* Define to 1 if you have the declaration of `loginfailed', and to 0 if you
   don't. */
#undef HAVE_DECL_LOGINFAILED

/* Define to 1 if you have the declaration of `loginrestrictions', and to 0 if
   you don't. */
#undef HAVE_DECL_LOGINRESTRICTIONS

/* Define to 1 if you have the declaration of `loginsuccess', and to 0 if you
   don't. */
#undef HAVE_DECL_LOGINSUCCESS

/* Define to 1 if you have the declaration of `MAXSYMLINKS', and to 0 if you
   don't. */
#undef HAVE_DECL_MAXSYMLINKS

/* Define to 1 if you have the declaration of `NFDBITS', and to 0 if you
   don't. */
#undef HAVE_DECL_NFDBITS

/* Define to 1 if you have the declaration of `offsetof', and to 0 if you
   don't. */
#undef HAVE_DECL_OFFSETOF

/* Define to 1 if you have the declaration of `O_NONBLOCK', and to 0 if you
   don't. */
#undef HAVE_DECL_O_NONBLOCK

/* Define to 1 if you have the declaration of `passwdexpired', and to 0 if you
   don't. */
#undef HAVE_DECL_PASSWDEXPIRED

/* Define to 1 if you have the declaration of `setauthdb', and to 0 if you
   don't. */
#undef HAVE_DECL_SETAUTHDB

/* Define to 1 if you have the declaration of `SHUT_RD', and to 0 if you
   don't. */
#undef HAVE_DECL_SHUT_RD

/* Define to 1 if you have the declaration of `writev', and to 0 if you don't.
   */
#undef HAVE_DECL_WRITEV

/* Define to 1 if you have the declaration of `_getlong', and to 0 if you
   don't. */
#undef HAVE_DECL__GETLONG

/* Define to 1 if you have the declaration of `_getshort', and to 0 if you
   don't. */
#undef HAVE_DECL__GETSHORT

/* Define to 1 if you have the `DES_crypt' function. */
#undef HAVE_DES_CRYPT

/* Define if you have /dev/ptmx */
#undef HAVE_DEV_PTMX

/* Define if you have /dev/ptc */
#undef HAVE_DEV_PTS_AND_PTC

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

/* Define to 1 if you have the `dirfd' function. */
#undef HAVE_DIRFD

/* Define to 1 if you have the `dirname' function. */
#undef HAVE_DIRNAME

/* Define to 1 if you have the `DSA_generate_parameters_ex' function. */
#undef HAVE_DSA_GENERATE_PARAMETERS_EX

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

/* Define to 1 if you have the `endgrent' function. */
#undef HAVE_ENDGRENT

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

/* Define to 1 if you have the `endutent' function. */
#undef HAVE_ENDUTENT

/* Define to 1 if you have the `endutxent' function. */
#undef HAVE_ENDUTXENT

/* Define to 1 if you have the `err' function. */
#undef HAVE_ERR

/* Define to 1 if you have the `errx' function. */
#undef HAVE_ERRX

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

/* Define if your system has /etc/default/login */
#undef HAVE_ETC_DEFAULT_LOGIN

/* Define if libcrypto has EVP_CIPHER_CTX_ctrl */
#undef HAVE_EVP_CIPHER_CTX_CTRL

/* Define to 1 if you have the `EVP_DigestFinal_ex' function. */
#undef HAVE_EVP_DIGESTFINAL_EX

/* Define to 1 if you have the `EVP_DigestInit_ex' function. */
#undef HAVE_EVP_DIGESTINIT_EX

/* Define to 1 if you have the `EVP_MD_CTX_cleanup' function. */
#undef HAVE_EVP_MD_CTX_CLEANUP

/* Define to 1 if you have the `EVP_MD_CTX_copy_ex' function. */
#undef HAVE_EVP_MD_CTX_COPY_EX

/* Define to 1 if you have the `EVP_MD_CTX_init' function. */
#undef HAVE_EVP_MD_CTX_INIT

/* Define to 1 if you have the `EVP_ripemd160' function. */
#undef HAVE_EVP_RIPEMD160

/* Define to 1 if you have the `EVP_sha256' function. */
#undef HAVE_EVP_SHA256

/* Define if you have ut_exit in utmp.h */
#undef HAVE_EXIT_IN_UTMP

/* Define to 1 if you have the `explicit_bzero' function. */
#undef HAVE_EXPLICIT_BZERO

/* Define to 1 if you have the `fchmod' function. */
#undef HAVE_FCHMOD

/* Define to 1 if you have the `fchown' function. */
#undef HAVE_FCHOWN

/* Use F_CLOSEM fcntl for closefrom */
#undef HAVE_FCNTL_CLOSEM

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

/* Define to 1 if the system has the type `fd_mask'. */
#undef HAVE_FD_MASK

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

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

/* Define to 1 if you have the `fmt_scaled' function. */
#undef HAVE_FMT_SCALED

/* Define to 1 if you have the `freeaddrinfo' function. */
#undef HAVE_FREEADDRINFO

/* Define to 1 if the system has the type `fsblkcnt_t'. */
#undef HAVE_FSBLKCNT_T

/* Define to 1 if the system has the type `fsfilcnt_t'. */
#undef HAVE_FSFILCNT_T

/* Define to 1 if you have the `fstatfs' function. */
#undef HAVE_FSTATFS

/* Define to 1 if you have the `fstatvfs' function. */
#undef HAVE_FSTATVFS

/* Define to 1 if you have the `futimes' function. */
#undef HAVE_FUTIMES

/* Define to 1 if you have the `gai_strerror' function. */
#undef HAVE_GAI_STRERROR

/* Define to 1 if you have the `getaddrinfo' function. */
#undef HAVE_GETADDRINFO

/* Define to 1 if you have the `getaudit' function. */
#undef HAVE_GETAUDIT

/* Define to 1 if you have the `getaudit_addr' function. */
#undef HAVE_GETAUDIT_ADDR

/* Define to 1 if you have the `getcwd' function. */
#undef HAVE_GETCWD

/* Define to 1 if you have the `getgrouplist' function. */
#undef HAVE_GETGROUPLIST

/* Define to 1 if you have the `getgrset' function. */
#undef HAVE_GETGRSET

/* Define to 1 if you have the `getlastlogxbyname' function. */
#undef HAVE_GETLASTLOGXBYNAME

/* Define to 1 if you have the `getluid' function. */
#undef HAVE_GETLUID

/* Define to 1 if you have the `getnameinfo' function. */
#undef HAVE_GETNAMEINFO

/* Define to 1 if you have the `getopt' function. */
#undef HAVE_GETOPT

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

/* Define if your getopt(3) defines and uses optreset */
#undef HAVE_GETOPT_OPTRESET

/* Define if your libraries define getpagesize() */
#undef HAVE_GETPAGESIZE

/* Define to 1 if you have the `getpeereid' function. */
#undef HAVE_GETPEEREID

/* Define to 1 if you have the `getpeerucred' function. */
#undef HAVE_GETPEERUCRED

/* Define to 1 if you have the `getpgid' function. */
#undef HAVE_GETPGID

/* Define to 1 if you have the `getpgrp' function. */
#undef HAVE_GETPGRP

/* Define to 1 if you have the `getpwanam' function. */
#undef HAVE_GETPWANAM

/* Define to 1 if you have the `getrlimit' function. */
#undef HAVE_GETRLIMIT

/* Define if getrrsetbyname() exists */
#undef HAVE_GETRRSETBYNAME

/* Define to 1 if you have the `getrusage' function. */
#undef HAVE_GETRUSAGE

/* Define to 1 if you have the `getseuserbyname' function. */
#undef HAVE_GETSEUSERBYNAME

/* Define to 1 if you have the `gettimeofday' function. */
#undef HAVE_GETTIMEOFDAY

/* Define to 1 if you have the `getttyent' function. */
#undef HAVE_GETTTYENT

/* Define to 1 if you have the `getutent' function. */
#undef HAVE_GETUTENT

/* Define to 1 if you have the `getutid' function. */
#undef HAVE_GETUTID

/* Define to 1 if you have the `getutline' function. */
#undef HAVE_GETUTLINE

/* Define to 1 if you have the `getutxent' function. */
#undef HAVE_GETUTXENT

/* Define to 1 if you have the `getutxid' function. */
#undef HAVE_GETUTXID

/* Define to 1 if you have the `getutxline' function. */
#undef HAVE_GETUTXLINE

/* Define to 1 if you have the `getutxuser' function. */
#undef HAVE_GETUTXUSER

/* Define to 1 if you have the `get_default_context_with_level' function. */
#undef HAVE_GET_DEFAULT_CONTEXT_WITH_LEVEL

/* Define to 1 if you have the `glob' function. */
#undef HAVE_GLOB

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

/* Define to 1 if you have the `group_from_gid' function. */
#undef HAVE_GROUP_FROM_GID

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

/* Define to 1 if you have the <gssapi/gssapi_generic.h> header file. */
#undef HAVE_GSSAPI_GSSAPI_GENERIC_H

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

/* Define to 1 if you have the <gssapi/gssapi_krb5.h> header file. */
#undef HAVE_GSSAPI_GSSAPI_KRB5_H

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

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

/* Define if HEADER.ad exists in arpa/nameser.h */
#undef HAVE_HEADER_AD

/* Define to 1 if you have the `HMAC_CTX_init' function. */
#undef HAVE_HMAC_CTX_INIT

/* Define if you have ut_host in utmp.h */
#undef HAVE_HOST_IN_UTMP

/* Define if you have ut_host in utmpx.h */
#undef HAVE_HOST_IN_UTMPX

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

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

/* Define if you have ut_id in utmp.h */
#undef HAVE_ID_IN_UTMP

/* Define if you have ut_id in utmpx.h */
#undef HAVE_ID_IN_UTMPX

/* Define to 1 if you have the `inet_aton' function. */
#undef HAVE_INET_ATON

/* Define to 1 if you have the `inet_ntoa' function. */
#undef HAVE_INET_NTOA

/* Define to 1 if you have the `inet_ntop' function. */
#undef HAVE_INET_NTOP

/* Define to 1 if you have the `innetgr' function. */
#undef HAVE_INNETGR

/* define if you have int64_t data type */
#undef HAVE_INT64_T

/* Define to 1 if the system has the type `intmax_t'. */
#undef HAVE_INTMAX_T

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

/* define if you have intxx_t data type */
#undef HAVE_INTXX_T

/* Define to 1 if the system has the type `in_addr_t'. */
#undef HAVE_IN_ADDR_T

/* Define to 1 if the system has the type `in_port_t'. */
#undef HAVE_IN_PORT_T

/* Define if you have isblank(3C). */
#undef HAVE_ISBLANK

/* Define to 1 if you have the `krb5_cc_new_unique' function. */
#undef HAVE_KRB5_CC_NEW_UNIQUE

/* Define to 1 if you have the `krb5_free_error_message' function. */
#undef HAVE_KRB5_FREE_ERROR_MESSAGE

/* Define to 1 if you have the `krb5_get_error_message' function. */
#undef HAVE_KRB5_GET_ERROR_MESSAGE

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

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

/* Define if you want ldns support */
#undef HAVE_LDNS

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

/* Define to 1 if you have the `bsm' library (-lbsm). */
#undef HAVE_LIBBSM

/* Define to 1 if you have the `crypt' library (-lcrypt). */
#undef HAVE_LIBCRYPT

/* Define to 1 if you have the `dl' library (-ldl). */
#undef HAVE_LIBDL

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

/* Define if system has libiaf that supports set_id */
#undef HAVE_LIBIAF

/* Define to 1 if you have the `network' library (-lnetwork). */
#undef HAVE_LIBNETWORK

/* Define to 1 if you have the `pam' library (-lpam). */
#undef HAVE_LIBPAM

/* Define to 1 if you have the `socket' library (-lsocket). */
#undef HAVE_LIBSOCKET

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

/* Define to 1 if you have the `xnet' library (-lxnet). */
#undef HAVE_LIBXNET

/* Define to 1 if you have the `z' library (-lz). */
#undef HAVE_LIBZ

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

/* Define to 1 if you have the <linux/audit.h> header file. */
#undef HAVE_LINUX_AUDIT_H

/* Define to 1 if you have the <linux/filter.h> header file. */
#undef HAVE_LINUX_FILTER_H

/* Define to 1 if you have the <linux/if_tun.h> header file. */
#undef HAVE_LINUX_IF_TUN_H

/* Define to 1 if you have the <linux/seccomp.h> header file. */
#undef HAVE_LINUX_SECCOMP_H

/* Define to 1 if you have the `llabs' function. */
#undef HAVE_LLABS

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

/* Define to 1 if you have the `login' function. */
#undef HAVE_LOGIN

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

/* Define to 1 if you have the `login_getcapbool' function. */
#undef HAVE_LOGIN_GETCAPBOOL

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

/* Define to 1 if you have the `logout' function. */
#undef HAVE_LOGOUT

/* Define to 1 if you have the `logwtmp' function. */
#undef HAVE_LOGWTMP

/* Define to 1 if the system has the type `long double'. */
#undef HAVE_LONG_DOUBLE

/* Define to 1 if the system has the type `long long'. */
#undef HAVE_LONG_LONG

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

/* Define to 1 if you have the `mblen' function. */
#undef HAVE_MBLEN

/* Define to 1 if you have the `mbtowc' function. */
#undef HAVE_MBTOWC

/* Define to 1 if you have the `md5_crypt' function. */
#undef HAVE_MD5_CRYPT

/* Define if you want to allow MD5 passwords */
#undef HAVE_MD5_PASSWORDS

/* Define to 1 if you have the `memmove' function. */
#undef HAVE_MEMMOVE

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

/* Define to 1 if you have the `memset_s' function. */
#undef HAVE_MEMSET_S

/* Define to 1 if you have the `mkdtemp' function. */
#undef HAVE_MKDTEMP

/* define if you have mode_t data type */
#undef HAVE_MODE_T

/* Some systems put nanosleep outside of libc */
#undef HAVE_NANOSLEEP

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

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

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

/* Define to 1 if you have the <net/if_tun.h> header file. */
#undef HAVE_NET_IF_TUN_H

/* Define if you are on NeXT */
#undef HAVE_NEXT

/* Define to 1 if you have the `ngetaddrinfo' function. */
#undef HAVE_NGETADDRINFO

/* Define to 1 if you have the `nl_langinfo' function. */
#undef HAVE_NL_LANGINFO

/* Define to 1 if you have the `nsleep' function. */
#undef HAVE_NSLEEP

/* Define to 1 if you have the `ogetaddrinfo' function. */
#undef HAVE_OGETADDRINFO

/* Define if you have an old version of PAM which takes only one argument to
   pam_strerror */
#undef HAVE_OLD_PAM

/* Define to 1 if you have the `openlog_r' function. */
#undef HAVE_OPENLOG_R

/* Define to 1 if you have the `openpty' function. */
#undef HAVE_OPENPTY

/* Define if your ssl headers are included with #include <openssl/header.h> */
#undef HAVE_OPENSSL

/* Define if you have Digital Unix Security Integration Architecture */
#undef HAVE_OSF_SIA

/* Define to 1 if you have the `pam_getenvlist' function. */
#undef HAVE_PAM_GETENVLIST

/* Define to 1 if you have the <pam/pam_appl.h> header file. */
#undef HAVE_PAM_PAM_APPL_H

/* Define to 1 if you have the `pam_putenv' function. */
#undef HAVE_PAM_PUTENV

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

/* Define if you have ut_pid in utmp.h */
#undef HAVE_PID_IN_UTMP

/* define if you have pid_t data type */
#undef HAVE_PID_T

/* Define to 1 if you have the `pledge' function. */
#undef HAVE_PLEDGE

/* Define to 1 if you have the `poll' function. */
#undef HAVE_POLL

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

/* Define to 1 if you have the `prctl' function. */
#undef HAVE_PRCTL

/* Define to 1 if you have the `priv_basicset' function. */
#undef HAVE_PRIV_BASICSET

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

/* Define if you have /proc/$pid/fd */
#undef HAVE_PROC_PID

/* Define to 1 if you have the `pstat' function. */
#undef HAVE_PSTAT

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

/* Define to 1 if you have the `pututline' function. */
#undef HAVE_PUTUTLINE

/* Define to 1 if you have the `pututxline' function. */
#undef HAVE_PUTUTXLINE

/* Define to 1 if you have the `readpassphrase' function. */
#undef HAVE_READPASSPHRASE

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

/* Define to 1 if you have the `reallocarray' function. */
#undef HAVE_REALLOCARRAY

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

/* Define to 1 if you have the `recvmsg' function. */
#undef HAVE_RECVMSG

/* sys/resource.h has RLIMIT_NPROC */
#undef HAVE_RLIMIT_NPROC

/* Define to 1 if you have the <rpc/types.h> header file. */
#undef HAVE_RPC_TYPES_H

/* Define to 1 if you have the `rresvport_af' function. */
#undef HAVE_RRESVPORT_AF

/* Define to 1 if you have the `RSA_generate_key_ex' function. */
#undef HAVE_RSA_GENERATE_KEY_EX

/* Define to 1 if you have the `RSA_get_default_method' function. */
#undef HAVE_RSA_GET_DEFAULT_METHOD

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

/* Define to 1 if you have the `sandbox_init' function. */
#undef HAVE_SANDBOX_INIT

/* define if you have sa_family_t data type */
#undef HAVE_SA_FAMILY_T

/* Define to 1 if you have the `scan_scaled' function. */
#undef HAVE_SCAN_SCALED

/* Define if you have SecureWare-based protected password database */
#undef HAVE_SECUREWARE

/* Define to 1 if you have the <security/pam_appl.h> header file. */
#undef HAVE_SECURITY_PAM_APPL_H

/* Define to 1 if you have the `sendmsg' function. */
#undef HAVE_SENDMSG

/* Define to 1 if you have the `setauthdb' function. */
#undef HAVE_SETAUTHDB

/* Define to 1 if you have the `setdtablesize' function. */
#undef HAVE_SETDTABLESIZE

/* Define to 1 if you have the `setegid' function. */
#undef HAVE_SETEGID

/* Define to 1 if you have the `setenv' function. */
#undef HAVE_SETENV

/* Define to 1 if you have the `seteuid' function. */
#undef HAVE_SETEUID

/* Define to 1 if you have the `setgroupent' function. */
#undef HAVE_SETGROUPENT

/* Define to 1 if you have the `setgroups' function. */
#undef HAVE_SETGROUPS

/* Define to 1 if you have the `setlinebuf' function. */
#undef HAVE_SETLINEBUF

/* Define to 1 if you have the `setlogin' function. */
#undef HAVE_SETLOGIN

/* Define to 1 if you have the `setluid' function. */
#undef HAVE_SETLUID

/* Define to 1 if you have the `setpassent' function. */
#undef HAVE_SETPASSENT

/* Define to 1 if you have the `setpcred' function. */
#undef HAVE_SETPCRED

/* Define to 1 if you have the `setpflags' function. */
#undef HAVE_SETPFLAGS

/* Define to 1 if you have the `setppriv' function. */
#undef HAVE_SETPPRIV

/* Define to 1 if you have the `setproctitle' function. */
#undef HAVE_SETPROCTITLE

/* Define to 1 if you have the `setregid' function. */
#undef HAVE_SETREGID

/* Define to 1 if you have the `setresgid' function. */
#undef HAVE_SETRESGID

/* Define to 1 if you have the `setresuid' function. */
#undef HAVE_SETRESUID

/* Define to 1 if you have the `setreuid' function. */
#undef HAVE_SETREUID

/* Define to 1 if you have the `setrlimit' function. */
#undef HAVE_SETRLIMIT

/* Define to 1 if you have the `setsid' function. */
#undef HAVE_SETSID

/* Define to 1 if you have the `setutent' function. */
#undef HAVE_SETUTENT

/* Define to 1 if you have the `setutxdb' function. */
#undef HAVE_SETUTXDB

/* Define to 1 if you have the `setutxent' function. */
#undef HAVE_SETUTXENT

/* Define to 1 if you have the `setvbuf' function. */
#undef HAVE_SETVBUF

/* Define to 1 if you have the `set_id' function. */
#undef HAVE_SET_ID

/* Define to 1 if you have the `SHA256_Update' function. */
#undef HAVE_SHA256_UPDATE

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

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

/* Define to 1 if you have the `sigaction' function. */
#undef HAVE_SIGACTION

/* Define to 1 if you have the `sigvec' function. */
#undef HAVE_SIGVEC

/* Define to 1 if the system has the type `sig_atomic_t'. */
#undef HAVE_SIG_ATOMIC_T

/* define if you have size_t data type */
#undef HAVE_SIZE_T

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

/* Define to 1 if you have the `socketpair' function. */
#undef HAVE_SOCKETPAIR

/* Have PEERCRED socket option */
#undef HAVE_SO_PEERCRED

/* define if you have ssize_t data type */
#undef HAVE_SSIZE_T

/* Fields in struct sockaddr_storage */
#undef HAVE_SS_FAMILY_IN_SS

/* Define to 1 if you have the `statfs' function. */
#undef HAVE_STATFS

/* Define to 1 if you have the `statvfs' function. */
#undef HAVE_STATVFS

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

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

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

/* Define to 1 if you have the `strcasestr' function. */
#undef HAVE_STRCASESTR

/* Define to 1 if you have the `strdup' function. */
#undef HAVE_STRDUP

/* Define to 1 if you have the `strerror' function. */
#undef HAVE_STRERROR

/* Define to 1 if you have the `strftime' function. */
#undef HAVE_STRFTIME

/* Silly mkstemp() */
#undef HAVE_STRICT_MKSTEMP

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

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

/* Define to 1 if you have the `strlcat' function. */
#undef HAVE_STRLCAT

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

/* Define to 1 if you have the `strmode' function. */
#undef HAVE_STRMODE

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

/* Define to 1 if you have the `strnvis' function. */
#undef HAVE_STRNVIS

/* Define to 1 if you have the `strptime' function. */
#undef HAVE_STRPTIME

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

/* Define to 1 if you have the `strtoll' function. */
#undef HAVE_STRTOLL

/* Define to 1 if you have the `strtonum' function. */
#undef HAVE_STRTONUM

/* Define to 1 if you have the `strtoul' function. */
#undef HAVE_STRTOUL

/* Define to 1 if you have the `strtoull' function. */
#undef HAVE_STRTOULL

/* define if you have struct addrinfo data type */
#undef HAVE_STRUCT_ADDRINFO

/* define if you have struct in6_addr data type */
#undef HAVE_STRUCT_IN6_ADDR

/* Define to 1 if `pw_change' is a member of `struct passwd'. */
#undef HAVE_STRUCT_PASSWD_PW_CHANGE

/* Define to 1 if `pw_class' is a member of `struct passwd'. */
#undef HAVE_STRUCT_PASSWD_PW_CLASS

/* Define to 1 if `pw_expire' is a member of `struct passwd'. */
#undef HAVE_STRUCT_PASSWD_PW_EXPIRE

/* Define to 1 if `pw_gecos' is a member of `struct passwd'. */
#undef HAVE_STRUCT_PASSWD_PW_GECOS

/* define if you have struct sockaddr_in6 data type */
#undef HAVE_STRUCT_SOCKADDR_IN6

/* Define to 1 if `sin6_scope_id' is a member of `struct sockaddr_in6'. */
#undef HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID

/* define if you have struct sockaddr_storage data type */
#undef HAVE_STRUCT_SOCKADDR_STORAGE

/* Define to 1 if `st_blksize' is a member of `struct stat'. */
#undef HAVE_STRUCT_STAT_ST_BLKSIZE

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

/* define if you have struct timeval */
#undef HAVE_STRUCT_TIMEVAL

/* Define to 1 if you have the `swap32' function. */
#undef HAVE_SWAP32

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

/* Define if you have syslen in utmpx.h */
#undef HAVE_SYSLEN_IN_UTMPX

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

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

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

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

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

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

/* Define if your system defines sys_errlist[] */
#undef HAVE_SYS_ERRLIST

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

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

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

/* Define if your system defines sys_nerr */
#undef HAVE_SYS_NERR

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

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

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

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

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

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

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

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

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

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

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

/* Force use of sys/syslog.h on Ultrix */
#undef HAVE_SYS_SYSLOG_H

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

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

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

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

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

/* Define to 1 if you have the `tcgetpgrp' function. */
#undef HAVE_TCGETPGRP

/* Define to 1 if you have the `tcsendbreak' function. */
#undef HAVE_TCSENDBREAK

/* Define to 1 if you have the `time' function. */
#undef HAVE_TIME

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

/* Define if you have ut_time in utmp.h */
#undef HAVE_TIME_IN_UTMP

/* Define if you have ut_time in utmpx.h */
#undef HAVE_TIME_IN_UTMPX

/* Define to 1 if you have the `timingsafe_bcmp' function. */
#undef HAVE_TIMINGSAFE_BCMP

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

/* Define to 1 if you have the `truncate' function. */
#undef HAVE_TRUNCATE

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

/* Define if you have ut_tv in utmp.h */
#undef HAVE_TV_IN_UTMP

/* Define if you have ut_tv in utmpx.h */
#undef HAVE_TV_IN_UTMPX

/* Define if you have ut_type in utmp.h */
#undef HAVE_TYPE_IN_UTMP

/* Define if you have ut_type in utmpx.h */
#undef HAVE_TYPE_IN_UTMPX

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

/* Define to 1 if the system has the type `uintmax_t'. */
#undef HAVE_UINTMAX_T

/* define if you have uintxx_t data type */
#undef HAVE_UINTXX_T

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

/* Define to 1 if you have the `unsetenv' function. */
#undef HAVE_UNSETENV

/* Define to 1 if the system has the type `unsigned long long'. */
#undef HAVE_UNSIGNED_LONG_LONG

/* Define to 1 if you have the `updwtmp' function. */
#undef HAVE_UPDWTMP

/* Define to 1 if you have the `updwtmpx' function. */
#undef HAVE_UPDWTMPX

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

/* Define to 1 if you have the `user_from_uid' function. */
#undef HAVE_USER_FROM_UID

/* Define to 1 if you have the `usleep' function. */
#undef HAVE_USLEEP

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

/* Define to 1 if you have the `utimes' function. */
#undef HAVE_UTIMES

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

/* Define to 1 if you have the `utmpname' function. */
#undef HAVE_UTMPNAME

/* Define to 1 if you have the `utmpxname' function. */
#undef HAVE_UTMPXNAME

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

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

/* define if you have u_char data type */
#undef HAVE_U_CHAR

/* define if you have u_int data type */
#undef HAVE_U_INT

/* define if you have u_int64_t data type */
#undef HAVE_U_INT64_T

/* define if you have u_intxx_t data type */
#undef HAVE_U_INTXX_T

/* Define to 1 if you have the `vasprintf' function. */
#undef HAVE_VASPRINTF

/* Define if va_copy exists */
#undef HAVE_VA_COPY

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

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

/* Define to 1 if you have the `waitpid' function. */
#undef HAVE_WAITPID

/* Define to 1 if you have the `warn' function. */
#undef HAVE_WARN

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

/* Define to 1 if you have the `wcwidth' function. */
#undef HAVE_WCWIDTH

/* Define to 1 if you have the `_getlong' function. */
#undef HAVE__GETLONG

/* Define to 1 if you have the `_getpty' function. */
#undef HAVE__GETPTY

/* Define to 1 if you have the `_getshort' function. */
#undef HAVE__GETSHORT

/* Define if you have struct __res_state _res as an extern */
#undef HAVE__RES_EXTERN

/* Define to 1 if you have the `__b64_ntop' function. */
#undef HAVE___B64_NTOP

/* Define to 1 if you have the `__b64_pton' function. */
#undef HAVE___B64_PTON

/* Define if compiler implements __FUNCTION__ */
#undef HAVE___FUNCTION__

/* Define if libc defines __progname */
#undef HAVE___PROGNAME

/* Fields in struct sockaddr_storage */
#undef HAVE___SS_FAMILY_IN_SS

/* Define if __va_copy exists */
#undef HAVE___VA_COPY

/* Define if compiler implements __func__ */
#undef HAVE___func__

/* Define this if you are using the Heimdal version of Kerberos V5 */
#undef HEIMDAL

/* Define if you need to use IP address instead of hostname in $DISPLAY */
#undef IPADDR_IN_DISPLAY

/* Detect IPv4 in IPv6 mapped addresses and treat as IPv4 */
#undef IPV4_IN_IPV6

/* Define if your system choked on IP TOS setting */
#undef IP_TOS_IS_BROKEN

/* Define if you want Kerberos 5 support */
#undef KRB5

/* Define if pututxline updates lastlog too */
#undef LASTLOG_WRITE_PUTUTXLINE

/* Define to whatever link() returns for "not supported" if it doesn't return
   EOPNOTSUPP. */
#undef LINK_OPNOTSUPP_ERRNO

/* Adjust Linux out-of-memory killer */
#undef LINUX_OOM_ADJUST

/* max value of long long calculated by configure */
#undef LLONG_MAX

/* min value of long long calculated by configure */
#undef LLONG_MIN

/* Account locked with pw(1) */
#undef LOCKED_PASSWD_PREFIX

/* String used in /etc/passwd to denote locked account */
#undef LOCKED_PASSWD_STRING

/* String used in /etc/passwd to denote locked account */
#undef LOCKED_PASSWD_SUBSTR

/* Some systems need a utmpx entry for /bin/login to work */
#undef LOGIN_NEEDS_UTMPX

/* Set this to your mail directory if you do not have _PATH_MAILDIR */
#undef MAIL_DIRECTORY

/* Need setpgrp to acquire controlling tty */
#undef NEED_SETPGRP

/* compiler does not accept __attribute__ on return types */
#undef NO_ATTRIBUTE_ON_RETURN_TYPE

/* Define if you don't want to use lastlog in session.c */
#undef NO_SSH_LASTLOG

/* Define to disable UID restoration test */
#undef NO_UID_RESTORATION_TEST

/* Define if X11 doesn't support AF_UNIX sockets on that system */
#undef NO_X11_UNIX_SOCKETS

/* Define if EVP_DigestUpdate returns void */
#undef OPENSSL_EVP_DIGESTUPDATE_VOID

/* OpenSSL has ECC */
#undef OPENSSL_HAS_ECC

/* libcrypto has NID_X9_62_prime256v1 */
#undef OPENSSL_HAS_NISTP256

/* libcrypto has NID_secp384r1 */
#undef OPENSSL_HAS_NISTP384

/* libcrypto has NID_secp521r1 */
#undef OPENSSL_HAS_NISTP521

/* libcrypto has EVP AES CTR */
#undef OPENSSL_HAVE_EVPCTR

/* libcrypto has EVP AES GCM */
#undef OPENSSL_HAVE_EVPGCM

/* libcrypto is missing AES 192 and 256 bit functions */
#undef OPENSSL_LOBOTOMISED_AES

/* Define if you want the OpenSSL internally seeded PRNG only */
#undef OPENSSL_PRNG_ONLY

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

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

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

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

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

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

/* Define if you are using Solaris-derived PAM which passes pam_messages to
   the conversation function with an extra level of indirection */
#undef PAM_SUN_CODEBASE

/* Work around problematic Linux PAM modules handling of PAM_TTY */
#undef PAM_TTY_KLUDGE

/* must supply username to passwd */
#undef PASSWD_NEEDS_USERNAME

/* System dirs owned by bin (uid 2) */
#undef PLATFORM_SYS_DIR_UID

/* Port number of PRNGD/EGD random number socket */
#undef PRNGD_PORT

/* Location of PRNGD/EGD random number socket */
#undef PRNGD_SOCKET

/* read(1) can return 0 for a non-closed fd */
#undef PTY_ZEROREAD

/* Sandbox using capsicum */
#undef SANDBOX_CAPSICUM

/* Sandbox using Darwin sandbox_init(3) */
#undef SANDBOX_DARWIN

/* no privsep sandboxing */
#undef SANDBOX_NULL

/* Sandbox using pledge(2) */
#undef SANDBOX_PLEDGE

/* Sandbox using setrlimit(2) */
#undef SANDBOX_RLIMIT

/* Sandbox using seccomp filter */
#undef SANDBOX_SECCOMP_FILTER

/* setrlimit RLIMIT_FSIZE works */
#undef SANDBOX_SKIP_RLIMIT_FSIZE

/* define if setrlimit RLIMIT_NOFILE breaks things */
#undef SANDBOX_SKIP_RLIMIT_NOFILE

/* Sandbox using Solaris/Illumos privileges */
#undef SANDBOX_SOLARIS

/* Sandbox using systrace(4) */
#undef SANDBOX_SYSTRACE

/* Specify the system call convention in use */
#undef SECCOMP_AUDIT_ARCH

/* Define if your platform breaks doing a seteuid before a setuid */
#undef SETEUID_BREAKS_SETUID

/* The size of `int', as computed by sizeof. */
#undef SIZEOF_INT

/* The size of `long int', as computed by sizeof. */
#undef SIZEOF_LONG_INT

/* The size of `long long int', as computed by sizeof. */
#undef SIZEOF_LONG_LONG_INT

/* The size of `short int', as computed by sizeof. */
#undef SIZEOF_SHORT_INT

/* Define if you want S/Key support */
#undef SKEY

/* Define if your skeychallenge() function takes 4 arguments (NetBSD) */
#undef SKEYCHALLENGE_4ARG

/* Define as const if snprintf() can declare const char *fmt */
#undef SNPRINTF_CONST

/* Define to a Set Process Title type if your system is supported by
   bsd-setproctitle.c */
#undef SPT_TYPE

/* Define if sshd somehow reacquires a controlling TTY after setsid() */
#undef SSHD_ACQUIRES_CTTY

/* sshd PAM service name */
#undef SSHD_PAM_SERVICE

/* Define if pam_chauthtok wants real uid set to the unpriv'ed user */
#undef SSHPAM_CHAUTHTOK_NEEDS_RUID

/* Use audit debugging module */
#undef SSH_AUDIT_EVENTS

/* Windows is sensitive to read buffer size */
#undef SSH_IOBUFSZ

/* non-privileged user for privilege separation */
#undef SSH_PRIVSEP_USER

/* Use tunnel device compatibility to OpenBSD */
#undef SSH_TUN_COMPAT_AF

/* Open tunnel devices the FreeBSD way */
#undef SSH_TUN_FREEBSD

/* Open tunnel devices the Linux tun/tap way */
#undef SSH_TUN_LINUX

/* No layer 2 tunnel support */
#undef SSH_TUN_NO_L2

/* Open tunnel devices the OpenBSD way */
#undef SSH_TUN_OPENBSD

/* Prepend the address family to IP tunnel traffic */
#undef SSH_TUN_PREPEND_AF

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

/* Define if you want a different $PATH for the superuser */
#undef SUPERUSER_PATH

/* syslog_r function is safe to use in in a signal handler */
#undef SYSLOG_R_SAFE_IN_SIGHAND

/* Support passwords > 8 chars */
#undef UNIXWARE_LONG_PASSWORDS

/* Specify default $PATH */
#undef USER_PATH

/* Define this if you want to use libkafs' AFS support */
#undef USE_AFS

/* Use BSM audit module */
#undef USE_BSM_AUDIT

/* Use btmp to log bad logins */
#undef USE_BTMP

/* Use libedit for sftp */
#undef USE_LIBEDIT

/* Use Linux audit module */
#undef USE_LINUX_AUDIT

/* Enable OpenSSL engine support */
#undef USE_OPENSSL_ENGINE

/* Define if you want to enable PAM support */
#undef USE_PAM

/* Use PIPES instead of a socketpair() */
#undef USE_PIPES

/* Define if you have Solaris privileges */
#undef USE_SOLARIS_PRIVS

/* Define if you have Solaris process contracts */
#undef USE_SOLARIS_PROCESS_CONTRACTS

/* Define if you have Solaris projects */
#undef USE_SOLARIS_PROJECTS

/* Define if you shouldn't strip 'tty' from your ttyname in [uw]tmp */
#undef WITH_ABBREV_NO_TTY

/* Define if you want to enable AIX4's authenticate function */
#undef WITH_AIXAUTHENTICATE

/* Define if you have/want arrays (cluster-wide session managment, not C
   arrays) */
#undef WITH_IRIX_ARRAY

/* Define if you want IRIX audit trails */
#undef WITH_IRIX_AUDIT

/* Define if you want IRIX kernel jobs */
#undef WITH_IRIX_JOBS

/* Define if you want IRIX project management */
#undef WITH_IRIX_PROJECT

/* use libcrypto for cryptography */
#undef WITH_OPENSSL

/* Define if you want SELinux support. */
#undef WITH_SELINUX

/* include SSH protocol version 1 support */
#undef WITH_SSH1

/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
   significant byte first (like Motorola and SPARC, unlike Intel). */
#if defined AC_APPLE_UNIVERSAL_BUILD
# if defined __BIG_ENDIAN__
#  define WORDS_BIGENDIAN 1
# endif
#else
# ifndef WORDS_BIGENDIAN
#  undef WORDS_BIGENDIAN
# endif
#endif

/* Define if xauth is found in your path */
#undef XAUTH_PATH

/* 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 for large files, on AIX-style hosts. */
#undef _LARGE_FILES

/* log for bad login attempts */
#undef _PATH_BTMP

/* Full path of your "passwd" program */
#undef _PATH_PASSWD_PROG

/* Specify location of ssh.pid */
#undef _PATH_SSH_PIDDIR

/* Define if we don't have struct __res_state in resolv.h */
#undef __res_state

/* 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

/* type to use in place of socklen_t if not defined */
#undef socklen_t
