int National_Values_Core_3_UpperBitsNotSet(const National_Values_Core_3* p)
{
    bool status = true;

    status = status && UpperBitsNotSet64(p->Q_NVKVINTSET_k,    2) ;
    if (p->Q_NVKVINTSET_k == 1)
    {
    status = status && UpperBitsNotSet64(p->A_NVP12_k,         6) ;
    status = status && UpperBitsNotSet64(p->A_NVP23_k,         6) ;
    }
    status = status && UpperBitsNotSet64(p->V_NVKVINT_k,       7) ;
    status = status && UpperBitsNotSet64(p->M_NVKVINT_k,       7) ;
    status = status && UpperBitsNotSet64(p->N_ITER_3_1,        5) ;
    for (uint32_t i = 0; i < p->N_ITER_3_1; ++i)
    {
        status = status && National_Values_Core_3_1_UpperBitsNotSet(&(p->sub_3_1[i]));
    }

    if (status)
    {
        return 1;
    }
    else
    {
        return 0;
    }
}
int National_Values_Core_3_1_Encode_Bit(Bitstream* stream, const National_Values_Core_3_1* p)
{
    if (Bitstream_Normal(stream, NATIONAL_VALUES_CORE_3_1_CORE_BITSIZE))
    {
        if (National_Values_Core_3_1_UpperBitsNotSet(p))
        {
            //@ ghost const uint32_t pos = stream->bitpos;

            Bitstream_Write(stream, 7,  p->V_NVKVINT);
            Bitstream_Write(stream, 7,  p->M_NVKVINT);


            //@ assert V_NVKVINT:         EqualBits(stream, pos,       pos + 7,   p->V_NVKVINT);
            //@ assert M_NVKVINT:         EqualBits(stream, pos + 7,   pos + 14,  p->M_NVKVINT);

            return 1;
        }
        else
        {
            return -2;
        }
    }
    else
    {
        return -1;
    }
}