WITH_HASH_SHAKE256
#ifdef WITH_HASH_SHAKE256
#ifdef WITH_HASH_SHAKE256
#ifdef WITH_HASH_SHAKE256
#ifdef WITH_HASH_SHAKE256
#ifdef WITH_HASH_SHAKE256
#ifdef WITH_HASH_SHAKE256
#ifdef WITH_HASH_SHAKE256
#if !defined(WITH_HASH_SHAKE256) || !defined(WITH_CURVE_WEI448)
#ifdef WITH_HASH_SHAKE256
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)
#if defined(WITH_SIG_EDDSA448) && defined(WITH_CURVE_WEI448) && defined(WITH_HASH_SHAKE256)