/* Generated by ./xlat/gen.sh from ./xlat/key_reqkeys.in; do not edit. */

static const struct xlat key_reqkeys[] = {
#if !(defined(KEY_REQKEY_DEFL_NO_CHANGE) || (defined(HAVE_DECL_KEY_REQKEY_DEFL_NO_CHANGE) && HAVE_DECL_KEY_REQKEY_DEFL_NO_CHANGE))
# define KEY_REQKEY_DEFL_NO_CHANGE -1
#endif
 XLAT(KEY_REQKEY_DEFL_NO_CHANGE),
#if !(defined(KEY_REQKEY_DEFL_DEFAULT) || (defined(HAVE_DECL_KEY_REQKEY_DEFL_DEFAULT) && HAVE_DECL_KEY_REQKEY_DEFL_DEFAULT))
# define KEY_REQKEY_DEFL_DEFAULT 0
#endif
 XLAT(KEY_REQKEY_DEFL_DEFAULT),
#if !(defined(KEY_REQKEY_DEFL_THREAD_KEYRING) || (defined(HAVE_DECL_KEY_REQKEY_DEFL_THREAD_KEYRING) && HAVE_DECL_KEY_REQKEY_DEFL_THREAD_KEYRING))
# define KEY_REQKEY_DEFL_THREAD_KEYRING 1
#endif
 XLAT(KEY_REQKEY_DEFL_THREAD_KEYRING),
#if !(defined(KEY_REQKEY_DEFL_PROCESS_KEYRING) || (defined(HAVE_DECL_KEY_REQKEY_DEFL_PROCESS_KEYRING) && HAVE_DECL_KEY_REQKEY_DEFL_PROCESS_KEYRING))
# define KEY_REQKEY_DEFL_PROCESS_KEYRING 2
#endif
 XLAT(KEY_REQKEY_DEFL_PROCESS_KEYRING),
#if !(defined(KEY_REQKEY_DEFL_SESSION_KEYRING) || (defined(HAVE_DECL_KEY_REQKEY_DEFL_SESSION_KEYRING) && HAVE_DECL_KEY_REQKEY_DEFL_SESSION_KEYRING))
# define KEY_REQKEY_DEFL_SESSION_KEYRING 3
#endif
 XLAT(KEY_REQKEY_DEFL_SESSION_KEYRING),
#if !(defined(KEY_REQKEY_DEFL_USER_KEYRING) || (defined(HAVE_DECL_KEY_REQKEY_DEFL_USER_KEYRING) && HAVE_DECL_KEY_REQKEY_DEFL_USER_KEYRING))
# define KEY_REQKEY_DEFL_USER_KEYRING 4
#endif
 XLAT(KEY_REQKEY_DEFL_USER_KEYRING),
#if !(defined(KEY_REQKEY_DEFL_USER_SESSION_KEYRING) || (defined(HAVE_DECL_KEY_REQKEY_DEFL_USER_SESSION_KEYRING) && HAVE_DECL_KEY_REQKEY_DEFL_USER_SESSION_KEYRING))
# define KEY_REQKEY_DEFL_USER_SESSION_KEYRING 5
#endif
 XLAT(KEY_REQKEY_DEFL_USER_SESSION_KEYRING),
#if !(defined(KEY_REQKEY_DEFL_GROUP_KEYRING) || (defined(HAVE_DECL_KEY_REQKEY_DEFL_GROUP_KEYRING) && HAVE_DECL_KEY_REQKEY_DEFL_GROUP_KEYRING))
# define KEY_REQKEY_DEFL_GROUP_KEYRING 6
#endif
 XLAT(KEY_REQKEY_DEFL_GROUP_KEYRING),
#if !(defined(KEY_REQKEY_DEFL_REQUESTOR_KEYRING) || (defined(HAVE_DECL_KEY_REQKEY_DEFL_REQUESTOR_KEYRING) && HAVE_DECL_KEY_REQKEY_DEFL_REQUESTOR_KEYRING))
# define KEY_REQKEY_DEFL_REQUESTOR_KEYRING 7
#endif
 XLAT(KEY_REQKEY_DEFL_REQUESTOR_KEYRING),
 XLAT_END
};
