_ZN4chip11Credentials19ChipCertificateDataC2Ev:
  461|  14.8k|ChipCertificateData::ChipCertificateData() {}
_ZN4chip11Credentials19ChipCertificateDataD2Ev:
  463|  14.8k|ChipCertificateData::~ChipCertificateData() {}
_ZN4chip11Credentials19ChipCertificateData5ClearEv:
  466|  14.8k|{
  467|  14.8k|    mSerialNumber = ByteSpan();
  468|  14.8k|    mSubjectDN.Clear();
  469|  14.8k|    mIssuerDN.Clear();
  470|  14.8k|    mSubjectKeyId      = CertificateKeyId();
  471|  14.8k|    mAuthKeyId         = CertificateKeyId();
  472|  14.8k|    mNotBeforeTime     = 0;
  473|  14.8k|    mNotAfterTime      = 0;
  474|  14.8k|    mPublicKey         = P256PublicKeySpan();
  475|  14.8k|    mPubKeyCurveOID    = 0;
  476|  14.8k|    mPubKeyAlgoOID     = 0;
  477|  14.8k|    mSigAlgoOID        = 0;
  478|  14.8k|    mPathLenConstraint = 0;
  479|  14.8k|    mCertFlags.ClearAll();
  480|  14.8k|    mKeyUsageFlags.ClearAll();
  481|  14.8k|    mKeyPurposeFlags.ClearAll();
  482|  14.8k|    mSignature = P256ECDSASignatureSpan();
  483|       |
  484|  14.8k|    memset(mTBSHash, 0, sizeof(mTBSHash));
  485|  14.8k|}
_ZN4chip11Credentials6ChipDNC2Ev:
  527|  33.4k|{
  528|  33.4k|    Clear();
  529|  33.4k|}
_ZN4chip11Credentials6ChipDND2Ev:
  531|  33.4k|ChipDN::~ChipDN() {}
_ZN4chip11Credentials6ChipDN5ClearEv:
  534|  63.2k|{
  535|  63.2k|    for (auto & dn : rdn)
  ------------------
  |  Branch (535:20): [True: 316k, False: 63.2k]
  ------------------
  536|   316k|    {
  537|   316k|        dn.Clear();
  538|   316k|    }
  539|  63.2k|}
_ZNK4chip11Credentials6ChipDN8RDNCountEv:
  542|  10.8k|{
  543|  10.8k|    uint8_t count;
  544|       |
  545|  16.3k|    for (count = 0; count < CHIP_CONFIG_CERT_MAX_RDN_ATTRIBUTES; count++)
  ------------------
  |  |  383|  16.3k|#define CHIP_CONFIG_CERT_MAX_RDN_ATTRIBUTES 5
  ------------------
  |  Branch (545:21): [True: 16.2k, False: 138]
  ------------------
  546|  16.2k|    {
  547|  16.2k|        if (rdn[count].IsEmpty())
  ------------------
  |  Branch (547:13): [True: 10.6k, False: 5.55k]
  ------------------
  548|  10.6k|        {
  549|  10.6k|            break;
  550|  10.6k|        }
  551|  16.2k|    }
  552|       |
  553|  10.8k|    return count;
  554|  10.8k|}
_ZN4chip11Credentials6ChipDN12AddAttributeEtm:
  557|  3.16k|{
  558|  3.16k|    uint8_t rdnCount = RDNCount();
  559|       |
  560|  3.16k|    VerifyOrReturnError(rdnCount < CHIP_CONFIG_CERT_MAX_RDN_ATTRIBUTES, CHIP_ERROR_NO_MEMORY);
  ------------------
  |  |  251|  3.16k|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|  3.16k|    do                                                                                                                             \
  |  |  |  |  271|  3.16k|    {                                                                                                                              \
  |  |  |  |  272|  3.16k|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 11, False: 3.15k]
  |  |  |  |  ------------------
  |  |  |  |  273|  3.16k|        {                                                                                                                          \
  |  |  |  |  274|     11|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|     11|            return (value);                                                                                                        \
  |  |  |  |  276|     11|        }                                                                                                                          \
  |  |  |  |  277|  3.16k|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  561|  3.15k|    VerifyOrReturnError(IsChipDNAttr(oid), CHIP_ERROR_INVALID_ARGUMENT);
  ------------------
  |  |  251|  3.15k|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|  3.15k|    do                                                                                                                             \
  |  |  |  |  271|  3.15k|    {                                                                                                                              \
  |  |  |  |  272|  3.15k|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 0, False: 3.15k]
  |  |  |  |  ------------------
  |  |  |  |  273|  3.15k|        {                                                                                                                          \
  |  |  |  |  274|      0|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|      0|            return (value);                                                                                                        \
  |  |  |  |  276|      0|        }                                                                                                                          \
  |  |  |  |  277|  3.15k|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  562|       |
  563|  3.15k|    if (IsChip32bitDNAttr(oid))
  ------------------
  |  Branch (563:9): [True: 702, False: 2.45k]
  ------------------
  564|    702|    {
  565|    702|        VerifyOrReturnError(CanCastTo<uint32_t>(val), CHIP_ERROR_INVALID_ARGUMENT);
  ------------------
  |  |  251|    702|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|    702|    do                                                                                                                             \
  |  |  |  |  271|    702|    {                                                                                                                              \
  |  |  |  |  272|    702|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 0, False: 702]
  |  |  |  |  ------------------
  |  |  |  |  273|    702|        {                                                                                                                          \
  |  |  |  |  274|      0|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|      0|            return (value);                                                                                                        \
  |  |  |  |  276|      0|        }                                                                                                                          \
  |  |  |  |  277|    702|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  566|    702|    }
  567|       |
  568|  3.15k|    rdn[rdnCount].mAttrOID               = oid;
  569|  3.15k|    rdn[rdnCount].mChipVal               = val;
  570|  3.15k|    rdn[rdnCount].mAttrIsPrintableString = false;
  571|       |
  572|  3.15k|    return CHIP_NO_ERROR;
  ------------------
  |  |  482|  3.15k|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  ------------------
  573|  3.15k|}
_ZN4chip11Credentials6ChipDN12AddAttributeEtNS_4SpanIKcEEb:
  591|  1.26k|{
  592|  1.26k|    uint8_t rdnCount = RDNCount();
  593|       |
  594|  1.26k|    VerifyOrReturnError(rdnCount < CHIP_CONFIG_CERT_MAX_RDN_ATTRIBUTES, CHIP_ERROR_NO_MEMORY);
  ------------------
  |  |  251|  1.26k|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|  1.26k|    do                                                                                                                             \
  |  |  |  |  271|  1.26k|    {                                                                                                                              \
  |  |  |  |  272|  1.26k|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 9, False: 1.25k]
  |  |  |  |  ------------------
  |  |  |  |  273|  1.26k|        {                                                                                                                          \
  |  |  |  |  274|      9|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|      9|            return (value);                                                                                                        \
  |  |  |  |  276|      9|        }                                                                                                                          \
  |  |  |  |  277|  1.26k|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  595|  1.25k|    VerifyOrReturnError(!IsChipDNAttr(oid), CHIP_ERROR_INVALID_ARGUMENT);
  ------------------
  |  |  251|  1.25k|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|  1.25k|    do                                                                                                                             \
  |  |  |  |  271|  1.25k|    {                                                                                                                              \
  |  |  |  |  272|  1.25k|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 0, False: 1.25k]
  |  |  |  |  ------------------
  |  |  |  |  273|  1.25k|        {                                                                                                                          \
  |  |  |  |  274|      0|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|      0|            return (value);                                                                                                        \
  |  |  |  |  276|      0|        }                                                                                                                          \
  |  |  |  |  277|  1.25k|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  596|  1.25k|    VerifyOrReturnError(oid != kOID_NotSpecified, CHIP_ERROR_INVALID_ARGUMENT);
  ------------------
  |  |  251|  1.25k|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|  1.25k|    do                                                                                                                             \
  |  |  |  |  271|  1.25k|    {                                                                                                                              \
  |  |  |  |  272|  1.25k|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 0, False: 1.25k]
  |  |  |  |  ------------------
  |  |  |  |  273|  1.25k|        {                                                                                                                          \
  |  |  |  |  274|      0|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|      0|            return (value);                                                                                                        \
  |  |  |  |  276|      0|        }                                                                                                                          \
  |  |  |  |  277|  1.25k|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  597|       |
  598|  1.25k|    rdn[rdnCount].mAttrOID               = oid;
  599|  1.25k|    rdn[rdnCount].mString                = val;
  600|  1.25k|    rdn[rdnCount].mAttrIsPrintableString = isPrintableString;
  601|       |
  602|  1.25k|    return CHIP_NO_ERROR;
  ------------------
  |  |  482|  1.25k|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  ------------------
  603|  1.25k|}
_ZN4chip11Credentials6ChipDN13DecodeFromTLVERNS_3TLV9TLVReaderE:
  761|  8.77k|{
  762|  8.77k|    CHIP_ERROR err;
  763|  8.77k|    TLVType outerContainer;
  764|       |
  765|  8.77k|    static constexpr uint32_t kOID_AttributeIsPrintableString_Flag = 0x00000080;
  766|  8.77k|    static constexpr uint32_t kOID_AttributeType_Mask              = 0x0000007F;
  767|       |
  768|  8.77k|    VerifyOrReturnError(reader.GetType() == kTLVType_List, CHIP_ERROR_WRONG_TLV_TYPE);
  ------------------
  |  |  251|  8.77k|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|  8.77k|    do                                                                                                                             \
  |  |  |  |  271|  8.77k|    {                                                                                                                              \
  |  |  |  |  272|  8.77k|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 0, False: 8.77k]
  |  |  |  |  ------------------
  |  |  |  |  273|  8.77k|        {                                                                                                                          \
  |  |  |  |  274|      0|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|      0|            return (value);                                                                                                        \
  |  |  |  |  276|      0|        }                                                                                                                          \
  |  |  |  |  277|  8.77k|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  769|       |
  770|       |    // Enter the List TLV element that represents the DN in TLV format.
  771|  8.77k|    ReturnErrorOnFailure(reader.EnterContainer(outerContainer));
  ------------------
  |  |  150|  8.77k|    do                                                                                                                             \
  |  |  151|  8.77k|    {                                                                                                                              \
  |  |  152|  8.77k|        auto __err = (expr);                                                                                                       \
  |  |  153|  8.77k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 0, False: 8.77k]
  |  |  ------------------
  |  |  154|  8.77k|        {                                                                                                                          \
  |  |  155|      0|            return __err;                                                                                                          \
  |  |  156|      0|        }                                                                                                                          \
  |  |  157|  8.77k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  772|       |
  773|       |    // Read the RDN attributes in the List.
  774|  12.6k|    while ((err = reader.Next()) == CHIP_NO_ERROR)
  ------------------
  |  |  482|  12.6k|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  ------------------
  |  Branch (774:12): [True: 5.04k, False: 7.63k]
  ------------------
  775|  5.04k|    {
  776|       |        // Get the TLV tag, make sure it is a context tag and extract the context tag number.
  777|  5.04k|        Tag tlvTag = reader.GetTag();
  778|  5.04k|        VerifyOrReturnError(IsContextTag(tlvTag), CHIP_ERROR_INVALID_TLV_TAG);
  ------------------
  |  |  251|  5.04k|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|  5.04k|    do                                                                                                                             \
  |  |  |  |  271|  5.04k|    {                                                                                                                              \
  |  |  |  |  272|  5.04k|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 512, False: 4.52k]
  |  |  |  |  ------------------
  |  |  |  |  273|  5.04k|        {                                                                                                                          \
  |  |  |  |  274|    512|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|    512|            return (value);                                                                                                        \
  |  |  |  |  276|    512|        }                                                                                                                          \
  |  |  |  |  277|  5.04k|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  779|  4.52k|        uint32_t tlvTagNum = TagNumFromTag(tlvTag);
  780|       |
  781|       |        // Derive the OID of the corresponding ASN.1 attribute from the TLV tag number.
  782|       |        // The numeric value of the OID is encoded in the bottom 7 bits of the TLV tag number.
  783|       |        // This eliminates the need for a translation table/switch statement but has the
  784|       |        // effect of tying the two encodings together.
  785|       |        //
  786|       |        // NOTE: In the event that the computed OID value is not one that we recognize
  787|       |        // (specifically, is not in the table of OIDs defined in ASN1OID.h) then the
  788|       |        // macro call below that encodes the attribute's object id (ASN1_ENCODE_OBJECT_ID)
  789|       |        // will fail for lack of the OID's encoded representation.  Given this there's no
  790|       |        // need to test the validity of the OID here.
  791|       |        //
  792|  4.52k|        OID attrOID = GetOID(kOIDCategory_AttributeType, static_cast<uint8_t>(tlvTagNum & kOID_AttributeType_Mask));
  793|       |
  794|  4.52k|        bool attrIsPrintableString = (tlvTagNum & kOID_AttributeIsPrintableString_Flag) == kOID_AttributeIsPrintableString_Flag;
  795|       |
  796|       |        // For 64-bit CHIP-defined DN attributes.
  797|  4.52k|        if (IsChip64bitDNAttr(attrOID))
  ------------------
  |  Branch (797:13): [True: 2.42k, False: 2.10k]
  ------------------
  798|  2.42k|        {
  799|  2.42k|            uint64_t chipAttr;
  800|  2.42k|            VerifyOrReturnError(attrIsPrintableString == false, CHIP_ERROR_INVALID_TLV_TAG);
  ------------------
  |  |  251|  2.42k|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|  2.42k|    do                                                                                                                             \
  |  |  |  |  271|  2.42k|    {                                                                                                                              \
  |  |  |  |  272|  2.42k|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 4, False: 2.42k]
  |  |  |  |  ------------------
  |  |  |  |  273|  2.42k|        {                                                                                                                          \
  |  |  |  |  274|      4|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|      4|            return (value);                                                                                                        \
  |  |  |  |  276|      4|        }                                                                                                                          \
  |  |  |  |  277|  2.42k|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  801|  2.42k|            ReturnErrorOnFailure(reader.Get(chipAttr));
  ------------------
  |  |  150|  2.42k|    do                                                                                                                             \
  |  |  151|  2.42k|    {                                                                                                                              \
  |  |  152|  2.42k|        auto __err = (expr);                                                                                                       \
  |  |  153|  2.42k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 84, False: 2.34k]
  |  |  ------------------
  |  |  154|  2.42k|        {                                                                                                                          \
  |  |  155|     84|            return __err;                                                                                                          \
  |  |  156|     84|        }                                                                                                                          \
  |  |  157|  2.42k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  802|  2.34k|            if (attrOID == chip::ASN1::kOID_AttributeType_MatterNodeId)
  ------------------
  |  Branch (802:17): [True: 932, False: 1.40k]
  ------------------
  803|    932|            {
  804|    932|                VerifyOrReturnError(IsOperationalNodeId(chipAttr), CHIP_ERROR_WRONG_NODE_ID);
  ------------------
  |  |  251|    932|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|    932|    do                                                                                                                             \
  |  |  |  |  271|    932|    {                                                                                                                              \
  |  |  |  |  272|    932|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 160, False: 772]
  |  |  |  |  ------------------
  |  |  |  |  273|    932|        {                                                                                                                          \
  |  |  |  |  274|    160|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|    160|            return (value);                                                                                                        \
  |  |  |  |  276|    160|        }                                                                                                                          \
  |  |  |  |  277|    932|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  805|    932|            }
  806|  1.40k|            else if (attrOID == chip::ASN1::kOID_AttributeType_MatterFabricId)
  ------------------
  |  Branch (806:22): [True: 668, False: 740]
  ------------------
  807|    668|            {
  808|    668|                VerifyOrReturnError(IsValidFabricId(chipAttr), CHIP_ERROR_INVALID_ARGUMENT);
  ------------------
  |  |  251|    668|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|    668|    do                                                                                                                             \
  |  |  |  |  271|    668|    {                                                                                                                              \
  |  |  |  |  272|    668|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 8, False: 660]
  |  |  |  |  ------------------
  |  |  |  |  273|    668|        {                                                                                                                          \
  |  |  |  |  274|      8|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|      8|            return (value);                                                                                                        \
  |  |  |  |  276|      8|        }                                                                                                                          \
  |  |  |  |  277|    668|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  809|    668|            }
  810|  2.17k|            ReturnErrorOnFailure(AddAttribute(attrOID, chipAttr));
  ------------------
  |  |  150|  2.17k|    do                                                                                                                             \
  |  |  151|  2.17k|    {                                                                                                                              \
  |  |  152|  2.17k|        auto __err = (expr);                                                                                                       \
  |  |  153|  2.17k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 4, False: 2.16k]
  |  |  ------------------
  |  |  154|  2.17k|        {                                                                                                                          \
  |  |  155|      4|            return __err;                                                                                                          \
  |  |  156|      4|        }                                                                                                                          \
  |  |  157|  2.17k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  811|  2.17k|        }
  812|       |        // For 32-bit CHIP-defined DN attributes.
  813|  2.10k|        else if (IsChip32bitDNAttr(attrOID))
  ------------------
  |  Branch (813:18): [True: 852, False: 1.24k]
  ------------------
  814|    852|        {
  815|    852|            uint32_t chipAttr;
  816|    852|            VerifyOrReturnError(attrIsPrintableString == false, CHIP_ERROR_INVALID_TLV_TAG);
  ------------------
  |  |  251|    852|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|    852|    do                                                                                                                             \
  |  |  |  |  271|    852|    {                                                                                                                              \
  |  |  |  |  272|    852|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 4, False: 848]
  |  |  |  |  ------------------
  |  |  |  |  273|    852|        {                                                                                                                          \
  |  |  |  |  274|      4|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|      4|            return (value);                                                                                                        \
  |  |  |  |  276|      4|        }                                                                                                                          \
  |  |  |  |  277|    852|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  817|    848|            ReturnErrorOnFailure(reader.Get(chipAttr));
  ------------------
  |  |  150|    848|    do                                                                                                                             \
  |  |  151|    848|    {                                                                                                                              \
  |  |  152|    848|        auto __err = (expr);                                                                                                       \
  |  |  153|    848|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 228, False: 620]
  |  |  ------------------
  |  |  154|    848|        {                                                                                                                          \
  |  |  155|    228|            return __err;                                                                                                          \
  |  |  156|    228|        }                                                                                                                          \
  |  |  157|    848|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  818|    620|            if (attrOID == chip::ASN1::kOID_AttributeType_MatterCASEAuthTag)
  ------------------
  |  Branch (818:17): [True: 620, False: 0]
  ------------------
  819|    620|            {
  820|    620|                VerifyOrReturnError(IsValidCASEAuthTag(chipAttr), CHIP_ERROR_INVALID_ARGUMENT);
  ------------------
  |  |  251|    620|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|    620|    do                                                                                                                             \
  |  |  |  |  271|    620|    {                                                                                                                              \
  |  |  |  |  272|    620|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 8, False: 612]
  |  |  |  |  ------------------
  |  |  |  |  273|    620|        {                                                                                                                          \
  |  |  |  |  274|      8|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|      8|            return (value);                                                                                                        \
  |  |  |  |  276|      8|        }                                                                                                                          \
  |  |  |  |  277|    620|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  821|    620|            }
  822|    612|            ReturnErrorOnFailure(AddAttribute(attrOID, chipAttr));
  ------------------
  |  |  150|    612|    do                                                                                                                             \
  |  |  151|    612|    {                                                                                                                              \
  |  |  152|    612|        auto __err = (expr);                                                                                                       \
  |  |  153|    612|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 4, False: 608]
  |  |  ------------------
  |  |  154|    612|        {                                                                                                                          \
  |  |  155|      4|            return __err;                                                                                                          \
  |  |  156|      4|        }                                                                                                                          \
  |  |  157|    612|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  823|    612|        }
  824|       |        // Otherwise the attribute is one of the supported X.509 attributes
  825|  1.24k|        else
  826|  1.24k|        {
  827|  1.24k|            CharSpan asn1Attr;
  828|  1.24k|            ReturnErrorOnFailure(reader.Get(asn1Attr));
  ------------------
  |  |  150|  1.24k|    do                                                                                                                             \
  |  |  151|  1.24k|    {                                                                                                                              \
  |  |  152|  1.24k|        auto __err = (expr);                                                                                                       \
  |  |  153|  1.24k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 112, False: 1.13k]
  |  |  ------------------
  |  |  154|  1.24k|        {                                                                                                                          \
  |  |  155|    112|            return __err;                                                                                                          \
  |  |  156|    112|        }                                                                                                                          \
  |  |  157|  1.24k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  829|  1.13k|            ReturnErrorOnFailure(AddAttribute(attrOID, asn1Attr, attrIsPrintableString));
  ------------------
  |  |  150|  1.13k|    do                                                                                                                             \
  |  |  151|  1.13k|    {                                                                                                                              \
  |  |  152|  1.13k|        auto __err = (expr);                                                                                                       \
  |  |  153|  1.13k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 8, False: 1.12k]
  |  |  ------------------
  |  |  154|  1.13k|        {                                                                                                                          \
  |  |  155|      8|            return __err;                                                                                                          \
  |  |  156|      8|        }                                                                                                                          \
  |  |  157|  1.13k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  830|  1.13k|        }
  831|  4.52k|    }
  832|  7.63k|    VerifyOrReturnError(err == CHIP_END_OF_TLV, err);
  ------------------
  |  |  251|  7.63k|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|  7.63k|    do                                                                                                                             \
  |  |  |  |  271|  7.63k|    {                                                                                                                              \
  |  |  |  |  272|  7.63k|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 52, False: 7.58k]
  |  |  |  |  ------------------
  |  |  |  |  273|  7.63k|        {                                                                                                                          \
  |  |  |  |  274|     52|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|     52|            return (value);                                                                                                        \
  |  |  |  |  276|     52|        }                                                                                                                          \
  |  |  |  |  277|  7.63k|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  833|  7.58k|    ReturnErrorOnFailure(reader.ExitContainer(outerContainer));
  ------------------
  |  |  150|  7.58k|    do                                                                                                                             \
  |  |  151|  7.58k|    {                                                                                                                              \
  |  |  152|  7.58k|        auto __err = (expr);                                                                                                       \
  |  |  153|  7.58k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 1.35k, False: 6.22k]
  |  |  ------------------
  |  |  154|  7.58k|        {                                                                                                                          \
  |  |  155|  1.35k|            return __err;                                                                                                          \
  |  |  156|  1.35k|        }                                                                                                                          \
  |  |  157|  7.58k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  834|       |
  835|  6.22k|    return CHIP_NO_ERROR;
  ------------------
  |  |  482|  6.22k|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  ------------------
  836|  7.58k|}
_ZNK4chip11Credentials6ChipDN12EncodeToASN1ERNS_4ASN110ASN1WriterE:
  839|  6.22k|{
  840|  6.22k|    CHIP_ERROR err   = CHIP_NO_ERROR;
  ------------------
  |  |  482|  6.22k|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  ------------------
  841|  6.22k|    uint8_t rdnCount = RDNCount();
  842|       |
  843|  6.22k|    ASN1_START_SEQUENCE
  ------------------
  |  |  237|  6.22k|#define ASN1_START_SEQUENCE ASN1_START_CONSTRUCTED(kASN1TagClass_Universal, kASN1UniversalTag_Sequence)
  |  |  ------------------
  |  |  |  |  226|  6.22k|    do                                                                                                                             \
  |  |  |  |  227|  6.22k|    {                                                                                                                              \
  |  |  |  |  228|  6.22k|        ASN1_ERR = writer.StartConstructedType(CLASS, TAG);                                                                        \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|  12.4k|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |  229|  6.22k|        SuccessOrExit(ASN1_ERR);
  |  |  |  |  ------------------
  |  |  |  |  |  |  345|  6.22k|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1400|  6.22k|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  224|  6.22k|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  225|  6.22k|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  226|  6.22k|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  125|  6.22k|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 6.22k, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  227|      0|        {                                                                                 \
  |  |  |  |  |  |  |  |  |  |  228|      0|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  189|      0|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  190|      0|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  191|      0|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  835|      0|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  194|      0|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  815|      0|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  197|      0|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  855|      0|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  200|      0|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  229|      0|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  |  |  230|      0|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  |  |  231|      0|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  |  |  232|      0|                                           #label,                                        \
  |  |  |  |  |  |  |  |  |  |  233|      0|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  |  |  234|      0|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  |  |  235|      0|                                           0);                                            \
  |  |  |  |  |  |  |  |  |  |  236|      0|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  |  |  237|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  238|  6.22k|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  844|  6.22k|    {
  845|  7.81k|        for (uint8_t i = 0; i < rdnCount; i++)
  ------------------
  |  Branch (845:29): [True: 1.65k, False: 6.16k]
  ------------------
  846|  1.65k|        {
  847|  1.65k|            ASN1_START_SET
  ------------------
  |  |  241|  1.65k|#define ASN1_START_SET ASN1_START_CONSTRUCTED(kASN1TagClass_Universal, kASN1UniversalTag_Set)
  |  |  ------------------
  |  |  |  |  226|  1.65k|    do                                                                                                                             \
  |  |  |  |  227|  1.65k|    {                                                                                                                              \
  |  |  |  |  228|  1.65k|        ASN1_ERR = writer.StartConstructedType(CLASS, TAG);                                                                        \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|  3.30k|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |  229|  1.65k|        SuccessOrExit(ASN1_ERR);
  |  |  |  |  ------------------
  |  |  |  |  |  |  345|  1.65k|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1400|  1.65k|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  224|  1.65k|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  225|  1.65k|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  226|  1.65k|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  125|  1.65k|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 1.65k, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  227|      0|        {                                                                                 \
  |  |  |  |  |  |  |  |  |  |  228|      0|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  189|      0|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  190|      0|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  191|      0|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  835|      0|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  194|      0|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  815|      0|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  197|      0|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  855|      0|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  200|      0|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  229|      0|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  |  |  230|      0|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  |  |  231|      0|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  |  |  232|      0|                                           #label,                                        \
  |  |  |  |  |  |  |  |  |  |  233|      0|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  |  |  234|      0|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  |  |  235|      0|                                           0);                                            \
  |  |  |  |  |  |  |  |  |  |  236|      0|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  |  |  237|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  238|  1.65k|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  848|  1.65k|            {
  849|  1.65k|                char chipAttrStr[kChip64bitAttrUTF8Length];
  850|  1.65k|                CharSpan asn1Attr;
  851|  1.65k|                uint8_t asn1Tag;
  852|  1.65k|                chip::ASN1::OID attrOID = rdn[i].mAttrOID;
  853|       |
  854|  1.65k|                if (IsChip64bitDNAttr(attrOID))
  ------------------
  |  Branch (854:21): [True: 860, False: 792]
  ------------------
  855|    860|                {
  856|    860|                    ReturnErrorOnFailure(
  ------------------
  |  |  150|    860|    do                                                                                                                             \
  |  |  151|    860|    {                                                                                                                              \
  |  |  152|    860|        auto __err = (expr);                                                                                                       \
  |  |  153|    860|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 0, False: 860]
  |  |  ------------------
  |  |  154|    860|        {                                                                                                                          \
  |  |  155|      0|            return __err;                                                                                                          \
  |  |  156|      0|        }                                                                                                                          \
  |  |  157|    860|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  857|    860|                        Encoding::Uint64ToHex(rdn[i].mChipVal, chipAttrStr, sizeof(chipAttrStr), Encoding::HexFlags::kUppercase));
  858|    860|                    asn1Attr = CharSpan(chipAttrStr, kChip64bitAttrUTF8Length);
  859|    860|                    asn1Tag  = kASN1UniversalTag_UTF8String;
  860|    860|                }
  861|    792|                else if (IsChip32bitDNAttr(attrOID))
  ------------------
  |  Branch (861:26): [True: 264, False: 528]
  ------------------
  862|    264|                {
  863|    264|                    ReturnErrorOnFailure(Encoding::Uint32ToHex(static_cast<uint32_t>(rdn[i].mChipVal), chipAttrStr,
  ------------------
  |  |  150|    264|    do                                                                                                                             \
  |  |  151|    264|    {                                                                                                                              \
  |  |  152|    264|        auto __err = (expr);                                                                                                       \
  |  |  153|    264|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 0, False: 264]
  |  |  ------------------
  |  |  154|    264|        {                                                                                                                          \
  |  |  155|      0|            return __err;                                                                                                          \
  |  |  156|      0|        }                                                                                                                          \
  |  |  157|    264|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  864|    264|                                                               sizeof(chipAttrStr), Encoding::HexFlags::kUppercase));
  865|    264|                    asn1Attr = CharSpan(chipAttrStr, kChip32bitAttrUTF8Length);
  866|    264|                    asn1Tag  = kASN1UniversalTag_UTF8String;
  867|    264|                }
  868|    528|                else
  869|    528|                {
  870|    528|                    asn1Attr = rdn[i].mString;
  871|       |
  872|       |                    // Determine the appropriate ASN.1 tag for the DN attribute.
  873|       |                    // - DomainComponent is always an IA5String.
  874|       |                    // - For all other ASN.1 defined attributes, bit 0x80 in the TLV tag value conveys whether the attribute
  875|       |                    //   is a UTF8String or a PrintableString (in some cases the certificate generator has a choice).
  876|    528|                    if (attrOID == kOID_AttributeType_DomainComponent)
  ------------------
  |  Branch (876:25): [True: 88, False: 440]
  ------------------
  877|     88|                    {
  878|     88|                        asn1Tag = kASN1UniversalTag_IA5String;
  879|     88|                    }
  880|    440|                    else
  881|    440|                    {
  882|    440|                        asn1Tag = rdn[i].mAttrIsPrintableString ? kASN1UniversalTag_PrintableString : kASN1UniversalTag_UTF8String;
  ------------------
  |  Branch (882:35): [True: 44, False: 396]
  ------------------
  883|    440|                    }
  884|    528|                }
  885|       |
  886|       |                // AttributeTypeAndValue ::= SEQUENCE
  887|  1.65k|                ASN1_START_SEQUENCE
  ------------------
  |  |  237|  1.65k|#define ASN1_START_SEQUENCE ASN1_START_CONSTRUCTED(kASN1TagClass_Universal, kASN1UniversalTag_Sequence)
  |  |  ------------------
  |  |  |  |  226|  1.65k|    do                                                                                                                             \
  |  |  |  |  227|  1.65k|    {                                                                                                                              \
  |  |  |  |  228|  1.65k|        ASN1_ERR = writer.StartConstructedType(CLASS, TAG);                                                                        \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|  3.30k|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |  229|  1.65k|        SuccessOrExit(ASN1_ERR);
  |  |  |  |  ------------------
  |  |  |  |  |  |  345|  1.65k|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1400|  1.65k|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  224|  1.65k|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  225|  1.65k|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  226|  1.65k|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  125|  1.65k|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 1.65k, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  227|      0|        {                                                                                 \
  |  |  |  |  |  |  |  |  |  |  228|      0|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  189|      0|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  190|      0|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  191|      0|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  835|      0|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  194|      0|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  815|      0|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  197|      0|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  855|      0|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  200|      0|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  229|      0|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  |  |  230|      0|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  |  |  231|      0|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  |  |  232|      0|                                           #label,                                        \
  |  |  |  |  |  |  |  |  |  |  233|      0|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  |  |  234|      0|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  |  |  235|      0|                                           0);                                            \
  |  |  |  |  |  |  |  |  |  |  236|      0|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  |  |  237|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  238|  1.65k|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  888|  1.65k|                {
  889|       |                    // type AttributeType
  890|       |                    // AttributeType ::= OBJECT IDENTIFIER
  891|  1.65k|                    ASN1_ENCODE_OBJECT_ID(attrOID);
  ------------------
  |  |  267|  1.65k|    do                                                                                                                             \
  |  |  268|  1.65k|    {                                                                                                                              \
  |  |  269|  1.65k|        ASN1_ERR = writer.PutObjectId(OID);                                                                                        \
  |  |  ------------------
  |  |  |  |   34|  3.30k|#define ASN1_ERR err
  |  |  ------------------
  |  |  270|  1.65k|        SuccessOrExit(ASN1_ERR);                                                                                                   \
  |  |  ------------------
  |  |  |  |  345|  1.65k|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1400|  1.65k|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  224|  1.65k|    do                                                                                    \
  |  |  |  |  |  |  |  |  225|  1.65k|    {                                                                                     \
  |  |  |  |  |  |  |  |  226|  1.65k|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  125|  1.65k|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 1.60k, False: 48]
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  227|     48|        {                                                                                 \
  |  |  |  |  |  |  |  |  228|     48|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  189|     48|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  190|     48|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  191|     48|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  835|     48|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  194|     48|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  815|     48|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  197|     48|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  855|     48|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  200|     48|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  229|     48|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  230|     48|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  231|     48|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  232|     48|                                           #label,                                        \
  |  |  |  |  |  |  |  |  233|     48|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  234|     48|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  235|     48|                                           0);                                            \
  |  |  |  |  |  |  |  |  236|     48|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  237|     48|        }                                                                                 \
  |  |  |  |  |  |  |  |  238|  1.65k|    } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  271|  1.65k|    } while (0);
  |  |  ------------------
  |  |  |  Branch (271:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  892|       |
  893|  1.60k|                    VerifyOrReturnError(CanCastTo<uint16_t>(asn1Attr.size()), CHIP_ERROR_UNSUPPORTED_CERT_FORMAT);
  ------------------
  |  |  251|  1.60k|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|  1.60k|    do                                                                                                                             \
  |  |  |  |  271|  1.60k|    {                                                                                                                              \
  |  |  |  |  272|  1.60k|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 16, False: 1.58k]
  |  |  |  |  ------------------
  |  |  |  |  273|  1.60k|        {                                                                                                                          \
  |  |  |  |  274|     16|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|     16|            return (value);                                                                                                        \
  |  |  |  |  276|     16|        }                                                                                                                          \
  |  |  |  |  277|  1.60k|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  894|       |
  895|       |                    // value AttributeValue
  896|       |                    // AttributeValue ::= ANY -- DEFINED BY AttributeType
  897|  1.58k|                    ReturnErrorOnFailure(writer.PutString(asn1Tag, asn1Attr.data(), static_cast<uint16_t>(asn1Attr.size())));
  ------------------
  |  |  150|  1.58k|    do                                                                                                                             \
  |  |  151|  1.58k|    {                                                                                                                              \
  |  |  152|  1.58k|        auto __err = (expr);                                                                                                       \
  |  |  153|  1.58k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 0, False: 1.58k]
  |  |  ------------------
  |  |  154|  1.58k|        {                                                                                                                          \
  |  |  155|      0|            return __err;                                                                                                          \
  |  |  156|      0|        }                                                                                                                          \
  |  |  157|  1.58k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  898|  1.58k|                }
  899|  1.58k|                ASN1_END_SEQUENCE;
  ------------------
  |  |  239|  1.58k|#define ASN1_END_SEQUENCE ASN1_END_CONSTRUCTED
  |  |  ------------------
  |  |  |  |  232|  1.58k|    ASN1_ERR = writer.EndConstructedType();                                                                                        \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|  3.17k|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |  233|  1.58k|    SuccessOrExit(ASN1_ERR);                                                                                                       \
  |  |  |  |  ------------------
  |  |  |  |  |  |  345|  1.58k|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1400|  1.58k|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  224|  1.58k|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  225|  1.58k|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  226|  1.58k|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  125|  1.58k|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 1.58k, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  227|      0|        {                                                                                 \
  |  |  |  |  |  |  |  |  |  |  228|      0|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  189|      0|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  190|      0|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  191|      0|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  835|      0|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  194|      0|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  815|      0|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  197|      0|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  855|      0|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  200|      0|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  229|      0|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  |  |  230|      0|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  |  |  231|      0|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  |  |  232|      0|                                           #label,                                        \
  |  |  |  |  |  |  |  |  |  |  233|      0|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  |  |  234|      0|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  |  |  235|      0|                                           0);                                            \
  |  |  |  |  |  |  |  |  |  |  236|      0|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  |  |  237|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  238|  1.58k|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  234|  1.58k|    }                                                                                                                              \
  |  |  |  |  235|  1.65k|    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (235:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  900|  1.65k|            }
  901|  1.65k|            ASN1_END_SET;
  ------------------
  |  |  243|  1.65k|#define ASN1_END_SET ASN1_END_CONSTRUCTED
  |  |  ------------------
  |  |  |  |  232|  1.58k|    ASN1_ERR = writer.EndConstructedType();                                                                                        \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|  3.17k|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |  233|  1.58k|    SuccessOrExit(ASN1_ERR);                                                                                                       \
  |  |  |  |  ------------------
  |  |  |  |  |  |  345|  1.58k|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1400|  1.58k|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  224|  1.58k|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  225|  1.58k|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  226|  1.58k|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  125|  1.58k|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 1.58k, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  227|      0|        {                                                                                 \
  |  |  |  |  |  |  |  |  |  |  228|      0|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  189|      0|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  190|      0|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  191|      0|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  835|      0|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  194|      0|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  815|      0|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  197|      0|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  855|      0|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  200|      0|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  229|      0|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  |  |  230|      0|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  |  |  231|      0|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  |  |  232|      0|                                           #label,                                        \
  |  |  |  |  |  |  |  |  |  |  233|      0|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  |  |  234|      0|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  |  |  235|      0|                                           0);                                            \
  |  |  |  |  |  |  |  |  |  |  236|      0|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  |  |  237|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  238|  1.58k|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  234|  1.58k|    }                                                                                                                              \
  |  |  |  |  235|  1.65k|    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (235:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  902|  1.65k|        }
  903|  6.22k|    }
  904|  6.22k|    ASN1_END_SEQUENCE;
  ------------------
  |  |  239|  6.22k|#define ASN1_END_SEQUENCE ASN1_END_CONSTRUCTED
  |  |  ------------------
  |  |  |  |  232|  6.16k|    ASN1_ERR = writer.EndConstructedType();                                                                                        \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|  12.3k|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |  233|  6.16k|    SuccessOrExit(ASN1_ERR);                                                                                                       \
  |  |  |  |  ------------------
  |  |  |  |  |  |  345|  6.16k|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1400|  6.16k|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  224|  6.16k|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  225|  6.16k|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  226|  6.16k|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  125|  6.16k|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 6.16k, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  227|      0|        {                                                                                 \
  |  |  |  |  |  |  |  |  |  |  228|      0|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  189|      0|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  190|      0|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  191|      0|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  835|      0|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  194|      0|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  815|      0|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  197|      0|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  855|      0|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  200|      0|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  229|      0|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  |  |  230|      0|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  |  |  231|      0|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  |  |  232|      0|                                           #label,                                        \
  |  |  |  |  |  |  |  |  |  |  233|      0|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  |  |  234|      0|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  |  |  235|      0|                                           0);                                            \
  |  |  |  |  |  |  |  |  |  |  236|      0|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  |  |  237|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  238|  6.16k|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  234|  6.16k|    }                                                                                                                              \
  |  |  |  |  235|  6.22k|    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (235:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  905|       |
  906|  6.21k|exit:
  907|  6.21k|    return err;
  908|  6.22k|}
_ZN4chip11Credentials6ChipDN14DecodeFromASN1ERNS_4ASN110ASN1ReaderE:
  911|    618|{
  912|    618|    CHIP_ERROR err;
  913|       |
  914|       |    // RDNSequence ::= SEQUENCE OF RelativeDistinguishedName
  915|    618|    ASN1_PARSE_ENTER_SEQUENCE
  ------------------
  |  |   95|    618|#define ASN1_PARSE_ENTER_SEQUENCE ASN1_PARSE_ENTER_CONSTRUCTED(kASN1TagClass_Universal, kASN1UniversalTag_Sequence)
  |  |  ------------------
  |  |  |  |   66|    618|    do                                                                                                                             \
  |  |  |  |   67|    618|    {                                                                                                                              \
  |  |  |  |   68|    618|        ASN1_ERR = ASN1_READER.Next();                                                                                             \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|  1.23k|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |                       ASN1_ERR = ASN1_READER.Next();                                                                                             \
  |  |  |  |  ------------------
  |  |  |  |  |  |   33|    618|#define ASN1_READER reader
  |  |  |  |  ------------------
  |  |  |  |   69|    618|        SuccessOrExit(ASN1_ERR);                                                                                                   \
  |  |  |  |  ------------------
  |  |  |  |  |  |  345|    618|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1400|    618|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  224|    618|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  225|    618|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  226|    618|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  125|    618|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 615, False: 3]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  227|      3|        {                                                                                 \
  |  |  |  |  |  |  |  |  |  |  228|      3|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  189|      3|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  190|      3|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  191|      3|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  835|      3|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  194|      3|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  815|      3|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  197|      3|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  855|      3|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  200|      3|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  229|      3|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  |  |  230|      3|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  |  |  231|      3|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  |  |  232|      3|                                           #label,                                        \
  |  |  |  |  |  |  |  |  |  |  233|      3|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  |  |  234|      3|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  |  |  235|      3|                                           0);                                            \
  |  |  |  |  |  |  |  |  |  |  236|      3|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  |  |  237|      3|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  238|    618|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   70|    618|                                                                                                                                   \
  |  |  |  |   71|    618|        ASN1_VERIFY_TAG(CLASS, TAG);                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  |   39|    615|    VerifyOrExit(ASN1_READER.GetClass() == (CLASS) && ASN1_READER.GetTag() == (TAG), ASN1_ERR = ASN1_ERROR_INVALID_ENCODING);
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  390|    615|#define VerifyOrExit(aCondition, anAction) nlEXPECT_ACTION(aCondition, exit, anAction)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  | 1454|    615|#define nlEXPECT_ACTION(aCondition, aLabel, anAction)                           __nlEXPECT_ACTION(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel, anAction)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  258|    615|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  259|    615|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  260|    615|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  125|  1.84k|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 613, False: 2]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 612, False: 1]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  261|      3|        {                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  262|      3|            __NL_ASSERT_MAYBE_RUN_PRE_ACTION_TRIGGERS((flags),                            \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  203|      3|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  204|      3|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  205|      3|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  835|      3|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (205:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  206|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  207|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  208|      3|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  815|      3|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (208:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  209|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  210|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  211|      3|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (211:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  263|      3|                                                      NL_ASSERT_PREFIX_STRING,            \
  |  |  |  |  |  |  |  |  |  |  |  |  264|      3|                                                      NL_ASSERT_COMPONENT_STRING,         \
  |  |  |  |  |  |  |  |  |  |  |  |  265|      3|                                                      #condition,                         \
  |  |  |  |  |  |  |  |  |  |  |  |  266|      3|                                                      #label,                             \
  |  |  |  |  |  |  |  |  |  |  |  |  267|      3|                                                      NL_ASSERT_FILE,                     \
  |  |  |  |  |  |  |  |  |  |  |  |  268|      3|                                                      __LINE__,                           \
  |  |  |  |  |  |  |  |  |  |  |  |  269|      3|                                                      0);                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  270|      3|            {                                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  271|      3|                action;                                                                   \
  |  |  |  |  |  |  |  |  |  |  |  |  272|      3|            }                                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  273|      3|            __NL_ASSERT_MAYBE_RUN_POST_ACTION_TRIGGERS((flags),                           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  214|      3|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  215|      3|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  216|      3|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  855|      3|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (216:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  217|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  218|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  219|      3|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (219:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  274|      3|                                                       NL_ASSERT_PREFIX_STRING,           \
  |  |  |  |  |  |  |  |  |  |  |  |  275|      3|                                                       NL_ASSERT_COMPONENT_STRING,        \
  |  |  |  |  |  |  |  |  |  |  |  |  276|      3|                                                       #condition,                        \
  |  |  |  |  |  |  |  |  |  |  |  |  277|      3|                                                       #label,                            \
  |  |  |  |  |  |  |  |  |  |  |  |  278|      3|                                                       NL_ASSERT_FILE,                    \
  |  |  |  |  |  |  |  |  |  |  |  |  279|      3|                                                       __LINE__,                          \
  |  |  |  |  |  |  |  |  |  |  |  |  280|      3|                                                       0);                                \
  |  |  |  |  |  |  |  |  |  |  |  |  281|      3|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  |  |  |  |  282|      3|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  283|    615|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (283:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   72|    612|                                                                                                                                   \
  |  |  |  |   73|    612|        ASN1_ERR = ASN1_READER.EnterConstructedType();                                                                             \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|  1.22k|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |                       ASN1_ERR = ASN1_READER.EnterConstructedType();                                                                             \
  |  |  |  |  ------------------
  |  |  |  |  |  |   33|    612|#define ASN1_READER reader
  |  |  |  |  ------------------
  |  |  |  |   74|    618|        SuccessOrExit(ASN1_ERR);
  |  |  |  |  ------------------
  |  |  |  |  |  |  345|    618|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1400|    618|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  224|    618|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  225|    618|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  226|    612|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  125|    612|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 611, False: 1]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  227|      1|        {                                                                                 \
  |  |  |  |  |  |  |  |  |  |  228|      1|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  189|      1|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  190|      1|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  191|      1|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  835|      1|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  194|      1|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  815|      1|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  197|      1|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  855|      1|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  200|      1|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  229|      1|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  |  |  230|      1|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  |  |  231|      1|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  |  |  232|      1|                                           #label,                                        \
  |  |  |  |  |  |  |  |  |  |  233|      1|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  |  |  234|      1|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  |  |  235|      1|                                           0);                                            \
  |  |  |  |  |  |  |  |  |  |  236|      1|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  |  |  237|      1|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  238|    612|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  916|    611|    {
  917|    942|        while ((err = reader.Next()) == CHIP_NO_ERROR)
  ------------------
  |  |  482|    942|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  ------------------
  |  Branch (917:16): [True: 783, False: 159]
  ------------------
  918|    783|        {
  919|       |            // RelativeDistinguishedName ::= SET SIZE (1..MAX) OF AttributeTypeAndValue
  920|    783|            ASN1_ENTER_SET
  ------------------
  |  |  105|    783|#define ASN1_ENTER_SET ASN1_ENTER_CONSTRUCTED(kASN1TagClass_Universal, kASN1UniversalTag_Set)
  |  |  ------------------
  |  |  |  |   58|    783|    do                                                                                                                             \
  |  |  |  |   59|    783|    {                                                                                                                              \
  |  |  |  |   60|    783|        ASN1_VERIFY_TAG(CLASS, TAG);                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  |   39|    783|    VerifyOrExit(ASN1_READER.GetClass() == (CLASS) && ASN1_READER.GetTag() == (TAG), ASN1_ERR = ASN1_ERROR_INVALID_ENCODING);
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  390|    783|#define VerifyOrExit(aCondition, anAction) nlEXPECT_ACTION(aCondition, exit, anAction)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  | 1454|    783|#define nlEXPECT_ACTION(aCondition, aLabel, anAction)                           __nlEXPECT_ACTION(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel, anAction)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  258|    783|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  259|    783|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  260|    783|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  125|  2.34k|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 781, False: 2]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 780, False: 1]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  261|      3|        {                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  262|      3|            __NL_ASSERT_MAYBE_RUN_PRE_ACTION_TRIGGERS((flags),                            \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  203|      3|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  204|      3|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  205|      3|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  835|      3|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (205:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  206|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  207|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  208|      3|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  815|      3|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (208:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  209|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  210|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  211|      3|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (211:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  263|      3|                                                      NL_ASSERT_PREFIX_STRING,            \
  |  |  |  |  |  |  |  |  |  |  |  |  264|      3|                                                      NL_ASSERT_COMPONENT_STRING,         \
  |  |  |  |  |  |  |  |  |  |  |  |  265|      3|                                                      #condition,                         \
  |  |  |  |  |  |  |  |  |  |  |  |  266|      3|                                                      #label,                             \
  |  |  |  |  |  |  |  |  |  |  |  |  267|      3|                                                      NL_ASSERT_FILE,                     \
  |  |  |  |  |  |  |  |  |  |  |  |  268|      3|                                                      __LINE__,                           \
  |  |  |  |  |  |  |  |  |  |  |  |  269|      3|                                                      0);                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  270|      3|            {                                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  271|      3|                action;                                                                   \
  |  |  |  |  |  |  |  |  |  |  |  |  272|      3|            }                                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  273|      3|            __NL_ASSERT_MAYBE_RUN_POST_ACTION_TRIGGERS((flags),                           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  214|      3|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  215|      3|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  216|      3|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  855|      3|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (216:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  217|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  218|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  219|      3|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (219:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  274|      3|                                                       NL_ASSERT_PREFIX_STRING,           \
  |  |  |  |  |  |  |  |  |  |  |  |  275|      3|                                                       NL_ASSERT_COMPONENT_STRING,        \
  |  |  |  |  |  |  |  |  |  |  |  |  276|      3|                                                       #condition,                        \
  |  |  |  |  |  |  |  |  |  |  |  |  277|      3|                                                       #label,                            \
  |  |  |  |  |  |  |  |  |  |  |  |  278|      3|                                                       NL_ASSERT_FILE,                    \
  |  |  |  |  |  |  |  |  |  |  |  |  279|      3|                                                       __LINE__,                          \
  |  |  |  |  |  |  |  |  |  |  |  |  280|      3|                                                       0);                                \
  |  |  |  |  |  |  |  |  |  |  |  |  281|      3|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  |  |  |  |  282|      3|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  283|    783|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (283:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   61|    780|                                                                                                                                   \
  |  |  |  |   62|    780|        ASN1_ERR = ASN1_READER.EnterConstructedType();                                                                             \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|  1.56k|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |                       ASN1_ERR = ASN1_READER.EnterConstructedType();                                                                             \
  |  |  |  |  ------------------
  |  |  |  |  |  |   33|    780|#define ASN1_READER reader
  |  |  |  |  ------------------
  |  |  |  |   63|    783|        SuccessOrExit(ASN1_ERR);
  |  |  |  |  ------------------
  |  |  |  |  |  |  345|    783|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1400|    783|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  224|    783|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  225|    783|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  226|    780|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  125|    780|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 779, False: 1]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  227|      1|        {                                                                                 \
  |  |  |  |  |  |  |  |  |  |  228|      1|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  189|      1|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  190|      1|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  191|      1|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  835|      1|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  194|      1|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  815|      1|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  197|      1|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  855|      1|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  200|      1|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  229|      1|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  |  |  230|      1|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  |  |  231|      1|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  |  |  232|      1|                                           #label,                                        \
  |  |  |  |  |  |  |  |  |  |  233|      1|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  |  |  234|      1|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  |  |  235|      1|                                           0);                                            \
  |  |  |  |  |  |  |  |  |  |  236|      1|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  |  |  237|      1|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  238|    780|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  921|    779|            {
  922|       |                // AttributeTypeAndValue ::= SEQUENCE
  923|    779|                ASN1_PARSE_ENTER_SEQUENCE
  ------------------
  |  |   95|    779|#define ASN1_PARSE_ENTER_SEQUENCE ASN1_PARSE_ENTER_CONSTRUCTED(kASN1TagClass_Universal, kASN1UniversalTag_Sequence)
  |  |  ------------------
  |  |  |  |   66|    779|    do                                                                                                                             \
  |  |  |  |   67|    779|    {                                                                                                                              \
  |  |  |  |   68|    779|        ASN1_ERR = ASN1_READER.Next();                                                                                             \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|  1.55k|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |                       ASN1_ERR = ASN1_READER.Next();                                                                                             \
  |  |  |  |  ------------------
  |  |  |  |  |  |   33|    779|#define ASN1_READER reader
  |  |  |  |  ------------------
  |  |  |  |   69|    779|        SuccessOrExit(ASN1_ERR);                                                                                                   \
  |  |  |  |  ------------------
  |  |  |  |  |  |  345|    779|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1400|    779|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  224|    779|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  225|    779|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  226|    779|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  125|    779|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 774, False: 5]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  227|      5|        {                                                                                 \
  |  |  |  |  |  |  |  |  |  |  228|      5|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  189|      5|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  190|      5|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  191|      5|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  835|      5|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  194|      5|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  815|      5|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  197|      5|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  855|      5|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  200|      5|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  229|      5|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  |  |  230|      5|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  |  |  231|      5|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  |  |  232|      5|                                           #label,                                        \
  |  |  |  |  |  |  |  |  |  |  233|      5|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  |  |  234|      5|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  |  |  235|      5|                                           0);                                            \
  |  |  |  |  |  |  |  |  |  |  236|      5|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  |  |  237|      5|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  238|    779|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   70|    779|                                                                                                                                   \
  |  |  |  |   71|    779|        ASN1_VERIFY_TAG(CLASS, TAG);                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  |   39|    774|    VerifyOrExit(ASN1_READER.GetClass() == (CLASS) && ASN1_READER.GetTag() == (TAG), ASN1_ERR = ASN1_ERROR_INVALID_ENCODING);
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  390|    774|#define VerifyOrExit(aCondition, anAction) nlEXPECT_ACTION(aCondition, exit, anAction)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  | 1454|    774|#define nlEXPECT_ACTION(aCondition, aLabel, anAction)                           __nlEXPECT_ACTION(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel, anAction)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  258|    774|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  259|    774|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  260|    774|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  125|  2.32k|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 773, False: 1]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 772, False: 1]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  261|      2|        {                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  262|      2|            __NL_ASSERT_MAYBE_RUN_PRE_ACTION_TRIGGERS((flags),                            \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  203|      2|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  204|      2|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  205|      2|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  835|      2|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (205:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  206|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  207|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  208|      2|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  815|      2|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (208:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  209|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  210|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  211|      2|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (211:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  263|      2|                                                      NL_ASSERT_PREFIX_STRING,            \
  |  |  |  |  |  |  |  |  |  |  |  |  264|      2|                                                      NL_ASSERT_COMPONENT_STRING,         \
  |  |  |  |  |  |  |  |  |  |  |  |  265|      2|                                                      #condition,                         \
  |  |  |  |  |  |  |  |  |  |  |  |  266|      2|                                                      #label,                             \
  |  |  |  |  |  |  |  |  |  |  |  |  267|      2|                                                      NL_ASSERT_FILE,                     \
  |  |  |  |  |  |  |  |  |  |  |  |  268|      2|                                                      __LINE__,                           \
  |  |  |  |  |  |  |  |  |  |  |  |  269|      2|                                                      0);                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  270|      2|            {                                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  271|      2|                action;                                                                   \
  |  |  |  |  |  |  |  |  |  |  |  |  272|      2|            }                                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  273|      2|            __NL_ASSERT_MAYBE_RUN_POST_ACTION_TRIGGERS((flags),                           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  214|      2|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  215|      2|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  216|      2|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  855|      2|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (216:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  217|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  218|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  219|      2|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (219:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  274|      2|                                                       NL_ASSERT_PREFIX_STRING,           \
  |  |  |  |  |  |  |  |  |  |  |  |  275|      2|                                                       NL_ASSERT_COMPONENT_STRING,        \
  |  |  |  |  |  |  |  |  |  |  |  |  276|      2|                                                       #condition,                        \
  |  |  |  |  |  |  |  |  |  |  |  |  277|      2|                                                       #label,                            \
  |  |  |  |  |  |  |  |  |  |  |  |  278|      2|                                                       NL_ASSERT_FILE,                    \
  |  |  |  |  |  |  |  |  |  |  |  |  279|      2|                                                       __LINE__,                          \
  |  |  |  |  |  |  |  |  |  |  |  |  280|      2|                                                       0);                                \
  |  |  |  |  |  |  |  |  |  |  |  |  281|      2|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  |  |  |  |  282|      2|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  283|    774|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (283:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   72|    772|                                                                                                                                   \
  |  |  |  |   73|    772|        ASN1_ERR = ASN1_READER.EnterConstructedType();                                                                             \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|  1.54k|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |                       ASN1_ERR = ASN1_READER.EnterConstructedType();                                                                             \
  |  |  |  |  ------------------
  |  |  |  |  |  |   33|    772|#define ASN1_READER reader
  |  |  |  |  ------------------
  |  |  |  |   74|    779|        SuccessOrExit(ASN1_ERR);
  |  |  |  |  ------------------
  |  |  |  |  |  |  345|    779|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1400|    779|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  224|    779|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  225|    779|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  226|    772|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  125|    772|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 771, False: 1]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  227|      1|        {                                                                                 \
  |  |  |  |  |  |  |  |  |  |  228|      1|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  189|      1|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  190|      1|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  191|      1|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  835|      1|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  194|      1|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  815|      1|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  197|      1|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  855|      1|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  200|      1|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  229|      1|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  |  |  230|      1|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  |  |  231|      1|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  |  |  232|      1|                                           #label,                                        \
  |  |  |  |  |  |  |  |  |  |  233|      1|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  |  |  234|      1|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  |  |  235|      1|                                           0);                                            \
  |  |  |  |  |  |  |  |  |  |  236|      1|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  |  |  237|      1|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  238|    772|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  924|    771|                {
  925|       |                    // type AttributeType
  926|       |                    // AttributeType ::= OBJECT IDENTIFIER
  927|    771|                    OID attrOID;
  928|    771|                    ASN1_PARSE_OBJECT_ID(attrOID);
  ------------------
  |  |  176|    771|    do                                                                                                                             \
  |  |  177|    771|    {                                                                                                                              \
  |  |  178|    771|        ASN1_PARSE_ELEMENT(kASN1TagClass_Universal, kASN1UniversalTag_ObjectId);                                                   \
  |  |  ------------------
  |  |  |  |   42|    771|    do                                                                                                                             \
  |  |  |  |   43|    771|    {                                                                                                                              \
  |  |  |  |   44|    771|        ASN1_ERR = ASN1_READER.Next();                                                                                             \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|  1.54k|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |                       ASN1_ERR = ASN1_READER.Next();                                                                                             \
  |  |  |  |  ------------------
  |  |  |  |  |  |   33|    771|#define ASN1_READER reader
  |  |  |  |  ------------------
  |  |  |  |   45|    771|        SuccessOrExit(ASN1_ERR);                                                                                                   \
  |  |  |  |  ------------------
  |  |  |  |  |  |  345|    771|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1400|    771|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  224|    771|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  225|    771|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  226|    771|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  125|    771|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 766, False: 5]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  227|      5|        {                                                                                 \
  |  |  |  |  |  |  |  |  |  |  228|      5|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  189|      5|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  190|      5|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  191|      5|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  835|      5|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  194|      5|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  815|      5|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  197|      5|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  855|      5|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  200|      5|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  229|      5|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  |  |  230|      5|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  |  |  231|      5|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  |  |  232|      5|                                           #label,                                        \
  |  |  |  |  |  |  |  |  |  |  233|      5|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  |  |  234|      5|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  |  |  235|      5|                                           0);                                            \
  |  |  |  |  |  |  |  |  |  |  236|      5|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  |  |  237|      5|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  238|    771|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   46|    771|                                                                                                                                   \
  |  |  |  |   47|    771|        ASN1_VERIFY_TAG(CLASS, TAG);                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  |   39|    766|    VerifyOrExit(ASN1_READER.GetClass() == (CLASS) && ASN1_READER.GetTag() == (TAG), ASN1_ERR = ASN1_ERROR_INVALID_ENCODING);
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  390|    766|#define VerifyOrExit(aCondition, anAction) nlEXPECT_ACTION(aCondition, exit, anAction)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  | 1454|    766|#define nlEXPECT_ACTION(aCondition, aLabel, anAction)                           __nlEXPECT_ACTION(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel, anAction)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  258|    766|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  259|    766|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  260|    766|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  125|  2.29k|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 764, False: 2]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 753, False: 11]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  261|     13|        {                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  262|     13|            __NL_ASSERT_MAYBE_RUN_PRE_ACTION_TRIGGERS((flags),                            \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  203|     13|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  204|     13|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  205|     13|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  835|     13|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (205:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  206|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  207|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  208|     13|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  815|     13|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (208:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  209|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  210|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  211|     13|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (211:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  263|     13|                                                      NL_ASSERT_PREFIX_STRING,            \
  |  |  |  |  |  |  |  |  |  |  |  |  264|     13|                                                      NL_ASSERT_COMPONENT_STRING,         \
  |  |  |  |  |  |  |  |  |  |  |  |  265|     13|                                                      #condition,                         \
  |  |  |  |  |  |  |  |  |  |  |  |  266|     13|                                                      #label,                             \
  |  |  |  |  |  |  |  |  |  |  |  |  267|     13|                                                      NL_ASSERT_FILE,                     \
  |  |  |  |  |  |  |  |  |  |  |  |  268|     13|                                                      __LINE__,                           \
  |  |  |  |  |  |  |  |  |  |  |  |  269|     13|                                                      0);                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  270|     13|            {                                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  271|     13|                action;                                                                   \
  |  |  |  |  |  |  |  |  |  |  |  |  272|     13|            }                                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  273|     13|            __NL_ASSERT_MAYBE_RUN_POST_ACTION_TRIGGERS((flags),                           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  214|     13|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  215|     13|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  216|     13|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  855|     13|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (216:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  217|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  218|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  219|     13|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (219:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  274|     13|                                                       NL_ASSERT_PREFIX_STRING,           \
  |  |  |  |  |  |  |  |  |  |  |  |  275|     13|                                                       NL_ASSERT_COMPONENT_STRING,        \
  |  |  |  |  |  |  |  |  |  |  |  |  276|     13|                                                       #condition,                        \
  |  |  |  |  |  |  |  |  |  |  |  |  277|     13|                                                       #label,                            \
  |  |  |  |  |  |  |  |  |  |  |  |  278|     13|                                                       NL_ASSERT_FILE,                    \
  |  |  |  |  |  |  |  |  |  |  |  |  279|     13|                                                       __LINE__,                          \
  |  |  |  |  |  |  |  |  |  |  |  |  280|     13|                                                       0);                                \
  |  |  |  |  |  |  |  |  |  |  |  |  281|     13|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  |  |  |  |  282|     13|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  283|    766|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (283:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   48|    753|    } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (48:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  179|    771|                                                                                                                                   \
  |  |  180|    771|        ASN1_ERR = ASN1_READER.GetObjectId(OUT_VAL);                                                                               \
  |  |  ------------------
  |  |  |  |   34|  1.50k|#define ASN1_ERR err
  |  |  ------------------
  |  |                       ASN1_ERR = ASN1_READER.GetObjectId(OUT_VAL);                                                                               \
  |  |  ------------------
  |  |  |  |   33|    753|#define ASN1_READER reader
  |  |  ------------------
  |  |  181|    753|        SuccessOrExit(ASN1_ERR);                                                                                                   \
  |  |  ------------------
  |  |  |  |  345|    753|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1400|    753|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  224|    753|    do                                                                                    \
  |  |  |  |  |  |  |  |  225|    753|    {                                                                                     \
  |  |  |  |  |  |  |  |  226|    753|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  125|    753|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 742, False: 11]
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  227|     11|        {                                                                                 \
  |  |  |  |  |  |  |  |  228|     11|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  189|     11|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  190|     11|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  191|     11|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  835|     11|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  194|     11|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  815|     11|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  197|     11|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  855|     11|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  200|     11|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  229|     11|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  230|     11|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  231|     11|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  232|     11|                                           #label,                                        \
  |  |  |  |  |  |  |  |  233|     11|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  234|     11|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  235|     11|                                           0);                                            \
  |  |  |  |  |  |  |  |  236|     11|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  237|     11|        }                                                                                 \
  |  |  |  |  |  |  |  |  238|    753|    } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  182|    753|    } while (0)
  |  |  ------------------
  |  |  |  Branch (182:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  929|    742|                    VerifyOrReturnError(GetOIDCategory(attrOID) == kOIDCategory_AttributeType, ASN1_ERROR_INVALID_ENCODING);
  ------------------
  |  |  251|    742|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|    742|    do                                                                                                                             \
  |  |  |  |  271|    742|    {                                                                                                                              \
  |  |  |  |  272|    742|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 115, False: 627]
  |  |  |  |  ------------------
  |  |  |  |  273|    742|        {                                                                                                                          \
  |  |  |  |  274|    115|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|    115|            return (value);                                                                                                        \
  |  |  |  |  276|    115|        }                                                                                                                          \
  |  |  |  |  277|    742|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  930|       |
  931|       |                    // AttributeValue ::= ANY -- DEFINED BY AttributeType
  932|    627|                    ASN1_PARSE_ANY;
  ------------------
  |  |   51|    627|    do                                                                                                                             \
  |  |   52|    627|    {                                                                                                                              \
  |  |   53|    627|        ASN1_ERR = ASN1_READER.Next();                                                                                             \
  |  |  ------------------
  |  |  |  |   34|  1.25k|#define ASN1_ERR err
  |  |  ------------------
  |  |                       ASN1_ERR = ASN1_READER.Next();                                                                                             \
  |  |  ------------------
  |  |  |  |   33|    627|#define ASN1_READER reader
  |  |  ------------------
  |  |   54|    627|        SuccessOrExit(ASN1_ERR);                                                                                                   \
  |  |  ------------------
  |  |  |  |  345|    627|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1400|    627|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  224|    627|    do                                                                                    \
  |  |  |  |  |  |  |  |  225|    627|    {                                                                                     \
  |  |  |  |  |  |  |  |  226|    627|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  125|    627|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 614, False: 13]
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  227|     13|        {                                                                                 \
  |  |  |  |  |  |  |  |  228|     13|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  189|     13|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  190|     13|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  191|     13|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  835|     13|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  194|     13|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  815|     13|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  197|     13|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  855|     13|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  200|     13|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  229|     13|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  230|     13|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  231|     13|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  232|     13|                                           #label,                                        \
  |  |  |  |  |  |  |  |  233|     13|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  234|     13|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  235|     13|                                           0);                                            \
  |  |  |  |  |  |  |  |  236|     13|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  237|     13|        }                                                                                 \
  |  |  |  |  |  |  |  |  238|    627|    } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   55|    627|    } while (0)
  |  |  ------------------
  |  |  |  Branch (55:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  933|       |
  934|    614|                    uint8_t attrTag = reader.GetTag();
  935|       |
  936|       |                    // Can only support UTF8String, PrintableString and IA5String.
  937|    614|                    VerifyOrReturnError(reader.GetClass() == kASN1TagClass_Universal &&
  ------------------
  |  |  251|    614|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|    614|    do                                                                                                                             \
  |  |  |  |  271|    614|    {                                                                                                                              \
  |  |  |  |  272|  3.06k|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:15): [True: 52, False: 560]
  |  |  |  |  |  Branch (272:15): [True: 505, False: 55]
  |  |  |  |  |  Branch (272:15): [True: 49, False: 6]
  |  |  |  |  |  Branch (272:15): [True: 612, False: 2]
  |  |  |  |  ------------------
  |  |  |  |  273|    614|        {                                                                                                                          \
  |  |  |  |  274|      8|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|      8|            return (value);                                                                                                        \
  |  |  |  |  276|      8|        }                                                                                                                          \
  |  |  |  |  277|    614|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  938|    606|                                            (attrTag == kASN1UniversalTag_PrintableString ||
  939|    606|                                             attrTag == kASN1UniversalTag_UTF8String || attrTag == kASN1UniversalTag_IA5String),
  940|    606|                                        ASN1_ERROR_UNSUPPORTED_ENCODING);
  941|       |
  942|       |                    // CHIP attributes must be UTF8Strings.
  943|    606|                    if (IsChipDNAttr(attrOID))
  ------------------
  |  Branch (943:25): [True: 492, False: 114]
  ------------------
  944|    492|                    {
  945|    492|                        VerifyOrReturnError(attrTag == kASN1UniversalTag_UTF8String, ASN1_ERROR_INVALID_ENCODING);
  ------------------
  |  |  251|    492|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|    492|    do                                                                                                                             \
  |  |  |  |  271|    492|    {                                                                                                                              \
  |  |  |  |  272|    492|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 1, False: 491]
  |  |  |  |  ------------------
  |  |  |  |  273|    492|        {                                                                                                                          \
  |  |  |  |  274|      1|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|      1|            return (value);                                                                                                        \
  |  |  |  |  276|      1|        }                                                                                                                          \
  |  |  |  |  277|    492|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  946|    492|                    }
  947|       |
  948|       |                    // If 64-bit CHIP attribute.
  949|    605|                    if (IsChip64bitDNAttr(attrOID))
  ------------------
  |  Branch (949:25): [True: 357, False: 248]
  ------------------
  950|    357|                    {
  951|    357|                        uint64_t chipAttr;
  952|    357|                        VerifyOrReturnError(Encoding::UppercaseHexToUint64(reinterpret_cast<const char *>(reader.GetValue()),
  ------------------
  |  |  251|    357|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|    357|    do                                                                                                                             \
  |  |  |  |  271|    357|    {                                                                                                                              \
  |  |  |  |  272|    357|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 51, False: 306]
  |  |  |  |  ------------------
  |  |  |  |  273|    357|        {                                                                                                                          \
  |  |  |  |  274|     51|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|     51|            return (value);                                                                                                        \
  |  |  |  |  276|     51|        }                                                                                                                          \
  |  |  |  |  277|    357|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  953|    306|                                                                           static_cast<size_t>(reader.GetValueLen()),
  954|    306|                                                                           chipAttr) == sizeof(uint64_t),
  955|    306|                                            ASN1_ERROR_INVALID_ENCODING);
  956|       |
  957|    306|                        if (attrOID == chip::ASN1::kOID_AttributeType_MatterNodeId)
  ------------------
  |  Branch (957:29): [True: 142, False: 164]
  ------------------
  958|    142|                        {
  959|    142|                            VerifyOrReturnError(IsOperationalNodeId(chipAttr), CHIP_ERROR_WRONG_NODE_ID);
  ------------------
  |  |  251|    142|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|    142|    do                                                                                                                             \
  |  |  |  |  271|    142|    {                                                                                                                              \
  |  |  |  |  272|    142|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 16, False: 126]
  |  |  |  |  ------------------
  |  |  |  |  273|    142|        {                                                                                                                          \
  |  |  |  |  274|     16|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|     16|            return (value);                                                                                                        \
  |  |  |  |  276|     16|        }                                                                                                                          \
  |  |  |  |  277|    142|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  960|    142|                        }
  961|    164|                        else if (attrOID == chip::ASN1::kOID_AttributeType_MatterFabricId)
  ------------------
  |  Branch (961:34): [True: 108, False: 56]
  ------------------
  962|    108|                        {
  963|    108|                            VerifyOrReturnError(IsValidFabricId(chipAttr), CHIP_ERROR_WRONG_CERT_DN);
  ------------------
  |  |  251|    108|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|    108|    do                                                                                                                             \
  |  |  |  |  271|    108|    {                                                                                                                              \
  |  |  |  |  272|    108|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 1, False: 107]
  |  |  |  |  ------------------
  |  |  |  |  273|    108|        {                                                                                                                          \
  |  |  |  |  274|      1|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|      1|            return (value);                                                                                                        \
  |  |  |  |  276|      1|        }                                                                                                                          \
  |  |  |  |  277|    108|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  964|    108|                        }
  965|       |
  966|    289|                        ReturnErrorOnFailure(AddAttribute(attrOID, chipAttr));
  ------------------
  |  |  150|    289|    do                                                                                                                             \
  |  |  151|    289|    {                                                                                                                              \
  |  |  152|    289|        auto __err = (expr);                                                                                                       \
  |  |  153|    289|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 1, False: 288]
  |  |  ------------------
  |  |  154|    289|        {                                                                                                                          \
  |  |  155|      1|            return __err;                                                                                                          \
  |  |  156|      1|        }                                                                                                                          \
  |  |  157|    289|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  967|    289|                    }
  968|       |                    // If 32-bit CHIP attribute.
  969|    248|                    else if (IsChip32bitDNAttr(attrOID))
  ------------------
  |  Branch (969:30): [True: 134, False: 114]
  ------------------
  970|    134|                    {
  971|    134|                        CASEAuthTag chipAttr;
  972|    134|                        VerifyOrReturnError(Encoding::UppercaseHexToUint32(reinterpret_cast<const char *>(reader.GetValue()),
  ------------------
  |  |  251|    134|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|    134|    do                                                                                                                             \
  |  |  |  |  271|    134|    {                                                                                                                              \
  |  |  |  |  272|    134|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 37, False: 97]
  |  |  |  |  ------------------
  |  |  |  |  273|    134|        {                                                                                                                          \
  |  |  |  |  274|     37|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|     37|            return (value);                                                                                                        \
  |  |  |  |  276|     37|        }                                                                                                                          \
  |  |  |  |  277|    134|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  973|     97|                                                                           reader.GetValueLen(), chipAttr) == sizeof(CASEAuthTag),
  974|     97|                                            ASN1_ERROR_INVALID_ENCODING);
  975|       |
  976|     97|                        VerifyOrReturnError(IsValidCASEAuthTag(chipAttr), CHIP_ERROR_WRONG_CERT_DN);
  ------------------
  |  |  251|     97|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|     97|    do                                                                                                                             \
  |  |  |  |  271|     97|    {                                                                                                                              \
  |  |  |  |  272|     97|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 1, False: 96]
  |  |  |  |  ------------------
  |  |  |  |  273|     97|        {                                                                                                                          \
  |  |  |  |  274|      1|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|      1|            return (value);                                                                                                        \
  |  |  |  |  276|      1|        }                                                                                                                          \
  |  |  |  |  277|     97|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  977|       |
  978|     96|                        ReturnErrorOnFailure(AddAttribute(attrOID, chipAttr));
  ------------------
  |  |  150|     96|    do                                                                                                                             \
  |  |  151|     96|    {                                                                                                                              \
  |  |  152|     96|        auto __err = (expr);                                                                                                       \
  |  |  153|     96|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 2, False: 94]
  |  |  ------------------
  |  |  154|     96|        {                                                                                                                          \
  |  |  155|      2|            return __err;                                                                                                          \
  |  |  156|      2|        }                                                                                                                          \
  |  |  157|     96|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  979|     96|                    }
  980|       |                    // Otherwise, it is a string.
  981|    114|                    else
  982|    114|                    {
  983|    114|                        ReturnErrorOnFailure(AddAttribute(attrOID,
  ------------------
  |  |  150|    114|    do                                                                                                                             \
  |  |  151|    114|    {                                                                                                                              \
  |  |  152|    114|        auto __err = (expr);                                                                                                       \
  |  |  153|    114|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 1, False: 113]
  |  |  ------------------
  |  |  154|    114|        {                                                                                                                          \
  |  |  155|      1|            return __err;                                                                                                          \
  |  |  156|      1|        }                                                                                                                          \
  |  |  157|    114|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  984|    114|                                                          CharSpan(Uint8::to_const_char(reader.GetValue()), reader.GetValueLen()),
  985|    114|                                                          attrTag == kASN1UniversalTag_PrintableString));
  986|    114|                    }
  987|    605|                }
  988|    605|                ASN1_EXIT_SEQUENCE;
  ------------------
  |  |   99|    605|#define ASN1_EXIT_SEQUENCE ASN1_EXIT_CONSTRUCTED
  |  |  ------------------
  |  |  |  |   77|    495|    ASN1_ERR = ASN1_READER.Next();                                                                                                 \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|    990|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |                   ASN1_ERR = ASN1_READER.Next();                                                                                                 \
  |  |  |  |  ------------------
  |  |  |  |  |  |   33|    495|#define ASN1_READER reader
  |  |  |  |  ------------------
  |  |  |  |   78|    495|    if (ASN1_ERR == CHIP_NO_ERROR)                                                                                                 \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|    990|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |                   if (ASN1_ERR == CHIP_NO_ERROR)                                                                                                 \
  |  |  |  |  ------------------
  |  |  |  |  |  |  482|    495|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (78:9): [True: 1, False: 494]
  |  |  |  |  ------------------
  |  |  |  |   79|    495|        ASN1_ERR = ASN1_ERROR_INVALID_ENCODING;                                                                                    \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|      2|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |                       ASN1_ERR = ASN1_ERROR_INVALID_ENCODING;                                                                                    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  101|      1|#define ASN1_ERROR_INVALID_ENCODING     CHIP_ASN1_ERROR(0x05)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   36|      1|#define CHIP_ASN1_ERROR(e) CHIP_SDK_ERROR(::chip::ChipError::SdkPart::kASN1, (e))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  171|      1|    (::chip::ChipError(::chip::ChipError::SdkErrorConstant<(part), (code)>::value, __FILE__, __LINE__))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   80|    495|    else if (ASN1_ERR == ASN1_END)                                                                                                 \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|    988|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |                   else if (ASN1_ERR == ASN1_END)                                                                                                 \
  |  |  |  |  ------------------
  |  |  |  |  |  |   56|    494|#define ASN1_END                        CHIP_ASN1_ERROR(0x00)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   36|    494|#define CHIP_ASN1_ERROR(e) CHIP_SDK_ERROR(::chip::ChipError::SdkPart::kASN1, (e))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  171|    494|    (::chip::ChipError(::chip::ChipError::SdkErrorConstant<(part), (code)>::value, __FILE__, __LINE__))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (80:14): [True: 454, False: 40]
  |  |  |  |  ------------------
  |  |  |  |   81|    494|        ASN1_ERR = CHIP_NO_ERROR;                                                                                                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|    908|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |                       ASN1_ERR = CHIP_NO_ERROR;                                                                                                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  482|    454|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  |  |  |  |  ------------------
  |  |  |  |   82|    495|    SuccessOrExit(ASN1_ERR);                                                                                                       \
  |  |  |  |  ------------------
  |  |  |  |  |  |  345|    495|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1400|    495|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  224|    495|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  225|    495|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  226|    495|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  125|    495|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 454, False: 41]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  227|     41|        {                                                                                 \
  |  |  |  |  |  |  |  |  |  |  228|     41|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  189|     41|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  190|     41|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  191|     41|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  835|     41|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  194|     41|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  815|     41|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  197|     41|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  855|     41|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  200|     41|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  229|     41|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  |  |  230|     41|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  |  |  231|     41|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  |  |  232|     41|                                           #label,                                        \
  |  |  |  |  |  |  |  |  |  |  233|     41|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  |  |  234|     41|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  |  |  235|     41|                                           0);                                            \
  |  |  |  |  |  |  |  |  |  |  236|     41|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  |  |  237|     41|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  238|    495|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   83|    495|                                                                                                                                   \
  |  |  |  |   84|    495|    ASN1_ERR = ASN1_READER.ExitConstructedType();                                                                                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|    908|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |                   ASN1_ERR = ASN1_READER.ExitConstructedType();                                                                                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   33|    454|#define ASN1_READER reader
  |  |  |  |  ------------------
  |  |  |  |   85|    454|    SuccessOrExit(ASN1_ERR);                                                                                                       \
  |  |  |  |  ------------------
  |  |  |  |  |  |  345|    454|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1400|    454|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  224|    454|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  225|    454|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  226|    454|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  125|    454|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 438, False: 16]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  227|     16|        {                                                                                 \
  |  |  |  |  |  |  |  |  |  |  228|     16|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  189|     16|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  190|     16|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  191|     16|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  835|     16|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  194|     16|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  815|     16|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  197|     16|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  855|     16|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  200|     16|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  229|     16|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  |  |  230|     16|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  |  |  231|     16|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  |  |  232|     16|                                           #label,                                        \
  |  |  |  |  |  |  |  |  |  |  233|     16|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  |  |  234|     16|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  |  |  235|     16|                                           0);                                            \
  |  |  |  |  |  |  |  |  |  |  236|     16|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  |  |  237|     16|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  238|    454|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   86|    454|    }                                                                                                                              \
  |  |  |  |   87|    779|    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (87:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  989|       |
  990|       |                // Only one AttributeTypeAndValue allowed per RDN.
  991|    438|                err = reader.Next();
  992|    438|                VerifyOrReturnError(err != CHIP_NO_ERROR, ASN1_ERROR_UNSUPPORTED_ENCODING);
  ------------------
  |  |  251|    438|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|    438|    do                                                                                                                             \
  |  |  |  |  271|    438|    {                                                                                                                              \
  |  |  |  |  272|    438|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 1, False: 437]
  |  |  |  |  ------------------
  |  |  |  |  273|    438|        {                                                                                                                          \
  |  |  |  |  274|      1|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|      1|            return (value);                                                                                                        \
  |  |  |  |  276|      1|        }                                                                                                                          \
  |  |  |  |  277|    438|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  993|    437|                VerifyOrReturnError(err == ASN1_END, err);
  ------------------
  |  |  251|    437|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|    437|    do                                                                                                                             \
  |  |  |  |  271|    437|    {                                                                                                                              \
  |  |  |  |  272|    437|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 92, False: 345]
  |  |  |  |  ------------------
  |  |  |  |  273|    437|        {                                                                                                                          \
  |  |  |  |  274|     92|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|     92|            return (value);                                                                                                        \
  |  |  |  |  276|     92|        }                                                                                                                          \
  |  |  |  |  277|    437|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  994|    437|            }
  995|    437|            ASN1_EXIT_SET;
  ------------------
  |  |  107|    437|#define ASN1_EXIT_SET ASN1_EXIT_CONSTRUCTED
  |  |  ------------------
  |  |  |  |   77|    345|    ASN1_ERR = ASN1_READER.Next();                                                                                                 \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|    690|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |                   ASN1_ERR = ASN1_READER.Next();                                                                                                 \
  |  |  |  |  ------------------
  |  |  |  |  |  |   33|    345|#define ASN1_READER reader
  |  |  |  |  ------------------
  |  |  |  |   78|    345|    if (ASN1_ERR == CHIP_NO_ERROR)                                                                                                 \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|    690|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |                   if (ASN1_ERR == CHIP_NO_ERROR)                                                                                                 \
  |  |  |  |  ------------------
  |  |  |  |  |  |  482|    345|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (78:9): [True: 0, False: 345]
  |  |  |  |  ------------------
  |  |  |  |   79|    345|        ASN1_ERR = ASN1_ERROR_INVALID_ENCODING;                                                                                    \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|      0|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |                       ASN1_ERR = ASN1_ERROR_INVALID_ENCODING;                                                                                    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  101|      0|#define ASN1_ERROR_INVALID_ENCODING     CHIP_ASN1_ERROR(0x05)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   36|      0|#define CHIP_ASN1_ERROR(e) CHIP_SDK_ERROR(::chip::ChipError::SdkPart::kASN1, (e))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  171|      0|    (::chip::ChipError(::chip::ChipError::SdkErrorConstant<(part), (code)>::value, __FILE__, __LINE__))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   80|    345|    else if (ASN1_ERR == ASN1_END)                                                                                                 \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|    690|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |                   else if (ASN1_ERR == ASN1_END)                                                                                                 \
  |  |  |  |  ------------------
  |  |  |  |  |  |   56|    345|#define ASN1_END                        CHIP_ASN1_ERROR(0x00)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   36|    345|#define CHIP_ASN1_ERROR(e) CHIP_SDK_ERROR(::chip::ChipError::SdkPart::kASN1, (e))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  171|    345|    (::chip::ChipError(::chip::ChipError::SdkErrorConstant<(part), (code)>::value, __FILE__, __LINE__))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (80:14): [True: 345, False: 0]
  |  |  |  |  ------------------
  |  |  |  |   81|    345|        ASN1_ERR = CHIP_NO_ERROR;                                                                                                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|    690|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |                       ASN1_ERR = CHIP_NO_ERROR;                                                                                                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  482|    345|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  |  |  |  |  ------------------
  |  |  |  |   82|    345|    SuccessOrExit(ASN1_ERR);                                                                                                       \
  |  |  |  |  ------------------
  |  |  |  |  |  |  345|    345|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1400|    345|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  224|    345|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  225|    345|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  226|    345|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  125|    345|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 345, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  227|      0|        {                                                                                 \
  |  |  |  |  |  |  |  |  |  |  228|      0|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  189|      0|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  190|      0|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  191|      0|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  835|      0|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  194|      0|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  815|      0|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  197|      0|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  855|      0|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  200|      0|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  229|      0|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  |  |  230|      0|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  |  |  231|      0|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  |  |  232|      0|                                           #label,                                        \
  |  |  |  |  |  |  |  |  |  |  233|      0|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  |  |  234|      0|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  |  |  235|      0|                                           0);                                            \
  |  |  |  |  |  |  |  |  |  |  236|      0|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  |  |  237|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  238|    345|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   83|    345|                                                                                                                                   \
  |  |  |  |   84|    345|    ASN1_ERR = ASN1_READER.ExitConstructedType();                                                                                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|    690|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |                   ASN1_ERR = ASN1_READER.ExitConstructedType();                                                                                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   33|    345|#define ASN1_READER reader
  |  |  |  |  ------------------
  |  |  |  |   85|    345|    SuccessOrExit(ASN1_ERR);                                                                                                       \
  |  |  |  |  ------------------
  |  |  |  |  |  |  345|    345|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1400|    345|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  224|    345|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  225|    345|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  226|    345|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  125|    345|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 331, False: 14]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  227|     14|        {                                                                                 \
  |  |  |  |  |  |  |  |  |  |  228|     14|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  189|     14|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  190|     14|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  191|     14|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  835|     14|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  194|     14|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  815|     14|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  197|     14|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  855|     14|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  200|     14|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  229|     14|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  |  |  230|     14|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  |  |  231|     14|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  |  |  232|     14|                                           #label,                                        \
  |  |  |  |  |  |  |  |  |  |  233|     14|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  |  |  234|     14|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  |  |  235|     14|                                           0);                                            \
  |  |  |  |  |  |  |  |  |  |  236|     14|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  |  |  237|     14|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  238|    345|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   86|    345|    }                                                                                                                              \
  |  |  |  |   87|    783|    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (87:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  996|    783|        }
  997|    611|    }
  998|    611|    ASN1_EXIT_SEQUENCE;
  ------------------
  |  |   99|    611|#define ASN1_EXIT_SEQUENCE ASN1_EXIT_CONSTRUCTED
  |  |  ------------------
  |  |  |  |   77|    159|    ASN1_ERR = ASN1_READER.Next();                                                                                                 \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|    318|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |                   ASN1_ERR = ASN1_READER.Next();                                                                                                 \
  |  |  |  |  ------------------
  |  |  |  |  |  |   33|    159|#define ASN1_READER reader
  |  |  |  |  ------------------
  |  |  |  |   78|    159|    if (ASN1_ERR == CHIP_NO_ERROR)                                                                                                 \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|    318|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |                   if (ASN1_ERR == CHIP_NO_ERROR)                                                                                                 \
  |  |  |  |  ------------------
  |  |  |  |  |  |  482|    159|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (78:9): [True: 1, False: 158]
  |  |  |  |  ------------------
  |  |  |  |   79|    159|        ASN1_ERR = ASN1_ERROR_INVALID_ENCODING;                                                                                    \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|      2|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |                       ASN1_ERR = ASN1_ERROR_INVALID_ENCODING;                                                                                    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  101|      1|#define ASN1_ERROR_INVALID_ENCODING     CHIP_ASN1_ERROR(0x05)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   36|      1|#define CHIP_ASN1_ERROR(e) CHIP_SDK_ERROR(::chip::ChipError::SdkPart::kASN1, (e))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  171|      1|    (::chip::ChipError(::chip::ChipError::SdkErrorConstant<(part), (code)>::value, __FILE__, __LINE__))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   80|    159|    else if (ASN1_ERR == ASN1_END)                                                                                                 \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|    316|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |                   else if (ASN1_ERR == ASN1_END)                                                                                                 \
  |  |  |  |  ------------------
  |  |  |  |  |  |   56|    158|#define ASN1_END                        CHIP_ASN1_ERROR(0x00)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   36|    158|#define CHIP_ASN1_ERROR(e) CHIP_SDK_ERROR(::chip::ChipError::SdkPart::kASN1, (e))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  171|    158|    (::chip::ChipError(::chip::ChipError::SdkErrorConstant<(part), (code)>::value, __FILE__, __LINE__))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (80:14): [True: 35, False: 123]
  |  |  |  |  ------------------
  |  |  |  |   81|    158|        ASN1_ERR = CHIP_NO_ERROR;                                                                                                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|     70|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |                       ASN1_ERR = CHIP_NO_ERROR;                                                                                                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  482|     35|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  |  |  |  |  ------------------
  |  |  |  |   82|    159|    SuccessOrExit(ASN1_ERR);                                                                                                       \
  |  |  |  |  ------------------
  |  |  |  |  |  |  345|    159|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1400|    159|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  224|    159|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  225|    159|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  226|    159|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  125|    159|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 35, False: 124]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  227|    124|        {                                                                                 \
  |  |  |  |  |  |  |  |  |  |  228|    124|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  189|    124|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  190|    124|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  191|    124|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  835|    124|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  194|    124|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  815|    124|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  197|    124|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  855|    124|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  200|    124|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  229|    124|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  |  |  230|    124|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  |  |  231|    124|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  |  |  232|    124|                                           #label,                                        \
  |  |  |  |  |  |  |  |  |  |  233|    124|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  |  |  234|    124|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  |  |  235|    124|                                           0);                                            \
  |  |  |  |  |  |  |  |  |  |  236|    124|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  |  |  237|    124|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  238|    159|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   83|    159|                                                                                                                                   \
  |  |  |  |   84|    159|    ASN1_ERR = ASN1_READER.ExitConstructedType();                                                                                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|     70|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |                   ASN1_ERR = ASN1_READER.ExitConstructedType();                                                                                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   33|     35|#define ASN1_READER reader
  |  |  |  |  ------------------
  |  |  |  |   85|     35|    SuccessOrExit(ASN1_ERR);                                                                                                       \
  |  |  |  |  ------------------
  |  |  |  |  |  |  345|     35|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1400|     35|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  224|     35|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  225|     35|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  226|     35|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  125|     35|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 10, False: 25]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  227|     25|        {                                                                                 \
  |  |  |  |  |  |  |  |  |  |  228|     25|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  189|     25|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  190|     25|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  191|     25|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  835|     25|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  194|     25|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  815|     25|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  197|     25|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  855|     25|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  200|     25|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  229|     25|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  |  |  230|     25|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  |  |  231|     25|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  |  |  232|     25|                                           #label,                                        \
  |  |  |  |  |  |  |  |  |  |  233|     25|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  |  |  234|     25|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  |  |  235|     25|                                           0);                                            \
  |  |  |  |  |  |  |  |  |  |  236|     25|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  |  |  237|     25|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  238|     35|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   86|     35|    }                                                                                                                              \
  |  |  |  |   87|    618|    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (87:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  999|       |
 1000|    291|exit:
 1001|    291|    return err;
 1002|    618|}
_ZN4chip11Credentials19ChipEpochToASN1TimeEjRNS_4ASN117ASN1UniversalTimeE:
 1063|  6.22k|{
 1064|       |    // X.509/RFC5280 defines the special time 99991231235959Z to mean 'no well-defined expiration date'.
 1065|       |    // In CHIP certificate it is represented as a CHIP Epoch time value of 0 secs (2000-01-01 00:00:00 UTC).
 1066|       |    //
 1067|       |    // For simplicity and symmetry with ASN1ToChipEpochTime, this method makes this conversion for all
 1068|       |    // times, which in consuming code can create a conversion from CHIP epoch 0 seconds to 99991231235959Z
 1069|       |    // for NotBefore, which is not conventional.
 1070|       |    //
 1071|       |    // If an original X509 certificate encloses a NotBefore time that is the CHIP Epoch itself, 2000-01-01
 1072|       |    // 00:00:00, the resultant X509 certificate in a conversion back from CHIP TLV format using this time
 1073|       |    // conversion method will instead enclose the NotBefore time 99991231235959Z, which will invalidiate the
 1074|       |    // TBS signature.  Thus, certificates with this specific attribute are not usable with this code.
 1075|       |    // Attempted installation of such certficates will fail during commissioning.
 1076|  6.22k|    if (epochTime == kNullCertTime)
  ------------------
  |  Branch (1076:9): [True: 1.80k, False: 4.41k]
  ------------------
 1077|  1.80k|    {
 1078|  1.80k|        asn1Time.Year   = kX509NoWellDefinedExpirationDateYear;
 1079|  1.80k|        asn1Time.Month  = kMonthsPerYear;
 1080|  1.80k|        asn1Time.Day    = kMaxDaysPerMonth;
 1081|  1.80k|        asn1Time.Hour   = kHoursPerDay - 1;
 1082|  1.80k|        asn1Time.Minute = kMinutesPerHour - 1;
 1083|  1.80k|        asn1Time.Second = kSecondsPerMinute - 1;
 1084|  1.80k|    }
 1085|  4.41k|    else
 1086|  4.41k|    {
 1087|  4.41k|        ChipEpochToCalendarTime(epochTime, asn1Time.Year, asn1Time.Month, asn1Time.Day, asn1Time.Hour, asn1Time.Minute,
 1088|  4.41k|                                asn1Time.Second);
 1089|  4.41k|    }
 1090|       |
 1091|  6.22k|    return CHIP_NO_ERROR;
  ------------------
  |  |  482|  6.22k|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  ------------------
 1092|  6.22k|}
_ZN4chip11Credentials31ExtractNodeIdFabricIdFromOpCertERKNS0_19ChipCertificateDataEPmS4_:
 1245|     25|{
 1246|       |    // Since we assume the cert is pre-validated, we are going to assume that
 1247|       |    // its subject in fact has both a node id and a fabric id.
 1248|     25|    VerifyOrReturnError(outNodeId != nullptr && outFabricId != nullptr, CHIP_ERROR_INVALID_ARGUMENT);
  ------------------
  |  |  251|     25|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|     25|    do                                                                                                                             \
  |  |  |  |  271|     25|    {                                                                                                                              \
  |  |  |  |  272|     50|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:15): [True: 25, False: 0]
  |  |  |  |  |  Branch (272:15): [True: 25, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  273|     25|        {                                                                                                                          \
  |  |  |  |  274|      0|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|      0|            return (value);                                                                                                        \
  |  |  |  |  276|      0|        }                                                                                                                          \
  |  |  |  |  277|     25|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1249|     25|    NodeId nodeId      = 0;
 1250|     25|    FabricId fabricId  = kUndefinedFabricId;
 1251|     25|    bool foundNodeId   = false;
 1252|     25|    bool foundFabricId = false;
 1253|       |
 1254|     25|    const ChipDN & subjectDN = opcert.mSubjectDN;
 1255|     84|    for (uint8_t i = 0; i < subjectDN.RDNCount(); ++i)
  ------------------
  |  Branch (1255:25): [True: 59, False: 25]
  ------------------
 1256|     59|    {
 1257|     59|        const auto & rdn = subjectDN.rdn[i];
 1258|     59|        if (rdn.mAttrOID == ASN1::kOID_AttributeType_MatterNodeId)
  ------------------
  |  Branch (1258:13): [True: 12, False: 47]
  ------------------
 1259|     12|        {
 1260|     12|            nodeId      = rdn.mChipVal;
 1261|     12|            foundNodeId = true;
 1262|     12|        }
 1263|     47|        else if (rdn.mAttrOID == ASN1::kOID_AttributeType_MatterFabricId)
  ------------------
  |  Branch (1263:18): [True: 20, False: 27]
  ------------------
 1264|     20|        {
 1265|     20|            fabricId      = rdn.mChipVal;
 1266|     20|            foundFabricId = true;
 1267|     20|        }
 1268|     59|    }
 1269|     25|    if (!foundNodeId || !foundFabricId)
  ------------------
  |  Branch (1269:9): [True: 19, False: 6]
  |  Branch (1269:25): [True: 4, False: 2]
  ------------------
 1270|     23|    {
 1271|     23|        return CHIP_ERROR_NOT_FOUND;
  ------------------
  |  | 1750|     23|#define CHIP_ERROR_NOT_FOUND                                       CHIP_CORE_ERROR(0xd8)
  |  |  ------------------
  |  |  |  |  436|     23|#define CHIP_CORE_ERROR(e) CHIP_SDK_ERROR(::chip::ChipError::SdkPart::kCore, (e))
  |  |  |  |  ------------------
  |  |  |  |  |  |  171|     23|    (::chip::ChipError(::chip::ChipError::SdkErrorConstant<(part), (code)>::value, __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1272|     23|    }
 1273|       |
 1274|      2|    *outNodeId   = nodeId;
 1275|      2|    *outFabricId = fabricId;
 1276|      2|    return CHIP_NO_ERROR;
  ------------------
  |  |  482|      2|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  ------------------
 1277|     25|}
_ZN4chip11Credentials23ExtractFabricIdFromCertERKNS0_19ChipCertificateDataEPm:
 1300|     25|{
 1301|     25|    const ChipDN & subjectDN = cert.mSubjectDN;
 1302|     59|    for (uint8_t i = 0; i < subjectDN.RDNCount(); ++i)
  ------------------
  |  Branch (1302:25): [True: 43, False: 16]
  ------------------
 1303|     43|    {
 1304|     43|        const auto & rdn = subjectDN.rdn[i];
 1305|     43|        if (rdn.mAttrOID == ASN1::kOID_AttributeType_MatterFabricId)
  ------------------
  |  Branch (1305:13): [True: 9, False: 34]
  ------------------
 1306|      9|        {
 1307|      9|            *fabricId = rdn.mChipVal;
 1308|      9|            return CHIP_NO_ERROR;
  ------------------
  |  |  482|      9|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  ------------------
 1309|      9|        }
 1310|     43|    }
 1311|       |
 1312|     16|    return CHIP_ERROR_NOT_FOUND;
  ------------------
  |  | 1750|     16|#define CHIP_ERROR_NOT_FOUND                                       CHIP_CORE_ERROR(0xd8)
  |  |  ------------------
  |  |  |  |  436|     16|#define CHIP_CORE_ERROR(e) CHIP_SDK_ERROR(::chip::ChipError::SdkPart::kCore, (e))
  |  |  |  |  ------------------
  |  |  |  |  |  |  171|     16|    (::chip::ChipError(::chip::ChipError::SdkErrorConstant<(part), (code)>::value, __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1313|     25|}
_ZN4chip11Credentials23ExtractFabricIdFromCertERKNS_4SpanIKhEEPm:
 1361|  3.72k|{
 1362|  3.72k|    ChipCertificateData certData;
 1363|  3.72k|    ReturnErrorOnFailure(DecodeChipCert(opcert, certData));
  ------------------
  |  |  150|  3.72k|    do                                                                                                                             \
  |  |  151|  3.72k|    {                                                                                                                              \
  |  |  152|  3.72k|        auto __err = (expr);                                                                                                       \
  |  |  153|  3.72k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 3.69k, False: 25]
  |  |  ------------------
  |  |  154|  3.72k|        {                                                                                                                          \
  |  |  155|  3.69k|            return __err;                                                                                                          \
  |  |  156|  3.69k|        }                                                                                                                          \
  |  |  157|  3.72k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1364|     25|    return ExtractFabricIdFromCert(certData, fabricId);
 1365|  3.72k|}
_ZN4chip11Credentials31ExtractNodeIdFabricIdFromOpCertERKNS_4SpanIKhEEPmS6_:
 1368|  3.72k|{
 1369|  3.72k|    ChipCertificateData certData;
 1370|  3.72k|    ReturnErrorOnFailure(DecodeChipCert(opcert, certData));
  ------------------
  |  |  150|  3.72k|    do                                                                                                                             \
  |  |  151|  3.72k|    {                                                                                                                              \
  |  |  152|  3.72k|        auto __err = (expr);                                                                                                       \
  |  |  153|  3.72k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 3.69k, False: 25]
  |  |  ------------------
  |  |  154|  3.72k|        {                                                                                                                          \
  |  |  155|  3.69k|            return __err;                                                                                                          \
  |  |  156|  3.69k|        }                                                                                                                          \
  |  |  157|  3.72k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1371|     25|    return ExtractNodeIdFabricIdFromOpCert(certData, nodeId, fabricId);
 1372|  3.72k|}
_ZN4chip11Credentials28ExtractPublicKeyFromChipCertERKNS_4SpanIKhEERNS_9FixedSpanIS2_Lm65EEE:
 1375|  3.72k|{
 1376|  3.72k|    ChipCertificateData certData;
 1377|  3.72k|    ReturnErrorOnFailure(DecodeChipCert(chipCert, certData));
  ------------------
  |  |  150|  3.72k|    do                                                                                                                             \
  |  |  151|  3.72k|    {                                                                                                                              \
  |  |  152|  3.72k|        auto __err = (expr);                                                                                                       \
  |  |  153|  3.72k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 3.69k, False: 25]
  |  |  ------------------
  |  |  154|  3.72k|        {                                                                                                                          \
  |  |  155|  3.69k|            return __err;                                                                                                          \
  |  |  156|  3.69k|        }                                                                                                                          \
  |  |  157|  3.72k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1378|     25|    publicKey = certData.mPublicKey;
 1379|     25|    return CHIP_NO_ERROR;
  ------------------
  |  |  482|     25|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  ------------------
 1380|  3.72k|}
_ZN4chip11Credentials28ExtractSubjectDNFromX509CertERKNS_4SpanIKhEERNS0_6ChipDNE:
 1408|  3.72k|{
 1409|  3.72k|    CHIP_ERROR err;
 1410|  3.72k|    ASN1Reader reader;
 1411|       |
 1412|  3.72k|    VerifyOrReturnError(CanCastTo<uint32_t>(x509Cert.size()), CHIP_ERROR_INVALID_ARGUMENT);
  ------------------
  |  |  251|  3.72k|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|  3.72k|    do                                                                                                                             \
  |  |  |  |  271|  3.72k|    {                                                                                                                              \
  |  |  |  |  272|  3.72k|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 0, False: 3.72k]
  |  |  |  |  ------------------
  |  |  |  |  273|  3.72k|        {                                                                                                                          \
  |  |  |  |  274|      0|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|      0|            return (value);                                                                                                        \
  |  |  |  |  276|      0|        }                                                                                                                          \
  |  |  |  |  277|  3.72k|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1413|       |
 1414|  3.72k|    reader.Init(x509Cert);
 1415|       |
 1416|       |    // Certificate ::= SEQUENCE
 1417|  3.72k|    ASN1_PARSE_ENTER_SEQUENCE
  ------------------
  |  |   95|  3.72k|#define ASN1_PARSE_ENTER_SEQUENCE ASN1_PARSE_ENTER_CONSTRUCTED(kASN1TagClass_Universal, kASN1UniversalTag_Sequence)
  |  |  ------------------
  |  |  |  |   66|  3.72k|    do                                                                                                                             \
  |  |  |  |   67|  3.72k|    {                                                                                                                              \
  |  |  |  |   68|  3.72k|        ASN1_ERR = ASN1_READER.Next();                                                                                             \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|  7.44k|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |                       ASN1_ERR = ASN1_READER.Next();                                                                                             \
  |  |  |  |  ------------------
  |  |  |  |  |  |   33|  3.72k|#define ASN1_READER reader
  |  |  |  |  ------------------
  |  |  |  |   69|  3.72k|        SuccessOrExit(ASN1_ERR);                                                                                                   \
  |  |  |  |  ------------------
  |  |  |  |  |  |  345|  3.72k|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1400|  3.72k|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  224|  3.72k|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  225|  3.72k|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  226|  3.72k|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  125|  3.72k|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 1.53k, False: 2.18k]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  227|  2.18k|        {                                                                                 \
  |  |  |  |  |  |  |  |  |  |  228|  2.18k|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  189|  2.18k|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  190|  2.18k|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  191|  2.18k|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  835|  2.18k|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  194|  2.18k|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  815|  2.18k|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  197|  2.18k|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  855|  2.18k|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  200|  2.18k|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  229|  2.18k|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  |  |  230|  2.18k|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  |  |  231|  2.18k|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  |  |  232|  2.18k|                                           #label,                                        \
  |  |  |  |  |  |  |  |  |  |  233|  2.18k|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  |  |  234|  2.18k|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  |  |  235|  2.18k|                                           0);                                            \
  |  |  |  |  |  |  |  |  |  |  236|  2.18k|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  |  |  237|  2.18k|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  238|  3.72k|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   70|  3.72k|                                                                                                                                   \
  |  |  |  |   71|  3.72k|        ASN1_VERIFY_TAG(CLASS, TAG);                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  |   39|  1.53k|    VerifyOrExit(ASN1_READER.GetClass() == (CLASS) && ASN1_READER.GetTag() == (TAG), ASN1_ERR = ASN1_ERROR_INVALID_ENCODING);
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  390|  1.53k|#define VerifyOrExit(aCondition, anAction) nlEXPECT_ACTION(aCondition, exit, anAction)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  | 1454|  1.53k|#define nlEXPECT_ACTION(aCondition, aLabel, anAction)                           __nlEXPECT_ACTION(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel, anAction)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  258|  1.53k|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  259|  1.53k|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  260|  1.53k|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  125|  4.58k|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 1.50k, False: 30]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 736, False: 771]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  261|    801|        {                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  262|    801|            __NL_ASSERT_MAYBE_RUN_PRE_ACTION_TRIGGERS((flags),                            \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  203|    801|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  204|    801|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  205|    801|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  835|    801|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (205:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  206|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  207|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  208|    801|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  815|    801|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (208:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  209|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  210|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  211|    801|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (211:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  263|    801|                                                      NL_ASSERT_PREFIX_STRING,            \
  |  |  |  |  |  |  |  |  |  |  |  |  264|    801|                                                      NL_ASSERT_COMPONENT_STRING,         \
  |  |  |  |  |  |  |  |  |  |  |  |  265|    801|                                                      #condition,                         \
  |  |  |  |  |  |  |  |  |  |  |  |  266|    801|                                                      #label,                             \
  |  |  |  |  |  |  |  |  |  |  |  |  267|    801|                                                      NL_ASSERT_FILE,                     \
  |  |  |  |  |  |  |  |  |  |  |  |  268|    801|                                                      __LINE__,                           \
  |  |  |  |  |  |  |  |  |  |  |  |  269|    801|                                                      0);                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  270|    801|            {                                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  271|    801|                action;                                                                   \
  |  |  |  |  |  |  |  |  |  |  |  |  272|    801|            }                                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  273|    801|            __NL_ASSERT_MAYBE_RUN_POST_ACTION_TRIGGERS((flags),                           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  214|    801|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  215|    801|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  216|    801|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  855|    801|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (216:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  217|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  218|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  219|    801|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (219:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  274|    801|                                                       NL_ASSERT_PREFIX_STRING,           \
  |  |  |  |  |  |  |  |  |  |  |  |  275|    801|                                                       NL_ASSERT_COMPONENT_STRING,        \
  |  |  |  |  |  |  |  |  |  |  |  |  276|    801|                                                       #condition,                        \
  |  |  |  |  |  |  |  |  |  |  |  |  277|    801|                                                       #label,                            \
  |  |  |  |  |  |  |  |  |  |  |  |  278|    801|                                                       NL_ASSERT_FILE,                    \
  |  |  |  |  |  |  |  |  |  |  |  |  279|    801|                                                       __LINE__,                          \
  |  |  |  |  |  |  |  |  |  |  |  |  280|    801|                                                       0);                                \
  |  |  |  |  |  |  |  |  |  |  |  |  281|    801|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  |  |  |  |  282|    801|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  283|  1.53k|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (283:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   72|    736|                                                                                                                                   \
  |  |  |  |   73|    736|        ASN1_ERR = ASN1_READER.EnterConstructedType();                                                                             \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|  1.47k|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |                       ASN1_ERR = ASN1_READER.EnterConstructedType();                                                                             \
  |  |  |  |  ------------------
  |  |  |  |  |  |   33|    736|#define ASN1_READER reader
  |  |  |  |  ------------------
  |  |  |  |   74|  3.72k|        SuccessOrExit(ASN1_ERR);
  |  |  |  |  ------------------
  |  |  |  |  |  |  345|  3.72k|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1400|  3.72k|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  224|  3.72k|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  225|  3.72k|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  226|    736|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  125|    736|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 727, False: 9]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  227|      9|        {                                                                                 \
  |  |  |  |  |  |  |  |  |  |  228|      9|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  189|      9|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  190|      9|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  191|      9|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  835|      9|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  194|      9|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  815|      9|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  197|      9|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  855|      9|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  200|      9|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  229|      9|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  |  |  230|      9|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  |  |  231|      9|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  |  |  232|      9|                                           #label,                                        \
  |  |  |  |  |  |  |  |  |  |  233|      9|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  |  |  234|      9|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  |  |  235|      9|                                           0);                                            \
  |  |  |  |  |  |  |  |  |  |  236|      9|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  |  |  237|      9|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  238|    736|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1418|    727|    {
 1419|       |        // tbsCertificate TBSCertificate,
 1420|       |        // TBSCertificate ::= SEQUENCE
 1421|    727|        ASN1_PARSE_ENTER_SEQUENCE
  ------------------
  |  |   95|    727|#define ASN1_PARSE_ENTER_SEQUENCE ASN1_PARSE_ENTER_CONSTRUCTED(kASN1TagClass_Universal, kASN1UniversalTag_Sequence)
  |  |  ------------------
  |  |  |  |   66|    727|    do                                                                                                                             \
  |  |  |  |   67|    727|    {                                                                                                                              \
  |  |  |  |   68|    727|        ASN1_ERR = ASN1_READER.Next();                                                                                             \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|  1.45k|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |                       ASN1_ERR = ASN1_READER.Next();                                                                                             \
  |  |  |  |  ------------------
  |  |  |  |  |  |   33|    727|#define ASN1_READER reader
  |  |  |  |  ------------------
  |  |  |  |   69|    727|        SuccessOrExit(ASN1_ERR);                                                                                                   \
  |  |  |  |  ------------------
  |  |  |  |  |  |  345|    727|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1400|    727|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  224|    727|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  225|    727|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  226|    727|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  125|    727|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 715, False: 12]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  227|     12|        {                                                                                 \
  |  |  |  |  |  |  |  |  |  |  228|     12|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  189|     12|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  190|     12|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  191|     12|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  835|     12|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  194|     12|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  815|     12|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  197|     12|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  855|     12|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  200|     12|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  229|     12|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  |  |  230|     12|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  |  |  231|     12|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  |  |  232|     12|                                           #label,                                        \
  |  |  |  |  |  |  |  |  |  |  233|     12|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  |  |  234|     12|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  |  |  235|     12|                                           0);                                            \
  |  |  |  |  |  |  |  |  |  |  236|     12|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  |  |  237|     12|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  238|    727|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   70|    727|                                                                                                                                   \
  |  |  |  |   71|    727|        ASN1_VERIFY_TAG(CLASS, TAG);                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  |   39|    715|    VerifyOrExit(ASN1_READER.GetClass() == (CLASS) && ASN1_READER.GetTag() == (TAG), ASN1_ERR = ASN1_ERROR_INVALID_ENCODING);
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  390|    715|#define VerifyOrExit(aCondition, anAction) nlEXPECT_ACTION(aCondition, exit, anAction)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  | 1454|    715|#define nlEXPECT_ACTION(aCondition, aLabel, anAction)                           __nlEXPECT_ACTION(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel, anAction)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  258|    715|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  259|    715|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  260|    715|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  125|  2.13k|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 708, False: 7]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 685, False: 23]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  261|     30|        {                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  262|     30|            __NL_ASSERT_MAYBE_RUN_PRE_ACTION_TRIGGERS((flags),                            \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  203|     30|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  204|     30|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  205|     30|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  835|     30|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (205:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  206|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  207|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  208|     30|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  815|     30|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (208:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  209|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  210|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  211|     30|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (211:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  263|     30|                                                      NL_ASSERT_PREFIX_STRING,            \
  |  |  |  |  |  |  |  |  |  |  |  |  264|     30|                                                      NL_ASSERT_COMPONENT_STRING,         \
  |  |  |  |  |  |  |  |  |  |  |  |  265|     30|                                                      #condition,                         \
  |  |  |  |  |  |  |  |  |  |  |  |  266|     30|                                                      #label,                             \
  |  |  |  |  |  |  |  |  |  |  |  |  267|     30|                                                      NL_ASSERT_FILE,                     \
  |  |  |  |  |  |  |  |  |  |  |  |  268|     30|                                                      __LINE__,                           \
  |  |  |  |  |  |  |  |  |  |  |  |  269|     30|                                                      0);                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  270|     30|            {                                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  271|     30|                action;                                                                   \
  |  |  |  |  |  |  |  |  |  |  |  |  272|     30|            }                                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  273|     30|            __NL_ASSERT_MAYBE_RUN_POST_ACTION_TRIGGERS((flags),                           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  214|     30|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  215|     30|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  216|     30|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  855|     30|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (216:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  217|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  218|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  219|     30|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (219:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  274|     30|                                                       NL_ASSERT_PREFIX_STRING,           \
  |  |  |  |  |  |  |  |  |  |  |  |  275|     30|                                                       NL_ASSERT_COMPONENT_STRING,        \
  |  |  |  |  |  |  |  |  |  |  |  |  276|     30|                                                       #condition,                        \
  |  |  |  |  |  |  |  |  |  |  |  |  277|     30|                                                       #label,                            \
  |  |  |  |  |  |  |  |  |  |  |  |  278|     30|                                                       NL_ASSERT_FILE,                    \
  |  |  |  |  |  |  |  |  |  |  |  |  279|     30|                                                       __LINE__,                          \
  |  |  |  |  |  |  |  |  |  |  |  |  280|     30|                                                       0);                                \
  |  |  |  |  |  |  |  |  |  |  |  |  281|     30|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  |  |  |  |  282|     30|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  283|    715|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (283:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   72|    685|                                                                                                                                   \
  |  |  |  |   73|    685|        ASN1_ERR = ASN1_READER.EnterConstructedType();                                                                             \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|  1.37k|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |                       ASN1_ERR = ASN1_READER.EnterConstructedType();                                                                             \
  |  |  |  |  ------------------
  |  |  |  |  |  |   33|    685|#define ASN1_READER reader
  |  |  |  |  ------------------
  |  |  |  |   74|    727|        SuccessOrExit(ASN1_ERR);
  |  |  |  |  ------------------
  |  |  |  |  |  |  345|    727|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1400|    727|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  224|    727|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  225|    727|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  226|    685|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  125|    685|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 684, False: 1]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  227|      1|        {                                                                                 \
  |  |  |  |  |  |  |  |  |  |  228|      1|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  189|      1|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  190|      1|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  191|      1|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  835|      1|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  194|      1|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  815|      1|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  197|      1|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  855|      1|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  200|      1|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  229|      1|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  |  |  230|      1|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  |  |  231|      1|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  |  |  232|      1|                                           #label,                                        \
  |  |  |  |  |  |  |  |  |  |  233|      1|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  |  |  234|      1|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  |  |  235|      1|                                           0);                                            \
  |  |  |  |  |  |  |  |  |  |  236|      1|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  |  |  237|      1|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  238|    685|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1422|    684|        {
 1423|       |            // Skip version [0] EXPLICIT Version DEFAULT v1
 1424|    684|            ASN1_PARSE_ELEMENT(kASN1TagClass_ContextSpecific, 0);
  ------------------
  |  |   42|    684|    do                                                                                                                             \
  |  |   43|    684|    {                                                                                                                              \
  |  |   44|    684|        ASN1_ERR = ASN1_READER.Next();                                                                                             \
  |  |  ------------------
  |  |  |  |   34|  1.36k|#define ASN1_ERR err
  |  |  ------------------
  |  |                       ASN1_ERR = ASN1_READER.Next();                                                                                             \
  |  |  ------------------
  |  |  |  |   33|    684|#define ASN1_READER reader
  |  |  ------------------
  |  |   45|    684|        SuccessOrExit(ASN1_ERR);                                                                                                   \
  |  |  ------------------
  |  |  |  |  345|    684|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1400|    684|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  224|    684|    do                                                                                    \
  |  |  |  |  |  |  |  |  225|    684|    {                                                                                     \
  |  |  |  |  |  |  |  |  226|    684|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  125|    684|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 678, False: 6]
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  227|      6|        {                                                                                 \
  |  |  |  |  |  |  |  |  228|      6|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  189|      6|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  190|      6|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  191|      6|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  835|      6|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  194|      6|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  815|      6|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  197|      6|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  855|      6|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  200|      6|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  229|      6|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  230|      6|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  231|      6|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  232|      6|                                           #label,                                        \
  |  |  |  |  |  |  |  |  233|      6|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  234|      6|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  235|      6|                                           0);                                            \
  |  |  |  |  |  |  |  |  236|      6|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  237|      6|        }                                                                                 \
  |  |  |  |  |  |  |  |  238|    684|    } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   46|    684|                                                                                                                                   \
  |  |   47|    684|        ASN1_VERIFY_TAG(CLASS, TAG);                                                                                               \
  |  |  ------------------
  |  |  |  |   39|    678|    VerifyOrExit(ASN1_READER.GetClass() == (CLASS) && ASN1_READER.GetTag() == (TAG), ASN1_ERR = ASN1_ERROR_INVALID_ENCODING);
  |  |  |  |  ------------------
  |  |  |  |  |  |  390|    678|#define VerifyOrExit(aCondition, anAction) nlEXPECT_ACTION(aCondition, exit, anAction)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1454|    678|#define nlEXPECT_ACTION(aCondition, aLabel, anAction)                           __nlEXPECT_ACTION(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel, anAction)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  258|    678|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  259|    678|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  260|    678|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  125|  2.02k|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 673, False: 5]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 669, False: 4]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  261|      9|        {                                                                                 \
  |  |  |  |  |  |  |  |  |  |  262|      9|            __NL_ASSERT_MAYBE_RUN_PRE_ACTION_TRIGGERS((flags),                            \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  203|      9|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  204|      9|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  205|      9|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  835|      9|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (205:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  206|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  |  |  207|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  208|      9|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  815|      9|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (208:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  209|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  210|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  211|      9|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (211:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  263|      9|                                                      NL_ASSERT_PREFIX_STRING,            \
  |  |  |  |  |  |  |  |  |  |  264|      9|                                                      NL_ASSERT_COMPONENT_STRING,         \
  |  |  |  |  |  |  |  |  |  |  265|      9|                                                      #condition,                         \
  |  |  |  |  |  |  |  |  |  |  266|      9|                                                      #label,                             \
  |  |  |  |  |  |  |  |  |  |  267|      9|                                                      NL_ASSERT_FILE,                     \
  |  |  |  |  |  |  |  |  |  |  268|      9|                                                      __LINE__,                           \
  |  |  |  |  |  |  |  |  |  |  269|      9|                                                      0);                                 \
  |  |  |  |  |  |  |  |  |  |  270|      9|            {                                                                             \
  |  |  |  |  |  |  |  |  |  |  271|      9|                action;                                                                   \
  |  |  |  |  |  |  |  |  |  |  272|      9|            }                                                                             \
  |  |  |  |  |  |  |  |  |  |  273|      9|            __NL_ASSERT_MAYBE_RUN_POST_ACTION_TRIGGERS((flags),                           \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  214|      9|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  215|      9|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  216|      9|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  855|      9|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (216:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  217|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  218|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  219|      9|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (219:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  274|      9|                                                       NL_ASSERT_PREFIX_STRING,           \
  |  |  |  |  |  |  |  |  |  |  275|      9|                                                       NL_ASSERT_COMPONENT_STRING,        \
  |  |  |  |  |  |  |  |  |  |  276|      9|                                                       #condition,                        \
  |  |  |  |  |  |  |  |  |  |  277|      9|                                                       #label,                            \
  |  |  |  |  |  |  |  |  |  |  278|      9|                                                       NL_ASSERT_FILE,                    \
  |  |  |  |  |  |  |  |  |  |  279|      9|                                                       __LINE__,                          \
  |  |  |  |  |  |  |  |  |  |  280|      9|                                                       0);                                \
  |  |  |  |  |  |  |  |  |  |  281|      9|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  |  |  282|      9|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  283|    678|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (283:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   48|    669|    } while (0)
  |  |  ------------------
  |  |  |  Branch (48:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1425|       |
 1426|       |            // Skip serialNumber CertificateSerialNumber
 1427|    669|            ASN1_PARSE_ELEMENT(kASN1TagClass_Universal, kASN1UniversalTag_Integer);
  ------------------
  |  |   42|    669|    do                                                                                                                             \
  |  |   43|    669|    {                                                                                                                              \
  |  |   44|    669|        ASN1_ERR = ASN1_READER.Next();                                                                                             \
  |  |  ------------------
  |  |  |  |   34|  1.33k|#define ASN1_ERR err
  |  |  ------------------
  |  |                       ASN1_ERR = ASN1_READER.Next();                                                                                             \
  |  |  ------------------
  |  |  |  |   33|    669|#define ASN1_READER reader
  |  |  ------------------
  |  |   45|    669|        SuccessOrExit(ASN1_ERR);                                                                                                   \
  |  |  ------------------
  |  |  |  |  345|    669|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1400|    669|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  224|    669|    do                                                                                    \
  |  |  |  |  |  |  |  |  225|    669|    {                                                                                     \
  |  |  |  |  |  |  |  |  226|    669|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  125|    669|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 665, False: 4]
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  227|      4|        {                                                                                 \
  |  |  |  |  |  |  |  |  228|      4|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  189|      4|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  190|      4|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  191|      4|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  835|      4|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  194|      4|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  815|      4|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  197|      4|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  855|      4|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  200|      4|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  229|      4|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  230|      4|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  231|      4|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  232|      4|                                           #label,                                        \
  |  |  |  |  |  |  |  |  233|      4|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  234|      4|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  235|      4|                                           0);                                            \
  |  |  |  |  |  |  |  |  236|      4|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  237|      4|        }                                                                                 \
  |  |  |  |  |  |  |  |  238|    669|    } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   46|    669|                                                                                                                                   \
  |  |   47|    669|        ASN1_VERIFY_TAG(CLASS, TAG);                                                                                               \
  |  |  ------------------
  |  |  |  |   39|    665|    VerifyOrExit(ASN1_READER.GetClass() == (CLASS) && ASN1_READER.GetTag() == (TAG), ASN1_ERR = ASN1_ERROR_INVALID_ENCODING);
  |  |  |  |  ------------------
  |  |  |  |  |  |  390|    665|#define VerifyOrExit(aCondition, anAction) nlEXPECT_ACTION(aCondition, exit, anAction)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1454|    665|#define nlEXPECT_ACTION(aCondition, aLabel, anAction)                           __nlEXPECT_ACTION(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel, anAction)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  258|    665|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  259|    665|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  260|    665|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  125|  1.99k|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 662, False: 3]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 656, False: 6]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  261|      9|        {                                                                                 \
  |  |  |  |  |  |  |  |  |  |  262|      9|            __NL_ASSERT_MAYBE_RUN_PRE_ACTION_TRIGGERS((flags),                            \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  203|      9|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  204|      9|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  205|      9|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  835|      9|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (205:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  206|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  |  |  207|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  208|      9|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  815|      9|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (208:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  209|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  210|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  211|      9|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (211:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  263|      9|                                                      NL_ASSERT_PREFIX_STRING,            \
  |  |  |  |  |  |  |  |  |  |  264|      9|                                                      NL_ASSERT_COMPONENT_STRING,         \
  |  |  |  |  |  |  |  |  |  |  265|      9|                                                      #condition,                         \
  |  |  |  |  |  |  |  |  |  |  266|      9|                                                      #label,                             \
  |  |  |  |  |  |  |  |  |  |  267|      9|                                                      NL_ASSERT_FILE,                     \
  |  |  |  |  |  |  |  |  |  |  268|      9|                                                      __LINE__,                           \
  |  |  |  |  |  |  |  |  |  |  269|      9|                                                      0);                                 \
  |  |  |  |  |  |  |  |  |  |  270|      9|            {                                                                             \
  |  |  |  |  |  |  |  |  |  |  271|      9|                action;                                                                   \
  |  |  |  |  |  |  |  |  |  |  272|      9|            }                                                                             \
  |  |  |  |  |  |  |  |  |  |  273|      9|            __NL_ASSERT_MAYBE_RUN_POST_ACTION_TRIGGERS((flags),                           \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  214|      9|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  215|      9|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  216|      9|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  855|      9|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (216:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  217|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  218|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  219|      9|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (219:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  274|      9|                                                       NL_ASSERT_PREFIX_STRING,           \
  |  |  |  |  |  |  |  |  |  |  275|      9|                                                       NL_ASSERT_COMPONENT_STRING,        \
  |  |  |  |  |  |  |  |  |  |  276|      9|                                                       #condition,                        \
  |  |  |  |  |  |  |  |  |  |  277|      9|                                                       #label,                            \
  |  |  |  |  |  |  |  |  |  |  278|      9|                                                       NL_ASSERT_FILE,                    \
  |  |  |  |  |  |  |  |  |  |  279|      9|                                                       __LINE__,                          \
  |  |  |  |  |  |  |  |  |  |  280|      9|                                                       0);                                \
  |  |  |  |  |  |  |  |  |  |  281|      9|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  |  |  282|      9|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  283|    665|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (283:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   48|    656|    } while (0)
  |  |  ------------------
  |  |  |  Branch (48:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1428|       |
 1429|       |            // Skip signature AlgorithmIdentifier
 1430|    656|            ASN1_PARSE_ELEMENT(kASN1TagClass_Universal, kASN1UniversalTag_Sequence);
  ------------------
  |  |   42|    656|    do                                                                                                                             \
  |  |   43|    656|    {                                                                                                                              \
  |  |   44|    656|        ASN1_ERR = ASN1_READER.Next();                                                                                             \
  |  |  ------------------
  |  |  |  |   34|  1.31k|#define ASN1_ERR err
  |  |  ------------------
  |  |                       ASN1_ERR = ASN1_READER.Next();                                                                                             \
  |  |  ------------------
  |  |  |  |   33|    656|#define ASN1_READER reader
  |  |  ------------------
  |  |   45|    656|        SuccessOrExit(ASN1_ERR);                                                                                                   \
  |  |  ------------------
  |  |  |  |  345|    656|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1400|    656|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  224|    656|    do                                                                                    \
  |  |  |  |  |  |  |  |  225|    656|    {                                                                                     \
  |  |  |  |  |  |  |  |  226|    656|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  125|    656|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 653, False: 3]
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  227|      3|        {                                                                                 \
  |  |  |  |  |  |  |  |  228|      3|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  189|      3|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  190|      3|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  191|      3|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  835|      3|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  194|      3|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  815|      3|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  197|      3|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  855|      3|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  200|      3|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  229|      3|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  230|      3|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  231|      3|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  232|      3|                                           #label,                                        \
  |  |  |  |  |  |  |  |  233|      3|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  234|      3|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  235|      3|                                           0);                                            \
  |  |  |  |  |  |  |  |  236|      3|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  237|      3|        }                                                                                 \
  |  |  |  |  |  |  |  |  238|    656|    } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   46|    656|                                                                                                                                   \
  |  |   47|    656|        ASN1_VERIFY_TAG(CLASS, TAG);                                                                                               \
  |  |  ------------------
  |  |  |  |   39|    653|    VerifyOrExit(ASN1_READER.GetClass() == (CLASS) && ASN1_READER.GetTag() == (TAG), ASN1_ERR = ASN1_ERROR_INVALID_ENCODING);
  |  |  |  |  ------------------
  |  |  |  |  |  |  390|    653|#define VerifyOrExit(aCondition, anAction) nlEXPECT_ACTION(aCondition, exit, anAction)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1454|    653|#define nlEXPECT_ACTION(aCondition, aLabel, anAction)                           __nlEXPECT_ACTION(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel, anAction)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  258|    653|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  259|    653|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  260|    653|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  125|  1.95k|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 651, False: 2]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 640, False: 11]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  261|     13|        {                                                                                 \
  |  |  |  |  |  |  |  |  |  |  262|     13|            __NL_ASSERT_MAYBE_RUN_PRE_ACTION_TRIGGERS((flags),                            \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  203|     13|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  204|     13|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  205|     13|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  835|     13|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (205:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  206|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  |  |  207|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  208|     13|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  815|     13|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (208:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  209|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  210|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  211|     13|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (211:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  263|     13|                                                      NL_ASSERT_PREFIX_STRING,            \
  |  |  |  |  |  |  |  |  |  |  264|     13|                                                      NL_ASSERT_COMPONENT_STRING,         \
  |  |  |  |  |  |  |  |  |  |  265|     13|                                                      #condition,                         \
  |  |  |  |  |  |  |  |  |  |  266|     13|                                                      #label,                             \
  |  |  |  |  |  |  |  |  |  |  267|     13|                                                      NL_ASSERT_FILE,                     \
  |  |  |  |  |  |  |  |  |  |  268|     13|                                                      __LINE__,                           \
  |  |  |  |  |  |  |  |  |  |  269|     13|                                                      0);                                 \
  |  |  |  |  |  |  |  |  |  |  270|     13|            {                                                                             \
  |  |  |  |  |  |  |  |  |  |  271|     13|                action;                                                                   \
  |  |  |  |  |  |  |  |  |  |  272|     13|            }                                                                             \
  |  |  |  |  |  |  |  |  |  |  273|     13|            __NL_ASSERT_MAYBE_RUN_POST_ACTION_TRIGGERS((flags),                           \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  214|     13|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  215|     13|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  216|     13|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  855|     13|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (216:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  217|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  218|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  219|     13|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (219:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  274|     13|                                                       NL_ASSERT_PREFIX_STRING,           \
  |  |  |  |  |  |  |  |  |  |  275|     13|                                                       NL_ASSERT_COMPONENT_STRING,        \
  |  |  |  |  |  |  |  |  |  |  276|     13|                                                       #condition,                        \
  |  |  |  |  |  |  |  |  |  |  277|     13|                                                       #label,                            \
  |  |  |  |  |  |  |  |  |  |  278|     13|                                                       NL_ASSERT_FILE,                    \
  |  |  |  |  |  |  |  |  |  |  279|     13|                                                       __LINE__,                          \
  |  |  |  |  |  |  |  |  |  |  280|     13|                                                       0);                                \
  |  |  |  |  |  |  |  |  |  |  281|     13|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  |  |  282|     13|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  283|    653|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (283:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   48|    640|    } while (0)
  |  |  ------------------
  |  |  |  Branch (48:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1431|       |
 1432|       |            // Skip issuer Name
 1433|    640|            ASN1_PARSE_ELEMENT(kASN1TagClass_Universal, kASN1UniversalTag_Sequence);
  ------------------
  |  |   42|    640|    do                                                                                                                             \
  |  |   43|    640|    {                                                                                                                              \
  |  |   44|    640|        ASN1_ERR = ASN1_READER.Next();                                                                                             \
  |  |  ------------------
  |  |  |  |   34|  1.28k|#define ASN1_ERR err
  |  |  ------------------
  |  |                       ASN1_ERR = ASN1_READER.Next();                                                                                             \
  |  |  ------------------
  |  |  |  |   33|    640|#define ASN1_READER reader
  |  |  ------------------
  |  |   45|    640|        SuccessOrExit(ASN1_ERR);                                                                                                   \
  |  |  ------------------
  |  |  |  |  345|    640|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1400|    640|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  224|    640|    do                                                                                    \
  |  |  |  |  |  |  |  |  225|    640|    {                                                                                     \
  |  |  |  |  |  |  |  |  226|    640|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  125|    640|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 637, False: 3]
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  227|      3|        {                                                                                 \
  |  |  |  |  |  |  |  |  228|      3|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  189|      3|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  190|      3|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  191|      3|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  835|      3|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  194|      3|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  815|      3|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  197|      3|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  855|      3|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  200|      3|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  229|      3|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  230|      3|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  231|      3|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  232|      3|                                           #label,                                        \
  |  |  |  |  |  |  |  |  233|      3|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  234|      3|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  235|      3|                                           0);                                            \
  |  |  |  |  |  |  |  |  236|      3|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  237|      3|        }                                                                                 \
  |  |  |  |  |  |  |  |  238|    640|    } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   46|    640|                                                                                                                                   \
  |  |   47|    640|        ASN1_VERIFY_TAG(CLASS, TAG);                                                                                               \
  |  |  ------------------
  |  |  |  |   39|    637|    VerifyOrExit(ASN1_READER.GetClass() == (CLASS) && ASN1_READER.GetTag() == (TAG), ASN1_ERR = ASN1_ERROR_INVALID_ENCODING);
  |  |  |  |  ------------------
  |  |  |  |  |  |  390|    637|#define VerifyOrExit(aCondition, anAction) nlEXPECT_ACTION(aCondition, exit, anAction)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1454|    637|#define nlEXPECT_ACTION(aCondition, aLabel, anAction)                           __nlEXPECT_ACTION(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel, anAction)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  258|    637|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  259|    637|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  260|    637|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  125|  1.90k|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 635, False: 2]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 629, False: 6]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  261|      8|        {                                                                                 \
  |  |  |  |  |  |  |  |  |  |  262|      8|            __NL_ASSERT_MAYBE_RUN_PRE_ACTION_TRIGGERS((flags),                            \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  203|      8|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  204|      8|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  205|      8|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  835|      8|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (205:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  206|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  |  |  207|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  208|      8|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  815|      8|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (208:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  209|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  210|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  211|      8|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (211:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  263|      8|                                                      NL_ASSERT_PREFIX_STRING,            \
  |  |  |  |  |  |  |  |  |  |  264|      8|                                                      NL_ASSERT_COMPONENT_STRING,         \
  |  |  |  |  |  |  |  |  |  |  265|      8|                                                      #condition,                         \
  |  |  |  |  |  |  |  |  |  |  266|      8|                                                      #label,                             \
  |  |  |  |  |  |  |  |  |  |  267|      8|                                                      NL_ASSERT_FILE,                     \
  |  |  |  |  |  |  |  |  |  |  268|      8|                                                      __LINE__,                           \
  |  |  |  |  |  |  |  |  |  |  269|      8|                                                      0);                                 \
  |  |  |  |  |  |  |  |  |  |  270|      8|            {                                                                             \
  |  |  |  |  |  |  |  |  |  |  271|      8|                action;                                                                   \
  |  |  |  |  |  |  |  |  |  |  272|      8|            }                                                                             \
  |  |  |  |  |  |  |  |  |  |  273|      8|            __NL_ASSERT_MAYBE_RUN_POST_ACTION_TRIGGERS((flags),                           \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  214|      8|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  215|      8|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  216|      8|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  855|      8|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (216:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  217|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  218|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  219|      8|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (219:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  274|      8|                                                       NL_ASSERT_PREFIX_STRING,           \
  |  |  |  |  |  |  |  |  |  |  275|      8|                                                       NL_ASSERT_COMPONENT_STRING,        \
  |  |  |  |  |  |  |  |  |  |  276|      8|                                                       #condition,                        \
  |  |  |  |  |  |  |  |  |  |  277|      8|                                                       #label,                            \
  |  |  |  |  |  |  |  |  |  |  278|      8|                                                       NL_ASSERT_FILE,                    \
  |  |  |  |  |  |  |  |  |  |  279|      8|                                                       __LINE__,                          \
  |  |  |  |  |  |  |  |  |  |  280|      8|                                                       0);                                \
  |  |  |  |  |  |  |  |  |  |  281|      8|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  |  |  282|      8|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  283|    637|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (283:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   48|    629|    } while (0)
  |  |  ------------------
  |  |  |  Branch (48:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1434|       |
 1435|       |            // Skip validity Validity,
 1436|    629|            ASN1_PARSE_ELEMENT(kASN1TagClass_Universal, kASN1UniversalTag_Sequence);
  ------------------
  |  |   42|    629|    do                                                                                                                             \
  |  |   43|    629|    {                                                                                                                              \
  |  |   44|    629|        ASN1_ERR = ASN1_READER.Next();                                                                                             \
  |  |  ------------------
  |  |  |  |   34|  1.25k|#define ASN1_ERR err
  |  |  ------------------
  |  |                       ASN1_ERR = ASN1_READER.Next();                                                                                             \
  |  |  ------------------
  |  |  |  |   33|    629|#define ASN1_READER reader
  |  |  ------------------
  |  |   45|    629|        SuccessOrExit(ASN1_ERR);                                                                                                   \
  |  |  ------------------
  |  |  |  |  345|    629|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1400|    629|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  224|    629|    do                                                                                    \
  |  |  |  |  |  |  |  |  225|    629|    {                                                                                     \
  |  |  |  |  |  |  |  |  226|    629|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  125|    629|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 625, False: 4]
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  227|      4|        {                                                                                 \
  |  |  |  |  |  |  |  |  228|      4|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  189|      4|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  190|      4|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  191|      4|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  835|      4|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  194|      4|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  815|      4|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  197|      4|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  855|      4|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  200|      4|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  229|      4|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  230|      4|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  231|      4|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  232|      4|                                           #label,                                        \
  |  |  |  |  |  |  |  |  233|      4|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  234|      4|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  235|      4|                                           0);                                            \
  |  |  |  |  |  |  |  |  236|      4|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  237|      4|        }                                                                                 \
  |  |  |  |  |  |  |  |  238|    629|    } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   46|    629|                                                                                                                                   \
  |  |   47|    629|        ASN1_VERIFY_TAG(CLASS, TAG);                                                                                               \
  |  |  ------------------
  |  |  |  |   39|    625|    VerifyOrExit(ASN1_READER.GetClass() == (CLASS) && ASN1_READER.GetTag() == (TAG), ASN1_ERR = ASN1_ERROR_INVALID_ENCODING);
  |  |  |  |  ------------------
  |  |  |  |  |  |  390|    625|#define VerifyOrExit(aCondition, anAction) nlEXPECT_ACTION(aCondition, exit, anAction)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1454|    625|#define nlEXPECT_ACTION(aCondition, aLabel, anAction)                           __nlEXPECT_ACTION(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel, anAction)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  258|    625|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  259|    625|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  260|    625|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  125|  1.87k|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 624, False: 1]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 618, False: 6]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  261|      7|        {                                                                                 \
  |  |  |  |  |  |  |  |  |  |  262|      7|            __NL_ASSERT_MAYBE_RUN_PRE_ACTION_TRIGGERS((flags),                            \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  203|      7|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  204|      7|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  205|      7|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  835|      7|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (205:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  206|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  |  |  207|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  208|      7|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  815|      7|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (208:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  209|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  210|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  211|      7|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (211:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  263|      7|                                                      NL_ASSERT_PREFIX_STRING,            \
  |  |  |  |  |  |  |  |  |  |  264|      7|                                                      NL_ASSERT_COMPONENT_STRING,         \
  |  |  |  |  |  |  |  |  |  |  265|      7|                                                      #condition,                         \
  |  |  |  |  |  |  |  |  |  |  266|      7|                                                      #label,                             \
  |  |  |  |  |  |  |  |  |  |  267|      7|                                                      NL_ASSERT_FILE,                     \
  |  |  |  |  |  |  |  |  |  |  268|      7|                                                      __LINE__,                           \
  |  |  |  |  |  |  |  |  |  |  269|      7|                                                      0);                                 \
  |  |  |  |  |  |  |  |  |  |  270|      7|            {                                                                             \
  |  |  |  |  |  |  |  |  |  |  271|      7|                action;                                                                   \
  |  |  |  |  |  |  |  |  |  |  272|      7|            }                                                                             \
  |  |  |  |  |  |  |  |  |  |  273|      7|            __NL_ASSERT_MAYBE_RUN_POST_ACTION_TRIGGERS((flags),                           \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  214|      7|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  215|      7|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  216|      7|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  855|      7|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (216:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  217|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  218|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  219|      7|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (219:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  274|      7|                                                       NL_ASSERT_PREFIX_STRING,           \
  |  |  |  |  |  |  |  |  |  |  275|      7|                                                       NL_ASSERT_COMPONENT_STRING,        \
  |  |  |  |  |  |  |  |  |  |  276|      7|                                                       #condition,                        \
  |  |  |  |  |  |  |  |  |  |  277|      7|                                                       #label,                            \
  |  |  |  |  |  |  |  |  |  |  278|      7|                                                       NL_ASSERT_FILE,                    \
  |  |  |  |  |  |  |  |  |  |  279|      7|                                                       __LINE__,                          \
  |  |  |  |  |  |  |  |  |  |  280|      7|                                                       0);                                \
  |  |  |  |  |  |  |  |  |  |  281|      7|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  |  |  282|      7|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  283|    625|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (283:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   48|    618|    } while (0)
  |  |  ------------------
  |  |  |  Branch (48:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1437|       |
 1438|       |            // Decode subject Name,
 1439|    618|            ReturnErrorOnFailure(dn.DecodeFromASN1(reader));
  ------------------
  |  |  150|    618|    do                                                                                                                             \
  |  |  151|    618|    {                                                                                                                              \
  |  |  152|    618|        auto __err = (expr);                                                                                                       \
  |  |  153|    618|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 608, False: 10]
  |  |  ------------------
  |  |  154|    618|        {                                                                                                                          \
  |  |  155|    608|            return __err;                                                                                                          \
  |  |  156|    608|        }                                                                                                                          \
  |  |  157|    618|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
 1440|    618|        }
 1441|    618|        ASN1_SKIP_AND_EXIT_SEQUENCE;
  ------------------
  |  |  101|    618|#define ASN1_SKIP_AND_EXIT_SEQUENCE ASN1_SKIP_AND_EXIT_CONSTRUCTED
  |  |  ------------------
  |  |  |  |   90|     10|    ASN1_ERR = ASN1_READER.ExitConstructedType();                                                                                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|     20|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |                   ASN1_ERR = ASN1_READER.ExitConstructedType();                                                                                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   33|     10|#define ASN1_READER reader
  |  |  |  |  ------------------
  |  |  |  |   91|     10|    SuccessOrExit(ASN1_ERR);                                                                                                       \
  |  |  |  |  ------------------
  |  |  |  |  |  |  345|     10|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1400|     10|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  224|     10|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  225|     10|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  226|     10|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  125|     10|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 9, False: 1]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  227|      1|        {                                                                                 \
  |  |  |  |  |  |  |  |  |  |  228|      1|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  189|      1|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  190|      1|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  191|      1|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  835|      1|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  194|      1|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  815|      1|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  197|      1|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  855|      1|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  200|      1|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  229|      1|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  |  |  230|      1|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  |  |  231|      1|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  |  |  232|      1|                                           #label,                                        \
  |  |  |  |  |  |  |  |  |  |  233|      1|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  |  |  234|      1|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  |  |  235|      1|                                           0);                                            \
  |  |  |  |  |  |  |  |  |  |  236|      1|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  |  |  237|      1|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  238|     10|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   92|     10|    }                                                                                                                              \
  |  |  |  |   93|    727|    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (93:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1442|    727|    }
 1443|    727|    ASN1_SKIP_AND_EXIT_SEQUENCE;
  ------------------
  |  |  101|    727|#define ASN1_SKIP_AND_EXIT_SEQUENCE ASN1_SKIP_AND_EXIT_CONSTRUCTED
  |  |  ------------------
  |  |  |  |   90|      9|    ASN1_ERR = ASN1_READER.ExitConstructedType();                                                                                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|     18|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |                   ASN1_ERR = ASN1_READER.ExitConstructedType();                                                                                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   33|      9|#define ASN1_READER reader
  |  |  |  |  ------------------
  |  |  |  |   91|      9|    SuccessOrExit(ASN1_ERR);                                                                                                       \
  |  |  |  |  ------------------
  |  |  |  |  |  |  345|      9|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1400|      9|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  224|      9|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  225|      9|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  226|      9|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  125|      9|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 7, False: 2]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  227|      2|        {                                                                                 \
  |  |  |  |  |  |  |  |  |  |  228|      2|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  189|      2|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  190|      2|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  191|      2|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  835|      2|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  194|      2|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  815|      2|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  197|      2|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  855|      2|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  200|      2|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  229|      2|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  |  |  230|      2|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  |  |  231|      2|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  |  |  232|      2|                                           #label,                                        \
  |  |  |  |  |  |  |  |  |  |  233|      2|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  |  |  234|      2|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  |  |  235|      2|                                           0);                                            \
  |  |  |  |  |  |  |  |  |  |  236|      2|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  |  |  237|      2|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  238|      9|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   92|      9|    }                                                                                                                              \
  |  |  |  |   93|  3.72k|    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (93:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1444|       |
 1445|  3.11k|exit:
 1446|  3.11k|    return err;
 1447|  3.72k|}
_ZN4chip11Credentials26InitNetworkIdentitySubjectERNS0_6ChipDNE:
 1475|     16|{
 1476|     16|    name.Clear();
 1477|     16|    CHIP_ERROR err = name.AddAttribute_CommonName(kNetworkIdentityCN, /* not printable */ false);
 1478|     16|    VerifyOrDie(err == CHIP_NO_ERROR); // AddAttribute can't fail in this case
  ------------------
  |  |  497|     16|    nlABORT_ACTION(aCondition, ChipLogError(Support, "VerifyOrDie failure at %s:%d: %s", __FILE__, __LINE__, #aCondition))
  |  |  ------------------
  |  |  |  |  711|     16|#define nlABORT_ACTION(aCondition, anAction)                                    __nlABORT_ACTION(NL_ASSERT_ABORT_PRODUCTION_FLAGS, aCondition, anAction)
  |  |  |  |  ------------------
  |  |  |  |  |  |  487|     16|#define __nlABORT_ACTION(flags, condition, action)                                        __nlPRECONDITION_ACTION(flags, condition, NL_ASSERT_ABORT(), action)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  431|     16|    if (__nlSHOULD_ASSERT(condition))                                                     \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  125|     16|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 16, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  432|      0|    {                                                                                     \
  |  |  |  |  |  |  |  |  433|      0|        __NL_ASSERT_MAYBE_RUN_PRE_ACTION_TRIGGERS((flags),                                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  203|      0|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  204|      0|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  205|      0|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  835|      0|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (205:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  206|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  207|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  208|      0|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  815|      0|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (208:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  209|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  210|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  211|      0|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (211:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  434|      0|                                                  NL_ASSERT_PREFIX_STRING,                \
  |  |  |  |  |  |  |  |  435|      0|                                                  NL_ASSERT_COMPONENT_STRING,             \
  |  |  |  |  |  |  |  |  436|      0|                                                  #condition,                             \
  |  |  |  |  |  |  |  |  437|      0|                                                  0,                                      \
  |  |  |  |  |  |  |  |  438|      0|                                                  NL_ASSERT_FILE,                         \
  |  |  |  |  |  |  |  |  439|      0|                                                  __LINE__,                               \
  |  |  |  |  |  |  |  |  440|      0|                                                  0);                                     \
  |  |  |  |  |  |  |  |  441|      0|        {                                                                                 \
  |  |  |  |  |  |  |  |  442|      0|            action;                                                                       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (442:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  Branch (442:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  Branch (442:13): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (442:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  443|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  444|      0|        __NL_ASSERT_MAYBE_RUN_POST_ACTION_TRIGGERS((flags),                               \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  214|      0|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  215|      0|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  216|      0|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  855|      0|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (216:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  217|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  218|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  219|      0|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (219:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  445|      0|                                                   NL_ASSERT_PREFIX_STRING,               \
  |  |  |  |  |  |  |  |  446|      0|                                                   NL_ASSERT_COMPONENT_STRING,            \
  |  |  |  |  |  |  |  |  447|      0|                                                   #condition,                            \
  |  |  |  |  |  |  |  |  448|      0|                                                   0,                                     \
  |  |  |  |  |  |  |  |  449|      0|                                                   NL_ASSERT_FILE,                        \
  |  |  |  |  |  |  |  |  450|      0|                                                   __LINE__,                              \
  |  |  |  |  |  |  |  |  451|      0|                                                   0);                                    \
  |  |  |  |  |  |  |  |  452|      0|        {                                                                                 \
  |  |  |  |  |  |  |  |  453|      0|            termination;                                                                  \
  |  |  |  |  |  |  |  |  454|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  455|      0|    }                                                                                     \
  |  |  |  |  |  |  |  |  456|      0|    else do {} while (0) /* This is explained in the comment above __nlCHECK */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (456:23): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
 1479|     16|}

_ZNK4chip11Credentials7ChipRDN7IsEmptyEv:
  200|  16.2k|    bool IsEmpty() const { return mAttrOID == chip::ASN1::kOID_NotSpecified; }
_ZN4chip11Credentials7ChipRDN5ClearEv:
  202|   316k|    {
  203|   316k|        mAttrOID               = chip::ASN1::kOID_NotSpecified;
  204|   316k|        mAttrIsPrintableString = false;
  205|   316k|        mChipVal               = 0;
  206|   316k|        mString                = CharSpan{};
  207|   316k|    }
_ZN4chip11Credentials6ChipDN23AddAttribute_CommonNameENS_4SpanIKcEEb:
  254|     16|    {
  255|     16|        return AddAttribute(ASN1::kOID_AttributeType_CommonName, val, isPrintableString);
  256|     16|    }
_ZN4chip11Credentials17IsChip64bitDNAttrEt:
  669|  11.8k|{
  670|  11.8k|    return (oid == chip::ASN1::kOID_AttributeType_MatterNodeId || oid == chip::ASN1::kOID_AttributeType_MatterFirmwareSigningId ||
  ------------------
  |  Branch (670:13): [True: 2.41k, False: 9.39k]
  |  Branch (670:67): [True: 674, False: 8.71k]
  ------------------
  671|  11.8k|            oid == chip::ASN1::kOID_AttributeType_MatterICACId || oid == chip::ASN1::kOID_AttributeType_MatterRCACId ||
  ------------------
  |  Branch (671:13): [True: 790, False: 7.92k]
  |  Branch (671:67): [True: 749, False: 7.18k]
  ------------------
  672|  11.8k|            oid == chip::ASN1::kOID_AttributeType_MatterFabricId);
  ------------------
  |  Branch (672:13): [True: 1.83k, False: 5.34k]
  ------------------
  673|  11.8k|}
_ZN4chip11Credentials17IsChip32bitDNAttrEt:
  679|  8.50k|{
  680|  8.50k|    return (oid == chip::ASN1::kOID_AttributeType_MatterCASEAuthTag);
  681|  8.50k|}
_ZN4chip11Credentials12IsChipDNAttrEt:
  687|  5.02k|{
  688|  5.02k|    return (IsChip64bitDNAttr(oid) || IsChip32bitDNAttr(oid));
  ------------------
  |  Branch (688:13): [True: 2.81k, False: 2.20k]
  |  Branch (688:39): [True: 836, False: 1.37k]
  ------------------
  689|  5.02k|}

_ZN4chip11Credentials14DecodeChipCertENS_4SpanIKhEERNS0_19ChipCertificateDataENS_8BitFlagsINS0_15CertDecodeFlagsEhEE:
  659|  14.8k|{
  660|  14.8k|    TLVReader reader;
  661|       |
  662|  14.8k|    reader.Init(chipCert);
  663|  14.8k|    return DecodeChipCert(reader, certData, decodeFlags);
  664|  14.8k|}
_ZN4chip11Credentials14DecodeChipCertERNS_3TLV9TLVReaderERNS0_19ChipCertificateDataENS_8BitFlagsINS0_15CertDecodeFlagsEhEE:
  667|  14.8k|{
  668|  14.8k|    ASN1Writer nullWriter;
  669|  14.8k|    nullWriter.InitNullWriter();
  670|       |
  671|  14.8k|    certData.Clear();
  672|       |
  673|  14.8k|    if (decodeFlags.Has(CertDecodeFlags::kGenerateTBSHash))
  ------------------
  |  Branch (673:9): [True: 0, False: 14.8k]
  ------------------
  674|      0|    {
  675|       |        // Create a buffer and writer to capture the TBS (to-be-signed) portion of the certificate
  676|       |        // when we decode (and convert) the certificate, so we can hash it to create the TBSHash.
  677|      0|        chip::Platform::ScopedMemoryBuffer<uint8_t> asn1TBSBuf;
  678|      0|        VerifyOrReturnError(asn1TBSBuf.Alloc(kMaxCHIPCertDecodeBufLength), CHIP_ERROR_NO_MEMORY);
  ------------------
  |  |  251|      0|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|      0|    do                                                                                                                             \
  |  |  |  |  271|      0|    {                                                                                                                              \
  |  |  |  |  272|      0|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  273|      0|        {                                                                                                                          \
  |  |  |  |  274|      0|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|      0|            return (value);                                                                                                        \
  |  |  |  |  276|      0|        }                                                                                                                          \
  |  |  |  |  277|      0|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  679|      0|        ASN1Writer tbsWriter;
  680|      0|        tbsWriter.Init(asn1TBSBuf.Get(), kMaxCHIPCertDecodeBufLength);
  681|       |
  682|      0|        ReturnErrorOnFailure(DecodeConvertCert(reader, nullWriter, tbsWriter, certData));
  ------------------
  |  |  150|      0|    do                                                                                                                             \
  |  |  151|      0|    {                                                                                                                              \
  |  |  152|      0|        auto __err = (expr);                                                                                                       \
  |  |  153|      0|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 0, False: 0]
  |  |  ------------------
  |  |  154|      0|        {                                                                                                                          \
  |  |  155|      0|            return __err;                                                                                                          \
  |  |  156|      0|        }                                                                                                                          \
  |  |  157|      0|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  683|       |
  684|       |        // Hash the encoded TBS certificate. Only SHA256 is supported.
  685|      0|        VerifyOrReturnError(certData.mSigAlgoOID == kOID_SigAlgo_ECDSAWithSHA256, CHIP_ERROR_UNSUPPORTED_SIGNATURE_TYPE);
  ------------------
  |  |  251|      0|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|      0|    do                                                                                                                             \
  |  |  |  |  271|      0|    {                                                                                                                              \
  |  |  |  |  272|      0|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  273|      0|        {                                                                                                                          \
  |  |  |  |  274|      0|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|      0|            return (value);                                                                                                        \
  |  |  |  |  276|      0|        }                                                                                                                          \
  |  |  |  |  277|      0|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  686|      0|        ReturnErrorOnFailure(Hash_SHA256(asn1TBSBuf.Get(), tbsWriter.GetLengthWritten(), certData.mTBSHash));
  ------------------
  |  |  150|      0|    do                                                                                                                             \
  |  |  151|      0|    {                                                                                                                              \
  |  |  152|      0|        auto __err = (expr);                                                                                                       \
  |  |  153|      0|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 0, False: 0]
  |  |  ------------------
  |  |  154|      0|        {                                                                                                                          \
  |  |  155|      0|            return __err;                                                                                                          \
  |  |  156|      0|        }                                                                                                                          \
  |  |  157|      0|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  687|      0|        certData.mCertFlags.Set(CertFlags::kTBSHashPresent);
  688|      0|    }
  689|  14.8k|    else
  690|  14.8k|    {
  691|  14.8k|        ReturnErrorOnFailure(DecodeConvertCert(reader, nullWriter, nullWriter, certData));
  ------------------
  |  |  150|  14.8k|    do                                                                                                                             \
  |  |  151|  14.8k|    {                                                                                                                              \
  |  |  152|  14.8k|        auto __err = (expr);                                                                                                       \
  |  |  153|  14.8k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 14.7k, False: 100]
  |  |  ------------------
  |  |  154|  14.8k|        {                                                                                                                          \
  |  |  155|  14.7k|            return __err;                                                                                                          \
  |  |  156|  14.7k|        }                                                                                                                          \
  |  |  157|  14.8k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  692|  14.8k|    }
  693|       |
  694|       |    // If requested by the caller, mark the certificate as trusted.
  695|    100|    if (decodeFlags.Has(CertDecodeFlags::kIsTrustAnchor))
  ------------------
  |  Branch (695:9): [True: 0, False: 100]
  ------------------
  696|      0|    {
  697|      0|        certData.mCertFlags.Set(CertFlags::kIsTrustAnchor);
  698|      0|    }
  699|       |
  700|    100|    return CHIP_NO_ERROR;
  ------------------
  |  |  482|    100|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  ------------------
  701|  14.8k|}
CHIPCertToX509.cpp:_ZN4chip11CredentialsL17DecodeConvertCertERNS_3TLV9TLVReaderERNS_4ASN110ASN1WriterES6_RNS0_19ChipCertificateDataE:
  591|  14.8k|{
  592|  14.8k|    CHIP_ERROR err;
  593|  14.8k|    TLVType containerType;
  594|       |
  595|  14.8k|    if (reader.GetType() == kTLVType_NotSpecified)
  ------------------
  |  Branch (595:9): [True: 14.8k, False: 0]
  ------------------
  596|  14.8k|    {
  597|  14.8k|        ReturnErrorOnFailure(reader.Next());
  ------------------
  |  |  150|  14.8k|    do                                                                                                                             \
  |  |  151|  14.8k|    {                                                                                                                              \
  |  |  152|  14.8k|        auto __err = (expr);                                                                                                       \
  |  |  153|  14.8k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 3.66k, False: 11.2k]
  |  |  ------------------
  |  |  154|  14.8k|        {                                                                                                                          \
  |  |  155|  3.66k|            return __err;                                                                                                          \
  |  |  156|  3.66k|        }                                                                                                                          \
  |  |  157|  14.8k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  598|  14.8k|    }
  599|  11.2k|    ReturnErrorOnFailure(reader.Expect(kTLVType_Structure, AnonymousTag()));
  ------------------
  |  |  150|  11.2k|    do                                                                                                                             \
  |  |  151|  11.2k|    {                                                                                                                              \
  |  |  152|  11.2k|        auto __err = (expr);                                                                                                       \
  |  |  153|  11.2k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 1.02k, False: 10.1k]
  |  |  ------------------
  |  |  154|  11.2k|        {                                                                                                                          \
  |  |  155|  1.02k|            return __err;                                                                                                          \
  |  |  156|  1.02k|        }                                                                                                                          \
  |  |  157|  11.2k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  600|  10.1k|    ReturnErrorOnFailure(reader.EnterContainer(containerType));
  ------------------
  |  |  150|  10.1k|    do                                                                                                                             \
  |  |  151|  10.1k|    {                                                                                                                              \
  |  |  152|  10.1k|        auto __err = (expr);                                                                                                       \
  |  |  153|  10.1k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 0, False: 10.1k]
  |  |  ------------------
  |  |  154|  10.1k|        {                                                                                                                          \
  |  |  155|      0|            return __err;                                                                                                          \
  |  |  156|      0|        }                                                                                                                          \
  |  |  157|  10.1k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  601|       |
  602|       |    // Certificate ::= SEQUENCE
  603|  10.1k|    ASN1_START_SEQUENCE
  ------------------
  |  |  237|  10.1k|#define ASN1_START_SEQUENCE ASN1_START_CONSTRUCTED(kASN1TagClass_Universal, kASN1UniversalTag_Sequence)
  |  |  ------------------
  |  |  |  |  226|  10.1k|    do                                                                                                                             \
  |  |  |  |  227|  10.1k|    {                                                                                                                              \
  |  |  |  |  228|  10.1k|        ASN1_ERR = writer.StartConstructedType(CLASS, TAG);                                                                        \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|  20.3k|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |  229|  10.1k|        SuccessOrExit(ASN1_ERR);
  |  |  |  |  ------------------
  |  |  |  |  |  |  345|  10.1k|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1400|  10.1k|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  224|  10.1k|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  225|  10.1k|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  226|  10.1k|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  125|  10.1k|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 10.1k, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  227|      0|        {                                                                                 \
  |  |  |  |  |  |  |  |  |  |  228|      0|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  189|      0|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  190|      0|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  191|      0|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  835|      0|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  194|      0|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  815|      0|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  197|      0|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  855|      0|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  200|      0|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  229|      0|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  |  |  230|      0|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  |  |  231|      0|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  |  |  232|      0|                                           #label,                                        \
  |  |  |  |  |  |  |  |  |  |  233|      0|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  |  |  234|      0|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  |  |  235|      0|                                           0);                                            \
  |  |  |  |  |  |  |  |  |  |  236|      0|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  |  |  237|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  238|  10.1k|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  604|  10.1k|    {
  605|       |        // tbsCertificate TBSCertificate,
  606|  10.1k|        reader.Next();
  607|  10.1k|        if (reader.GetTag() == ContextTag(kTag_EllipticCurvePublicKey))
  ------------------
  |  Branch (607:13): [True: 1.98k, False: 8.21k]
  ------------------
  608|  1.98k|        {
  609|       |            // If the struct starts with the ec-pub-key we're dealing with a
  610|       |            // Network (Client) Identity in compact-pdc-identity format.
  611|  1.98k|            DecodeConvertTBSCertCompactIdentity(reader, tbsWriter, certData);
  612|  1.98k|        }
  613|  8.21k|        else
  614|  8.21k|        {
  615|  8.21k|            ReturnErrorOnFailure(DecodeConvertTBSCert(reader, tbsWriter, certData));
  ------------------
  |  |  150|  8.21k|    do                                                                                                                             \
  |  |  151|  8.21k|    {                                                                                                                              \
  |  |  152|  8.21k|        auto __err = (expr);                                                                                                       \
  |  |  153|  8.21k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 8.06k, False: 148]
  |  |  ------------------
  |  |  154|  8.21k|        {                                                                                                                          \
  |  |  155|  8.06k|            return __err;                                                                                                          \
  |  |  156|  8.06k|        }                                                                                                                          \
  |  |  157|  8.21k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  616|  8.21k|        }
  617|       |
  618|       |        // signatureAlgorithm   AlgorithmIdentifier
  619|       |        // AlgorithmIdentifier ::= SEQUENCE
  620|  2.13k|        ASN1_START_SEQUENCE
  ------------------
  |  |  237|  2.13k|#define ASN1_START_SEQUENCE ASN1_START_CONSTRUCTED(kASN1TagClass_Universal, kASN1UniversalTag_Sequence)
  |  |  ------------------
  |  |  |  |  226|  2.13k|    do                                                                                                                             \
  |  |  |  |  227|  2.13k|    {                                                                                                                              \
  |  |  |  |  228|  2.13k|        ASN1_ERR = writer.StartConstructedType(CLASS, TAG);                                                                        \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|  4.26k|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |  229|  10.1k|        SuccessOrExit(ASN1_ERR);
  |  |  |  |  ------------------
  |  |  |  |  |  |  345|  10.1k|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1400|  10.1k|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  224|  10.1k|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  225|  10.1k|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  226|  2.13k|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  125|  2.13k|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 2.13k, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  227|      0|        {                                                                                 \
  |  |  |  |  |  |  |  |  |  |  228|      0|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  189|      0|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  190|      0|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  191|      0|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  835|      0|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  194|      0|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  815|      0|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  197|      0|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  855|      0|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  200|      0|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  229|      0|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  |  |  230|      0|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  |  |  231|      0|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  |  |  232|      0|                                           #label,                                        \
  |  |  |  |  |  |  |  |  |  |  233|      0|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  |  |  234|      0|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  |  |  235|      0|                                           0);                                            \
  |  |  |  |  |  |  |  |  |  |  236|      0|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  |  |  237|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  238|  2.13k|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  621|  2.13k|        {
  622|  2.13k|            ASN1_ENCODE_OBJECT_ID(static_cast<OID>(certData.mSigAlgoOID));
  ------------------
  |  |  267|  2.13k|    do                                                                                                                             \
  |  |  268|  2.13k|    {                                                                                                                              \
  |  |  269|  2.13k|        ASN1_ERR = writer.PutObjectId(OID);                                                                                        \
  |  |  ------------------
  |  |  |  |   34|  4.26k|#define ASN1_ERR err
  |  |  ------------------
  |  |  270|  2.13k|        SuccessOrExit(ASN1_ERR);                                                                                                   \
  |  |  ------------------
  |  |  |  |  345|  2.13k|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1400|  2.13k|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  224|  2.13k|    do                                                                                    \
  |  |  |  |  |  |  |  |  225|  2.13k|    {                                                                                     \
  |  |  |  |  |  |  |  |  226|  2.13k|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  125|  2.13k|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 2.13k, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  227|      0|        {                                                                                 \
  |  |  |  |  |  |  |  |  228|      0|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  189|      0|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  190|      0|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  191|      0|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  835|      0|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  194|      0|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  815|      0|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  197|      0|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  855|      0|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  200|      0|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  229|      0|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  230|      0|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  231|      0|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  232|      0|                                           #label,                                        \
  |  |  |  |  |  |  |  |  233|      0|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  234|      0|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  235|      0|                                           0);                                            \
  |  |  |  |  |  |  |  |  236|      0|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  237|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  238|  2.13k|    } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  271|  2.13k|    } while (0);
  |  |  ------------------
  |  |  |  Branch (271:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  623|  2.13k|        }
  624|  2.13k|        ASN1_END_SEQUENCE;
  ------------------
  |  |  239|  2.13k|#define ASN1_END_SEQUENCE ASN1_END_CONSTRUCTED
  |  |  ------------------
  |  |  |  |  232|  2.13k|    ASN1_ERR = writer.EndConstructedType();                                                                                        \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|  4.26k|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |  233|  2.13k|    SuccessOrExit(ASN1_ERR);                                                                                                       \
  |  |  |  |  ------------------
  |  |  |  |  |  |  345|  2.13k|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1400|  2.13k|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  224|  2.13k|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  225|  2.13k|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  226|  2.13k|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  125|  2.13k|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 2.13k, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  227|      0|        {                                                                                 \
  |  |  |  |  |  |  |  |  |  |  228|      0|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  189|      0|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  190|      0|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  191|      0|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  835|      0|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  194|      0|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  815|      0|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  197|      0|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  855|      0|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  200|      0|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  229|      0|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  |  |  230|      0|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  |  |  231|      0|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  |  |  232|      0|                                           #label,                                        \
  |  |  |  |  |  |  |  |  |  |  233|      0|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  |  |  234|      0|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  |  |  235|      0|                                           0);                                            \
  |  |  |  |  |  |  |  |  |  |  236|      0|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  |  |  237|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  238|  2.13k|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  234|  2.13k|    }                                                                                                                              \
  |  |  |  |  235|  2.13k|    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (235:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  625|       |
  626|       |        // signatureValue BIT STRING
  627|  2.13k|        ReturnErrorOnFailure(DecodeConvertECDSASignature(reader, writer, certData));
  ------------------
  |  |  150|  2.13k|    do                                                                                                                             \
  |  |  151|  2.13k|    {                                                                                                                              \
  |  |  152|  2.13k|        auto __err = (expr);                                                                                                       \
  |  |  153|  2.13k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 2.00k, False: 124]
  |  |  ------------------
  |  |  154|  2.13k|        {                                                                                                                          \
  |  |  155|  2.00k|            return __err;                                                                                                          \
  |  |  156|  2.00k|        }                                                                                                                          \
  |  |  157|  2.13k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  628|  2.13k|    }
  629|  2.13k|    ASN1_END_SEQUENCE;
  ------------------
  |  |  239|  2.13k|#define ASN1_END_SEQUENCE ASN1_END_CONSTRUCTED
  |  |  ------------------
  |  |  |  |  232|    124|    ASN1_ERR = writer.EndConstructedType();                                                                                        \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|    248|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |  233|    124|    SuccessOrExit(ASN1_ERR);                                                                                                       \
  |  |  |  |  ------------------
  |  |  |  |  |  |  345|    124|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1400|    124|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  224|    124|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  225|    124|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  226|    124|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  125|    124|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 124, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  227|      0|        {                                                                                 \
  |  |  |  |  |  |  |  |  |  |  228|      0|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  189|      0|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  190|      0|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  191|      0|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  835|      0|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  194|      0|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  815|      0|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  197|      0|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  855|      0|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  200|      0|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  229|      0|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  |  |  230|      0|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  |  |  231|      0|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  |  |  232|      0|                                           #label,                                        \
  |  |  |  |  |  |  |  |  |  |  233|      0|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  |  |  234|      0|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  |  |  235|      0|                                           0);                                            \
  |  |  |  |  |  |  |  |  |  |  236|      0|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  |  |  237|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  238|    124|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  234|    124|    }                                                                                                                              \
  |  |  |  |  235|  10.1k|    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (235:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  630|       |
  631|       |    // Verify no more elements in certificate.
  632|    124|    ReturnErrorOnFailure(reader.VerifyEndOfContainer());
  ------------------
  |  |  150|    124|    do                                                                                                                             \
  |  |  151|    124|    {                                                                                                                              \
  |  |  152|    124|        auto __err = (expr);                                                                                                       \
  |  |  153|    124|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 16, False: 108]
  |  |  ------------------
  |  |  154|    124|        {                                                                                                                          \
  |  |  155|     16|            return __err;                                                                                                          \
  |  |  156|     16|        }                                                                                                                          \
  |  |  157|    124|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  633|    108|    ReturnErrorOnFailure(reader.ExitContainer(containerType));
  ------------------
  |  |  150|    108|    do                                                                                                                             \
  |  |  151|    108|    {                                                                                                                              \
  |  |  152|    108|        auto __err = (expr);                                                                                                       \
  |  |  153|    108|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 8, False: 100]
  |  |  ------------------
  |  |  154|    108|        {                                                                                                                          \
  |  |  155|      8|            return __err;                                                                                                          \
  |  |  156|      8|        }                                                                                                                          \
  |  |  157|    108|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  634|       |
  635|    100|exit:
  636|    100|    return err;
  637|    108|}
CHIPCertToX509.cpp:_ZN4chip11CredentialsL35DecodeConvertTBSCertCompactIdentityERNS_3TLV9TLVReaderERNS_4ASN110ASN1WriterERNS0_19ChipCertificateDataE:
  552|  1.98k|{
  553|       |    // Decode the public key, everything else is rigid
  554|  1.98k|    ReturnErrorOnFailure(reader.Expect(kTLVType_ByteString, ContextTag(kTag_EllipticCurvePublicKey)));
  ------------------
  |  |  150|  1.98k|    do                                                                                                                             \
  |  |  151|  1.98k|    {                                                                                                                              \
  |  |  152|  1.98k|        auto __err = (expr);                                                                                                       \
  |  |  153|  1.98k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 1.47k, False: 508]
  |  |  ------------------
  |  |  154|  1.98k|        {                                                                                                                          \
  |  |  155|  1.47k|            return __err;                                                                                                          \
  |  |  156|  1.47k|        }                                                                                                                          \
  |  |  157|  1.98k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  555|    508|    ReturnErrorOnFailure(reader.Get(certData.mPublicKey));
  ------------------
  |  |  150|    508|    do                                                                                                                             \
  |  |  151|    508|    {                                                                                                                              \
  |  |  152|    508|        auto __err = (expr);                                                                                                       \
  |  |  153|    508|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 500, False: 8]
  |  |  ------------------
  |  |  154|    508|        {                                                                                                                          \
  |  |  155|    500|            return __err;                                                                                                          \
  |  |  156|    500|        }                                                                                                                          \
  |  |  157|    508|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  556|       |
  557|       |    // Populate rigid ChipCertificateData fields
  558|      8|    certData.mSerialNumber = kNetworkIdentitySerialNumberBytes;
  559|      8|    certData.mSigAlgoOID   = kOID_SigAlgo_ECDSAWithSHA256;
  560|      8|    InitNetworkIdentitySubject(certData.mIssuerDN);
  561|      8|    certData.mNotBeforeTime = kNetworkIdentityNotBeforeTime;
  562|      8|    certData.mNotAfterTime  = kNetworkIdentityNotAfterTime;
  563|      8|    InitNetworkIdentitySubject(certData.mSubjectDN);
  564|      8|    certData.mPubKeyAlgoOID  = kOID_PubKeyAlgo_ECPublicKey;
  565|      8|    certData.mPubKeyCurveOID = kOID_EllipticCurve_prime256v1;
  566|      8|    certData.mCertFlags.Set(CertFlags::kExtPresent_BasicConstraints);
  567|      8|    certData.mCertFlags.Set(CertFlags::kExtPresent_KeyUsage);
  568|      8|    certData.mKeyUsageFlags = kNetworkIdentityKeyUsage;
  569|      8|    certData.mCertFlags.Set(CertFlags::kExtPresent_ExtendedKeyUsage);
  570|      8|    certData.mKeyPurposeFlags = kNetworkIdentityKeyPurpose;
  571|       |
  572|      8|    if (!writer.IsNullWriter())
  ------------------
  |  Branch (572:9): [True: 0, False: 8]
  ------------------
  573|      0|    {
  574|      0|        ReturnErrorOnFailure(EncodeNetworkIdentityTBSCert(certData.mPublicKey, writer));
  ------------------
  |  |  150|      0|    do                                                                                                                             \
  |  |  151|      0|    {                                                                                                                              \
  |  |  152|      0|        auto __err = (expr);                                                                                                       \
  |  |  153|      0|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 0, False: 0]
  |  |  ------------------
  |  |  154|      0|        {                                                                                                                          \
  |  |  155|      0|            return __err;                                                                                                          \
  |  |  156|      0|        }                                                                                                                          \
  |  |  157|      0|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  575|      0|    }
  576|      8|    return CHIP_NO_ERROR;
  ------------------
  |  |  482|      8|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  ------------------
  577|      8|}
CHIPCertToX509.cpp:_ZN4chip11CredentialsL20DecodeConvertTBSCertERNS_3TLV9TLVReaderERNS_4ASN110ASN1WriterERNS0_19ChipCertificateDataE:
  486|  8.21k|{
  487|  8.21k|    CHIP_ERROR err;
  488|       |
  489|       |    // tbsCertificate TBSCertificate,
  490|       |    // TBSCertificate ::= SEQUENCE
  491|  8.21k|    ASN1_START_SEQUENCE
  ------------------
  |  |  237|  8.21k|#define ASN1_START_SEQUENCE ASN1_START_CONSTRUCTED(kASN1TagClass_Universal, kASN1UniversalTag_Sequence)
  |  |  ------------------
  |  |  |  |  226|  8.21k|    do                                                                                                                             \
  |  |  |  |  227|  8.21k|    {                                                                                                                              \
  |  |  |  |  228|  8.21k|        ASN1_ERR = writer.StartConstructedType(CLASS, TAG);                                                                        \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|  16.4k|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |  229|  8.21k|        SuccessOrExit(ASN1_ERR);
  |  |  |  |  ------------------
  |  |  |  |  |  |  345|  8.21k|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1400|  8.21k|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  224|  8.21k|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  225|  8.21k|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  226|  8.21k|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  125|  8.21k|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 8.21k, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  227|      0|        {                                                                                 \
  |  |  |  |  |  |  |  |  |  |  228|      0|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  189|      0|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  190|      0|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  191|      0|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  835|      0|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  194|      0|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  815|      0|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  197|      0|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  855|      0|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  200|      0|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  229|      0|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  |  |  230|      0|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  |  |  231|      0|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  |  |  232|      0|                                           #label,                                        \
  |  |  |  |  |  |  |  |  |  |  233|      0|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  |  |  234|      0|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  |  |  235|      0|                                           0);                                            \
  |  |  |  |  |  |  |  |  |  |  236|      0|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  |  |  237|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  238|  8.21k|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  492|  8.21k|    {
  493|       |        // version [0] EXPLICIT Version DEFAULT v1
  494|  8.21k|        ASN1_START_CONSTRUCTED(kASN1TagClass_ContextSpecific, 0)
  ------------------
  |  |  226|  8.21k|    do                                                                                                                             \
  |  |  227|  8.21k|    {                                                                                                                              \
  |  |  228|  8.21k|        ASN1_ERR = writer.StartConstructedType(CLASS, TAG);                                                                        \
  |  |  ------------------
  |  |  |  |   34|  16.4k|#define ASN1_ERR err
  |  |  ------------------
  |  |  229|  8.21k|        SuccessOrExit(ASN1_ERR);
  |  |  ------------------
  |  |  |  |  345|  8.21k|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1400|  8.21k|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  224|  8.21k|    do                                                                                    \
  |  |  |  |  |  |  |  |  225|  8.21k|    {                                                                                     \
  |  |  |  |  |  |  |  |  226|  8.21k|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  125|  8.21k|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 8.21k, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  227|      0|        {                                                                                 \
  |  |  |  |  |  |  |  |  228|      0|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  189|      0|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  190|      0|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  191|      0|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  835|      0|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  194|      0|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  815|      0|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  197|      0|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  855|      0|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  200|      0|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  229|      0|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  230|      0|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  231|      0|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  232|      0|                                           #label,                                        \
  |  |  |  |  |  |  |  |  233|      0|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  234|      0|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  235|      0|                                           0);                                            \
  |  |  |  |  |  |  |  |  236|      0|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  237|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  238|  8.21k|    } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  495|  8.21k|        {
  496|       |            // Version ::= INTEGER { v1(0), v2(1), v3(2) }
  497|  8.21k|            ASN1_ENCODE_INTEGER(2);
  ------------------
  |  |  246|  8.21k|    do                                                                                                                             \
  |  |  247|  8.21k|    {                                                                                                                              \
  |  |  248|  8.21k|        ASN1_ERR = writer.PutInteger(VAL);                                                                                         \
  |  |  ------------------
  |  |  |  |   34|  16.4k|#define ASN1_ERR err
  |  |  ------------------
  |  |  249|  8.21k|        SuccessOrExit(ASN1_ERR);                                                                                                   \
  |  |  ------------------
  |  |  |  |  345|  8.21k|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1400|  8.21k|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  224|  8.21k|    do                                                                                    \
  |  |  |  |  |  |  |  |  225|  8.21k|    {                                                                                     \
  |  |  |  |  |  |  |  |  226|  8.21k|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  125|  8.21k|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 8.21k, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  227|      0|        {                                                                                 \
  |  |  |  |  |  |  |  |  228|      0|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  189|      0|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  190|      0|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  191|      0|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  835|      0|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  194|      0|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  815|      0|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  197|      0|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  855|      0|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  200|      0|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  229|      0|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  230|      0|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  231|      0|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  232|      0|                                           #label,                                        \
  |  |  |  |  |  |  |  |  233|      0|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  234|      0|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  235|      0|                                           0);                                            \
  |  |  |  |  |  |  |  |  236|      0|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  237|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  238|  8.21k|    } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  250|  8.21k|    } while (0);
  |  |  ------------------
  |  |  |  Branch (250:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  498|  8.21k|        }
  499|  8.21k|        ASN1_END_CONSTRUCTED;
  ------------------
  |  |  232|  8.21k|    ASN1_ERR = writer.EndConstructedType();                                                                                        \
  |  |  ------------------
  |  |  |  |   34|  16.4k|#define ASN1_ERR err
  |  |  ------------------
  |  |  233|  8.21k|    SuccessOrExit(ASN1_ERR);                                                                                                       \
  |  |  ------------------
  |  |  |  |  345|  8.21k|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1400|  8.21k|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  224|  8.21k|    do                                                                                    \
  |  |  |  |  |  |  |  |  225|  8.21k|    {                                                                                     \
  |  |  |  |  |  |  |  |  226|  8.21k|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  125|  8.21k|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 8.21k, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  227|      0|        {                                                                                 \
  |  |  |  |  |  |  |  |  228|      0|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  189|      0|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  190|      0|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  191|      0|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  835|      0|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  194|      0|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  815|      0|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  197|      0|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  855|      0|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  200|      0|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  229|      0|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  230|      0|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  231|      0|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  232|      0|                                           #label,                                        \
  |  |  |  |  |  |  |  |  233|      0|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  234|      0|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  235|      0|                                           0);                                            \
  |  |  |  |  |  |  |  |  236|      0|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  237|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  238|  8.21k|    } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  234|  8.21k|    }                                                                                                                              \
  |  |  235|  8.21k|    while (0)
  |  |  ------------------
  |  |  |  Branch (235:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  500|       |
  501|       |        // serialNumber CertificateSerialNumber
  502|       |        // CertificateSerialNumber ::= INTEGER
  503|  8.21k|        ReturnErrorOnFailure(reader.Expect(kTLVType_ByteString, ContextTag(kTag_SerialNumber)));
  ------------------
  |  |  150|  8.21k|    do                                                                                                                             \
  |  |  151|  8.21k|    {                                                                                                                              \
  |  |  152|  8.21k|        auto __err = (expr);                                                                                                       \
  |  |  153|  8.21k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 996, False: 7.21k]
  |  |  ------------------
  |  |  154|  8.21k|        {                                                                                                                          \
  |  |  155|    996|            return __err;                                                                                                          \
  |  |  156|    996|        }                                                                                                                          \
  |  |  157|  8.21k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  504|  7.21k|        ReturnErrorOnFailure(reader.Get(certData.mSerialNumber));
  ------------------
  |  |  150|  7.21k|    do                                                                                                                             \
  |  |  151|  7.21k|    {                                                                                                                              \
  |  |  152|  7.21k|        auto __err = (expr);                                                                                                       \
  |  |  153|  7.21k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 212, False: 7.00k]
  |  |  ------------------
  |  |  154|  7.21k|        {                                                                                                                          \
  |  |  155|    212|            return __err;                                                                                                          \
  |  |  156|    212|        }                                                                                                                          \
  |  |  157|  7.21k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  505|  7.00k|        ReturnErrorOnFailure(writer.PutValue(kASN1TagClass_Universal, kASN1UniversalTag_Integer, false,
  ------------------
  |  |  150|  7.00k|    do                                                                                                                             \
  |  |  151|  7.00k|    {                                                                                                                              \
  |  |  152|  7.00k|        auto __err = (expr);                                                                                                       \
  |  |  153|  7.00k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 0, False: 7.00k]
  |  |  ------------------
  |  |  154|  7.00k|        {                                                                                                                          \
  |  |  155|      0|            return __err;                                                                                                          \
  |  |  156|      0|        }                                                                                                                          \
  |  |  157|  7.00k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  506|  7.00k|                                             certData.mSerialNumber.data(), static_cast<uint16_t>(certData.mSerialNumber.size())));
  507|       |
  508|       |        // signature AlgorithmIdentifier
  509|       |        // AlgorithmIdentifier ::= SEQUENCE
  510|  7.00k|        ASN1_START_SEQUENCE
  ------------------
  |  |  237|  7.00k|#define ASN1_START_SEQUENCE ASN1_START_CONSTRUCTED(kASN1TagClass_Universal, kASN1UniversalTag_Sequence)
  |  |  ------------------
  |  |  |  |  226|  7.00k|    do                                                                                                                             \
  |  |  |  |  227|  7.00k|    {                                                                                                                              \
  |  |  |  |  228|  7.00k|        ASN1_ERR = writer.StartConstructedType(CLASS, TAG);                                                                        \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|  14.0k|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |  229|  7.00k|        SuccessOrExit(ASN1_ERR);
  |  |  |  |  ------------------
  |  |  |  |  |  |  345|  7.00k|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1400|  7.00k|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  224|  7.00k|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  225|  7.00k|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  226|  7.00k|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  125|  7.00k|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 7.00k, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  227|      0|        {                                                                                 \
  |  |  |  |  |  |  |  |  |  |  228|      0|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  189|      0|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  190|      0|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  191|      0|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  835|      0|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  194|      0|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  815|      0|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  197|      0|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  855|      0|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  200|      0|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  229|      0|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  |  |  230|      0|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  |  |  231|      0|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  |  |  232|      0|                                           #label,                                        \
  |  |  |  |  |  |  |  |  |  |  233|      0|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  |  |  234|      0|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  |  |  235|      0|                                           0);                                            \
  |  |  |  |  |  |  |  |  |  |  236|      0|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  |  |  237|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  238|  7.00k|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  511|  7.00k|        {
  512|  7.00k|            uint8_t sigAlgoId;
  513|  7.00k|            ReturnErrorOnFailure(reader.Next(ContextTag(kTag_SignatureAlgorithm)));
  ------------------
  |  |  150|  7.00k|    do                                                                                                                             \
  |  |  151|  7.00k|    {                                                                                                                              \
  |  |  152|  7.00k|        auto __err = (expr);                                                                                                       \
  |  |  153|  7.00k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 488, False: 6.51k]
  |  |  ------------------
  |  |  154|  7.00k|        {                                                                                                                          \
  |  |  155|    488|            return __err;                                                                                                          \
  |  |  156|    488|        }                                                                                                                          \
  |  |  157|  7.00k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  514|  6.51k|            ReturnErrorOnFailure(reader.Get(sigAlgoId));
  ------------------
  |  |  150|  6.51k|    do                                                                                                                             \
  |  |  151|  6.51k|    {                                                                                                                              \
  |  |  152|  6.51k|        auto __err = (expr);                                                                                                       \
  |  |  153|  6.51k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 356, False: 6.16k]
  |  |  ------------------
  |  |  154|  6.51k|        {                                                                                                                          \
  |  |  155|    356|            return __err;                                                                                                          \
  |  |  156|    356|        }                                                                                                                          \
  |  |  157|  6.51k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  515|       |
  516|  6.16k|            certData.mSigAlgoOID = GetOID(kOIDCategory_SigAlgo, sigAlgoId);
  517|  6.16k|            ASN1_ENCODE_OBJECT_ID(certData.mSigAlgoOID);
  ------------------
  |  |  267|  6.16k|    do                                                                                                                             \
  |  |  268|  6.16k|    {                                                                                                                              \
  |  |  269|  6.16k|        ASN1_ERR = writer.PutObjectId(OID);                                                                                        \
  |  |  ------------------
  |  |  |  |   34|  12.3k|#define ASN1_ERR err
  |  |  ------------------
  |  |  270|  6.16k|        SuccessOrExit(ASN1_ERR);                                                                                                   \
  |  |  ------------------
  |  |  |  |  345|  6.16k|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1400|  6.16k|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  224|  6.16k|    do                                                                                    \
  |  |  |  |  |  |  |  |  225|  6.16k|    {                                                                                     \
  |  |  |  |  |  |  |  |  226|  6.16k|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  125|  6.16k|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 6.12k, False: 40]
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  227|     40|        {                                                                                 \
  |  |  |  |  |  |  |  |  228|     40|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  189|     40|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  190|     40|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  191|     40|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  835|     40|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  194|     40|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  815|     40|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  197|     40|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  855|     40|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  200|     40|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  229|     40|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  230|     40|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  231|     40|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  232|     40|                                           #label,                                        \
  |  |  |  |  |  |  |  |  233|     40|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  234|     40|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  235|     40|                                           0);                                            \
  |  |  |  |  |  |  |  |  236|     40|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  237|     40|        }                                                                                 \
  |  |  |  |  |  |  |  |  238|  6.16k|    } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  271|  6.16k|    } while (0);
  |  |  ------------------
  |  |  |  Branch (271:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  518|  6.12k|        }
  519|  6.12k|        ASN1_END_SEQUENCE;
  ------------------
  |  |  239|  6.12k|#define ASN1_END_SEQUENCE ASN1_END_CONSTRUCTED
  |  |  ------------------
  |  |  |  |  232|  6.12k|    ASN1_ERR = writer.EndConstructedType();                                                                                        \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|  12.2k|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |  233|  6.12k|    SuccessOrExit(ASN1_ERR);                                                                                                       \
  |  |  |  |  ------------------
  |  |  |  |  |  |  345|  6.12k|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1400|  6.12k|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  224|  6.12k|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  225|  6.12k|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  226|  6.12k|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  125|  6.12k|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 6.12k, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  227|      0|        {                                                                                 \
  |  |  |  |  |  |  |  |  |  |  228|      0|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  189|      0|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  190|      0|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  191|      0|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  835|      0|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  194|      0|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  815|      0|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  197|      0|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  855|      0|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  200|      0|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  229|      0|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  |  |  230|      0|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  |  |  231|      0|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  |  |  232|      0|                                           #label,                                        \
  |  |  |  |  |  |  |  |  |  |  233|      0|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  |  |  234|      0|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  |  |  235|      0|                                           0);                                            \
  |  |  |  |  |  |  |  |  |  |  236|      0|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  |  |  237|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  238|  6.12k|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  234|  6.12k|    }                                                                                                                              \
  |  |  |  |  235|  7.00k|    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (235:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  520|       |
  521|       |        // issuer Name
  522|  6.12k|        ReturnErrorOnFailure(reader.Next(kTLVType_List, ContextTag(kTag_Issuer)));
  ------------------
  |  |  150|  6.12k|    do                                                                                                                             \
  |  |  151|  6.12k|    {                                                                                                                              \
  |  |  152|  6.12k|        auto __err = (expr);                                                                                                       \
  |  |  153|  6.12k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 16, False: 6.10k]
  |  |  ------------------
  |  |  154|  6.12k|        {                                                                                                                          \
  |  |  155|     16|            return __err;                                                                                                          \
  |  |  156|     16|        }                                                                                                                          \
  |  |  157|  6.12k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  523|  6.10k|        ReturnErrorOnFailure(DecodeConvertDN(reader, writer, certData.mIssuerDN));
  ------------------
  |  |  150|  6.10k|    do                                                                                                                             \
  |  |  151|  6.10k|    {                                                                                                                              \
  |  |  152|  6.10k|        auto __err = (expr);                                                                                                       \
  |  |  153|  6.10k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 2.51k, False: 3.59k]
  |  |  ------------------
  |  |  154|  6.10k|        {                                                                                                                          \
  |  |  155|  2.51k|            return __err;                                                                                                          \
  |  |  156|  2.51k|        }                                                                                                                          \
  |  |  157|  6.10k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  524|       |
  525|       |        // validity Validity,
  526|  3.59k|        ReturnErrorOnFailure(DecodeConvertValidity(reader, writer, certData));
  ------------------
  |  |  150|  3.59k|    do                                                                                                                             \
  |  |  151|  3.59k|    {                                                                                                                              \
  |  |  152|  3.59k|        auto __err = (expr);                                                                                                       \
  |  |  153|  3.59k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 688, False: 2.90k]
  |  |  ------------------
  |  |  154|  3.59k|        {                                                                                                                          \
  |  |  155|    688|            return __err;                                                                                                          \
  |  |  156|    688|        }                                                                                                                          \
  |  |  157|  3.59k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  527|       |
  528|       |        // subject Name
  529|  2.90k|        ReturnErrorOnFailure(reader.Next(kTLVType_List, ContextTag(kTag_Subject)));
  ------------------
  |  |  150|  2.90k|    do                                                                                                                             \
  |  |  151|  2.90k|    {                                                                                                                              \
  |  |  152|  2.90k|        auto __err = (expr);                                                                                                       \
  |  |  153|  2.90k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 236, False: 2.66k]
  |  |  ------------------
  |  |  154|  2.90k|        {                                                                                                                          \
  |  |  155|    236|            return __err;                                                                                                          \
  |  |  156|    236|        }                                                                                                                          \
  |  |  157|  2.90k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  530|  2.66k|        ReturnErrorOnFailure(DecodeConvertDN(reader, writer, certData.mSubjectDN));
  ------------------
  |  |  150|  2.66k|    do                                                                                                                             \
  |  |  151|  2.66k|    {                                                                                                                              \
  |  |  152|  2.66k|        auto __err = (expr);                                                                                                       \
  |  |  153|  2.66k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 96, False: 2.57k]
  |  |  ------------------
  |  |  154|  2.66k|        {                                                                                                                          \
  |  |  155|     96|            return __err;                                                                                                          \
  |  |  156|     96|        }                                                                                                                          \
  |  |  157|  2.66k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  531|       |
  532|       |        // subjectPublicKeyInfo SubjectPublicKeyInfo,
  533|  2.57k|        ReturnErrorOnFailure(DecodeConvertSubjectPublicKeyInfo(reader, writer, certData));
  ------------------
  |  |  150|  2.57k|    do                                                                                                                             \
  |  |  151|  2.57k|    {                                                                                                                              \
  |  |  152|  2.57k|        auto __err = (expr);                                                                                                       \
  |  |  153|  2.57k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 164, False: 2.40k]
  |  |  ------------------
  |  |  154|  2.57k|        {                                                                                                                          \
  |  |  155|    164|            return __err;                                                                                                          \
  |  |  156|    164|        }                                                                                                                          \
  |  |  157|  2.57k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  534|       |
  535|       |        // certificate extensions
  536|  2.40k|        ReturnErrorOnFailure(DecodeConvertExtensions(reader, writer, certData));
  ------------------
  |  |  150|  2.40k|    do                                                                                                                             \
  |  |  151|  2.40k|    {                                                                                                                              \
  |  |  152|  2.40k|        auto __err = (expr);                                                                                                       \
  |  |  153|  2.40k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 2.26k, False: 148]
  |  |  ------------------
  |  |  154|  2.40k|        {                                                                                                                          \
  |  |  155|  2.26k|            return __err;                                                                                                          \
  |  |  156|  2.26k|        }                                                                                                                          \
  |  |  157|  2.40k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  537|  2.40k|    }
  538|  2.40k|    ASN1_END_SEQUENCE;
  ------------------
  |  |  239|  2.40k|#define ASN1_END_SEQUENCE ASN1_END_CONSTRUCTED
  |  |  ------------------
  |  |  |  |  232|    148|    ASN1_ERR = writer.EndConstructedType();                                                                                        \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|    296|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |  233|    148|    SuccessOrExit(ASN1_ERR);                                                                                                       \
  |  |  |  |  ------------------
  |  |  |  |  |  |  345|    148|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1400|    148|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  224|    148|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  225|    148|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  226|    148|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  125|    148|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 148, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  227|      0|        {                                                                                 \
  |  |  |  |  |  |  |  |  |  |  228|      0|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  189|      0|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  190|      0|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  191|      0|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  835|      0|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  194|      0|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  815|      0|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  197|      0|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  855|      0|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  200|      0|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  229|      0|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  |  |  230|      0|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  |  |  231|      0|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  |  |  232|      0|                                           #label,                                        \
  |  |  |  |  |  |  |  |  |  |  233|      0|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  |  |  234|      0|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  |  |  235|      0|                                           0);                                            \
  |  |  |  |  |  |  |  |  |  |  236|      0|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  |  |  237|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  238|    148|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  234|    148|    }                                                                                                                              \
  |  |  |  |  235|  8.21k|    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (235:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  539|       |
  540|    188|exit:
  541|    188|    return err;
  542|  8.21k|}
CHIPCertToX509.cpp:_ZN4chip11CredentialsL21DecodeConvertValidityERNS_3TLV9TLVReaderERNS_4ASN110ASN1WriterERNS0_19ChipCertificateDataE:
   57|  3.59k|{
   58|  3.59k|    CHIP_ERROR err;
   59|  3.59k|    ASN1UniversalTime asn1Time;
   60|       |
   61|  3.59k|    ASN1_START_SEQUENCE
  ------------------
  |  |  237|  3.59k|#define ASN1_START_SEQUENCE ASN1_START_CONSTRUCTED(kASN1TagClass_Universal, kASN1UniversalTag_Sequence)
  |  |  ------------------
  |  |  |  |  226|  3.59k|    do                                                                                                                             \
  |  |  |  |  227|  3.59k|    {                                                                                                                              \
  |  |  |  |  228|  3.59k|        ASN1_ERR = writer.StartConstructedType(CLASS, TAG);                                                                        \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|  7.18k|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |  229|  3.59k|        SuccessOrExit(ASN1_ERR);
  |  |  |  |  ------------------
  |  |  |  |  |  |  345|  3.59k|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1400|  3.59k|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  224|  3.59k|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  225|  3.59k|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  226|  3.59k|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  125|  3.59k|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 3.59k, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  227|      0|        {                                                                                 \
  |  |  |  |  |  |  |  |  |  |  228|      0|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  189|      0|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  190|      0|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  191|      0|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  835|      0|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  194|      0|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  815|      0|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  197|      0|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  855|      0|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  200|      0|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  229|      0|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  |  |  230|      0|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  |  |  231|      0|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  |  |  232|      0|                                           #label,                                        \
  |  |  |  |  |  |  |  |  |  |  233|      0|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  |  |  234|      0|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  |  |  235|      0|                                           0);                                            \
  |  |  |  |  |  |  |  |  |  |  236|      0|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  |  |  237|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  238|  3.59k|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   62|  3.59k|    {
   63|  3.59k|        ReturnErrorOnFailure(reader.Next(ContextTag(kTag_NotBefore)));
  ------------------
  |  |  150|  3.59k|    do                                                                                                                             \
  |  |  151|  3.59k|    {                                                                                                                              \
  |  |  152|  3.59k|        auto __err = (expr);                                                                                                       \
  |  |  153|  3.59k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 344, False: 3.24k]
  |  |  ------------------
  |  |  154|  3.59k|        {                                                                                                                          \
  |  |  155|    344|            return __err;                                                                                                          \
  |  |  156|    344|        }                                                                                                                          \
  |  |  157|  3.59k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
   64|  3.24k|        ReturnErrorOnFailure(reader.Get(certData.mNotBeforeTime));
  ------------------
  |  |  150|  3.24k|    do                                                                                                                             \
  |  |  151|  3.24k|    {                                                                                                                              \
  |  |  152|  3.24k|        auto __err = (expr);                                                                                                       \
  |  |  153|  3.24k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 8, False: 3.24k]
  |  |  ------------------
  |  |  154|  3.24k|        {                                                                                                                          \
  |  |  155|      8|            return __err;                                                                                                          \
  |  |  156|      8|        }                                                                                                                          \
  |  |  157|  3.24k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
   65|  3.24k|        ReturnErrorOnFailure(ChipEpochToASN1Time(certData.mNotBeforeTime, asn1Time));
  ------------------
  |  |  150|  3.24k|    do                                                                                                                             \
  |  |  151|  3.24k|    {                                                                                                                              \
  |  |  152|  3.24k|        auto __err = (expr);                                                                                                       \
  |  |  153|  3.24k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 0, False: 3.24k]
  |  |  ------------------
  |  |  154|  3.24k|        {                                                                                                                          \
  |  |  155|      0|            return __err;                                                                                                          \
  |  |  156|      0|        }                                                                                                                          \
  |  |  157|  3.24k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
   66|  3.24k|        ASN1_ENCODE_TIME(asn1Time);
  ------------------
  |  |  288|  3.24k|    do                                                                                                                             \
  |  |  289|  3.24k|    {                                                                                                                              \
  |  |  290|  3.24k|        ASN1_ERR = writer.PutTime(VAL);                                                                                            \
  |  |  ------------------
  |  |  |  |   34|  6.48k|#define ASN1_ERR err
  |  |  ------------------
  |  |  291|  3.24k|        SuccessOrExit(ASN1_ERR);                                                                                                   \
  |  |  ------------------
  |  |  |  |  345|  3.24k|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1400|  3.24k|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  224|  3.24k|    do                                                                                    \
  |  |  |  |  |  |  |  |  225|  3.24k|    {                                                                                     \
  |  |  |  |  |  |  |  |  226|  3.24k|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  125|  3.24k|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 3.24k, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  227|      0|        {                                                                                 \
  |  |  |  |  |  |  |  |  228|      0|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  189|      0|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  190|      0|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  191|      0|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  835|      0|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  194|      0|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  815|      0|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  197|      0|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  855|      0|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  200|      0|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  229|      0|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  230|      0|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  231|      0|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  232|      0|                                           #label,                                        \
  |  |  |  |  |  |  |  |  233|      0|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  234|      0|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  235|      0|                                           0);                                            \
  |  |  |  |  |  |  |  |  236|      0|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  237|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  238|  3.24k|    } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  292|  3.24k|    } while (0);
  |  |  ------------------
  |  |  |  Branch (292:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
   67|       |
   68|  3.24k|        ReturnErrorOnFailure(reader.Next(ContextTag(kTag_NotAfter)));
  ------------------
  |  |  150|  3.24k|    do                                                                                                                             \
  |  |  151|  3.24k|    {                                                                                                                              \
  |  |  152|  3.24k|        auto __err = (expr);                                                                                                       \
  |  |  153|  3.24k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 256, False: 2.98k]
  |  |  ------------------
  |  |  154|  3.24k|        {                                                                                                                          \
  |  |  155|    256|            return __err;                                                                                                          \
  |  |  156|    256|        }                                                                                                                          \
  |  |  157|  3.24k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
   69|  2.98k|        ReturnErrorOnFailure(reader.Get(certData.mNotAfterTime));
  ------------------
  |  |  150|  2.98k|    do                                                                                                                             \
  |  |  151|  2.98k|    {                                                                                                                              \
  |  |  152|  2.98k|        auto __err = (expr);                                                                                                       \
  |  |  153|  2.98k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 4, False: 2.98k]
  |  |  ------------------
  |  |  154|  2.98k|        {                                                                                                                          \
  |  |  155|      4|            return __err;                                                                                                          \
  |  |  156|      4|        }                                                                                                                          \
  |  |  157|  2.98k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
   70|  2.98k|        ReturnErrorOnFailure(ChipEpochToASN1Time(certData.mNotAfterTime, asn1Time));
  ------------------
  |  |  150|  2.98k|    do                                                                                                                             \
  |  |  151|  2.98k|    {                                                                                                                              \
  |  |  152|  2.98k|        auto __err = (expr);                                                                                                       \
  |  |  153|  2.98k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 0, False: 2.98k]
  |  |  ------------------
  |  |  154|  2.98k|        {                                                                                                                          \
  |  |  155|      0|            return __err;                                                                                                          \
  |  |  156|      0|        }                                                                                                                          \
  |  |  157|  2.98k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
   71|  2.98k|        ASN1_ENCODE_TIME(asn1Time);
  ------------------
  |  |  288|  2.98k|    do                                                                                                                             \
  |  |  289|  2.98k|    {                                                                                                                              \
  |  |  290|  2.98k|        ASN1_ERR = writer.PutTime(VAL);                                                                                            \
  |  |  ------------------
  |  |  |  |   34|  5.96k|#define ASN1_ERR err
  |  |  ------------------
  |  |  291|  2.98k|        SuccessOrExit(ASN1_ERR);                                                                                                   \
  |  |  ------------------
  |  |  |  |  345|  2.98k|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1400|  2.98k|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  224|  2.98k|    do                                                                                    \
  |  |  |  |  |  |  |  |  225|  2.98k|    {                                                                                     \
  |  |  |  |  |  |  |  |  226|  2.98k|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  125|  2.98k|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 2.98k, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  227|      0|        {                                                                                 \
  |  |  |  |  |  |  |  |  228|      0|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  189|      0|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  190|      0|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  191|      0|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  835|      0|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  194|      0|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  815|      0|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  197|      0|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  855|      0|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  200|      0|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  229|      0|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  230|      0|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  231|      0|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  232|      0|                                           #label,                                        \
  |  |  |  |  |  |  |  |  233|      0|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  234|      0|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  235|      0|                                           0);                                            \
  |  |  |  |  |  |  |  |  236|      0|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  237|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  238|  2.98k|    } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  292|  2.98k|    } while (0);
  |  |  ------------------
  |  |  |  Branch (292:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
   72|       |
   73|       |        // Perform this check if NotAfter value is different from Never-Expire value.
   74|  2.98k|        if (certData.mNotAfterTime != kNullCertTime)
  ------------------
  |  Branch (74:13): [True: 1.86k, False: 1.11k]
  ------------------
   75|  1.86k|        {
   76|  1.86k|            VerifyOrReturnError(certData.mNotBeforeTime < certData.mNotAfterTime, CHIP_ERROR_UNSUPPORTED_CERT_FORMAT);
  ------------------
  |  |  251|  1.86k|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|  1.86k|    do                                                                                                                             \
  |  |  |  |  271|  1.86k|    {                                                                                                                              \
  |  |  |  |  272|  1.86k|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 76, False: 1.79k]
  |  |  |  |  ------------------
  |  |  |  |  273|  1.86k|        {                                                                                                                          \
  |  |  |  |  274|     76|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|     76|            return (value);                                                                                                        \
  |  |  |  |  276|     76|        }                                                                                                                          \
  |  |  |  |  277|  1.86k|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   77|  1.86k|        }
   78|  2.98k|    }
   79|  2.98k|    ASN1_END_SEQUENCE;
  ------------------
  |  |  239|  2.98k|#define ASN1_END_SEQUENCE ASN1_END_CONSTRUCTED
  |  |  ------------------
  |  |  |  |  232|  2.90k|    ASN1_ERR = writer.EndConstructedType();                                                                                        \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|  5.80k|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |  233|  2.90k|    SuccessOrExit(ASN1_ERR);                                                                                                       \
  |  |  |  |  ------------------
  |  |  |  |  |  |  345|  2.90k|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1400|  2.90k|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  224|  2.90k|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  225|  2.90k|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  226|  2.90k|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  125|  2.90k|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 2.90k, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  227|      0|        {                                                                                 \
  |  |  |  |  |  |  |  |  |  |  228|      0|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  189|      0|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  190|      0|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  191|      0|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  835|      0|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  194|      0|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  815|      0|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  197|      0|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  855|      0|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  200|      0|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  229|      0|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  |  |  230|      0|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  |  |  231|      0|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  |  |  232|      0|                                           #label,                                        \
  |  |  |  |  |  |  |  |  |  |  233|      0|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  |  |  234|      0|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  |  |  235|      0|                                           0);                                            \
  |  |  |  |  |  |  |  |  |  |  236|      0|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  |  |  237|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  238|  2.90k|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  234|  2.90k|    }                                                                                                                              \
  |  |  |  |  235|  3.59k|    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (235:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   80|       |
   81|  2.90k|exit:
   82|  2.90k|    return err;
   83|  3.59k|}
CHIPCertToX509.cpp:_ZN4chip11CredentialsL33DecodeConvertSubjectPublicKeyInfoERNS_3TLV9TLVReaderERNS_4ASN110ASN1WriterERNS0_19ChipCertificateDataE:
   86|  2.57k|{
   87|  2.57k|    CHIP_ERROR err;
   88|  2.57k|    uint8_t pubKeyAlgoId, pubKeyCurveId;
   89|       |
   90|  2.57k|    ReturnErrorOnFailure(reader.Next(ContextTag(kTag_PublicKeyAlgorithm)));
  ------------------
  |  |  150|  2.57k|    do                                                                                                                             \
  |  |  151|  2.57k|    {                                                                                                                              \
  |  |  152|  2.57k|        auto __err = (expr);                                                                                                       \
  |  |  153|  2.57k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 52, False: 2.52k]
  |  |  ------------------
  |  |  154|  2.57k|        {                                                                                                                          \
  |  |  155|     52|            return __err;                                                                                                          \
  |  |  156|     52|        }                                                                                                                          \
  |  |  157|  2.57k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
   91|  2.52k|    ReturnErrorOnFailure(reader.Get(pubKeyAlgoId));
  ------------------
  |  |  150|  2.52k|    do                                                                                                                             \
  |  |  151|  2.52k|    {                                                                                                                              \
  |  |  152|  2.52k|        auto __err = (expr);                                                                                                       \
  |  |  153|  2.52k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 4, False: 2.51k]
  |  |  ------------------
  |  |  154|  2.52k|        {                                                                                                                          \
  |  |  155|      4|            return __err;                                                                                                          \
  |  |  156|      4|        }                                                                                                                          \
  |  |  157|  2.52k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
   92|       |
   93|  2.51k|    certData.mPubKeyAlgoOID = GetOID(kOIDCategory_PubKeyAlgo, pubKeyAlgoId);
   94|  2.51k|    VerifyOrReturnError(certData.mPubKeyAlgoOID == kOID_PubKeyAlgo_ECPublicKey, CHIP_ERROR_UNSUPPORTED_CERT_FORMAT);
  ------------------
  |  |  251|  2.51k|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|  2.51k|    do                                                                                                                             \
  |  |  |  |  271|  2.51k|    {                                                                                                                              \
  |  |  |  |  272|  2.51k|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 32, False: 2.48k]
  |  |  |  |  ------------------
  |  |  |  |  273|  2.51k|        {                                                                                                                          \
  |  |  |  |  274|     32|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|     32|            return (value);                                                                                                        \
  |  |  |  |  276|     32|        }                                                                                                                          \
  |  |  |  |  277|  2.51k|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   95|       |
   96|  2.48k|    ReturnErrorOnFailure(reader.Next(ContextTag(kTag_EllipticCurveIdentifier)));
  ------------------
  |  |  150|  2.48k|    do                                                                                                                             \
  |  |  151|  2.48k|    {                                                                                                                              \
  |  |  152|  2.48k|        auto __err = (expr);                                                                                                       \
  |  |  153|  2.48k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 12, False: 2.47k]
  |  |  ------------------
  |  |  154|  2.48k|        {                                                                                                                          \
  |  |  155|     12|            return __err;                                                                                                          \
  |  |  156|     12|        }                                                                                                                          \
  |  |  157|  2.48k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
   97|  2.47k|    ReturnErrorOnFailure(reader.Get(pubKeyCurveId));
  ------------------
  |  |  150|  2.47k|    do                                                                                                                             \
  |  |  151|  2.47k|    {                                                                                                                              \
  |  |  152|  2.47k|        auto __err = (expr);                                                                                                       \
  |  |  153|  2.47k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 8, False: 2.46k]
  |  |  ------------------
  |  |  154|  2.47k|        {                                                                                                                          \
  |  |  155|      8|            return __err;                                                                                                          \
  |  |  156|      8|        }                                                                                                                          \
  |  |  157|  2.47k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
   98|       |
   99|  2.46k|    certData.mPubKeyCurveOID = GetOID(kOIDCategory_EllipticCurve, pubKeyCurveId);
  100|  2.46k|    VerifyOrReturnError(certData.mPubKeyCurveOID == kOID_EllipticCurve_prime256v1, CHIP_ERROR_UNSUPPORTED_ELLIPTIC_CURVE);
  ------------------
  |  |  251|  2.46k|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|  2.46k|    do                                                                                                                             \
  |  |  |  |  271|  2.46k|    {                                                                                                                              \
  |  |  |  |  272|  2.46k|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 36, False: 2.42k]
  |  |  |  |  ------------------
  |  |  |  |  273|  2.46k|        {                                                                                                                          \
  |  |  |  |  274|     36|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|     36|            return (value);                                                                                                        \
  |  |  |  |  276|     36|        }                                                                                                                          \
  |  |  |  |  277|  2.46k|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  101|       |
  102|       |    // subjectPublicKeyInfo SubjectPublicKeyInfo,
  103|  2.42k|    ASN1_START_SEQUENCE
  ------------------
  |  |  237|  2.42k|#define ASN1_START_SEQUENCE ASN1_START_CONSTRUCTED(kASN1TagClass_Universal, kASN1UniversalTag_Sequence)
  |  |  ------------------
  |  |  |  |  226|  2.42k|    do                                                                                                                             \
  |  |  |  |  227|  2.42k|    {                                                                                                                              \
  |  |  |  |  228|  2.42k|        ASN1_ERR = writer.StartConstructedType(CLASS, TAG);                                                                        \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|  4.85k|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |  229|  2.46k|        SuccessOrExit(ASN1_ERR);
  |  |  |  |  ------------------
  |  |  |  |  |  |  345|  2.46k|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1400|  2.46k|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  224|  2.46k|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  225|  2.46k|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  226|  2.42k|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  125|  2.42k|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 2.42k, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  227|      0|        {                                                                                 \
  |  |  |  |  |  |  |  |  |  |  228|      0|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  189|      0|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  190|      0|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  191|      0|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  835|      0|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  194|      0|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  815|      0|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  197|      0|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  855|      0|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  200|      0|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  229|      0|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  |  |  230|      0|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  |  |  231|      0|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  |  |  232|      0|                                           #label,                                        \
  |  |  |  |  |  |  |  |  |  |  233|      0|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  |  |  234|      0|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  |  |  235|      0|                                           0);                                            \
  |  |  |  |  |  |  |  |  |  |  236|      0|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  |  |  237|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  238|  2.42k|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  104|  2.42k|    {
  105|       |        // algorithm AlgorithmIdentifier,
  106|       |        // AlgorithmIdentifier ::= SEQUENCE
  107|  2.42k|        ASN1_START_SEQUENCE
  ------------------
  |  |  237|  2.42k|#define ASN1_START_SEQUENCE ASN1_START_CONSTRUCTED(kASN1TagClass_Universal, kASN1UniversalTag_Sequence)
  |  |  ------------------
  |  |  |  |  226|  2.42k|    do                                                                                                                             \
  |  |  |  |  227|  2.42k|    {                                                                                                                              \
  |  |  |  |  228|  2.42k|        ASN1_ERR = writer.StartConstructedType(CLASS, TAG);                                                                        \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|  4.85k|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |  229|  2.42k|        SuccessOrExit(ASN1_ERR);
  |  |  |  |  ------------------
  |  |  |  |  |  |  345|  2.42k|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1400|  2.42k|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  224|  2.42k|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  225|  2.42k|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  226|  2.42k|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  125|  2.42k|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 2.42k, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  227|      0|        {                                                                                 \
  |  |  |  |  |  |  |  |  |  |  228|      0|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  189|      0|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  190|      0|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  191|      0|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  835|      0|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  194|      0|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  815|      0|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  197|      0|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  855|      0|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  200|      0|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  229|      0|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  |  |  230|      0|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  |  |  231|      0|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  |  |  232|      0|                                           #label,                                        \
  |  |  |  |  |  |  |  |  |  |  233|      0|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  |  |  234|      0|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  |  |  235|      0|                                           0);                                            \
  |  |  |  |  |  |  |  |  |  |  236|      0|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  |  |  237|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  238|  2.42k|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  108|  2.42k|        {
  109|       |            // algorithm OBJECT IDENTIFIER,
  110|  2.42k|            ASN1_ENCODE_OBJECT_ID(certData.mPubKeyAlgoOID);
  ------------------
  |  |  267|  2.42k|    do                                                                                                                             \
  |  |  268|  2.42k|    {                                                                                                                              \
  |  |  269|  2.42k|        ASN1_ERR = writer.PutObjectId(OID);                                                                                        \
  |  |  ------------------
  |  |  |  |   34|  4.85k|#define ASN1_ERR err
  |  |  ------------------
  |  |  270|  2.42k|        SuccessOrExit(ASN1_ERR);                                                                                                   \
  |  |  ------------------
  |  |  |  |  345|  2.42k|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1400|  2.42k|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  224|  2.42k|    do                                                                                    \
  |  |  |  |  |  |  |  |  225|  2.42k|    {                                                                                     \
  |  |  |  |  |  |  |  |  226|  2.42k|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  125|  2.42k|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 2.42k, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  227|      0|        {                                                                                 \
  |  |  |  |  |  |  |  |  228|      0|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  189|      0|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  190|      0|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  191|      0|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  835|      0|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  194|      0|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  815|      0|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  197|      0|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  855|      0|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  200|      0|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  229|      0|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  230|      0|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  231|      0|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  232|      0|                                           #label,                                        \
  |  |  |  |  |  |  |  |  233|      0|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  234|      0|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  235|      0|                                           0);                                            \
  |  |  |  |  |  |  |  |  236|      0|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  237|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  238|  2.42k|    } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  271|  2.42k|    } while (0);
  |  |  ------------------
  |  |  |  Branch (271:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  111|       |
  112|       |            // EcpkParameters ::= CHOICE {
  113|       |            //     ecParameters  ECParameters,
  114|       |            //     namedCurve    OBJECT IDENTIFIER,
  115|       |            //     implicitlyCA  NULL }
  116|       |            //
  117|       |            // (Only namedCurve supported).
  118|       |            //
  119|  2.42k|            ASN1_ENCODE_OBJECT_ID(certData.mPubKeyCurveOID);
  ------------------
  |  |  267|  2.42k|    do                                                                                                                             \
  |  |  268|  2.42k|    {                                                                                                                              \
  |  |  269|  2.42k|        ASN1_ERR = writer.PutObjectId(OID);                                                                                        \
  |  |  ------------------
  |  |  |  |   34|  4.85k|#define ASN1_ERR err
  |  |  ------------------
  |  |  270|  2.42k|        SuccessOrExit(ASN1_ERR);                                                                                                   \
  |  |  ------------------
  |  |  |  |  345|  2.42k|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1400|  2.42k|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  224|  2.42k|    do                                                                                    \
  |  |  |  |  |  |  |  |  225|  2.42k|    {                                                                                     \
  |  |  |  |  |  |  |  |  226|  2.42k|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  125|  2.42k|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 2.42k, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  227|      0|        {                                                                                 \
  |  |  |  |  |  |  |  |  228|      0|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  189|      0|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  190|      0|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  191|      0|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  835|      0|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  194|      0|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  815|      0|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  197|      0|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  855|      0|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  200|      0|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  229|      0|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  230|      0|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  231|      0|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  232|      0|                                           #label,                                        \
  |  |  |  |  |  |  |  |  233|      0|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  234|      0|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  235|      0|                                           0);                                            \
  |  |  |  |  |  |  |  |  236|      0|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  237|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  238|  2.42k|    } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  271|  2.42k|    } while (0);
  |  |  ------------------
  |  |  |  Branch (271:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  120|  2.42k|        }
  121|  2.42k|        ASN1_END_SEQUENCE;
  ------------------
  |  |  239|  2.42k|#define ASN1_END_SEQUENCE ASN1_END_CONSTRUCTED
  |  |  ------------------
  |  |  |  |  232|  2.42k|    ASN1_ERR = writer.EndConstructedType();                                                                                        \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|  4.85k|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |  233|  2.42k|    SuccessOrExit(ASN1_ERR);                                                                                                       \
  |  |  |  |  ------------------
  |  |  |  |  |  |  345|  2.42k|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1400|  2.42k|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  224|  2.42k|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  225|  2.42k|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  226|  2.42k|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  125|  2.42k|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 2.42k, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  227|      0|        {                                                                                 \
  |  |  |  |  |  |  |  |  |  |  228|      0|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  189|      0|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  190|      0|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  191|      0|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  835|      0|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  194|      0|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  815|      0|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  197|      0|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  855|      0|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  200|      0|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  229|      0|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  |  |  230|      0|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  |  |  231|      0|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  |  |  232|      0|                                           #label,                                        \
  |  |  |  |  |  |  |  |  |  |  233|      0|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  |  |  234|      0|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  |  |  235|      0|                                           0);                                            \
  |  |  |  |  |  |  |  |  |  |  236|      0|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  |  |  237|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  238|  2.42k|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  234|  2.42k|    }                                                                                                                              \
  |  |  |  |  235|  2.42k|    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (235:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  122|       |
  123|  2.42k|        ReturnErrorOnFailure(reader.Next(kTLVType_ByteString, ContextTag(kTag_EllipticCurvePublicKey)));
  ------------------
  |  |  150|  2.42k|    do                                                                                                                             \
  |  |  151|  2.42k|    {                                                                                                                              \
  |  |  152|  2.42k|        auto __err = (expr);                                                                                                       \
  |  |  153|  2.42k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 16, False: 2.41k]
  |  |  ------------------
  |  |  154|  2.42k|        {                                                                                                                          \
  |  |  155|     16|            return __err;                                                                                                          \
  |  |  156|     16|        }                                                                                                                          \
  |  |  157|  2.42k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  124|  2.41k|        ReturnErrorOnFailure(reader.Get(certData.mPublicKey));
  ------------------
  |  |  150|  2.41k|    do                                                                                                                             \
  |  |  151|  2.41k|    {                                                                                                                              \
  |  |  152|  2.41k|        auto __err = (expr);                                                                                                       \
  |  |  153|  2.41k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 4, False: 2.40k]
  |  |  ------------------
  |  |  154|  2.41k|        {                                                                                                                          \
  |  |  155|      4|            return __err;                                                                                                          \
  |  |  156|      4|        }                                                                                                                          \
  |  |  157|  2.41k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  125|       |
  126|  2.40k|        static_assert(P256PublicKeySpan().size() <= UINT16_MAX, "Public key size doesn't fit in a uint16_t");
  127|       |
  128|       |        // For EC certs, the subjectPublicKey BIT STRING contains the X9.62 encoded EC point.
  129|  2.40k|        ReturnErrorOnFailure(writer.PutBitString(0, certData.mPublicKey.data(), static_cast<uint16_t>(certData.mPublicKey.size())));
  ------------------
  |  |  150|  2.40k|    do                                                                                                                             \
  |  |  151|  2.40k|    {                                                                                                                              \
  |  |  152|  2.40k|        auto __err = (expr);                                                                                                       \
  |  |  153|  2.40k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 0, False: 2.40k]
  |  |  ------------------
  |  |  154|  2.40k|        {                                                                                                                          \
  |  |  155|      0|            return __err;                                                                                                          \
  |  |  156|      0|        }                                                                                                                          \
  |  |  157|  2.40k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  130|  2.40k|    }
  131|  2.40k|    ASN1_END_SEQUENCE;
  ------------------
  |  |  239|  2.40k|#define ASN1_END_SEQUENCE ASN1_END_CONSTRUCTED
  |  |  ------------------
  |  |  |  |  232|  2.40k|    ASN1_ERR = writer.EndConstructedType();                                                                                        \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|  4.81k|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |  233|  2.40k|    SuccessOrExit(ASN1_ERR);                                                                                                       \
  |  |  |  |  ------------------
  |  |  |  |  |  |  345|  2.40k|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1400|  2.40k|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  224|  2.40k|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  225|  2.40k|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  226|  2.40k|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  125|  2.40k|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 2.40k, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  227|      0|        {                                                                                 \
  |  |  |  |  |  |  |  |  |  |  228|      0|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  189|      0|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  190|      0|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  191|      0|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  835|      0|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  194|      0|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  815|      0|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  197|      0|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  855|      0|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  200|      0|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  229|      0|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  |  |  230|      0|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  |  |  231|      0|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  |  |  232|      0|                                           #label,                                        \
  |  |  |  |  |  |  |  |  |  |  233|      0|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  |  |  234|      0|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  |  |  235|      0|                                           0);                                            \
  |  |  |  |  |  |  |  |  |  |  236|      0|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  |  |  237|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  238|  2.40k|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  234|  2.40k|    }                                                                                                                              \
  |  |  |  |  235|  2.42k|    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (235:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  132|       |
  133|  2.40k|exit:
  134|  2.40k|    return err;
  135|  2.42k|}
CHIPCertToX509.cpp:_ZN4chip11CredentialsL23DecodeConvertExtensionsERNS_3TLV9TLVReaderERNS_4ASN110ASN1WriterERNS0_19ChipCertificateDataE:
  412|  2.40k|{
  413|  2.40k|    CHIP_ERROR err;
  414|  2.40k|    TLVType outerContainer;
  415|       |
  416|  2.40k|    ReturnErrorOnFailure(reader.Next(kTLVType_List, ContextTag(kTag_Extensions)));
  ------------------
  |  |  150|  2.40k|    do                                                                                                                             \
  |  |  151|  2.40k|    {                                                                                                                              \
  |  |  152|  2.40k|        auto __err = (expr);                                                                                                       \
  |  |  153|  2.40k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 8, False: 2.40k]
  |  |  ------------------
  |  |  154|  2.40k|        {                                                                                                                          \
  |  |  155|      8|            return __err;                                                                                                          \
  |  |  156|      8|        }                                                                                                                          \
  |  |  157|  2.40k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  417|  2.40k|    ReturnErrorOnFailure(reader.EnterContainer(outerContainer));
  ------------------
  |  |  150|  2.40k|    do                                                                                                                             \
  |  |  151|  2.40k|    {                                                                                                                              \
  |  |  152|  2.40k|        auto __err = (expr);                                                                                                       \
  |  |  153|  2.40k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 0, False: 2.40k]
  |  |  ------------------
  |  |  154|  2.40k|        {                                                                                                                          \
  |  |  155|      0|            return __err;                                                                                                          \
  |  |  156|      0|        }                                                                                                                          \
  |  |  157|  2.40k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  418|       |
  419|       |    // extensions [3] EXPLICIT Extensions OPTIONAL
  420|  2.40k|    ASN1_START_CONSTRUCTED(kASN1TagClass_ContextSpecific, 3)
  ------------------
  |  |  226|  2.40k|    do                                                                                                                             \
  |  |  227|  2.40k|    {                                                                                                                              \
  |  |  228|  2.40k|        ASN1_ERR = writer.StartConstructedType(CLASS, TAG);                                                                        \
  |  |  ------------------
  |  |  |  |   34|  4.80k|#define ASN1_ERR err
  |  |  ------------------
  |  |  229|  2.40k|        SuccessOrExit(ASN1_ERR);
  |  |  ------------------
  |  |  |  |  345|  2.40k|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1400|  2.40k|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  224|  2.40k|    do                                                                                    \
  |  |  |  |  |  |  |  |  225|  2.40k|    {                                                                                     \
  |  |  |  |  |  |  |  |  226|  2.40k|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  125|  2.40k|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 2.40k, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  227|      0|        {                                                                                 \
  |  |  |  |  |  |  |  |  228|      0|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  189|      0|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  190|      0|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  191|      0|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  835|      0|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  194|      0|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  815|      0|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  197|      0|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  855|      0|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  200|      0|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  229|      0|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  230|      0|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  231|      0|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  232|      0|                                           #label,                                        \
  |  |  |  |  |  |  |  |  233|      0|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  234|      0|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  235|      0|                                           0);                                            \
  |  |  |  |  |  |  |  |  236|      0|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  237|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  238|  2.40k|    } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  421|  2.40k|    {
  422|       |        // Extensions ::= SEQUENCE SIZE (1..MAX) OF Extension
  423|  2.40k|        ASN1_START_SEQUENCE
  ------------------
  |  |  237|  2.40k|#define ASN1_START_SEQUENCE ASN1_START_CONSTRUCTED(kASN1TagClass_Universal, kASN1UniversalTag_Sequence)
  |  |  ------------------
  |  |  |  |  226|  2.40k|    do                                                                                                                             \
  |  |  |  |  227|  2.40k|    {                                                                                                                              \
  |  |  |  |  228|  2.40k|        ASN1_ERR = writer.StartConstructedType(CLASS, TAG);                                                                        \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|  4.80k|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |  229|  2.40k|        SuccessOrExit(ASN1_ERR);
  |  |  |  |  ------------------
  |  |  |  |  |  |  345|  2.40k|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1400|  2.40k|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  224|  2.40k|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  225|  2.40k|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  226|  2.40k|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  125|  2.40k|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 2.40k, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  227|      0|        {                                                                                 \
  |  |  |  |  |  |  |  |  |  |  228|      0|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  189|      0|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  190|      0|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  191|      0|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  835|      0|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  194|      0|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  815|      0|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  197|      0|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  855|      0|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  200|      0|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  229|      0|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  |  |  230|      0|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  |  |  231|      0|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  |  |  232|      0|                                           #label,                                        \
  |  |  |  |  |  |  |  |  |  |  233|      0|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  |  |  234|      0|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  |  |  235|      0|                                           0);                                            \
  |  |  |  |  |  |  |  |  |  |  236|      0|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  |  |  237|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  238|  2.40k|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  424|  2.40k|        {
  425|       |            // Read certificate extension in the List.
  426|  10.7k|            while ((err = reader.Next()) == CHIP_NO_ERROR)
  ------------------
  |  |  482|  10.7k|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  ------------------
  |  Branch (426:20): [True: 10.2k, False: 480]
  ------------------
  427|  10.2k|            {
  428|  10.2k|                ReturnErrorOnFailure(DecodeConvertExtension(reader, writer, certData));
  ------------------
  |  |  150|  10.2k|    do                                                                                                                             \
  |  |  151|  10.2k|    {                                                                                                                              \
  |  |  152|  10.2k|        auto __err = (expr);                                                                                                       \
  |  |  153|  10.2k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 1.92k, False: 8.34k]
  |  |  ------------------
  |  |  154|  10.2k|        {                                                                                                                          \
  |  |  155|  1.92k|            return __err;                                                                                                          \
  |  |  156|  1.92k|        }                                                                                                                          \
  |  |  157|  10.2k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  429|  10.2k|            }
  430|    480|            VerifyOrReturnError(err == CHIP_END_OF_TLV, err);
  ------------------
  |  |  251|    480|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|    480|    do                                                                                                                             \
  |  |  |  |  271|    480|    {                                                                                                                              \
  |  |  |  |  272|    480|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 8, False: 472]
  |  |  |  |  ------------------
  |  |  |  |  273|    480|        {                                                                                                                          \
  |  |  |  |  274|      8|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|      8|            return (value);                                                                                                        \
  |  |  |  |  276|      8|        }                                                                                                                          \
  |  |  |  |  277|    480|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  431|    480|        }
  432|    480|        ASN1_END_SEQUENCE;
  ------------------
  |  |  239|    480|#define ASN1_END_SEQUENCE ASN1_END_CONSTRUCTED
  |  |  ------------------
  |  |  |  |  232|    472|    ASN1_ERR = writer.EndConstructedType();                                                                                        \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|    944|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |  233|    472|    SuccessOrExit(ASN1_ERR);                                                                                                       \
  |  |  |  |  ------------------
  |  |  |  |  |  |  345|    472|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1400|    472|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  224|    472|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  225|    472|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  226|    472|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  125|    472|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 472, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  227|      0|        {                                                                                 \
  |  |  |  |  |  |  |  |  |  |  228|      0|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  189|      0|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  190|      0|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  191|      0|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  835|      0|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  194|      0|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  815|      0|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  197|      0|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  855|      0|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  200|      0|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  229|      0|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  |  |  230|      0|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  |  |  231|      0|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  |  |  232|      0|                                           #label,                                        \
  |  |  |  |  |  |  |  |  |  |  233|      0|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  |  |  234|      0|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  |  |  235|      0|                                           0);                                            \
  |  |  |  |  |  |  |  |  |  |  236|      0|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  |  |  237|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  238|    472|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  234|    472|    }                                                                                                                              \
  |  |  |  |  235|  2.40k|    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (235:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  433|  2.40k|    }
  434|  2.40k|    ASN1_END_CONSTRUCTED;
  ------------------
  |  |  232|    472|    ASN1_ERR = writer.EndConstructedType();                                                                                        \
  |  |  ------------------
  |  |  |  |   34|    944|#define ASN1_ERR err
  |  |  ------------------
  |  |  233|    472|    SuccessOrExit(ASN1_ERR);                                                                                                       \
  |  |  ------------------
  |  |  |  |  345|    472|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1400|    472|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  224|    472|    do                                                                                    \
  |  |  |  |  |  |  |  |  225|    472|    {                                                                                     \
  |  |  |  |  |  |  |  |  226|    472|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  125|    472|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 472, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  227|      0|        {                                                                                 \
  |  |  |  |  |  |  |  |  228|      0|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  189|      0|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  190|      0|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  191|      0|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  835|      0|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  194|      0|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  815|      0|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  197|      0|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  855|      0|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  200|      0|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  229|      0|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  230|      0|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  231|      0|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  232|      0|                                           #label,                                        \
  |  |  |  |  |  |  |  |  233|      0|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  234|      0|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  235|      0|                                           0);                                            \
  |  |  |  |  |  |  |  |  236|      0|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  237|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  238|    472|    } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  234|    472|    }                                                                                                                              \
  |  |  235|  2.40k|    while (0)
  |  |  ------------------
  |  |  |  Branch (235:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  435|       |
  436|    472|    ReturnErrorOnFailure(reader.ExitContainer(outerContainer));
  ------------------
  |  |  150|    472|    do                                                                                                                             \
  |  |  151|    472|    {                                                                                                                              \
  |  |  152|    472|        auto __err = (expr);                                                                                                       \
  |  |  153|    472|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 324, False: 148]
  |  |  ------------------
  |  |  154|    472|        {                                                                                                                          \
  |  |  155|    324|            return __err;                                                                                                          \
  |  |  156|    324|        }                                                                                                                          \
  |  |  157|    472|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  437|       |
  438|    148|exit:
  439|    148|    return err;
  440|    472|}
CHIPCertToX509.cpp:_ZN4chip11CredentialsL22DecodeConvertExtensionERNS_3TLV9TLVReaderERNS_4ASN110ASN1WriterERNS0_19ChipCertificateDataE:
  343|  10.2k|{
  344|  10.2k|    CHIP_ERROR err = CHIP_NO_ERROR;
  ------------------
  |  |  482|  10.2k|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  ------------------
  345|  10.2k|    Tag tlvTag;
  346|  10.2k|    uint32_t extensionTagNum;
  347|       |
  348|  10.2k|    tlvTag = reader.GetTag();
  349|  10.2k|    VerifyOrReturnError(IsContextTag(tlvTag), CHIP_ERROR_INVALID_TLV_TAG);
  ------------------
  |  |  251|  10.2k|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|  10.2k|    do                                                                                                                             \
  |  |  |  |  271|  10.2k|    {                                                                                                                              \
  |  |  |  |  272|  10.2k|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 112, False: 10.1k]
  |  |  |  |  ------------------
  |  |  |  |  273|  10.2k|        {                                                                                                                          \
  |  |  |  |  274|    112|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|    112|            return (value);                                                                                                        \
  |  |  |  |  276|    112|        }                                                                                                                          \
  |  |  |  |  277|  10.2k|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  350|  10.1k|    extensionTagNum = TagNumFromTag(tlvTag);
  351|       |
  352|  10.1k|    if (extensionTagNum == kTag_FutureExtension)
  ------------------
  |  Branch (352:9): [True: 3.45k, False: 6.70k]
  ------------------
  353|  3.45k|    {
  354|  3.45k|        ReturnErrorOnFailure(DecodeConvertFutureExtension(reader, writer, certData));
  ------------------
  |  |  150|  3.45k|    do                                                                                                                             \
  |  |  151|  3.45k|    {                                                                                                                              \
  |  |  152|  3.45k|        auto __err = (expr);                                                                                                       \
  |  |  153|  3.45k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 492, False: 2.96k]
  |  |  ------------------
  |  |  154|  3.45k|        {                                                                                                                          \
  |  |  155|    492|            return __err;                                                                                                          \
  |  |  156|    492|        }                                                                                                                          \
  |  |  157|  3.45k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  355|  3.45k|    }
  356|  6.70k|    else
  357|  6.70k|    {
  358|       |        // Extension ::= SEQUENCE
  359|  6.70k|        ASN1_START_SEQUENCE
  ------------------
  |  |  237|  6.70k|#define ASN1_START_SEQUENCE ASN1_START_CONSTRUCTED(kASN1TagClass_Universal, kASN1UniversalTag_Sequence)
  |  |  ------------------
  |  |  |  |  226|  6.70k|    do                                                                                                                             \
  |  |  |  |  227|  6.70k|    {                                                                                                                              \
  |  |  |  |  228|  6.70k|        ASN1_ERR = writer.StartConstructedType(CLASS, TAG);                                                                        \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|  13.4k|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |  229|  6.70k|        SuccessOrExit(ASN1_ERR);
  |  |  |  |  ------------------
  |  |  |  |  |  |  345|  6.70k|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1400|  6.70k|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  224|  6.70k|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  225|  6.70k|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  226|  6.70k|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  125|  6.70k|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 6.70k, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  227|      0|        {                                                                                 \
  |  |  |  |  |  |  |  |  |  |  228|      0|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  189|      0|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  190|      0|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  191|      0|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  835|      0|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  194|      0|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  815|      0|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  197|      0|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  855|      0|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  200|      0|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  229|      0|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  |  |  230|      0|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  |  |  231|      0|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  |  |  232|      0|                                           #label,                                        \
  |  |  |  |  |  |  |  |  |  |  233|      0|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  |  |  234|      0|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  |  |  235|      0|                                           0);                                            \
  |  |  |  |  |  |  |  |  |  |  236|      0|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  |  |  237|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  238|  6.70k|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  360|  6.70k|        {
  361|       |            // extnID OBJECT IDENTIFIER,
  362|  6.70k|            ASN1_ENCODE_OBJECT_ID(GetOID(kOIDCategory_Extension, static_cast<uint8_t>(extensionTagNum)));
  ------------------
  |  |  267|  6.70k|    do                                                                                                                             \
  |  |  268|  6.70k|    {                                                                                                                              \
  |  |  269|  6.70k|        ASN1_ERR = writer.PutObjectId(OID);                                                                                        \
  |  |  ------------------
  |  |  |  |   34|  13.4k|#define ASN1_ERR err
  |  |  ------------------
  |  |  270|  6.70k|        SuccessOrExit(ASN1_ERR);                                                                                                   \
  |  |  ------------------
  |  |  |  |  345|  6.70k|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1400|  6.70k|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  224|  6.70k|    do                                                                                    \
  |  |  |  |  |  |  |  |  225|  6.70k|    {                                                                                     \
  |  |  |  |  |  |  |  |  226|  6.70k|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  125|  6.70k|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 6.66k, False: 32]
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  227|     32|        {                                                                                 \
  |  |  |  |  |  |  |  |  228|     32|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  189|     32|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  190|     32|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  191|     32|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  835|     32|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  194|     32|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  815|     32|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  197|     32|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  855|     32|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  200|     32|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  229|     32|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  230|     32|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  231|     32|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  232|     32|                                           #label,                                        \
  |  |  |  |  |  |  |  |  233|     32|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  234|     32|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  235|     32|                                           0);                                            \
  |  |  |  |  |  |  |  |  236|     32|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  237|     32|        }                                                                                 \
  |  |  |  |  |  |  |  |  238|  6.70k|    } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  271|  6.70k|    } while (0);
  |  |  ------------------
  |  |  |  Branch (271:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  363|       |
  364|       |            // BasicConstraints, KeyUsage and ExtKeyUsage extensions MUST be marked as critical.
  365|  6.66k|            if (extensionTagNum == kTag_KeyUsage || extensionTagNum == kTag_BasicConstraints ||
  ------------------
  |  Branch (365:17): [True: 792, False: 5.87k]
  |  Branch (365:53): [True: 2.81k, False: 3.06k]
  ------------------
  366|  6.66k|                extensionTagNum == kTag_ExtendedKeyUsage)
  ------------------
  |  Branch (366:17): [True: 1.78k, False: 1.27k]
  ------------------
  367|  5.39k|            {
  368|  5.39k|                ASN1_ENCODE_BOOLEAN(true);
  ------------------
  |  |  253|  5.39k|    do                                                                                                                             \
  |  |  254|  5.39k|    {                                                                                                                              \
  |  |  255|  5.39k|        ASN1_ERR = writer.PutBoolean(VAL);                                                                                         \
  |  |  ------------------
  |  |  |  |   34|  10.7k|#define ASN1_ERR err
  |  |  ------------------
  |  |  256|  5.39k|        SuccessOrExit(ASN1_ERR);                                                                                                   \
  |  |  ------------------
  |  |  |  |  345|  5.39k|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1400|  5.39k|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  224|  5.39k|    do                                                                                    \
  |  |  |  |  |  |  |  |  225|  5.39k|    {                                                                                     \
  |  |  |  |  |  |  |  |  226|  5.39k|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  125|  5.39k|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 5.39k, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  227|      0|        {                                                                                 \
  |  |  |  |  |  |  |  |  228|      0|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  189|      0|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  190|      0|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  191|      0|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  835|      0|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  194|      0|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  815|      0|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  197|      0|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  855|      0|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  200|      0|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  229|      0|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  230|      0|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  231|      0|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  232|      0|                                           #label,                                        \
  |  |  |  |  |  |  |  |  233|      0|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  234|      0|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  235|      0|                                           0);                                            \
  |  |  |  |  |  |  |  |  236|      0|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  237|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  238|  5.39k|    } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  257|  5.39k|    } while (0);
  |  |  ------------------
  |  |  |  Branch (257:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  369|  5.39k|            }
  370|       |
  371|       |            // extnValue OCTET STRING
  372|       |            //           -- contains the DER encoding of an ASN.1 value
  373|       |            //           -- corresponding to the extension type identified
  374|       |            //           -- by extnID
  375|  6.66k|            ASN1_START_OCTET_STRING_ENCAPSULATED
  ------------------
  |  |  307|  6.66k|#define ASN1_START_OCTET_STRING_ENCAPSULATED ASN1_START_ENCAPSULATED(kASN1TagClass_Universal, kASN1UniversalTag_OctetString, false)
  |  |  ------------------
  |  |  |  |  302|  6.66k|    do                                                                                                                             \
  |  |  |  |  303|  6.66k|    {                                                                                                                              \
  |  |  |  |  304|  6.66k|        ASN1_ERR = writer.StartEncapsulatedType(CLASS, TAG, BIT_STRING_ENCODING);                                                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|  13.3k|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |  305|  6.66k|        SuccessOrExit(ASN1_ERR);
  |  |  |  |  ------------------
  |  |  |  |  |  |  345|  6.66k|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1400|  6.66k|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  224|  6.66k|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  225|  6.66k|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  226|  6.66k|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  125|  6.66k|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 6.66k, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  227|      0|        {                                                                                 \
  |  |  |  |  |  |  |  |  |  |  228|      0|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  189|      0|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  190|      0|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  191|      0|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  835|      0|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  194|      0|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  815|      0|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  197|      0|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  855|      0|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  200|      0|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  229|      0|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  |  |  230|      0|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  |  |  231|      0|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  |  |  232|      0|                                           #label,                                        \
  |  |  |  |  |  |  |  |  |  |  233|      0|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  |  |  234|      0|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  |  |  235|      0|                                           0);                                            \
  |  |  |  |  |  |  |  |  |  |  236|      0|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  |  |  237|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  238|  6.66k|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  376|  6.66k|            {
  377|  6.66k|                if (extensionTagNum == kTag_AuthorityKeyIdentifier)
  ------------------
  |  Branch (377:21): [True: 436, False: 6.23k]
  ------------------
  378|    436|                {
  379|    436|                    ReturnErrorOnFailure(DecodeConvertAuthorityKeyIdentifierExtension(reader, writer, certData));
  ------------------
  |  |  150|    436|    do                                                                                                                             \
  |  |  151|    436|    {                                                                                                                              \
  |  |  152|    436|        auto __err = (expr);                                                                                                       \
  |  |  153|    436|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 32, False: 404]
  |  |  ------------------
  |  |  154|    436|        {                                                                                                                          \
  |  |  155|     32|            return __err;                                                                                                          \
  |  |  156|     32|        }                                                                                                                          \
  |  |  157|    436|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  380|    436|                }
  381|  6.23k|                else if (extensionTagNum == kTag_SubjectKeyIdentifier)
  ------------------
  |  Branch (381:26): [True: 836, False: 5.39k]
  ------------------
  382|    836|                {
  383|    836|                    ReturnErrorOnFailure(DecodeConvertSubjectKeyIdentifierExtension(reader, writer, certData));
  ------------------
  |  |  150|    836|    do                                                                                                                             \
  |  |  151|    836|    {                                                                                                                              \
  |  |  152|    836|        auto __err = (expr);                                                                                                       \
  |  |  153|    836|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 56, False: 780]
  |  |  ------------------
  |  |  154|    836|        {                                                                                                                          \
  |  |  155|     56|            return __err;                                                                                                          \
  |  |  156|     56|        }                                                                                                                          \
  |  |  157|    836|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  384|    836|                }
  385|  5.39k|                else if (extensionTagNum == kTag_KeyUsage)
  ------------------
  |  Branch (385:26): [True: 792, False: 4.60k]
  ------------------
  386|    792|                {
  387|    792|                    ReturnErrorOnFailure(DecodeConvertKeyUsageExtension(reader, writer, certData));
  ------------------
  |  |  150|    792|    do                                                                                                                             \
  |  |  151|    792|    {                                                                                                                              \
  |  |  152|    792|        auto __err = (expr);                                                                                                       \
  |  |  153|    792|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 400, False: 392]
  |  |  ------------------
  |  |  154|    792|        {                                                                                                                          \
  |  |  155|    400|            return __err;                                                                                                          \
  |  |  156|    400|        }                                                                                                                          \
  |  |  157|    792|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  388|    792|                }
  389|  4.60k|                else if (extensionTagNum == kTag_BasicConstraints)
  ------------------
  |  Branch (389:26): [True: 2.81k, False: 1.78k]
  ------------------
  390|  2.81k|                {
  391|  2.81k|                    ReturnErrorOnFailure(DecodeConvertBasicConstraintsExtension(reader, writer, certData));
  ------------------
  |  |  150|  2.81k|    do                                                                                                                             \
  |  |  151|  2.81k|    {                                                                                                                              \
  |  |  152|  2.81k|        auto __err = (expr);                                                                                                       \
  |  |  153|  2.81k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 652, False: 2.16k]
  |  |  ------------------
  |  |  154|  2.81k|        {                                                                                                                          \
  |  |  155|    652|            return __err;                                                                                                          \
  |  |  156|    652|        }                                                                                                                          \
  |  |  157|  2.81k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  392|  2.81k|                }
  393|  1.78k|                else if (extensionTagNum == kTag_ExtendedKeyUsage)
  ------------------
  |  Branch (393:26): [True: 1.78k, False: 0]
  ------------------
  394|  1.78k|                {
  395|  1.78k|                    ReturnErrorOnFailure(DecodeConvertExtendedKeyUsageExtension(reader, writer, certData));
  ------------------
  |  |  150|  1.78k|    do                                                                                                                             \
  |  |  151|  1.78k|    {                                                                                                                              \
  |  |  152|  1.78k|        auto __err = (expr);                                                                                                       \
  |  |  153|  1.78k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 144, False: 1.64k]
  |  |  ------------------
  |  |  154|  1.78k|        {                                                                                                                          \
  |  |  155|    144|            return __err;                                                                                                          \
  |  |  156|    144|        }                                                                                                                          \
  |  |  157|  1.78k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  396|  1.78k|                }
  397|      0|                else
  398|      0|                {
  399|      0|                    return CHIP_ERROR_UNSUPPORTED_CERT_FORMAT;
  ------------------
  |  | 1095|      0|#define CHIP_ERROR_UNSUPPORTED_CERT_FORMAT                     CHIP_CORE_ERROR(0x50)
  |  |  ------------------
  |  |  |  |  436|      0|#define CHIP_CORE_ERROR(e) CHIP_SDK_ERROR(::chip::ChipError::SdkPart::kCore, (e))
  |  |  |  |  ------------------
  |  |  |  |  |  |  171|      0|    (::chip::ChipError(::chip::ChipError::SdkErrorConstant<(part), (code)>::value, __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  400|      0|                }
  401|  6.66k|            }
  402|  6.66k|            ASN1_END_ENCAPSULATED;
  ------------------
  |  |  312|  5.38k|    ASN1_ERR = writer.EndEncapsulatedType();                                                                                       \
  |  |  ------------------
  |  |  |  |   34|  10.7k|#define ASN1_ERR err
  |  |  ------------------
  |  |  313|  5.38k|    SuccessOrExit(ASN1_ERR);                                                                                                       \
  |  |  ------------------
  |  |  |  |  345|  5.38k|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1400|  5.38k|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  224|  5.38k|    do                                                                                    \
  |  |  |  |  |  |  |  |  225|  5.38k|    {                                                                                     \
  |  |  |  |  |  |  |  |  226|  5.38k|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  125|  5.38k|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 5.38k, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  227|      0|        {                                                                                 \
  |  |  |  |  |  |  |  |  228|      0|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  189|      0|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  190|      0|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  191|      0|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  835|      0|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  194|      0|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  815|      0|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  197|      0|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  855|      0|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  200|      0|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  229|      0|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  230|      0|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  231|      0|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  232|      0|                                           #label,                                        \
  |  |  |  |  |  |  |  |  233|      0|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  234|      0|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  235|      0|                                           0);                                            \
  |  |  |  |  |  |  |  |  236|      0|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  237|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  238|  5.38k|    } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  314|  5.38k|    }                                                                                                                              \
  |  |  315|  6.66k|    while (0)
  |  |  ------------------
  |  |  |  Branch (315:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  403|  6.66k|        }
  404|  6.66k|        ASN1_END_SEQUENCE;
  ------------------
  |  |  239|  6.66k|#define ASN1_END_SEQUENCE ASN1_END_CONSTRUCTED
  |  |  ------------------
  |  |  |  |  232|  5.38k|    ASN1_ERR = writer.EndConstructedType();                                                                                        \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|  10.7k|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |  233|  5.38k|    SuccessOrExit(ASN1_ERR);                                                                                                       \
  |  |  |  |  ------------------
  |  |  |  |  |  |  345|  5.38k|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1400|  5.38k|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  224|  5.38k|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  225|  5.38k|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  226|  5.38k|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  125|  5.38k|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 5.38k, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  227|      0|        {                                                                                 \
  |  |  |  |  |  |  |  |  |  |  228|      0|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  189|      0|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  190|      0|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  191|      0|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  835|      0|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  194|      0|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  815|      0|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  197|      0|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  855|      0|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  200|      0|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  229|      0|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  |  |  230|      0|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  |  |  231|      0|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  |  |  232|      0|                                           #label,                                        \
  |  |  |  |  |  |  |  |  |  |  233|      0|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  |  |  234|      0|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  |  |  235|      0|                                           0);                                            \
  |  |  |  |  |  |  |  |  |  |  236|      0|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  |  |  237|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  238|  5.38k|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  234|  5.38k|    }                                                                                                                              \
  |  |  |  |  235|  6.70k|    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (235:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  405|  6.70k|    }
  406|       |
  407|  8.37k|exit:
  408|  8.37k|    return err;
  409|  10.1k|}
CHIPCertToX509.cpp:_ZN4chip11CredentialsL28DecodeConvertFutureExtensionERNS_3TLV9TLVReaderERNS_4ASN110ASN1WriterERNS0_19ChipCertificateDataE:
  297|  3.45k|{
  298|  3.45k|    CHIP_ERROR err;
  299|  3.45k|    ByteSpan extensionSequence;
  300|  3.45k|    ASN1Reader reader;
  301|       |
  302|  3.45k|    ReturnErrorOnFailure(tlvReader.Expect(kTLVType_ByteString, ContextTag(kTag_FutureExtension)));
  ------------------
  |  |  150|  3.45k|    do                                                                                                                             \
  |  |  151|  3.45k|    {                                                                                                                              \
  |  |  152|  3.45k|        auto __err = (expr);                                                                                                       \
  |  |  153|  3.45k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 12, False: 3.44k]
  |  |  ------------------
  |  |  154|  3.45k|        {                                                                                                                          \
  |  |  155|     12|            return __err;                                                                                                          \
  |  |  156|     12|        }                                                                                                                          \
  |  |  157|  3.45k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  303|  3.44k|    ReturnErrorOnFailure(tlvReader.Get(extensionSequence));
  ------------------
  |  |  150|  3.44k|    do                                                                                                                             \
  |  |  151|  3.44k|    {                                                                                                                              \
  |  |  152|  3.44k|        auto __err = (expr);                                                                                                       \
  |  |  153|  3.44k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 0, False: 3.44k]
  |  |  ------------------
  |  |  154|  3.44k|        {                                                                                                                          \
  |  |  155|      0|            return __err;                                                                                                          \
  |  |  156|      0|        }                                                                                                                          \
  |  |  157|  3.44k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  304|       |
  305|  3.44k|    reader.Init(extensionSequence);
  306|       |
  307|       |    // Extension ::= SEQUENCE
  308|  3.44k|    ASN1_PARSE_ENTER_SEQUENCE
  ------------------
  |  |   95|  3.44k|#define ASN1_PARSE_ENTER_SEQUENCE ASN1_PARSE_ENTER_CONSTRUCTED(kASN1TagClass_Universal, kASN1UniversalTag_Sequence)
  |  |  ------------------
  |  |  |  |   66|  3.44k|    do                                                                                                                             \
  |  |  |  |   67|  3.44k|    {                                                                                                                              \
  |  |  |  |   68|  3.44k|        ASN1_ERR = ASN1_READER.Next();                                                                                             \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|  6.88k|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |                       ASN1_ERR = ASN1_READER.Next();                                                                                             \
  |  |  |  |  ------------------
  |  |  |  |  |  |   33|  3.44k|#define ASN1_READER reader
  |  |  |  |  ------------------
  |  |  |  |   69|  3.44k|        SuccessOrExit(ASN1_ERR);                                                                                                   \
  |  |  |  |  ------------------
  |  |  |  |  |  |  345|  3.44k|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1400|  3.44k|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  224|  3.44k|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  225|  3.44k|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  226|  3.44k|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  125|  3.44k|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 3.36k, False: 72]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  227|     72|        {                                                                                 \
  |  |  |  |  |  |  |  |  |  |  228|     72|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  189|     72|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  190|     72|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  191|     72|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  835|     72|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  194|     72|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  815|     72|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  197|     72|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  855|     72|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  200|     72|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  229|     72|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  |  |  230|     72|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  |  |  231|     72|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  |  |  232|     72|                                           #label,                                        \
  |  |  |  |  |  |  |  |  |  |  233|     72|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  |  |  234|     72|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  |  |  235|     72|                                           0);                                            \
  |  |  |  |  |  |  |  |  |  |  236|     72|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  |  |  237|     72|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  238|  3.44k|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   70|  3.44k|                                                                                                                                   \
  |  |  |  |   71|  3.44k|        ASN1_VERIFY_TAG(CLASS, TAG);                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  |   39|  3.36k|    VerifyOrExit(ASN1_READER.GetClass() == (CLASS) && ASN1_READER.GetTag() == (TAG), ASN1_ERR = ASN1_ERROR_INVALID_ENCODING);
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  390|  3.36k|#define VerifyOrExit(aCondition, anAction) nlEXPECT_ACTION(aCondition, exit, anAction)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  | 1454|  3.36k|#define nlEXPECT_ACTION(aCondition, aLabel, anAction)                           __nlEXPECT_ACTION(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel, anAction)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  258|  3.36k|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  259|  3.36k|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  260|  3.36k|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  125|  10.0k|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 3.35k, False: 12]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 3.31k, False: 44]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  261|     56|        {                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  262|     56|            __NL_ASSERT_MAYBE_RUN_PRE_ACTION_TRIGGERS((flags),                            \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  203|     56|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  204|     56|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  205|     56|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  835|     56|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (205:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  206|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  207|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  208|     56|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  815|     56|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (208:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  209|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  210|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  211|     56|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (211:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  263|     56|                                                      NL_ASSERT_PREFIX_STRING,            \
  |  |  |  |  |  |  |  |  |  |  |  |  264|     56|                                                      NL_ASSERT_COMPONENT_STRING,         \
  |  |  |  |  |  |  |  |  |  |  |  |  265|     56|                                                      #condition,                         \
  |  |  |  |  |  |  |  |  |  |  |  |  266|     56|                                                      #label,                             \
  |  |  |  |  |  |  |  |  |  |  |  |  267|     56|                                                      NL_ASSERT_FILE,                     \
  |  |  |  |  |  |  |  |  |  |  |  |  268|     56|                                                      __LINE__,                           \
  |  |  |  |  |  |  |  |  |  |  |  |  269|     56|                                                      0);                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  270|     56|            {                                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  271|     56|                action;                                                                   \
  |  |  |  |  |  |  |  |  |  |  |  |  272|     56|            }                                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  273|     56|            __NL_ASSERT_MAYBE_RUN_POST_ACTION_TRIGGERS((flags),                           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  214|     56|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  215|     56|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  216|     56|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  855|     56|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (216:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  217|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  218|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  219|     56|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (219:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  274|     56|                                                       NL_ASSERT_PREFIX_STRING,           \
  |  |  |  |  |  |  |  |  |  |  |  |  275|     56|                                                       NL_ASSERT_COMPONENT_STRING,        \
  |  |  |  |  |  |  |  |  |  |  |  |  276|     56|                                                       #condition,                        \
  |  |  |  |  |  |  |  |  |  |  |  |  277|     56|                                                       #label,                            \
  |  |  |  |  |  |  |  |  |  |  |  |  278|     56|                                                       NL_ASSERT_FILE,                    \
  |  |  |  |  |  |  |  |  |  |  |  |  279|     56|                                                       __LINE__,                          \
  |  |  |  |  |  |  |  |  |  |  |  |  280|     56|                                                       0);                                \
  |  |  |  |  |  |  |  |  |  |  |  |  281|     56|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  |  |  |  |  282|     56|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  283|  3.36k|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (283:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   72|  3.31k|                                                                                                                                   \
  |  |  |  |   73|  3.31k|        ASN1_ERR = ASN1_READER.EnterConstructedType();                                                                             \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|  6.62k|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |                       ASN1_ERR = ASN1_READER.EnterConstructedType();                                                                             \
  |  |  |  |  ------------------
  |  |  |  |  |  |   33|  3.31k|#define ASN1_READER reader
  |  |  |  |  ------------------
  |  |  |  |   74|  3.44k|        SuccessOrExit(ASN1_ERR);
  |  |  |  |  ------------------
  |  |  |  |  |  |  345|  3.44k|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1400|  3.44k|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  224|  3.44k|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  225|  3.44k|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  226|  3.31k|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  125|  3.31k|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 3.30k, False: 4]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  227|      4|        {                                                                                 \
  |  |  |  |  |  |  |  |  |  |  228|      4|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  189|      4|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  190|      4|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  191|      4|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  835|      4|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  194|      4|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  815|      4|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  197|      4|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  855|      4|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  200|      4|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  229|      4|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  |  |  230|      4|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  |  |  231|      4|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  |  |  232|      4|                                           #label,                                        \
  |  |  |  |  |  |  |  |  |  |  233|      4|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  |  |  234|      4|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  |  |  235|      4|                                           0);                                            \
  |  |  |  |  |  |  |  |  |  |  236|      4|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  |  |  237|      4|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  238|  3.31k|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  309|  3.30k|    {
  310|  3.30k|        OID extensionOID;
  311|  3.30k|        bool critical = false;
  312|       |
  313|  3.30k|        ASN1_PARSE_OBJECT_ID(extensionOID);
  ------------------
  |  |  176|  3.30k|    do                                                                                                                             \
  |  |  177|  3.30k|    {                                                                                                                              \
  |  |  178|  3.30k|        ASN1_PARSE_ELEMENT(kASN1TagClass_Universal, kASN1UniversalTag_ObjectId);                                                   \
  |  |  ------------------
  |  |  |  |   42|  3.30k|    do                                                                                                                             \
  |  |  |  |   43|  3.30k|    {                                                                                                                              \
  |  |  |  |   44|  3.30k|        ASN1_ERR = ASN1_READER.Next();                                                                                             \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|  6.61k|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |                       ASN1_ERR = ASN1_READER.Next();                                                                                             \
  |  |  |  |  ------------------
  |  |  |  |  |  |   33|  3.30k|#define ASN1_READER reader
  |  |  |  |  ------------------
  |  |  |  |   45|  3.30k|        SuccessOrExit(ASN1_ERR);                                                                                                   \
  |  |  |  |  ------------------
  |  |  |  |  |  |  345|  3.30k|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1400|  3.30k|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  224|  3.30k|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  225|  3.30k|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  226|  3.30k|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  125|  3.30k|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 3.29k, False: 16]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  227|     16|        {                                                                                 \
  |  |  |  |  |  |  |  |  |  |  228|     16|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  189|     16|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  190|     16|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  191|     16|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  835|     16|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  194|     16|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  815|     16|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  197|     16|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  855|     16|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  200|     16|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  229|     16|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  |  |  230|     16|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  |  |  231|     16|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  |  |  232|     16|                                           #label,                                        \
  |  |  |  |  |  |  |  |  |  |  233|     16|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  |  |  234|     16|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  |  |  235|     16|                                           0);                                            \
  |  |  |  |  |  |  |  |  |  |  236|     16|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  |  |  237|     16|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  238|  3.30k|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   46|  3.30k|                                                                                                                                   \
  |  |  |  |   47|  3.30k|        ASN1_VERIFY_TAG(CLASS, TAG);                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  |   39|  3.29k|    VerifyOrExit(ASN1_READER.GetClass() == (CLASS) && ASN1_READER.GetTag() == (TAG), ASN1_ERR = ASN1_ERROR_INVALID_ENCODING);
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  390|  3.29k|#define VerifyOrExit(aCondition, anAction) nlEXPECT_ACTION(aCondition, exit, anAction)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  | 1454|  3.29k|#define nlEXPECT_ACTION(aCondition, aLabel, anAction)                           __nlEXPECT_ACTION(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel, anAction)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  258|  3.29k|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  259|  3.29k|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  260|  3.29k|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  125|  9.86k|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 3.28k, False: 12]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 3.26k, False: 12]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  261|     24|        {                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  262|     24|            __NL_ASSERT_MAYBE_RUN_PRE_ACTION_TRIGGERS((flags),                            \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  203|     24|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  204|     24|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  205|     24|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  835|     24|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (205:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  206|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  207|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  208|     24|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  815|     24|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (208:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  209|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  210|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  211|     24|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (211:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  263|     24|                                                      NL_ASSERT_PREFIX_STRING,            \
  |  |  |  |  |  |  |  |  |  |  |  |  264|     24|                                                      NL_ASSERT_COMPONENT_STRING,         \
  |  |  |  |  |  |  |  |  |  |  |  |  265|     24|                                                      #condition,                         \
  |  |  |  |  |  |  |  |  |  |  |  |  266|     24|                                                      #label,                             \
  |  |  |  |  |  |  |  |  |  |  |  |  267|     24|                                                      NL_ASSERT_FILE,                     \
  |  |  |  |  |  |  |  |  |  |  |  |  268|     24|                                                      __LINE__,                           \
  |  |  |  |  |  |  |  |  |  |  |  |  269|     24|                                                      0);                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  270|     24|            {                                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  271|     24|                action;                                                                   \
  |  |  |  |  |  |  |  |  |  |  |  |  272|     24|            }                                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  273|     24|            __NL_ASSERT_MAYBE_RUN_POST_ACTION_TRIGGERS((flags),                           \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  214|     24|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  215|     24|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  216|     24|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  855|     24|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (216:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  217|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  218|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  219|     24|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (219:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  274|     24|                                                       NL_ASSERT_PREFIX_STRING,           \
  |  |  |  |  |  |  |  |  |  |  |  |  275|     24|                                                       NL_ASSERT_COMPONENT_STRING,        \
  |  |  |  |  |  |  |  |  |  |  |  |  276|     24|                                                       #condition,                        \
  |  |  |  |  |  |  |  |  |  |  |  |  277|     24|                                                       #label,                            \
  |  |  |  |  |  |  |  |  |  |  |  |  278|     24|                                                       NL_ASSERT_FILE,                    \
  |  |  |  |  |  |  |  |  |  |  |  |  279|     24|                                                       __LINE__,                          \
  |  |  |  |  |  |  |  |  |  |  |  |  280|     24|                                                       0);                                \
  |  |  |  |  |  |  |  |  |  |  |  |  281|     24|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  |  |  |  |  282|     24|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  283|  3.29k|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (283:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   48|  3.26k|    } while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (48:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  179|  3.30k|                                                                                                                                   \
  |  |  180|  3.30k|        ASN1_ERR = ASN1_READER.GetObjectId(OUT_VAL);                                                                               \
  |  |  ------------------
  |  |  |  |   34|  6.53k|#define ASN1_ERR err
  |  |  ------------------
  |  |                       ASN1_ERR = ASN1_READER.GetObjectId(OUT_VAL);                                                                               \
  |  |  ------------------
  |  |  |  |   33|  3.26k|#define ASN1_READER reader
  |  |  ------------------
  |  |  181|  3.26k|        SuccessOrExit(ASN1_ERR);                                                                                                   \
  |  |  ------------------
  |  |  |  |  345|  3.26k|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1400|  3.26k|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  224|  3.26k|    do                                                                                    \
  |  |  |  |  |  |  |  |  225|  3.26k|    {                                                                                     \
  |  |  |  |  |  |  |  |  226|  3.26k|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  125|  3.26k|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 3.24k, False: 28]
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  227|     28|        {                                                                                 \
  |  |  |  |  |  |  |  |  228|     28|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  189|     28|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  190|     28|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  191|     28|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  835|     28|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  194|     28|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  815|     28|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  197|     28|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  855|     28|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  200|     28|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  229|     28|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  230|     28|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  231|     28|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  232|     28|                                           #label,                                        \
  |  |  |  |  |  |  |  |  233|     28|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  234|     28|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  235|     28|                                           0);                                            \
  |  |  |  |  |  |  |  |  236|     28|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  237|     28|        }                                                                                 \
  |  |  |  |  |  |  |  |  238|  3.26k|    } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  182|  3.26k|    } while (0)
  |  |  ------------------
  |  |  |  Branch (182:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  314|       |
  315|  3.24k|        VerifyOrReturnError(extensionOID == kOID_Unknown, ASN1_ERROR_UNSUPPORTED_ENCODING);
  ------------------
  |  |  251|  3.24k|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|  3.24k|    do                                                                                                                             \
  |  |  |  |  271|  3.24k|    {                                                                                                                              \
  |  |  |  |  272|  3.24k|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 20, False: 3.22k]
  |  |  |  |  ------------------
  |  |  |  |  273|  3.24k|        {                                                                                                                          \
  |  |  |  |  274|     20|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|     20|            return (value);                                                                                                        \
  |  |  |  |  276|     20|        }                                                                                                                          \
  |  |  |  |  277|  3.24k|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  316|       |
  317|       |        // critical BOOLEAN DEFAULT FALSE,
  318|  3.22k|        ASN1_PARSE_ANY;
  ------------------
  |  |   51|  3.22k|    do                                                                                                                             \
  |  |   52|  3.22k|    {                                                                                                                              \
  |  |   53|  3.22k|        ASN1_ERR = ASN1_READER.Next();                                                                                             \
  |  |  ------------------
  |  |  |  |   34|  6.44k|#define ASN1_ERR err
  |  |  ------------------
  |  |                       ASN1_ERR = ASN1_READER.Next();                                                                                             \
  |  |  ------------------
  |  |  |  |   33|  3.22k|#define ASN1_READER reader
  |  |  ------------------
  |  |   54|  3.22k|        SuccessOrExit(ASN1_ERR);                                                                                                   \
  |  |  ------------------
  |  |  |  |  345|  3.22k|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1400|  3.22k|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  224|  3.22k|    do                                                                                    \
  |  |  |  |  |  |  |  |  225|  3.22k|    {                                                                                     \
  |  |  |  |  |  |  |  |  226|  3.22k|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  125|  3.22k|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 3.18k, False: 32]
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  227|     32|        {                                                                                 \
  |  |  |  |  |  |  |  |  228|     32|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  189|     32|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  190|     32|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  191|     32|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  835|     32|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  194|     32|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  815|     32|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  197|     32|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  855|     32|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  200|     32|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  229|     32|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  230|     32|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  231|     32|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  232|     32|                                           #label,                                        \
  |  |  |  |  |  |  |  |  233|     32|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  234|     32|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  235|     32|                                           0);                                            \
  |  |  |  |  |  |  |  |  236|     32|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  237|     32|        }                                                                                 \
  |  |  |  |  |  |  |  |  238|  3.22k|    } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   55|  3.22k|    } while (0)
  |  |  ------------------
  |  |  |  Branch (55:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  319|  3.18k|        if (reader.GetClass() == kASN1TagClass_Universal && reader.GetTag() == kASN1UniversalTag_Boolean)
  ------------------
  |  Branch (319:13): [True: 2.24k, False: 944]
  |  Branch (319:61): [True: 816, False: 1.42k]
  ------------------
  320|    816|        {
  321|    816|            ASN1_GET_BOOLEAN(critical);
  ------------------
  |  |  169|    816|    do                                                                                                                             \
  |  |  170|    816|    {                                                                                                                              \
  |  |  171|    816|        ASN1_ERR = ASN1_READER.GetBoolean(OUT_VAL);                                                                                \
  |  |  ------------------
  |  |  |  |   34|  1.63k|#define ASN1_ERR err
  |  |  ------------------
  |  |                       ASN1_ERR = ASN1_READER.GetBoolean(OUT_VAL);                                                                                \
  |  |  ------------------
  |  |  |  |   33|    816|#define ASN1_READER reader
  |  |  ------------------
  |  |  172|    816|        SuccessOrExit(ASN1_ERR);                                                                                                   \
  |  |  ------------------
  |  |  |  |  345|    816|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1400|    816|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  224|    816|    do                                                                                    \
  |  |  |  |  |  |  |  |  225|    816|    {                                                                                     \
  |  |  |  |  |  |  |  |  226|    816|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  125|    816|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 708, False: 108]
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  227|    108|        {                                                                                 \
  |  |  |  |  |  |  |  |  228|    108|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  189|    108|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  190|    108|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  191|    108|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  835|    108|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  194|    108|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  815|    108|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  197|    108|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  855|    108|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  200|    108|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  229|    108|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  230|    108|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  231|    108|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  232|    108|                                           #label,                                        \
  |  |  |  |  |  |  |  |  233|    108|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  234|    108|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  235|    108|                                           0);                                            \
  |  |  |  |  |  |  |  |  236|    108|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  237|    108|        }                                                                                 \
  |  |  |  |  |  |  |  |  238|    816|    } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  173|    816|    } while (0)
  |  |  ------------------
  |  |  |  Branch (173:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  322|       |
  323|    708|            if (critical)
  ------------------
  |  Branch (323:17): [True: 264, False: 444]
  ------------------
  324|    264|            {
  325|    264|                certData.mCertFlags.Set(CertFlags::kExtPresent_FutureIsCritical);
  326|    264|            }
  327|       |
  328|    708|            ASN1_PARSE_ANY;
  ------------------
  |  |   51|    708|    do                                                                                                                             \
  |  |   52|    708|    {                                                                                                                              \
  |  |   53|    708|        ASN1_ERR = ASN1_READER.Next();                                                                                             \
  |  |  ------------------
  |  |  |  |   34|  1.41k|#define ASN1_ERR err
  |  |  ------------------
  |  |                       ASN1_ERR = ASN1_READER.Next();                                                                                             \
  |  |  ------------------
  |  |  |  |   33|    708|#define ASN1_READER reader
  |  |  ------------------
  |  |   54|    708|        SuccessOrExit(ASN1_ERR);                                                                                                   \
  |  |  ------------------
  |  |  |  |  345|    708|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1400|    708|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  224|    708|    do                                                                                    \
  |  |  |  |  |  |  |  |  225|    708|    {                                                                                     \
  |  |  |  |  |  |  |  |  226|    708|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  125|    708|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 664, False: 44]
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  227|     44|        {                                                                                 \
  |  |  |  |  |  |  |  |  228|     44|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  189|     44|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  190|     44|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  191|     44|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  835|     44|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  194|     44|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  815|     44|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  197|     44|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  855|     44|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  200|     44|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  229|     44|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  230|     44|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  231|     44|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  232|     44|                                           #label,                                        \
  |  |  |  |  |  |  |  |  233|     44|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  234|     44|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  235|     44|                                           0);                                            \
  |  |  |  |  |  |  |  |  236|     44|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  237|     44|        }                                                                                 \
  |  |  |  |  |  |  |  |  238|    708|    } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |   55|    708|    } while (0)
  |  |  ------------------
  |  |  |  Branch (55:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  329|    708|        }
  330|  3.18k|    }
  331|  3.18k|    ASN1_EXIT_SEQUENCE;
  ------------------
  |  |   99|  3.18k|#define ASN1_EXIT_SEQUENCE ASN1_EXIT_CONSTRUCTED
  |  |  ------------------
  |  |  |  |   77|  3.03k|    ASN1_ERR = ASN1_READER.Next();                                                                                                 \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|  6.07k|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |                   ASN1_ERR = ASN1_READER.Next();                                                                                                 \
  |  |  |  |  ------------------
  |  |  |  |  |  |   33|  3.03k|#define ASN1_READER reader
  |  |  |  |  ------------------
  |  |  |  |   78|  3.03k|    if (ASN1_ERR == CHIP_NO_ERROR)                                                                                                 \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|  6.07k|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |                   if (ASN1_ERR == CHIP_NO_ERROR)                                                                                                 \
  |  |  |  |  ------------------
  |  |  |  |  |  |  482|  3.03k|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (78:9): [True: 36, False: 3.00k]
  |  |  |  |  ------------------
  |  |  |  |   79|  3.03k|        ASN1_ERR = ASN1_ERROR_INVALID_ENCODING;                                                                                    \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|     72|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |                       ASN1_ERR = ASN1_ERROR_INVALID_ENCODING;                                                                                    \
  |  |  |  |  ------------------
  |  |  |  |  |  |  101|     36|#define ASN1_ERROR_INVALID_ENCODING     CHIP_ASN1_ERROR(0x05)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   36|     36|#define CHIP_ASN1_ERROR(e) CHIP_SDK_ERROR(::chip::ChipError::SdkPart::kASN1, (e))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  171|     36|    (::chip::ChipError(::chip::ChipError::SdkErrorConstant<(part), (code)>::value, __FILE__, __LINE__))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   80|  3.03k|    else if (ASN1_ERR == ASN1_END)                                                                                                 \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|  6.00k|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |                   else if (ASN1_ERR == ASN1_END)                                                                                                 \
  |  |  |  |  ------------------
  |  |  |  |  |  |   56|  3.00k|#define ASN1_END                        CHIP_ASN1_ERROR(0x00)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |   36|  3.00k|#define CHIP_ASN1_ERROR(e) CHIP_SDK_ERROR(::chip::ChipError::SdkPart::kASN1, (e))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  171|  3.00k|    (::chip::ChipError(::chip::ChipError::SdkErrorConstant<(part), (code)>::value, __FILE__, __LINE__))
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (80:14): [True: 2.96k, False: 32]
  |  |  |  |  ------------------
  |  |  |  |   81|  3.00k|        ASN1_ERR = CHIP_NO_ERROR;                                                                                                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|  5.93k|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |                       ASN1_ERR = CHIP_NO_ERROR;                                                                                                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |  482|  2.96k|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  |  |  |  |  ------------------
  |  |  |  |   82|  3.03k|    SuccessOrExit(ASN1_ERR);                                                                                                       \
  |  |  |  |  ------------------
  |  |  |  |  |  |  345|  3.03k|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1400|  3.03k|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  224|  3.03k|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  225|  3.03k|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  226|  3.03k|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  125|  3.03k|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 2.96k, False: 68]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  227|     68|        {                                                                                 \
  |  |  |  |  |  |  |  |  |  |  228|     68|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  189|     68|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  190|     68|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  191|     68|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  835|     68|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  194|     68|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  815|     68|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  197|     68|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  855|     68|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  200|     68|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  229|     68|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  |  |  230|     68|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  |  |  231|     68|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  |  |  232|     68|                                           #label,                                        \
  |  |  |  |  |  |  |  |  |  |  233|     68|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  |  |  234|     68|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  |  |  235|     68|                                           0);                                            \
  |  |  |  |  |  |  |  |  |  |  236|     68|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  |  |  237|     68|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  238|  3.03k|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   83|  3.03k|                                                                                                                                   \
  |  |  |  |   84|  3.03k|    ASN1_ERR = ASN1_READER.ExitConstructedType();                                                                                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|  5.93k|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |                   ASN1_ERR = ASN1_READER.ExitConstructedType();                                                                                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   33|  2.96k|#define ASN1_READER reader
  |  |  |  |  ------------------
  |  |  |  |   85|  2.96k|    SuccessOrExit(ASN1_ERR);                                                                                                       \
  |  |  |  |  ------------------
  |  |  |  |  |  |  345|  2.96k|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1400|  2.96k|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  224|  2.96k|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  225|  2.96k|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  226|  2.96k|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  125|  2.96k|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 2.96k, False: 4]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  227|      4|        {                                                                                 \
  |  |  |  |  |  |  |  |  |  |  228|      4|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  189|      4|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  190|      4|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  191|      4|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  835|      4|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  194|      4|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  815|      4|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  197|      4|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  855|      4|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  200|      4|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  229|      4|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  |  |  230|      4|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  |  |  231|      4|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  |  |  232|      4|                                           #label,                                        \
  |  |  |  |  |  |  |  |  |  |  233|      4|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  |  |  234|      4|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  |  |  235|      4|                                           0);                                            \
  |  |  |  |  |  |  |  |  |  |  236|      4|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  |  |  237|      4|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  238|  2.96k|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |   86|  2.96k|    }                                                                                                                              \
  |  |  |  |   87|  3.44k|    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (87:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  332|       |
  333|  2.96k|    VerifyOrReturnError(CanCastTo<uint16_t>(extensionSequence.size()), ASN1_ERROR_INVALID_ENCODING);
  ------------------
  |  |  251|  2.96k|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|  2.96k|    do                                                                                                                             \
  |  |  |  |  271|  2.96k|    {                                                                                                                              \
  |  |  |  |  272|  2.96k|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 4, False: 2.96k]
  |  |  |  |  ------------------
  |  |  |  |  273|  2.96k|        {                                                                                                                          \
  |  |  |  |  274|      4|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|      4|            return (value);                                                                                                        \
  |  |  |  |  276|      4|        }                                                                                                                          \
  |  |  |  |  277|  2.96k|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  334|       |
  335|       |    // FutureExtension SEQUENCE
  336|  2.96k|    ReturnErrorOnFailure(writer.PutConstructedType(extensionSequence.data(), static_cast<uint16_t>(extensionSequence.size())));
  ------------------
  |  |  150|  2.96k|    do                                                                                                                             \
  |  |  151|  2.96k|    {                                                                                                                              \
  |  |  152|  2.96k|        auto __err = (expr);                                                                                                       \
  |  |  153|  2.96k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 0, False: 2.96k]
  |  |  ------------------
  |  |  154|  2.96k|        {                                                                                                                          \
  |  |  155|      0|            return __err;                                                                                                          \
  |  |  156|      0|        }                                                                                                                          \
  |  |  157|  2.96k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  337|       |
  338|  3.41k|exit:
  339|  3.41k|    return err;
  340|  2.96k|}
CHIPCertToX509.cpp:_ZN4chip11CredentialsL44DecodeConvertAuthorityKeyIdentifierExtensionERNS_3TLV9TLVReaderERNS_4ASN110ASN1WriterERNS0_19ChipCertificateDataE:
  139|    436|{
  140|    436|    CHIP_ERROR err;
  141|       |
  142|    436|    certData.mCertFlags.Set(CertFlags::kExtPresent_AuthKeyId);
  143|       |
  144|       |    // AuthorityKeyIdentifier extension MUST be marked as non-critical (default).
  145|       |
  146|       |    // AuthorityKeyIdentifier ::= SEQUENCE
  147|    436|    ASN1_START_SEQUENCE
  ------------------
  |  |  237|    436|#define ASN1_START_SEQUENCE ASN1_START_CONSTRUCTED(kASN1TagClass_Universal, kASN1UniversalTag_Sequence)
  |  |  ------------------
  |  |  |  |  226|    436|    do                                                                                                                             \
  |  |  |  |  227|    436|    {                                                                                                                              \
  |  |  |  |  228|    436|        ASN1_ERR = writer.StartConstructedType(CLASS, TAG);                                                                        \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|    872|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |  229|    436|        SuccessOrExit(ASN1_ERR);
  |  |  |  |  ------------------
  |  |  |  |  |  |  345|    436|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1400|    436|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  224|    436|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  225|    436|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  226|    436|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  125|    436|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 436, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  227|      0|        {                                                                                 \
  |  |  |  |  |  |  |  |  |  |  228|      0|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  189|      0|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  190|      0|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  191|      0|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  835|      0|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  194|      0|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  815|      0|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  197|      0|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  855|      0|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  200|      0|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  229|      0|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  |  |  230|      0|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  |  |  231|      0|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  |  |  232|      0|                                           #label,                                        \
  |  |  |  |  |  |  |  |  |  |  233|      0|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  |  |  234|      0|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  |  |  235|      0|                                           0);                                            \
  |  |  |  |  |  |  |  |  |  |  236|      0|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  |  |  237|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  238|    436|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  148|    436|    {
  149|       |        // keyIdentifier [0] IMPLICIT KeyIdentifier
  150|       |        // KeyIdentifier ::= OCTET STRING
  151|    436|        ReturnErrorOnFailure(reader.Expect(kTLVType_ByteString, ContextTag(kTag_AuthorityKeyIdentifier)));
  ------------------
  |  |  150|    436|    do                                                                                                                             \
  |  |  151|    436|    {                                                                                                                              \
  |  |  152|    436|        auto __err = (expr);                                                                                                       \
  |  |  153|    436|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 20, False: 416]
  |  |  ------------------
  |  |  154|    436|        {                                                                                                                          \
  |  |  155|     20|            return __err;                                                                                                          \
  |  |  156|     20|        }                                                                                                                          \
  |  |  157|    436|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  152|    416|        ReturnErrorOnFailure(reader.Get(certData.mAuthKeyId));
  ------------------
  |  |  150|    416|    do                                                                                                                             \
  |  |  151|    416|    {                                                                                                                              \
  |  |  152|    416|        auto __err = (expr);                                                                                                       \
  |  |  153|    416|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 12, False: 404]
  |  |  ------------------
  |  |  154|    416|        {                                                                                                                          \
  |  |  155|     12|            return __err;                                                                                                          \
  |  |  156|     12|        }                                                                                                                          \
  |  |  157|    416|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  153|       |
  154|    404|        static_assert(CertificateKeyId().size() <= UINT16_MAX, "Authority key id size doesn't fit in a uint16_t");
  155|       |
  156|    404|        ReturnErrorOnFailure(writer.PutOctetString(kASN1TagClass_ContextSpecific, 0, certData.mAuthKeyId.data(),
  ------------------
  |  |  150|    404|    do                                                                                                                             \
  |  |  151|    404|    {                                                                                                                              \
  |  |  152|    404|        auto __err = (expr);                                                                                                       \
  |  |  153|    404|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 0, False: 404]
  |  |  ------------------
  |  |  154|    404|        {                                                                                                                          \
  |  |  155|      0|            return __err;                                                                                                          \
  |  |  156|      0|        }                                                                                                                          \
  |  |  157|    404|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  157|    404|                                                   static_cast<uint16_t>(certData.mAuthKeyId.size())));
  158|    404|    }
  159|    404|    ASN1_END_SEQUENCE;
  ------------------
  |  |  239|    404|#define ASN1_END_SEQUENCE ASN1_END_CONSTRUCTED
  |  |  ------------------
  |  |  |  |  232|    404|    ASN1_ERR = writer.EndConstructedType();                                                                                        \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|    808|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |  233|    404|    SuccessOrExit(ASN1_ERR);                                                                                                       \
  |  |  |  |  ------------------
  |  |  |  |  |  |  345|    404|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1400|    404|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  224|    404|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  225|    404|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  226|    404|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  125|    404|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 404, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  227|      0|        {                                                                                 \
  |  |  |  |  |  |  |  |  |  |  228|      0|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  189|      0|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  190|      0|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  191|      0|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  835|      0|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  194|      0|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  815|      0|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  197|      0|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  855|      0|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  200|      0|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  229|      0|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  |  |  230|      0|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  |  |  231|      0|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  |  |  232|      0|                                           #label,                                        \
  |  |  |  |  |  |  |  |  |  |  233|      0|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  |  |  234|      0|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  |  |  235|      0|                                           0);                                            \
  |  |  |  |  |  |  |  |  |  |  236|      0|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  |  |  237|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  238|    404|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  234|    404|    }                                                                                                                              \
  |  |  |  |  235|    436|    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (235:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  160|       |
  161|    404|exit:
  162|    404|    return err;
  163|    436|}
CHIPCertToX509.cpp:_ZN4chip11CredentialsL42DecodeConvertSubjectKeyIdentifierExtensionERNS_3TLV9TLVReaderERNS_4ASN110ASN1WriterERNS0_19ChipCertificateDataE:
  167|    836|{
  168|    836|    certData.mCertFlags.Set(CertFlags::kExtPresent_SubjectKeyId);
  169|       |
  170|       |    // SubjectKeyIdentifier extension MUST be marked as non-critical (default).
  171|       |
  172|       |    // SubjectKeyIdentifier ::= KeyIdentifier
  173|       |    // KeyIdentifier ::= OCTET STRING
  174|    836|    ReturnErrorOnFailure(reader.Expect(kTLVType_ByteString, ContextTag(kTag_SubjectKeyIdentifier)));
  ------------------
  |  |  150|    836|    do                                                                                                                             \
  |  |  151|    836|    {                                                                                                                              \
  |  |  152|    836|        auto __err = (expr);                                                                                                       \
  |  |  153|    836|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 20, False: 816]
  |  |  ------------------
  |  |  154|    836|        {                                                                                                                          \
  |  |  155|     20|            return __err;                                                                                                          \
  |  |  156|     20|        }                                                                                                                          \
  |  |  157|    836|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  175|    816|    ReturnErrorOnFailure(reader.Get(certData.mSubjectKeyId));
  ------------------
  |  |  150|    816|    do                                                                                                                             \
  |  |  151|    816|    {                                                                                                                              \
  |  |  152|    816|        auto __err = (expr);                                                                                                       \
  |  |  153|    816|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 36, False: 780]
  |  |  ------------------
  |  |  154|    816|        {                                                                                                                          \
  |  |  155|     36|            return __err;                                                                                                          \
  |  |  156|     36|        }                                                                                                                          \
  |  |  157|    816|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  176|       |
  177|    780|    static_assert(CertificateKeyId().size() <= UINT16_MAX, "Subject key id size doesn't fit in a uint16_t");
  178|       |
  179|    780|    ReturnErrorOnFailure(
  ------------------
  |  |  150|    780|    do                                                                                                                             \
  |  |  151|    780|    {                                                                                                                              \
  |  |  152|    780|        auto __err = (expr);                                                                                                       \
  |  |  153|    780|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 0, False: 780]
  |  |  ------------------
  |  |  154|    780|        {                                                                                                                          \
  |  |  155|      0|            return __err;                                                                                                          \
  |  |  156|      0|        }                                                                                                                          \
  |  |  157|    780|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  180|    780|        writer.PutOctetString(certData.mSubjectKeyId.data(), static_cast<uint16_t>(certData.mSubjectKeyId.size())));
  181|       |
  182|    780|    return CHIP_NO_ERROR;
  ------------------
  |  |  482|    780|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  ------------------
  183|    780|}
CHIPCertToX509.cpp:_ZN4chip11CredentialsL30DecodeConvertKeyUsageExtensionERNS_3TLV9TLVReaderERNS_4ASN110ASN1WriterERNS0_19ChipCertificateDataE:
  186|    792|{
  187|    792|    CHIP_ERROR err;
  188|    792|    uint16_t keyUsageBits;
  189|       |
  190|    792|    certData.mCertFlags.Set(CertFlags::kExtPresent_KeyUsage);
  191|       |
  192|       |    // KeyUsage ::= BIT STRING
  193|    792|    ReturnErrorOnFailure(reader.Expect(ContextTag(kTag_KeyUsage)));
  ------------------
  |  |  150|    792|    do                                                                                                                             \
  |  |  151|    792|    {                                                                                                                              \
  |  |  152|    792|        auto __err = (expr);                                                                                                       \
  |  |  153|    792|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 0, False: 792]
  |  |  ------------------
  |  |  154|    792|        {                                                                                                                          \
  |  |  155|      0|            return __err;                                                                                                          \
  |  |  156|      0|        }                                                                                                                          \
  |  |  157|    792|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  194|    792|    ReturnErrorOnFailure(reader.Get(keyUsageBits));
  ------------------
  |  |  150|    792|    do                                                                                                                             \
  |  |  151|    792|    {                                                                                                                              \
  |  |  152|    792|        auto __err = (expr);                                                                                                       \
  |  |  153|    792|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 332, False: 460]
  |  |  ------------------
  |  |  154|    792|        {                                                                                                                          \
  |  |  155|    332|            return __err;                                                                                                          \
  |  |  156|    332|        }                                                                                                                          \
  |  |  157|    792|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  195|       |
  196|    460|    {
  197|    460|        BitFlags<KeyUsageFlags> keyUsageFlags(keyUsageBits);
  198|    460|        VerifyOrReturnError(
  ------------------
  |  |  251|    460|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|    460|    do                                                                                                                             \
  |  |  |  |  271|    460|    {                                                                                                                              \
  |  |  |  |  272|    460|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 68, False: 392]
  |  |  |  |  ------------------
  |  |  |  |  273|    460|        {                                                                                                                          \
  |  |  |  |  274|     68|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|     68|            return (value);                                                                                                        \
  |  |  |  |  276|     68|        }                                                                                                                          \
  |  |  |  |  277|    460|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  199|    392|            keyUsageFlags.HasOnly(KeyUsageFlags::kDigitalSignature, KeyUsageFlags::kNonRepudiation, KeyUsageFlags::kKeyEncipherment,
  200|    392|                                  KeyUsageFlags::kDataEncipherment, KeyUsageFlags::kKeyAgreement, KeyUsageFlags::kKeyCertSign,
  201|    392|                                  KeyUsageFlags::kCRLSign, KeyUsageFlags::kEncipherOnly, KeyUsageFlags::kEncipherOnly),
  202|    392|            CHIP_ERROR_UNSUPPORTED_CERT_FORMAT);
  203|       |
  204|    392|        ASN1_ENCODE_BIT_STRING(keyUsageBits);
  ------------------
  |  |  260|    392|    do                                                                                                                             \
  |  |  261|    392|    {                                                                                                                              \
  |  |  262|    392|        ASN1_ERR = writer.PutBitString(VAL);                                                                                       \
  |  |  ------------------
  |  |  |  |   34|    784|#define ASN1_ERR err
  |  |  ------------------
  |  |  263|    392|        SuccessOrExit(ASN1_ERR);                                                                                                   \
  |  |  ------------------
  |  |  |  |  345|    392|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1400|    392|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  224|    392|    do                                                                                    \
  |  |  |  |  |  |  |  |  225|    392|    {                                                                                     \
  |  |  |  |  |  |  |  |  226|    392|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  125|    392|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 392, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  227|      0|        {                                                                                 \
  |  |  |  |  |  |  |  |  228|      0|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  189|      0|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  190|      0|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  191|      0|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  835|      0|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  194|      0|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  815|      0|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  197|      0|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  855|      0|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  200|      0|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  229|      0|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  230|      0|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  231|      0|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  232|      0|                                           #label,                                        \
  |  |  |  |  |  |  |  |  233|      0|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  234|      0|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  235|      0|                                           0);                                            \
  |  |  |  |  |  |  |  |  236|      0|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  237|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  238|    392|    } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  264|    392|    } while (0);
  |  |  ------------------
  |  |  |  Branch (264:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  205|       |
  206|    392|        certData.mKeyUsageFlags = keyUsageFlags;
  207|    392|    }
  208|       |
  209|    392|exit:
  210|    392|    return err;
  211|    392|}
CHIPCertToX509.cpp:_ZN4chip11CredentialsL38DecodeConvertBasicConstraintsExtensionERNS_3TLV9TLVReaderERNS_4ASN110ASN1WriterERNS0_19ChipCertificateDataE:
  214|  2.81k|{
  215|  2.81k|    CHIP_ERROR err;
  216|  2.81k|    TLVType outerContainer;
  217|       |
  218|  2.81k|    certData.mCertFlags.Set(CertFlags::kExtPresent_BasicConstraints);
  219|       |
  220|       |    // BasicConstraints ::= SEQUENCE
  221|  2.81k|    ASN1_START_SEQUENCE
  ------------------
  |  |  237|  2.81k|#define ASN1_START_SEQUENCE ASN1_START_CONSTRUCTED(kASN1TagClass_Universal, kASN1UniversalTag_Sequence)
  |  |  ------------------
  |  |  |  |  226|  2.81k|    do                                                                                                                             \
  |  |  |  |  227|  2.81k|    {                                                                                                                              \
  |  |  |  |  228|  2.81k|        ASN1_ERR = writer.StartConstructedType(CLASS, TAG);                                                                        \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|  5.63k|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |  229|  2.81k|        SuccessOrExit(ASN1_ERR);
  |  |  |  |  ------------------
  |  |  |  |  |  |  345|  2.81k|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1400|  2.81k|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  224|  2.81k|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  225|  2.81k|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  226|  2.81k|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  125|  2.81k|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 2.81k, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  227|      0|        {                                                                                 \
  |  |  |  |  |  |  |  |  |  |  228|      0|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  189|      0|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  190|      0|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  191|      0|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  835|      0|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  194|      0|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  815|      0|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  197|      0|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  855|      0|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  200|      0|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  229|      0|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  |  |  230|      0|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  |  |  231|      0|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  |  |  232|      0|                                           #label,                                        \
  |  |  |  |  |  |  |  |  |  |  233|      0|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  |  |  234|      0|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  |  |  235|      0|                                           0);                                            \
  |  |  |  |  |  |  |  |  |  |  236|      0|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  |  |  237|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  238|  2.81k|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  222|  2.81k|    {
  223|  2.81k|        ReturnErrorOnFailure(reader.Expect(kTLVType_Structure, ContextTag(kTag_BasicConstraints)));
  ------------------
  |  |  150|  2.81k|    do                                                                                                                             \
  |  |  151|  2.81k|    {                                                                                                                              \
  |  |  152|  2.81k|        auto __err = (expr);                                                                                                       \
  |  |  153|  2.81k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 12, False: 2.80k]
  |  |  ------------------
  |  |  154|  2.81k|        {                                                                                                                          \
  |  |  155|     12|            return __err;                                                                                                          \
  |  |  156|     12|        }                                                                                                                          \
  |  |  157|  2.81k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  224|  2.80k|        ReturnErrorOnFailure(reader.EnterContainer(outerContainer));
  ------------------
  |  |  150|  2.80k|    do                                                                                                                             \
  |  |  151|  2.80k|    {                                                                                                                              \
  |  |  152|  2.80k|        auto __err = (expr);                                                                                                       \
  |  |  153|  2.80k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 0, False: 2.80k]
  |  |  ------------------
  |  |  154|  2.80k|        {                                                                                                                          \
  |  |  155|      0|            return __err;                                                                                                          \
  |  |  156|      0|        }                                                                                                                          \
  |  |  157|  2.80k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  225|       |
  226|       |        // cA BOOLEAN DEFAULT FALSE
  227|  2.80k|        {
  228|  2.80k|            bool isCA;
  229|  2.80k|            ReturnErrorOnFailure(reader.Next(ContextTag(kTag_BasicConstraints_IsCA)));
  ------------------
  |  |  150|  2.80k|    do                                                                                                                             \
  |  |  151|  2.80k|    {                                                                                                                              \
  |  |  152|  2.80k|        auto __err = (expr);                                                                                                       \
  |  |  153|  2.80k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 20, False: 2.78k]
  |  |  ------------------
  |  |  154|  2.80k|        {                                                                                                                          \
  |  |  155|     20|            return __err;                                                                                                          \
  |  |  156|     20|        }                                                                                                                          \
  |  |  157|  2.80k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  230|  2.78k|            ReturnErrorOnFailure(reader.Get(isCA));
  ------------------
  |  |  150|  2.78k|    do                                                                                                                             \
  |  |  151|  2.78k|    {                                                                                                                              \
  |  |  152|  2.78k|        auto __err = (expr);                                                                                                       \
  |  |  153|  2.78k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 44, False: 2.74k]
  |  |  ------------------
  |  |  154|  2.78k|        {                                                                                                                          \
  |  |  155|     44|            return __err;                                                                                                          \
  |  |  156|     44|        }                                                                                                                          \
  |  |  157|  2.78k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  231|       |
  232|  2.74k|            if (isCA)
  ------------------
  |  Branch (232:17): [True: 1.51k, False: 1.22k]
  ------------------
  233|  1.51k|            {
  234|  1.51k|                ASN1_ENCODE_BOOLEAN(true);
  ------------------
  |  |  253|  1.51k|    do                                                                                                                             \
  |  |  254|  1.51k|    {                                                                                                                              \
  |  |  255|  1.51k|        ASN1_ERR = writer.PutBoolean(VAL);                                                                                         \
  |  |  ------------------
  |  |  |  |   34|  3.02k|#define ASN1_ERR err
  |  |  ------------------
  |  |  256|  1.51k|        SuccessOrExit(ASN1_ERR);                                                                                                   \
  |  |  ------------------
  |  |  |  |  345|  1.51k|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1400|  1.51k|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  224|  1.51k|    do                                                                                    \
  |  |  |  |  |  |  |  |  225|  1.51k|    {                                                                                     \
  |  |  |  |  |  |  |  |  226|  1.51k|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  125|  1.51k|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 1.51k, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  227|      0|        {                                                                                 \
  |  |  |  |  |  |  |  |  228|      0|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  189|      0|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  190|      0|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  191|      0|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  835|      0|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  194|      0|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  815|      0|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  197|      0|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  855|      0|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  200|      0|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  229|      0|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  230|      0|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  231|      0|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  232|      0|                                           #label,                                        \
  |  |  |  |  |  |  |  |  233|      0|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  234|      0|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  235|      0|                                           0);                                            \
  |  |  |  |  |  |  |  |  236|      0|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  237|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  238|  1.51k|    } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  257|  1.51k|    } while (0);
  |  |  ------------------
  |  |  |  Branch (257:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  235|  1.51k|                certData.mCertFlags.Set(CertFlags::kIsCA);
  236|  1.51k|            }
  237|       |
  238|  2.74k|            err = reader.Next();
  239|  2.74k|            VerifyOrReturnError(err == CHIP_NO_ERROR || err == CHIP_END_OF_TLV, err);
  ------------------
  |  |  251|  2.74k|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|  2.74k|    do                                                                                                                             \
  |  |  |  |  271|  2.74k|    {                                                                                                                              \
  |  |  |  |  272|  3.56k|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 12, False: 2.72k]
  |  |  |  |  |  Branch (272:15): [True: 1.91k, False: 824]
  |  |  |  |  |  Branch (272:15): [True: 812, False: 12]
  |  |  |  |  ------------------
  |  |  |  |  273|  2.74k|        {                                                                                                                          \
  |  |  |  |  274|     12|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|     12|            return (value);                                                                                                        \
  |  |  |  |  276|     12|        }                                                                                                                          \
  |  |  |  |  277|  2.74k|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  240|  2.74k|        }
  241|       |
  242|       |        // pathLenConstraint INTEGER (0..MAX) OPTIONAL
  243|  2.72k|        if (reader.GetTag() == ContextTag(kTag_BasicConstraints_PathLenConstraint))
  ------------------
  |  Branch (243:13): [True: 556, False: 2.17k]
  ------------------
  244|    556|        {
  245|    556|            ReturnErrorOnFailure(reader.Get(certData.mPathLenConstraint));
  ------------------
  |  |  150|    556|    do                                                                                                                             \
  |  |  151|    556|    {                                                                                                                              \
  |  |  152|    556|        auto __err = (expr);                                                                                                       \
  |  |  153|    556|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 8, False: 548]
  |  |  ------------------
  |  |  154|    556|        {                                                                                                                          \
  |  |  155|      8|            return __err;                                                                                                          \
  |  |  156|      8|        }                                                                                                                          \
  |  |  157|    556|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  246|       |
  247|    548|            ASN1_ENCODE_INTEGER(certData.mPathLenConstraint);
  ------------------
  |  |  246|    548|    do                                                                                                                             \
  |  |  247|    548|    {                                                                                                                              \
  |  |  248|    548|        ASN1_ERR = writer.PutInteger(VAL);                                                                                         \
  |  |  ------------------
  |  |  |  |   34|  1.09k|#define ASN1_ERR err
  |  |  ------------------
  |  |  249|    548|        SuccessOrExit(ASN1_ERR);                                                                                                   \
  |  |  ------------------
  |  |  |  |  345|    548|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1400|    548|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  224|    548|    do                                                                                    \
  |  |  |  |  |  |  |  |  225|    548|    {                                                                                     \
  |  |  |  |  |  |  |  |  226|    548|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  125|    548|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 548, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  227|      0|        {                                                                                 \
  |  |  |  |  |  |  |  |  228|      0|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  189|      0|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  190|      0|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  191|      0|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  835|      0|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  194|      0|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  815|      0|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  197|      0|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  855|      0|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  200|      0|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  229|      0|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  230|      0|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  231|      0|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  232|      0|                                           #label,                                        \
  |  |  |  |  |  |  |  |  233|      0|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  234|      0|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  235|      0|                                           0);                                            \
  |  |  |  |  |  |  |  |  236|      0|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  237|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  238|    548|    } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  250|    548|    } while (0);
  |  |  ------------------
  |  |  |  Branch (250:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  248|       |
  249|    548|            certData.mCertFlags.Set(CertFlags::kPathLenConstraintPresent);
  250|       |
  251|    548|            err = reader.Next();
  252|    548|            VerifyOrReturnError(err == CHIP_END_OF_TLV, err);
  ------------------
  |  |  251|    548|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|    548|    do                                                                                                                             \
  |  |  |  |  271|    548|    {                                                                                                                              \
  |  |  |  |  272|    548|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 196, False: 352]
  |  |  |  |  ------------------
  |  |  |  |  273|    548|        {                                                                                                                          \
  |  |  |  |  274|    196|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|    196|            return (value);                                                                                                        \
  |  |  |  |  276|    196|        }                                                                                                                          \
  |  |  |  |  277|    548|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  253|    548|        }
  254|       |
  255|  2.52k|        ReturnErrorOnFailure(reader.VerifyEndOfContainer());
  ------------------
  |  |  150|  2.52k|    do                                                                                                                             \
  |  |  151|  2.52k|    {                                                                                                                              \
  |  |  152|  2.52k|        auto __err = (expr);                                                                                                       \
  |  |  153|  2.52k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 12, False: 2.51k]
  |  |  ------------------
  |  |  154|  2.52k|        {                                                                                                                          \
  |  |  155|     12|            return __err;                                                                                                          \
  |  |  156|     12|        }                                                                                                                          \
  |  |  157|  2.52k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  256|  2.51k|        ReturnErrorOnFailure(reader.ExitContainer(outerContainer));
  ------------------
  |  |  150|  2.51k|    do                                                                                                                             \
  |  |  151|  2.51k|    {                                                                                                                              \
  |  |  152|  2.51k|        auto __err = (expr);                                                                                                       \
  |  |  153|  2.51k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 520, False: 1.99k]
  |  |  ------------------
  |  |  154|  2.51k|        {                                                                                                                          \
  |  |  155|    520|            return __err;                                                                                                          \
  |  |  156|    520|        }                                                                                                                          \
  |  |  157|  2.51k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  257|  2.51k|    }
  258|  2.51k|    ASN1_END_SEQUENCE;
  ------------------
  |  |  239|  2.51k|#define ASN1_END_SEQUENCE ASN1_END_CONSTRUCTED
  |  |  ------------------
  |  |  |  |  232|  1.99k|    ASN1_ERR = writer.EndConstructedType();                                                                                        \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|  3.98k|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |  233|  1.99k|    SuccessOrExit(ASN1_ERR);                                                                                                       \
  |  |  |  |  ------------------
  |  |  |  |  |  |  345|  1.99k|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1400|  1.99k|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  224|  1.99k|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  225|  1.99k|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  226|  1.99k|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  125|  1.99k|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 1.99k, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  227|      0|        {                                                                                 \
  |  |  |  |  |  |  |  |  |  |  228|      0|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  189|      0|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  190|      0|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  191|      0|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  835|      0|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  194|      0|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  815|      0|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  197|      0|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  855|      0|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  200|      0|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  229|      0|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  |  |  230|      0|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  |  |  231|      0|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  |  |  232|      0|                                           #label,                                        \
  |  |  |  |  |  |  |  |  |  |  233|      0|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  |  |  234|      0|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  |  |  235|      0|                                           0);                                            \
  |  |  |  |  |  |  |  |  |  |  236|      0|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  |  |  237|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  238|  1.99k|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  234|  1.99k|    }                                                                                                                              \
  |  |  |  |  235|  2.81k|    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (235:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  259|       |
  260|  1.99k|exit:
  261|  1.99k|    return err;
  262|  2.81k|}
CHIPCertToX509.cpp:_ZN4chip11CredentialsL38DecodeConvertExtendedKeyUsageExtensionERNS_3TLV9TLVReaderERNS_4ASN110ASN1WriterERNS0_19ChipCertificateDataE:
  265|  1.78k|{
  266|  1.78k|    CHIP_ERROR err;
  267|  1.78k|    TLVType outerContainer;
  268|       |
  269|  1.78k|    certData.mCertFlags.Set(CertFlags::kExtPresent_ExtendedKeyUsage);
  270|       |
  271|       |    // ExtKeyUsageSyntax ::= SEQUENCE SIZE (1..MAX) OF KeyPurposeId
  272|  1.78k|    ASN1_START_SEQUENCE
  ------------------
  |  |  237|  1.78k|#define ASN1_START_SEQUENCE ASN1_START_CONSTRUCTED(kASN1TagClass_Universal, kASN1UniversalTag_Sequence)
  |  |  ------------------
  |  |  |  |  226|  1.78k|    do                                                                                                                             \
  |  |  |  |  227|  1.78k|    {                                                                                                                              \
  |  |  |  |  228|  1.78k|        ASN1_ERR = writer.StartConstructedType(CLASS, TAG);                                                                        \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|  3.57k|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |  229|  1.78k|        SuccessOrExit(ASN1_ERR);
  |  |  |  |  ------------------
  |  |  |  |  |  |  345|  1.78k|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1400|  1.78k|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  224|  1.78k|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  225|  1.78k|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  226|  1.78k|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  125|  1.78k|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 1.78k, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  227|      0|        {                                                                                 \
  |  |  |  |  |  |  |  |  |  |  228|      0|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  189|      0|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  190|      0|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  191|      0|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  835|      0|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  194|      0|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  815|      0|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  197|      0|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  855|      0|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  200|      0|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  229|      0|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  |  |  230|      0|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  |  |  231|      0|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  |  |  232|      0|                                           #label,                                        \
  |  |  |  |  |  |  |  |  |  |  233|      0|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  |  |  234|      0|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  |  |  235|      0|                                           0);                                            \
  |  |  |  |  |  |  |  |  |  |  236|      0|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  |  |  237|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  238|  1.78k|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  273|  1.78k|    {
  274|  1.78k|        ReturnErrorOnFailure(reader.Expect(kTLVType_Array, ContextTag(kTag_ExtendedKeyUsage)));
  ------------------
  |  |  150|  1.78k|    do                                                                                                                             \
  |  |  151|  1.78k|    {                                                                                                                              \
  |  |  152|  1.78k|        auto __err = (expr);                                                                                                       \
  |  |  153|  1.78k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 4, False: 1.78k]
  |  |  ------------------
  |  |  154|  1.78k|        {                                                                                                                          \
  |  |  155|      4|            return __err;                                                                                                          \
  |  |  156|      4|        }                                                                                                                          \
  |  |  157|  1.78k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  275|  1.78k|        ReturnErrorOnFailure(reader.EnterContainer(outerContainer));
  ------------------
  |  |  150|  1.78k|    do                                                                                                                             \
  |  |  151|  1.78k|    {                                                                                                                              \
  |  |  152|  1.78k|        auto __err = (expr);                                                                                                       \
  |  |  153|  1.78k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 0, False: 1.78k]
  |  |  ------------------
  |  |  154|  1.78k|        {                                                                                                                          \
  |  |  155|      0|            return __err;                                                                                                          \
  |  |  156|      0|        }                                                                                                                          \
  |  |  157|  1.78k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  276|       |
  277|  2.74k|        while ((err = reader.Next(AnonymousTag())) == CHIP_NO_ERROR)
  ------------------
  |  |  482|  2.74k|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  ------------------
  |  Branch (277:16): [True: 1.00k, False: 1.74k]
  ------------------
  278|  1.00k|        {
  279|  1.00k|            uint8_t keyPurposeId;
  280|  1.00k|            ReturnErrorOnFailure(reader.Get(keyPurposeId));
  ------------------
  |  |  150|  1.00k|    do                                                                                                                             \
  |  |  151|  1.00k|    {                                                                                                                              \
  |  |  152|  1.00k|        auto __err = (expr);                                                                                                       \
  |  |  153|  1.00k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 36, False: 972]
  |  |  ------------------
  |  |  154|  1.00k|        {                                                                                                                          \
  |  |  155|     36|            return __err;                                                                                                          \
  |  |  156|     36|        }                                                                                                                          \
  |  |  157|  1.00k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  281|       |
  282|       |            // KeyPurposeId ::= OBJECT IDENTIFIER
  283|    972|            ASN1_ENCODE_OBJECT_ID(GetOID(kOIDCategory_KeyPurpose, keyPurposeId));
  ------------------
  |  |  267|    972|    do                                                                                                                             \
  |  |  268|    972|    {                                                                                                                              \
  |  |  269|    972|        ASN1_ERR = writer.PutObjectId(OID);                                                                                        \
  |  |  ------------------
  |  |  |  |   34|  1.94k|#define ASN1_ERR err
  |  |  ------------------
  |  |  270|    972|        SuccessOrExit(ASN1_ERR);                                                                                                   \
  |  |  ------------------
  |  |  |  |  345|    972|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1400|    972|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  224|    972|    do                                                                                    \
  |  |  |  |  |  |  |  |  225|    972|    {                                                                                     \
  |  |  |  |  |  |  |  |  226|    972|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  125|    972|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 964, False: 8]
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  227|      8|        {                                                                                 \
  |  |  |  |  |  |  |  |  228|      8|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  189|      8|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  190|      8|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  191|      8|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  835|      8|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  194|      8|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  815|      8|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  197|      8|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  855|      8|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  200|      8|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  229|      8|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  230|      8|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  231|      8|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  232|      8|                                           #label,                                        \
  |  |  |  |  |  |  |  |  233|      8|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  234|      8|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  235|      8|                                           0);                                            \
  |  |  |  |  |  |  |  |  236|      8|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  237|      8|        }                                                                                 \
  |  |  |  |  |  |  |  |  238|    972|    } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  271|    972|    } while (0);
  |  |  ------------------
  |  |  |  Branch (271:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  284|       |
  285|    964|            certData.mKeyPurposeFlags.Set(static_cast<KeyPurposeFlags>(0x01 << (keyPurposeId - 1)));
  286|    964|        }
  287|  1.74k|        VerifyOrReturnError(err == CHIP_END_OF_TLV, err);
  ------------------
  |  |  251|  1.74k|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|  1.74k|    do                                                                                                                             \
  |  |  |  |  271|  1.74k|    {                                                                                                                              \
  |  |  |  |  272|  1.74k|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 12, False: 1.72k]
  |  |  |  |  ------------------
  |  |  |  |  273|  1.74k|        {                                                                                                                          \
  |  |  |  |  274|     12|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|     12|            return (value);                                                                                                        \
  |  |  |  |  276|     12|        }                                                                                                                          \
  |  |  |  |  277|  1.74k|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  288|  1.72k|        ReturnErrorOnFailure(reader.ExitContainer(outerContainer));
  ------------------
  |  |  150|  1.72k|    do                                                                                                                             \
  |  |  151|  1.72k|    {                                                                                                                              \
  |  |  152|  1.72k|        auto __err = (expr);                                                                                                       \
  |  |  153|  1.72k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 84, False: 1.64k]
  |  |  ------------------
  |  |  154|  1.72k|        {                                                                                                                          \
  |  |  155|     84|            return __err;                                                                                                          \
  |  |  156|     84|        }                                                                                                                          \
  |  |  157|  1.72k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  289|  1.72k|    }
  290|  1.72k|    ASN1_END_SEQUENCE;
  ------------------
  |  |  239|  1.72k|#define ASN1_END_SEQUENCE ASN1_END_CONSTRUCTED
  |  |  ------------------
  |  |  |  |  232|  1.64k|    ASN1_ERR = writer.EndConstructedType();                                                                                        \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|  3.28k|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |  233|  1.64k|    SuccessOrExit(ASN1_ERR);                                                                                                       \
  |  |  |  |  ------------------
  |  |  |  |  |  |  345|  1.64k|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1400|  1.64k|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  224|  1.64k|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  225|  1.64k|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  226|  1.64k|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  125|  1.64k|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 1.64k, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  227|      0|        {                                                                                 \
  |  |  |  |  |  |  |  |  |  |  228|      0|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  189|      0|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  190|      0|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  191|      0|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  835|      0|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  194|      0|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  815|      0|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  197|      0|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  855|      0|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  200|      0|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  229|      0|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  |  |  230|      0|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  |  |  231|      0|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  |  |  232|      0|                                           #label,                                        \
  |  |  |  |  |  |  |  |  |  |  233|      0|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  |  |  234|      0|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  |  |  235|      0|                                           0);                                            \
  |  |  |  |  |  |  |  |  |  |  236|      0|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  |  |  237|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  238|  1.64k|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  |  |  234|  1.64k|    }                                                                                                                              \
  |  |  |  |  235|  1.78k|    while (0)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (235:12): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  291|       |
  292|  1.65k|exit:
  293|  1.65k|    return err;
  294|  1.78k|}
CHIPCertToX509.cpp:_ZN4chip11CredentialsL27DecodeConvertECDSASignatureERNS_3TLV9TLVReaderERNS_4ASN110ASN1WriterERNS0_19ChipCertificateDataE:
  450|  2.13k|{
  451|  2.13k|    CHIP_ERROR err = CHIP_NO_ERROR;
  ------------------
  |  |  482|  2.13k|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  ------------------
  452|       |
  453|  2.13k|    ReturnErrorOnFailure(DecodeECDSASignature(reader, certData));
  ------------------
  |  |  150|  2.13k|    do                                                                                                                             \
  |  |  151|  2.13k|    {                                                                                                                              \
  |  |  152|  2.13k|        auto __err = (expr);                                                                                                       \
  |  |  153|  2.13k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 2.00k, False: 124]
  |  |  ------------------
  |  |  154|  2.13k|        {                                                                                                                          \
  |  |  155|  2.00k|            return __err;                                                                                                          \
  |  |  156|  2.00k|        }                                                                                                                          \
  |  |  157|  2.13k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  454|       |
  455|       |    // Converting the signature is a bit of work, so explicitly check if we have a null writer
  456|    124|    VerifyOrReturnError(!writer.IsNullWriter(), CHIP_NO_ERROR);
  ------------------
  |  |  251|    124|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|    124|    do                                                                                                                             \
  |  |  |  |  271|    124|    {                                                                                                                              \
  |  |  |  |  272|    124|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 124, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  273|    124|        {                                                                                                                          \
  |  |  |  |  274|    124|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|    124|            return (value);                                                                                                        \
  |  |  |  |  276|    124|        }                                                                                                                          \
  |  |  |  |  277|    124|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  457|       |
  458|       |    // signatureValue BIT STRING
  459|       |    // Per RFC3279, the ECDSA signature value is encoded in DER encapsulated in the signatureValue BIT STRING.
  460|      0|    ASN1_START_BIT_STRING_ENCAPSULATED
  ------------------
  |  |  309|      0|#define ASN1_START_BIT_STRING_ENCAPSULATED ASN1_START_ENCAPSULATED(kASN1TagClass_Universal, kASN1UniversalTag_BitString, true)
  |  |  ------------------
  |  |  |  |  302|      0|    do                                                                                                                             \
  |  |  |  |  303|      0|    {                                                                                                                              \
  |  |  |  |  304|      0|        ASN1_ERR = writer.StartEncapsulatedType(CLASS, TAG, BIT_STRING_ENCODING);                                                  \
  |  |  |  |  ------------------
  |  |  |  |  |  |   34|      0|#define ASN1_ERR err
  |  |  |  |  ------------------
  |  |  |  |  305|    124|        SuccessOrExit(ASN1_ERR);
  |  |  |  |  ------------------
  |  |  |  |  |  |  345|    124|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  | 1400|    124|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  224|    124|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  225|    124|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  226|      0|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  125|      0|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  227|      0|        {                                                                                 \
  |  |  |  |  |  |  |  |  |  |  228|      0|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  189|      0|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  |  |  190|      0|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  |  |  191|      0|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  835|      0|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  194|      0|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  815|      0|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  197|      0|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  |  855|      0|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  |  |  200|      0|    } while (0)
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  229|      0|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  |  |  230|      0|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  |  |  231|      0|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  |  |  232|      0|                                           #label,                                        \
  |  |  |  |  |  |  |  |  |  |  233|      0|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  |  |  234|      0|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  |  |  235|      0|                                           0);                                            \
  |  |  |  |  |  |  |  |  |  |  236|      0|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  |  |  237|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  238|      0|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  461|      0|    {
  462|      0|        ReturnErrorOnFailure(ConvertECDSASignatureRawToDER(certData.mSignature, writer));
  ------------------
  |  |  150|      0|    do                                                                                                                             \
  |  |  151|      0|    {                                                                                                                              \
  |  |  152|      0|        auto __err = (expr);                                                                                                       \
  |  |  153|      0|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 0, False: 0]
  |  |  ------------------
  |  |  154|      0|        {                                                                                                                          \
  |  |  155|      0|            return __err;                                                                                                          \
  |  |  156|      0|        }                                                                                                                          \
  |  |  157|      0|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  463|      0|    }
  464|      0|    ASN1_END_ENCAPSULATED;
  ------------------
  |  |  312|      0|    ASN1_ERR = writer.EndEncapsulatedType();                                                                                       \
  |  |  ------------------
  |  |  |  |   34|      0|#define ASN1_ERR err
  |  |  ------------------
  |  |  313|      0|    SuccessOrExit(ASN1_ERR);                                                                                                       \
  |  |  ------------------
  |  |  |  |  345|      0|#define SuccessOrExit(error) nlEXPECT(::chip::ChipError::IsSuccess((error)), exit)
  |  |  |  |  ------------------
  |  |  |  |  |  | 1400|      0|#define nlEXPECT(aCondition, aLabel)                                            __nlEXPECT(NL_ASSERT_EXPECT_FLAGS, aCondition, aLabel)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  224|      0|    do                                                                                    \
  |  |  |  |  |  |  |  |  225|      0|    {                                                                                     \
  |  |  |  |  |  |  |  |  226|      0|        if (__nlSHOULD_ASSERT(condition))                                                 \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  125|      0|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  227|      0|        {                                                                                 \
  |  |  |  |  |  |  |  |  228|      0|            __NL_ASSERT_MAYBE_RUN_TRIGGERS((flags),                                       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  189|      0|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  190|      0|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  191|      0|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  835|      0|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (191:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  192|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  193|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  194|      0|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  815|      0|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (194:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  195|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  196|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  197|      0|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  855|      0|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (197:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  198|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  199|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  200|      0|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (200:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  229|      0|                                           NL_ASSERT_PREFIX_STRING,                       \
  |  |  |  |  |  |  |  |  230|      0|                                           NL_ASSERT_COMPONENT_STRING,                    \
  |  |  |  |  |  |  |  |  231|      0|                                           #condition,                                    \
  |  |  |  |  |  |  |  |  232|      0|                                           #label,                                        \
  |  |  |  |  |  |  |  |  233|      0|                                           NL_ASSERT_FILE,                                \
  |  |  |  |  |  |  |  |  234|      0|                                           __LINE__,                                      \
  |  |  |  |  |  |  |  |  235|      0|                                           0);                                            \
  |  |  |  |  |  |  |  |  236|      0|            goto label;                                                                   \
  |  |  |  |  |  |  |  |  237|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  238|      0|    } while (0)
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (238:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  314|      0|    }                                                                                                                              \
  |  |  315|      0|    while (0)
  |  |  ------------------
  |  |  |  Branch (315:12): [Folded - Ignored]
  |  |  ------------------
  ------------------
  465|       |
  466|      0|exit:
  467|      0|    return err;
  468|      0|}
CHIPCertToX509.cpp:_ZN4chip11CredentialsL20DecodeECDSASignatureERNS_3TLV9TLVReaderERNS0_19ChipCertificateDataE:
  443|  2.13k|{
  444|  2.13k|    ReturnErrorOnFailure(reader.Next(kTLVType_ByteString, ContextTag(kTag_ECDSASignature)));
  ------------------
  |  |  150|  2.13k|    do                                                                                                                             \
  |  |  151|  2.13k|    {                                                                                                                              \
  |  |  152|  2.13k|        auto __err = (expr);                                                                                                       \
  |  |  153|  2.13k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 1.91k, False: 216]
  |  |  ------------------
  |  |  154|  2.13k|        {                                                                                                                          \
  |  |  155|  1.91k|            return __err;                                                                                                          \
  |  |  156|  1.91k|        }                                                                                                                          \
  |  |  157|  2.13k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  445|    216|    ReturnErrorOnFailure(reader.Get(certData.mSignature));
  ------------------
  |  |  150|    216|    do                                                                                                                             \
  |  |  151|    216|    {                                                                                                                              \
  |  |  152|    216|        auto __err = (expr);                                                                                                       \
  |  |  153|    216|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 92, False: 124]
  |  |  ------------------
  |  |  154|    216|        {                                                                                                                          \
  |  |  155|     92|            return __err;                                                                                                          \
  |  |  156|     92|        }                                                                                                                          \
  |  |  157|    216|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  446|    124|    return CHIP_NO_ERROR;
  ------------------
  |  |  482|    124|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  ------------------
  447|    216|}
CHIPCertToX509.cpp:_ZN4chip11CredentialsL15DecodeConvertDNERNS_3TLV9TLVReaderERNS_4ASN110ASN1WriterERNS0_6ChipDNE:
   50|  8.77k|{
   51|  8.77k|    ReturnErrorOnFailure(dn.DecodeFromTLV(reader));
  ------------------
  |  |  150|  8.77k|    do                                                                                                                             \
  |  |  151|  8.77k|    {                                                                                                                              \
  |  |  152|  8.77k|        auto __err = (expr);                                                                                                       \
  |  |  153|  8.77k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 2.54k, False: 6.22k]
  |  |  ------------------
  |  |  154|  8.77k|        {                                                                                                                          \
  |  |  155|  2.54k|            return __err;                                                                                                          \
  |  |  156|  2.54k|        }                                                                                                                          \
  |  |  157|  8.77k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
   52|  6.22k|    ReturnErrorOnFailure(dn.EncodeToASN1(writer));
  ------------------
  |  |  150|  6.22k|    do                                                                                                                             \
  |  |  151|  6.22k|    {                                                                                                                              \
  |  |  152|  6.22k|        auto __err = (expr);                                                                                                       \
  |  |  153|  6.22k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 64, False: 6.16k]
  |  |  ------------------
  |  |  154|  6.22k|        {                                                                                                                          \
  |  |  155|     64|            return __err;                                                                                                          \
  |  |  156|     64|        }                                                                                                                          \
  |  |  157|  6.22k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
   53|  6.16k|    return CHIP_NO_ERROR;
  ------------------
  |  |  482|  6.16k|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  ------------------
   54|  6.22k|}

LLVMFuzzerTestOneInput:
   10|  3.72k|{
   11|       |
   12|  3.72k|    NodeId nodeId;
   13|  3.72k|    FabricId fabricId;
   14|       |
   15|  3.72k|    ByteSpan span(data, len);
   16|       |
   17|  3.72k|    (void) ExtractFabricIdFromCert(span, &fabricId);
   18|  3.72k|    (void) ExtractNodeIdFabricIdFromOpCert(span, &nodeId, &fabricId);
   19|       |
   20|  3.72k|    {
   21|  3.72k|        ChipDN dn;
   22|  3.72k|        (void) ExtractSubjectDNFromX509Cert(span, dn);
   23|  3.72k|    }
   24|       |
   25|  3.72k|    {
   26|  3.72k|        Credentials::P256PublicKeySpan key;
   27|  3.72k|        (void) ExtractPublicKeyFromChipCert(span, key);
   28|  3.72k|    }
   29|       |
   30|  3.72k|    {
   31|  3.72k|        ChipCertificateData certData;
   32|  3.72k|        (void) DecodeChipCert(span, certData);
   33|  3.72k|    }
   34|       |
   35|  3.72k|    return 0;
   36|  3.72k|}

_ZN4chip4ASN110ASN1Reader4InitERKNS_4SpanIKhEE:
  137|  7.16k|    void Init(const ByteSpan & data) { Init(data.data(), data.size()); }
_ZNK4chip4ASN110ASN1Reader8GetClassEv:
  144|  18.9k|    uint8_t GetClass(void) const { return Class; };
_ZNK4chip4ASN110ASN1Reader6GetTagEv:
  145|  17.8k|    uint8_t GetTag(void) const { return Tag; };
_ZNK4chip4ASN110ASN1Reader8GetValueEv:
  146|    605|    const uint8_t * GetValue(void) const { return Value; };
_ZNK4chip4ASN110ASN1Reader11GetValueLenEv:
  147|    605|    uint32_t GetValueLen(void) const { return ValueLen; };
_ZNK4chip4ASN110ASN1Writer12IsNullWriterEv:
  213|   186k|    bool IsNullWriter() const { return mBuf == nullptr; }
_ZN4chip4ASN16GetOIDENS0_11OIDCategoryEh:
  262|  23.3k|{
  263|  23.3k|    return static_cast<OID>(category | id);
  264|  23.3k|}

_ZN4chip4ASN113ParseObjectIDEPKht:
   43|  3.98k|{
   44|  3.98k|    if (encodedOID == nullptr or encodedOIDLen == 0)
  ------------------
  |  Branch (44:9): [True: 0, False: 3.98k]
  |  Branch (44:34): [True: 0, False: 3.98k]
  ------------------
   45|      0|    {
   46|      0|        return kOID_NotSpecified;
   47|      0|    }
   48|       |
   49|  3.98k|    for (const auto & tableEntry : sOIDTable)
  ------------------
  |  Branch (49:34): [True: 139k, False: 3.32k]
  ------------------
   50|   139k|    {
   51|   139k|        if (encodedOIDLen == tableEntry.EncodedOIDLen && memcmp(encodedOID, tableEntry.EncodedOID, encodedOIDLen) == 0)
  ------------------
  |  Branch (51:13): [True: 5.15k, False: 134k]
  |  Branch (51:58): [True: 654, False: 4.50k]
  ------------------
   52|    654|        {
   53|    654|            return tableEntry.EnumVal;
   54|    654|        }
   55|   139k|    }
   56|       |
   57|  3.32k|    return kOID_Unknown;
   58|  3.98k|}
_ZN4chip4ASN118GetEncodedObjectIDEtRPKhRt:
   61|  22.4k|{
   62|  22.4k|    for (const auto & tableEntry : sOIDTable)
  ------------------
  |  Branch (62:34): [True: 399k, False: 128]
  ------------------
   63|   399k|    {
   64|   399k|        if (oid == tableEntry.EnumVal)
  ------------------
  |  Branch (64:13): [True: 22.3k, False: 377k]
  ------------------
   65|  22.3k|        {
   66|  22.3k|            encodedOID    = tableEntry.EncodedOID;
   67|  22.3k|            encodedOIDLen = tableEntry.EncodedOIDLen;
   68|  22.3k|            return true;
   69|  22.3k|        }
   70|   399k|    }
   71|       |
   72|    128|    return false;
   73|  22.4k|}
_ZN4chip4ASN114GetOIDCategoryEt:
   76|    742|{
   77|    742|    if (oid == kOID_Unknown)
  ------------------
  |  Branch (77:9): [True: 108, False: 634]
  ------------------
   78|    108|    {
   79|    108|        return kOIDCategory_Unknown;
   80|    108|    }
   81|    634|    if (oid == kOID_NotSpecified)
  ------------------
  |  Branch (81:9): [True: 0, False: 634]
  ------------------
   82|      0|    {
   83|      0|        return kOIDCategory_NotSpecified;
   84|      0|    }
   85|    634|    return static_cast<OIDCategory>(oid & kOIDCategory_Mask);
   86|    634|}
_ZN4chip4ASN110ASN1Reader11GetObjectIdERt:
  109|  4.02k|{
  110|  4.02k|    VerifyOrReturnError(Value != nullptr, ASN1_ERROR_INVALID_STATE);
  ------------------
  |  |  251|  4.02k|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|  4.02k|    do                                                                                                                             \
  |  |  |  |  271|  4.02k|    {                                                                                                                              \
  |  |  |  |  272|  4.02k|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 0, False: 4.02k]
  |  |  |  |  ------------------
  |  |  |  |  273|  4.02k|        {                                                                                                                          \
  |  |  |  |  274|      0|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|      0|            return (value);                                                                                                        \
  |  |  |  |  276|      0|        }                                                                                                                          \
  |  |  |  |  277|  4.02k|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  111|  4.02k|    VerifyOrReturnError(ValueLen >= 1, ASN1_ERROR_INVALID_ENCODING);
  ------------------
  |  |  251|  4.02k|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|  4.02k|    do                                                                                                                             \
  |  |  |  |  271|  4.02k|    {                                                                                                                              \
  |  |  |  |  272|  4.02k|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 28, False: 3.99k]
  |  |  |  |  ------------------
  |  |  |  |  273|  4.02k|        {                                                                                                                          \
  |  |  |  |  274|     28|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|     28|            return (value);                                                                                                        \
  |  |  |  |  276|     28|        }                                                                                                                          \
  |  |  |  |  277|  4.02k|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  112|  3.99k|    VerifyOrReturnError(mElemStart + mHeadLen + ValueLen <= mContainerEnd, ASN1_ERROR_UNDERRUN);
  ------------------
  |  |  251|  3.99k|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|  3.99k|    do                                                                                                                             \
  |  |  |  |  271|  3.99k|    {                                                                                                                              \
  |  |  |  |  272|  3.99k|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 8, False: 3.98k]
  |  |  |  |  ------------------
  |  |  |  |  273|  3.99k|        {                                                                                                                          \
  |  |  |  |  274|      8|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|      8|            return (value);                                                                                                        \
  |  |  |  |  276|      8|        }                                                                                                                          \
  |  |  |  |  277|  3.99k|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  113|  3.98k|    VerifyOrReturnError(CanCastTo<uint16_t>(ValueLen), ASN1_ERROR_INVALID_ENCODING);
  ------------------
  |  |  251|  3.98k|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|  3.98k|    do                                                                                                                             \
  |  |  |  |  271|  3.98k|    {                                                                                                                              \
  |  |  |  |  272|  3.98k|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 3, False: 3.98k]
  |  |  |  |  ------------------
  |  |  |  |  273|  3.98k|        {                                                                                                                          \
  |  |  |  |  274|      3|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|      3|            return (value);                                                                                                        \
  |  |  |  |  276|      3|        }                                                                                                                          \
  |  |  |  |  277|  3.98k|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  114|  3.98k|    oid = ParseObjectID(Value, static_cast<uint16_t>(ValueLen));
  115|  3.98k|    return CHIP_NO_ERROR;
  ------------------
  |  |  482|  3.98k|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  ------------------
  116|  3.98k|}
_ZN4chip4ASN110ASN1Writer11PutObjectIdEt:
  119|  22.4k|{
  120|  22.4k|    const uint8_t * encodedOID;
  121|  22.4k|    uint16_t encodedOIDLen;
  122|       |
  123|  22.4k|    VerifyOrReturnError(GetEncodedObjectID(oid, encodedOID, encodedOIDLen), ASN1_ERROR_UNKNOWN_OBJECT_ID);
  ------------------
  |  |  251|  22.4k|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|  22.4k|    do                                                                                                                             \
  |  |  |  |  271|  22.4k|    {                                                                                                                              \
  |  |  |  |  272|  22.4k|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 128, False: 22.3k]
  |  |  |  |  ------------------
  |  |  |  |  273|  22.4k|        {                                                                                                                          \
  |  |  |  |  274|    128|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|    128|            return (value);                                                                                                        \
  |  |  |  |  276|    128|        }                                                                                                                          \
  |  |  |  |  277|  22.4k|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  124|       |
  125|  22.3k|    return PutObjectId(encodedOID, encodedOIDLen);
  126|  22.4k|}

_ZN4chip4ASN110ASN1Reader4InitEPKhm:
   42|  7.16k|{
   43|  7.16k|    ResetElementState();
   44|  7.16k|    mBuf              = buf;
   45|  7.16k|    mBufEnd           = buf + len;
   46|  7.16k|    mElemStart        = buf;
   47|  7.16k|    mContainerEnd     = mBufEnd;
   48|  7.16k|    mNumSavedContexts = 0;
   49|  7.16k|}
_ZN4chip4ASN110ASN1Reader4NextEv:
   52|  26.6k|{
   53|  26.6k|    VerifyOrReturnError(!EndOfContents, ASN1_END);
  ------------------
  |  |  251|  26.6k|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|  26.6k|    do                                                                                                                             \
  |  |  |  |  271|  26.6k|    {                                                                                                                              \
  |  |  |  |  272|  26.6k|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 1.46k, False: 25.1k]
  |  |  |  |  ------------------
  |  |  |  |  273|  26.6k|        {                                                                                                                          \
  |  |  |  |  274|  1.46k|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|  1.46k|            return (value);                                                                                                        \
  |  |  |  |  276|  1.46k|        }                                                                                                                          \
  |  |  |  |  277|  26.6k|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   54|  25.1k|    VerifyOrReturnError(!IndefiniteLen, ASN1_ERROR_UNSUPPORTED_ENCODING);
  ------------------
  |  |  251|  25.1k|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|  25.1k|    do                                                                                                                             \
  |  |  |  |  271|  25.1k|    {                                                                                                                              \
  |  |  |  |  272|  25.1k|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 10, False: 25.1k]
  |  |  |  |  ------------------
  |  |  |  |  273|  25.1k|        {                                                                                                                          \
  |  |  |  |  274|     10|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|     10|            return (value);                                                                                                        \
  |  |  |  |  276|     10|        }                                                                                                                          \
  |  |  |  |  277|  25.1k|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   55|       |
   56|       |    // Note: avoid using addition assignment operator (+=), which may result in integer overflow
   57|       |    // in the right hand side of an assignment (mHeadLen + ValueLen).
   58|  25.1k|    mElemStart = mElemStart + mHeadLen + ValueLen;
   59|       |
   60|  25.1k|    ResetElementState();
   61|       |
   62|  25.1k|    VerifyOrReturnError(mElemStart != mContainerEnd, ASN1_END);
  ------------------
  |  |  251|  25.1k|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|  25.1k|    do                                                                                                                             \
  |  |  |  |  271|  25.1k|    {                                                                                                                              \
  |  |  |  |  272|  25.1k|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 2.83k, False: 22.2k]
  |  |  |  |  ------------------
  |  |  |  |  273|  25.1k|        {                                                                                                                          \
  |  |  |  |  274|  2.83k|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|  2.83k|            return (value);                                                                                                        \
  |  |  |  |  276|  2.83k|        }                                                                                                                          \
  |  |  |  |  277|  25.1k|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   63|       |
   64|  22.2k|    return DecodeHead();
   65|  25.1k|}
_ZN4chip4ASN110ASN1Reader20EnterConstructedTypeEv:
   68|  6.89k|{
   69|  6.89k|    VerifyOrReturnError(Constructed, ASN1_ERROR_INVALID_STATE);
  ------------------
  |  |  251|  6.89k|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|  6.89k|    do                                                                                                                             \
  |  |  |  |  271|  6.89k|    {                                                                                                                              \
  |  |  |  |  272|  6.89k|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 17, False: 6.88k]
  |  |  |  |  ------------------
  |  |  |  |  273|  6.89k|        {                                                                                                                          \
  |  |  |  |  274|     17|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|     17|            return (value);                                                                                                        \
  |  |  |  |  276|     17|        }                                                                                                                          \
  |  |  |  |  277|  6.89k|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   70|       |
   71|  6.88k|    return EnterContainer(0);
   72|  6.89k|}
_ZN4chip4ASN110ASN1Reader19ExitConstructedTypeEv:
   75|  3.82k|{
   76|  3.82k|    return ExitContainer();
   77|  3.82k|}
_ZN4chip4ASN110ASN1Reader14EnterContainerEj:
  105|  6.88k|{
  106|  6.88k|    VerifyOrReturnError(mNumSavedContexts != kMaxContextDepth, ASN1_ERROR_MAX_DEPTH_EXCEEDED);
  ------------------
  |  |  251|  6.88k|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|  6.88k|    do                                                                                                                             \
  |  |  |  |  271|  6.88k|    {                                                                                                                              \
  |  |  |  |  272|  6.88k|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 0, False: 6.88k]
  |  |  |  |  ------------------
  |  |  |  |  273|  6.88k|        {                                                                                                                          \
  |  |  |  |  274|      0|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|      0|            return (value);                                                                                                        \
  |  |  |  |  276|      0|        }                                                                                                                          \
  |  |  |  |  277|  6.88k|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  107|       |
  108|  6.88k|    mSavedContexts[mNumSavedContexts].ElemStart     = mElemStart;
  109|  6.88k|    mSavedContexts[mNumSavedContexts].HeadLen       = mHeadLen;
  110|  6.88k|    mSavedContexts[mNumSavedContexts].ValueLen      = ValueLen;
  111|  6.88k|    mSavedContexts[mNumSavedContexts].IndefiniteLen = IndefiniteLen;
  112|  6.88k|    mSavedContexts[mNumSavedContexts].ContainerEnd  = mContainerEnd;
  113|  6.88k|    mNumSavedContexts++;
  114|       |
  115|  6.88k|    mElemStart = Value + offset;
  116|  6.88k|    if (!IndefiniteLen)
  ------------------
  |  Branch (116:9): [True: 5.14k, False: 1.73k]
  ------------------
  117|  5.14k|    {
  118|  5.14k|        VerifyOrReturnError(CanCastTo<uint32_t>(mBufEnd - Value), ASN1_ERROR_VALUE_OVERFLOW);
  ------------------
  |  |  251|  5.14k|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|  5.14k|    do                                                                                                                             \
  |  |  |  |  271|  5.14k|    {                                                                                                                              \
  |  |  |  |  272|  5.14k|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 0, False: 5.14k]
  |  |  |  |  ------------------
  |  |  |  |  273|  5.14k|        {                                                                                                                          \
  |  |  |  |  274|      0|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|      0|            return (value);                                                                                                        \
  |  |  |  |  276|      0|        }                                                                                                                          \
  |  |  |  |  277|  5.14k|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  119|  5.14k|        VerifyOrReturnError(static_cast<uint32_t>(mBufEnd - Value) >= ValueLen, ASN1_ERROR_VALUE_OVERFLOW);
  ------------------
  |  |  251|  5.14k|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|  5.14k|    do                                                                                                                             \
  |  |  |  |  271|  5.14k|    {                                                                                                                              \
  |  |  |  |  272|  5.14k|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 0, False: 5.14k]
  |  |  |  |  ------------------
  |  |  |  |  273|  5.14k|        {                                                                                                                          \
  |  |  |  |  274|      0|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|      0|            return (value);                                                                                                        \
  |  |  |  |  276|      0|        }                                                                                                                          \
  |  |  |  |  277|  5.14k|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  120|  5.14k|        mContainerEnd = Value + ValueLen;
  121|  5.14k|    }
  122|       |
  123|  6.88k|    ResetElementState();
  124|       |
  125|  6.88k|    return CHIP_NO_ERROR;
  ------------------
  |  |  482|  6.88k|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  ------------------
  126|  6.88k|}
_ZN4chip4ASN110ASN1Reader13ExitContainerEv:
  129|  3.82k|{
  130|  3.82k|    VerifyOrReturnError(mNumSavedContexts != 0, ASN1_ERROR_INVALID_STATE);
  ------------------
  |  |  251|  3.82k|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|  3.82k|    do                                                                                                                             \
  |  |  |  |  271|  3.82k|    {                                                                                                                              \
  |  |  |  |  272|  3.82k|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 0, False: 3.82k]
  |  |  |  |  ------------------
  |  |  |  |  273|  3.82k|        {                                                                                                                          \
  |  |  |  |  274|      0|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|      0|            return (value);                                                                                                        \
  |  |  |  |  276|      0|        }                                                                                                                          \
  |  |  |  |  277|  3.82k|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  131|       |
  132|  3.82k|    ASN1ParseContext & prevContext = mSavedContexts[--mNumSavedContexts];
  133|       |
  134|  3.82k|    VerifyOrReturnError(!prevContext.IndefiniteLen, ASN1_ERROR_UNSUPPORTED_ENCODING);
  ------------------
  |  |  251|  3.82k|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|  3.82k|    do                                                                                                                             \
  |  |  |  |  271|  3.82k|    {                                                                                                                              \
  |  |  |  |  272|  3.82k|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 62, False: 3.75k]
  |  |  |  |  ------------------
  |  |  |  |  273|  3.82k|        {                                                                                                                          \
  |  |  |  |  274|     62|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|     62|            return (value);                                                                                                        \
  |  |  |  |  276|     62|        }                                                                                                                          \
  |  |  |  |  277|  3.82k|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  135|       |
  136|  3.75k|    mElemStart = prevContext.ElemStart + prevContext.HeadLen + prevContext.ValueLen;
  137|       |
  138|  3.75k|    mContainerEnd = prevContext.ContainerEnd;
  139|       |
  140|  3.75k|    ResetElementState();
  141|       |
  142|  3.75k|    return CHIP_NO_ERROR;
  ------------------
  |  |  482|  3.75k|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  ------------------
  143|  3.82k|}
_ZN4chip4ASN110ASN1Reader10GetBooleanERb:
  175|    816|{
  176|    816|    VerifyOrReturnError(Value != nullptr, ASN1_ERROR_INVALID_STATE);
  ------------------
  |  |  251|    816|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|    816|    do                                                                                                                             \
  |  |  |  |  271|    816|    {                                                                                                                              \
  |  |  |  |  272|    816|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 0, False: 816]
  |  |  |  |  ------------------
  |  |  |  |  273|    816|        {                                                                                                                          \
  |  |  |  |  274|      0|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|      0|            return (value);                                                                                                        \
  |  |  |  |  276|      0|        }                                                                                                                          \
  |  |  |  |  277|    816|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  177|    816|    VerifyOrReturnError(ValueLen == 1, ASN1_ERROR_INVALID_ENCODING);
  ------------------
  |  |  251|    816|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|    816|    do                                                                                                                             \
  |  |  |  |  271|    816|    {                                                                                                                              \
  |  |  |  |  272|    816|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 72, False: 744]
  |  |  |  |  ------------------
  |  |  |  |  273|    816|        {                                                                                                                          \
  |  |  |  |  274|     72|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|     72|            return (value);                                                                                                        \
  |  |  |  |  276|     72|        }                                                                                                                          \
  |  |  |  |  277|    816|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  178|    744|    VerifyOrReturnError(mElemStart + mHeadLen + ValueLen <= mContainerEnd, ASN1_ERROR_UNDERRUN);
  ------------------
  |  |  251|    744|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|    744|    do                                                                                                                             \
  |  |  |  |  271|    744|    {                                                                                                                              \
  |  |  |  |  272|    744|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 4, False: 740]
  |  |  |  |  ------------------
  |  |  |  |  273|    744|        {                                                                                                                          \
  |  |  |  |  274|      4|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|      4|            return (value);                                                                                                        \
  |  |  |  |  276|      4|        }                                                                                                                          \
  |  |  |  |  277|    744|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  179|    740|    VerifyOrReturnError(Value[0] == 0 || Value[0] == 0xFF, ASN1_ERROR_INVALID_ENCODING);
  ------------------
  |  |  251|    740|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|    740|    do                                                                                                                             \
  |  |  |  |  271|    740|    {                                                                                                                              \
  |  |  |  |  272|  1.03k|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:15): [True: 444, False: 296]
  |  |  |  |  |  Branch (272:15): [True: 264, False: 32]
  |  |  |  |  ------------------
  |  |  |  |  273|    740|        {                                                                                                                          \
  |  |  |  |  274|     32|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|     32|            return (value);                                                                                                        \
  |  |  |  |  276|     32|        }                                                                                                                          \
  |  |  |  |  277|    740|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  180|       |
  181|    708|    val = (Value[0] != 0);
  182|       |
  183|    708|    return CHIP_NO_ERROR;
  ------------------
  |  |  482|    708|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  ------------------
  184|    740|}
_ZN4chip4ASN110ASN1Reader10DecodeHeadEv:
  245|  22.2k|{
  246|  22.2k|    const uint8_t * p = mElemStart;
  247|  22.2k|    VerifyOrReturnError(p < mBufEnd, ASN1_ERROR_UNDERRUN);
  ------------------
  |  |  251|  22.2k|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|  22.2k|    do                                                                                                                             \
  |  |  |  |  271|  22.2k|    {                                                                                                                              \
  |  |  |  |  272|  22.2k|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 391, False: 21.9k]
  |  |  |  |  ------------------
  |  |  |  |  273|  22.2k|        {                                                                                                                          \
  |  |  |  |  274|    391|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|    391|            return (value);                                                                                                        \
  |  |  |  |  276|    391|        }                                                                                                                          \
  |  |  |  |  277|  22.2k|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  248|       |
  249|  21.9k|    Class       = *p & 0xC0;
  250|  21.9k|    Constructed = (*p & 0x20) != 0;
  251|  21.9k|    Tag         = *p & 0x1F;
  252|       |
  253|       |    // Only tags < 31 supported. The implication of this is that encoded tags are exactly 1 byte long.
  254|  21.9k|    VerifyOrReturnError(Tag < 0x1F, ASN1_ERROR_UNSUPPORTED_ENCODING);
  ------------------
  |  |  251|  21.9k|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|  21.9k|    do                                                                                                                             \
  |  |  |  |  271|  21.9k|    {                                                                                                                              \
  |  |  |  |  272|  21.9k|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 23, False: 21.8k]
  |  |  |  |  ------------------
  |  |  |  |  273|  21.9k|        {                                                                                                                          \
  |  |  |  |  274|     23|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|     23|            return (value);                                                                                                        \
  |  |  |  |  276|     23|        }                                                                                                                          \
  |  |  |  |  277|  21.9k|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  255|       |
  256|  21.8k|    p++;
  257|  21.8k|    VerifyOrReturnError(p < mBufEnd, ASN1_ERROR_UNDERRUN);
  ------------------
  |  |  251|  21.8k|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|  21.8k|    do                                                                                                                             \
  |  |  |  |  271|  21.8k|    {                                                                                                                              \
  |  |  |  |  272|  21.8k|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 56, False: 21.8k]
  |  |  |  |  ------------------
  |  |  |  |  273|  21.8k|        {                                                                                                                          \
  |  |  |  |  274|     56|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|     56|            return (value);                                                                                                        \
  |  |  |  |  276|     56|        }                                                                                                                          \
  |  |  |  |  277|  21.8k|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  258|       |
  259|  21.8k|    if ((*p & 0x80) == 0)
  ------------------
  |  Branch (259:9): [True: 18.5k, False: 3.32k]
  ------------------
  260|  18.5k|    {
  261|  18.5k|        ValueLen      = *p & 0x7F;
  262|  18.5k|        IndefiniteLen = false;
  263|  18.5k|        p++;
  264|  18.5k|    }
  265|  3.32k|    else if (*p == 0x80)
  ------------------
  |  Branch (265:14): [True: 2.58k, False: 742]
  ------------------
  266|  2.58k|    {
  267|  2.58k|        ValueLen      = 0;
  268|  2.58k|        IndefiniteLen = true;
  269|  2.58k|        p++;
  270|  2.58k|    }
  271|    742|    else
  272|    742|    {
  273|    742|        ValueLen       = 0;
  274|    742|        uint8_t lenLen = *p & 0x7F;
  275|    742|        p++;
  276|  3.56k|        for (; lenLen > 0; lenLen--, p++)
  ------------------
  |  Branch (276:16): [True: 3.20k, False: 360]
  ------------------
  277|  3.20k|        {
  278|  3.20k|            VerifyOrReturnError(p < mBufEnd, ASN1_ERROR_UNDERRUN);
  ------------------
  |  |  251|  3.20k|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|  3.20k|    do                                                                                                                             \
  |  |  |  |  271|  3.20k|    {                                                                                                                              \
  |  |  |  |  272|  3.20k|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 171, False: 3.03k]
  |  |  |  |  ------------------
  |  |  |  |  273|  3.20k|        {                                                                                                                          \
  |  |  |  |  274|    171|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|    171|            return (value);                                                                                                        \
  |  |  |  |  276|    171|        }                                                                                                                          \
  |  |  |  |  277|  3.20k|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  279|  3.03k|            VerifyOrReturnError((ValueLen & 0xFF000000) == 0, ASN1_ERROR_LENGTH_OVERFLOW);
  ------------------
  |  |  251|  3.03k|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|  3.03k|    do                                                                                                                             \
  |  |  |  |  271|  3.03k|    {                                                                                                                              \
  |  |  |  |  272|  3.03k|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 211, False: 2.82k]
  |  |  |  |  ------------------
  |  |  |  |  273|  3.03k|        {                                                                                                                          \
  |  |  |  |  274|    211|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|    211|            return (value);                                                                                                        \
  |  |  |  |  276|    211|        }                                                                                                                          \
  |  |  |  |  277|  3.03k|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  280|  2.82k|            ValueLen = (ValueLen << 8) | *p;
  281|  2.82k|        }
  282|    360|        IndefiniteLen = false;
  283|    360|    }
  284|       |
  285|  21.4k|    VerifyOrReturnError(CanCastTo<uint32_t>(mBufEnd - p), ASN1_ERROR_VALUE_OVERFLOW);
  ------------------
  |  |  251|  21.4k|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|  21.4k|    do                                                                                                                             \
  |  |  |  |  271|  21.4k|    {                                                                                                                              \
  |  |  |  |  272|  21.4k|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 0, False: 21.4k]
  |  |  |  |  ------------------
  |  |  |  |  273|  21.4k|        {                                                                                                                          \
  |  |  |  |  274|      0|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|      0|            return (value);                                                                                                        \
  |  |  |  |  276|      0|        }                                                                                                                          \
  |  |  |  |  277|  21.4k|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  286|  21.4k|    VerifyOrReturnError(static_cast<uint32_t>(mBufEnd - p) >= ValueLen, ASN1_ERROR_VALUE_OVERFLOW);
  ------------------
  |  |  251|  21.4k|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|  21.4k|    do                                                                                                                             \
  |  |  |  |  271|  21.4k|    {                                                                                                                              \
  |  |  |  |  272|  21.4k|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 1.83k, False: 19.6k]
  |  |  |  |  ------------------
  |  |  |  |  273|  21.4k|        {                                                                                                                          \
  |  |  |  |  274|  1.83k|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|  1.83k|            return (value);                                                                                                        \
  |  |  |  |  276|  1.83k|        }                                                                                                                          \
  |  |  |  |  277|  21.4k|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  287|  19.6k|    VerifyOrReturnError(CanCastTo<uint32_t>(p - mElemStart), ASN1_ERROR_VALUE_OVERFLOW);
  ------------------
  |  |  251|  19.6k|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|  19.6k|    do                                                                                                                             \
  |  |  |  |  271|  19.6k|    {                                                                                                                              \
  |  |  |  |  272|  19.6k|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 0, False: 19.6k]
  |  |  |  |  ------------------
  |  |  |  |  273|  19.6k|        {                                                                                                                          \
  |  |  |  |  274|      0|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|      0|            return (value);                                                                                                        \
  |  |  |  |  276|      0|        }                                                                                                                          \
  |  |  |  |  277|  19.6k|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  288|  19.6k|    mHeadLen = static_cast<uint32_t>(p - mElemStart);
  289|       |
  290|  19.6k|    EndOfContents = (Class == kASN1TagClass_Universal && Tag == 0 && !Constructed && ValueLen == 0);
  ------------------
  |  Branch (290:22): [True: 17.9k, False: 1.71k]
  |  Branch (290:58): [True: 1.73k, False: 16.1k]
  |  Branch (290:70): [True: 1.53k, False: 195]
  |  Branch (290:86): [True: 1.50k, False: 31]
  ------------------
  291|       |
  292|  19.6k|    Value = p;
  293|       |
  294|  19.6k|    return CHIP_NO_ERROR;
  ------------------
  |  |  482|  19.6k|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  ------------------
  295|  19.6k|}
_ZN4chip4ASN110ASN1Reader17ResetElementStateEv:
  298|  42.9k|{
  299|  42.9k|    Class         = 0;
  300|  42.9k|    Tag           = 0;
  301|  42.9k|    Value         = nullptr;
  302|  42.9k|    ValueLen      = 0;
  303|  42.9k|    Constructed   = false;
  304|  42.9k|    IndefiniteLen = false;
  305|  42.9k|    EndOfContents = false;
  306|  42.9k|    mHeadLen      = 0;
  307|  42.9k|}

_ZN4chip4ASN110ASN1Writer14InitNullWriterEv:
   61|  14.8k|{
   62|  14.8k|    mBuf                 = nullptr;
   63|  14.8k|    mWritePoint          = nullptr;
   64|  14.8k|    mBufEnd              = nullptr;
   65|  14.8k|    mDeferredLengthCount = 0;
   66|  14.8k|}
_ZN4chip4ASN110ASN1Writer10PutIntegerEl:
   74|  8.76k|{
   75|  8.76k|    VerifyOrReturnError(!IsNullWriter(), CHIP_NO_ERROR);
  ------------------
  |  |  251|  8.76k|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|  8.76k|    do                                                                                                                             \
  |  |  |  |  271|  8.76k|    {                                                                                                                              \
  |  |  |  |  272|  8.76k|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 8.76k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  273|  8.76k|        {                                                                                                                          \
  |  |  |  |  274|  8.76k|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|  8.76k|            return (value);                                                                                                        \
  |  |  |  |  276|  8.76k|        }                                                                                                                          \
  |  |  |  |  277|  8.76k|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   76|       |
   77|      0|    uint8_t encodedVal[sizeof(int64_t)];
   78|      0|    uint8_t valStart, valLen;
   79|       |
   80|      0|    BigEndian::Put64(encodedVal, static_cast<uint64_t>(val));
   81|       |
   82|      0|    for (valStart = 0; valStart < 7; valStart++)
  ------------------
  |  Branch (82:24): [True: 0, False: 0]
  ------------------
   83|      0|    {
   84|      0|        if (encodedVal[valStart] == 0x00 && (encodedVal[valStart + 1] & 0x80) == 0)
  ------------------
  |  Branch (84:13): [True: 0, False: 0]
  |  Branch (84:45): [True: 0, False: 0]
  ------------------
   85|      0|            continue;
   86|      0|        if (encodedVal[valStart] == 0xFF && (encodedVal[valStart + 1] & 0x80) == 0x80)
  ------------------
  |  Branch (86:13): [True: 0, False: 0]
  |  Branch (86:45): [True: 0, False: 0]
  ------------------
   87|      0|            continue;
   88|      0|        break;
   89|      0|    }
   90|      0|    valLen = static_cast<uint8_t>(8 - valStart);
   91|       |
   92|      0|    return PutValue(kASN1TagClass_Universal, kASN1UniversalTag_Integer, false, encodedVal + valStart, valLen);
   93|  8.76k|}
_ZN4chip4ASN110ASN1Writer10PutBooleanEb:
   96|  6.90k|{
   97|  6.90k|    VerifyOrReturnError(!IsNullWriter(), CHIP_NO_ERROR);
  ------------------
  |  |  251|  6.90k|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|  6.90k|    do                                                                                                                             \
  |  |  |  |  271|  6.90k|    {                                                                                                                              \
  |  |  |  |  272|  6.90k|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 6.90k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  273|  6.90k|        {                                                                                                                          \
  |  |  |  |  274|  6.90k|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|  6.90k|            return (value);                                                                                                        \
  |  |  |  |  276|  6.90k|        }                                                                                                                          \
  |  |  |  |  277|  6.90k|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   98|       |
   99|      0|    ReturnErrorOnFailure(EncodeHead(kASN1TagClass_Universal, kASN1UniversalTag_Boolean, false, 1));
  ------------------
  |  |  150|      0|    do                                                                                                                             \
  |  |  151|      0|    {                                                                                                                              \
  |  |  152|      0|        auto __err = (expr);                                                                                                       \
  |  |  153|      0|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 0, False: 0]
  |  |  ------------------
  |  |  154|      0|        {                                                                                                                          \
  |  |  155|      0|            return __err;                                                                                                          \
  |  |  156|      0|        }                                                                                                                          \
  |  |  157|      0|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  100|       |
  101|      0|    *mWritePoint++ = (val) ? 0xFF : 0;
  ------------------
  |  Branch (101:22): [True: 0, False: 0]
  ------------------
  102|       |
  103|      0|    return CHIP_NO_ERROR;
  ------------------
  |  |  482|      0|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  ------------------
  104|      0|}
_ZN4chip4ASN110ASN1Writer11PutObjectIdEPKht:
  107|  22.3k|{
  108|  22.3k|    return PutValue(kASN1TagClass_Universal, kASN1UniversalTag_ObjectId, false, val, valLen);
  109|  22.3k|}
_ZN4chip4ASN110ASN1Writer9PutStringEhPKct:
  112|  1.58k|{
  113|  1.58k|    return PutValue(kASN1TagClass_Universal, tag, false, (const uint8_t *) val, valLen);
  114|  1.58k|}
_ZN4chip4ASN110ASN1Writer14PutOctetStringEPKht:
  117|    780|{
  118|    780|    return PutValue(kASN1TagClass_Universal, kASN1UniversalTag_OctetString, false, val, valLen);
  119|    780|}
_ZN4chip4ASN110ASN1Writer14PutOctetStringEhhPKht:
  122|    404|{
  123|    404|    return PutValue(cls, tag, false, val, valLen);
  124|    404|}
_ZN4chip4ASN110ASN1Writer12PutBitStringEj:
  172|    392|{
  173|    392|    VerifyOrReturnError(!IsNullWriter(), CHIP_NO_ERROR);
  ------------------
  |  |  251|    392|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|    392|    do                                                                                                                             \
  |  |  |  |  271|    392|    {                                                                                                                              \
  |  |  |  |  272|    392|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 392, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  273|    392|        {                                                                                                                          \
  |  |  |  |  274|    392|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|    392|            return (value);                                                                                                        \
  |  |  |  |  276|    392|        }                                                                                                                          \
  |  |  |  |  277|    392|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  174|       |
  175|      0|    uint8_t len;
  176|      0|    if (val == 0)
  ------------------
  |  Branch (176:9): [True: 0, False: 0]
  ------------------
  177|      0|        len = 1;
  178|      0|    else if (val < 256)
  ------------------
  |  Branch (178:14): [True: 0, False: 0]
  ------------------
  179|      0|        len = 2;
  180|      0|    else if (val < 65536)
  ------------------
  |  Branch (180:14): [True: 0, False: 0]
  ------------------
  181|      0|        len = 3;
  182|      0|    else if (val < (1 << 24))
  ------------------
  |  Branch (182:14): [True: 0, False: 0]
  ------------------
  183|      0|        len = 4;
  184|      0|    else
  185|      0|        len = 5;
  186|       |
  187|      0|    ReturnErrorOnFailure(EncodeHead(kASN1TagClass_Universal, kASN1UniversalTag_BitString, false, len));
  ------------------
  |  |  150|      0|    do                                                                                                                             \
  |  |  151|      0|    {                                                                                                                              \
  |  |  152|      0|        auto __err = (expr);                                                                                                       \
  |  |  153|      0|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 0, False: 0]
  |  |  ------------------
  |  |  154|      0|        {                                                                                                                          \
  |  |  155|      0|            return __err;                                                                                                          \
  |  |  156|      0|        }                                                                                                                          \
  |  |  157|      0|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  188|       |
  189|      0|    if (val == 0)
  ------------------
  |  Branch (189:9): [True: 0, False: 0]
  ------------------
  190|      0|    {
  191|      0|        mWritePoint[0] = 0;
  192|      0|    }
  193|      0|    else
  194|      0|    {
  195|      0|        mWritePoint[1] = ReverseBits(static_cast<uint8_t>(val));
  196|      0|        if (len >= 3)
  ------------------
  |  Branch (196:13): [True: 0, False: 0]
  ------------------
  197|      0|        {
  198|      0|            val >>= 8;
  199|      0|            mWritePoint[2] = ReverseBits(static_cast<uint8_t>(val));
  200|      0|            if (len >= 4)
  ------------------
  |  Branch (200:17): [True: 0, False: 0]
  ------------------
  201|      0|            {
  202|      0|                val >>= 8;
  203|      0|                mWritePoint[3] = ReverseBits(static_cast<uint8_t>(val));
  204|      0|                if (len == 5)
  ------------------
  |  Branch (204:21): [True: 0, False: 0]
  ------------------
  205|      0|                {
  206|      0|                    val >>= 8;
  207|      0|                    mWritePoint[4] = ReverseBits(static_cast<uint8_t>(val));
  208|      0|                }
  209|      0|            }
  210|      0|        }
  211|      0|        mWritePoint[0] = static_cast<uint8_t>(7 - HighestBit(val));
  212|      0|    }
  213|       |
  214|      0|    mWritePoint += len;
  215|       |
  216|      0|    return CHIP_NO_ERROR;
  ------------------
  |  |  482|      0|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  ------------------
  217|      0|}
_ZN4chip4ASN110ASN1Writer12PutBitStringEhPKht:
  220|  2.40k|{
  221|  2.40k|    VerifyOrReturnError(!IsNullWriter(), CHIP_NO_ERROR);
  ------------------
  |  |  251|  2.40k|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|  2.40k|    do                                                                                                                             \
  |  |  |  |  271|  2.40k|    {                                                                                                                              \
  |  |  |  |  272|  2.40k|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 2.40k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  273|  2.40k|        {                                                                                                                          \
  |  |  |  |  274|  2.40k|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|  2.40k|            return (value);                                                                                                        \
  |  |  |  |  276|  2.40k|        }                                                                                                                          \
  |  |  |  |  277|  2.40k|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  222|       |
  223|      0|    ReturnErrorOnFailure(EncodeHead(kASN1TagClass_Universal, kASN1UniversalTag_BitString, false, encodedBitsLen + 1));
  ------------------
  |  |  150|      0|    do                                                                                                                             \
  |  |  151|      0|    {                                                                                                                              \
  |  |  152|      0|        auto __err = (expr);                                                                                                       \
  |  |  153|      0|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 0, False: 0]
  |  |  ------------------
  |  |  154|      0|        {                                                                                                                          \
  |  |  155|      0|            return __err;                                                                                                          \
  |  |  156|      0|        }                                                                                                                          \
  |  |  157|      0|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  224|       |
  225|      0|    *mWritePoint++ = unusedBitCount;
  226|       |
  227|      0|    WriteData(encodedBits, encodedBitsLen);
  228|       |
  229|      0|    return CHIP_NO_ERROR;
  ------------------
  |  |  482|      0|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  ------------------
  230|      0|}
_ZN4chip4ASN110ASN1Writer7PutTimeERKNS0_17ASN1UniversalTimeE:
  252|  6.22k|{
  253|  6.22k|    VerifyOrReturnError(!IsNullWriter(), CHIP_NO_ERROR);
  ------------------
  |  |  251|  6.22k|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|  6.22k|    do                                                                                                                             \
  |  |  |  |  271|  6.22k|    {                                                                                                                              \
  |  |  |  |  272|  6.22k|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 6.22k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  273|  6.22k|        {                                                                                                                          \
  |  |  |  |  274|  6.22k|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|  6.22k|            return (value);                                                                                                        \
  |  |  |  |  276|  6.22k|        }                                                                                                                          \
  |  |  |  |  277|  6.22k|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  254|       |
  255|      0|    char buf[ASN1UniversalTime::kASN1TimeStringMaxLength];
  256|      0|    MutableCharSpan bufSpan(buf);
  257|      0|    uint8_t tag;
  258|       |
  259|      0|    ReturnErrorOnFailure(val.ExportTo_ASN1_TIME_string(bufSpan));
  ------------------
  |  |  150|      0|    do                                                                                                                             \
  |  |  151|      0|    {                                                                                                                              \
  |  |  152|      0|        auto __err = (expr);                                                                                                       \
  |  |  153|      0|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 0, False: 0]
  |  |  ------------------
  |  |  154|      0|        {                                                                                                                          \
  |  |  155|      0|            return __err;                                                                                                          \
  |  |  156|      0|        }                                                                                                                          \
  |  |  157|      0|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  260|       |
  261|      0|    if (val.Year >= 2050)
  ------------------
  |  Branch (261:9): [True: 0, False: 0]
  ------------------
  262|      0|    {
  263|      0|        tag = kASN1UniversalTag_GeneralizedTime;
  264|      0|    }
  265|      0|    else
  266|      0|    {
  267|      0|        tag = kASN1UniversalTag_UTCTime;
  268|      0|    }
  269|      0|    return PutValue(kASN1TagClass_Universal, tag, false, reinterpret_cast<uint8_t *>(buf), static_cast<uint16_t>(bufSpan.size()));
  270|      0|}
_ZN4chip4ASN110ASN1Writer18PutConstructedTypeEPKht:
  278|  2.96k|{
  279|  2.96k|    VerifyOrReturnError(!IsNullWriter(), CHIP_NO_ERROR);
  ------------------
  |  |  251|  2.96k|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|  2.96k|    do                                                                                                                             \
  |  |  |  |  271|  2.96k|    {                                                                                                                              \
  |  |  |  |  272|  2.96k|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 2.96k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  273|  2.96k|        {                                                                                                                          \
  |  |  |  |  274|  2.96k|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|  2.96k|            return (value);                                                                                                        \
  |  |  |  |  276|  2.96k|        }                                                                                                                          \
  |  |  |  |  277|  2.96k|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  280|       |
  281|       |    // Make sure we have enough space to write
  282|      0|    VerifyOrReturnError((mWritePoint + valLen) <= mBufEnd, ASN1_ERROR_OVERFLOW);
  ------------------
  |  |  251|      0|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|      0|    do                                                                                                                             \
  |  |  |  |  271|      0|    {                                                                                                                              \
  |  |  |  |  272|      0|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  273|      0|        {                                                                                                                          \
  |  |  |  |  274|      0|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|      0|            return (value);                                                                                                        \
  |  |  |  |  276|      0|        }                                                                                                                          \
  |  |  |  |  277|      0|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  283|       |
  284|      0|    WriteData(val, valLen);
  285|       |
  286|      0|    return CHIP_NO_ERROR;
  ------------------
  |  |  482|      0|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  ------------------
  287|      0|}
_ZN4chip4ASN110ASN1Writer20StartConstructedTypeEhh:
  290|  70.2k|{
  291|  70.2k|    return EncodeHead(cls, tag, true, kUnknownLength);
  292|  70.2k|}
_ZN4chip4ASN110ASN1Writer18EndConstructedTypeEv:
  295|  44.1k|{
  296|  44.1k|    return WriteDeferredLength();
  297|  44.1k|}
_ZN4chip4ASN110ASN1Writer21StartEncapsulatedTypeEhhb:
  300|  6.66k|{
  301|  6.66k|    VerifyOrReturnError(!IsNullWriter(), CHIP_NO_ERROR);
  ------------------
  |  |  251|  6.66k|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|  6.66k|    do                                                                                                                             \
  |  |  |  |  271|  6.66k|    {                                                                                                                              \
  |  |  |  |  272|  6.66k|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 6.66k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  273|  6.66k|        {                                                                                                                          \
  |  |  |  |  274|  6.66k|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|  6.66k|            return (value);                                                                                                        \
  |  |  |  |  276|  6.66k|        }                                                                                                                          \
  |  |  |  |  277|  6.66k|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  302|       |
  303|      0|    ReturnErrorOnFailure(EncodeHead(cls, tag, false, kUnknownLength));
  ------------------
  |  |  150|      0|    do                                                                                                                             \
  |  |  151|      0|    {                                                                                                                              \
  |  |  152|      0|        auto __err = (expr);                                                                                                       \
  |  |  153|      0|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 0, False: 0]
  |  |  ------------------
  |  |  154|      0|        {                                                                                                                          \
  |  |  155|      0|            return __err;                                                                                                          \
  |  |  156|      0|        }                                                                                                                          \
  |  |  157|      0|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  304|       |
  305|       |    // If the encapsulating type is BIT STRING, encode the unused bit count field.  Since the BIT
  306|       |    // STRING contains an ASN.1 DER encoding, and ASN.1 DER encodings are always multiples of 8 bits,
  307|       |    // the unused bit count is always 0.
  308|      0|    if (bitStringEncoding)
  ------------------
  |  Branch (308:9): [True: 0, False: 0]
  ------------------
  309|      0|    {
  310|      0|        VerifyOrReturnError(mWritePoint < mBufEnd, ASN1_ERROR_OVERFLOW);
  ------------------
  |  |  251|      0|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|      0|    do                                                                                                                             \
  |  |  |  |  271|      0|    {                                                                                                                              \
  |  |  |  |  272|      0|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  273|      0|        {                                                                                                                          \
  |  |  |  |  274|      0|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|      0|            return (value);                                                                                                        \
  |  |  |  |  276|      0|        }                                                                                                                          \
  |  |  |  |  277|      0|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  311|      0|        *mWritePoint++ = 0;
  312|      0|    }
  313|       |
  314|      0|    return CHIP_NO_ERROR;
  ------------------
  |  |  482|      0|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  ------------------
  315|      0|}
_ZN4chip4ASN110ASN1Writer19EndEncapsulatedTypeEv:
  318|  5.38k|{
  319|  5.38k|    return WriteDeferredLength();
  320|  5.38k|}
_ZN4chip4ASN110ASN1Writer8PutValueEhhbPKht:
  323|  32.1k|{
  324|  32.1k|    VerifyOrReturnError(!IsNullWriter(), CHIP_NO_ERROR);
  ------------------
  |  |  251|  32.1k|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|  32.1k|    do                                                                                                                             \
  |  |  |  |  271|  32.1k|    {                                                                                                                              \
  |  |  |  |  272|  32.1k|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 32.1k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  273|  32.1k|        {                                                                                                                          \
  |  |  |  |  274|  32.1k|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|  32.1k|            return (value);                                                                                                        \
  |  |  |  |  276|  32.1k|        }                                                                                                                          \
  |  |  |  |  277|  32.1k|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  325|       |
  326|      0|    ReturnErrorOnFailure(EncodeHead(cls, tag, isConstructed, valLen));
  ------------------
  |  |  150|      0|    do                                                                                                                             \
  |  |  151|      0|    {                                                                                                                              \
  |  |  152|      0|        auto __err = (expr);                                                                                                       \
  |  |  153|      0|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 0, False: 0]
  |  |  ------------------
  |  |  154|      0|        {                                                                                                                          \
  |  |  155|      0|            return __err;                                                                                                          \
  |  |  156|      0|        }                                                                                                                          \
  |  |  157|      0|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  327|       |
  328|      0|    WriteData(val, valLen);
  329|       |
  330|      0|    return CHIP_NO_ERROR;
  ------------------
  |  |  482|      0|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  ------------------
  331|      0|}
_ZN4chip4ASN110ASN1Writer10EncodeHeadEhhbi:
  350|  70.2k|{
  351|  70.2k|    VerifyOrReturnError(!IsNullWriter(), CHIP_NO_ERROR);
  ------------------
  |  |  251|  70.2k|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|  70.2k|    do                                                                                                                             \
  |  |  |  |  271|  70.2k|    {                                                                                                                              \
  |  |  |  |  272|  70.2k|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 70.2k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  273|  70.2k|        {                                                                                                                          \
  |  |  |  |  274|  70.2k|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|  70.2k|            return (value);                                                                                                        \
  |  |  |  |  276|  70.2k|        }                                                                                                                          \
  |  |  |  |  277|  70.2k|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  352|       |
  353|      0|    uint8_t bytesForLen;
  354|      0|    uint32_t totalLen;
  355|       |
  356|       |    // Only tags < 31 supported. The implication of this is that encoded tags are exactly 1 byte long.
  357|      0|    VerifyOrReturnError(tag < 0x1F, ASN1_ERROR_UNSUPPORTED_ENCODING);
  ------------------
  |  |  251|      0|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|      0|    do                                                                                                                             \
  |  |  |  |  271|      0|    {                                                                                                                              \
  |  |  |  |  272|      0|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  273|      0|        {                                                                                                                          \
  |  |  |  |  274|      0|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|      0|            return (value);                                                                                                        \
  |  |  |  |  276|      0|        }                                                                                                                          \
  |  |  |  |  277|      0|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  358|       |
  359|       |    // Only positive and kUnknownLength values are supported for len input.
  360|      0|    VerifyOrReturnError(len >= 0 || len == kUnknownLength, ASN1_ERROR_UNSUPPORTED_ENCODING);
  ------------------
  |  |  251|      0|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|      0|    do                                                                                                                             \
  |  |  |  |  271|      0|    {                                                                                                                              \
  |  |  |  |  272|      0|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:15): [True: 0, False: 0]
  |  |  |  |  |  Branch (272:15): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  273|      0|        {                                                                                                                          \
  |  |  |  |  274|      0|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|      0|            return (value);                                                                                                        \
  |  |  |  |  276|      0|        }                                                                                                                          \
  |  |  |  |  277|      0|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  361|       |
  362|       |    // Compute the number of bytes required to encode the length.
  363|      0|    bytesForLen = BytesForLength(len);
  364|       |
  365|       |    // Make sure there's enough space to encode the entire value.
  366|       |    // Note that the calculated total length doesn't overflow because `len` is a signed value (int32_t).
  367|       |    // Note that if `len` is not kUnknownLength then it is non-negative (`len` >= 0).
  368|      0|    totalLen = 1 + bytesForLen + static_cast<uint32_t>(len != kUnknownLength ? len : 0);
  ------------------
  |  Branch (368:56): [True: 0, False: 0]
  ------------------
  369|      0|    VerifyOrReturnError((mWritePoint + totalLen) <= mBufEnd, ASN1_ERROR_OVERFLOW);
  ------------------
  |  |  251|      0|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|      0|    do                                                                                                                             \
  |  |  |  |  271|      0|    {                                                                                                                              \
  |  |  |  |  272|      0|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  273|      0|        {                                                                                                                          \
  |  |  |  |  274|      0|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|      0|            return (value);                                                                                                        \
  |  |  |  |  276|      0|        }                                                                                                                          \
  |  |  |  |  277|      0|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  370|       |
  371|       |    // Write the tag byte.
  372|      0|    *mWritePoint++ = cls | static_cast<uint8_t>(isConstructed ? 0x20 : 0) | tag;
  ------------------
  |  Branch (372:49): [True: 0, False: 0]
  ------------------
  373|       |
  374|       |    // Encode the length if it is known.
  375|      0|    if (len != kUnknownLength)
  ------------------
  |  Branch (375:9): [True: 0, False: 0]
  ------------------
  376|      0|    {
  377|      0|        EncodeLength(mWritePoint, bytesForLen, len);
  378|      0|    }
  379|       |    // ... otherwise place a marker in the first byte of the length to indicate that the length is unknown
  380|       |    // and save a pointer to the length field in the deferred-length array.
  381|       |    //
  382|       |    // The deferred-length is an array of "pointers" to length fields for which the length of the
  383|       |    // element was unknown at the time the element head was written. Examples include constructed
  384|       |    // types such as SEQUENCE and SET, as well non-constructed types that encapsulate other ASN.1 types
  385|       |    // (e.g. OCTET STRINGS that contain BER/DER encodings). The final lengths are filled in later,
  386|       |    // at the time the encoding of the element is complete (e.g. when EndConstructed() is called).
  387|      0|    else
  388|      0|    {
  389|      0|        VerifyOrReturnError(mDeferredLengthCount < kMaxDeferredLengthDepth, ASN1_ERROR_INVALID_STATE);
  ------------------
  |  |  251|      0|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|      0|    do                                                                                                                             \
  |  |  |  |  271|      0|    {                                                                                                                              \
  |  |  |  |  272|      0|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  273|      0|        {                                                                                                                          \
  |  |  |  |  274|      0|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|      0|            return (value);                                                                                                        \
  |  |  |  |  276|      0|        }                                                                                                                          \
  |  |  |  |  277|      0|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  390|       |
  391|      0|        *mWritePoint                                     = kUnknownLengthMarker;
  392|      0|        mDeferredLengthLocations[mDeferredLengthCount++] = mWritePoint;
  393|      0|    }
  394|       |
  395|      0|    mWritePoint += bytesForLen;
  396|       |
  397|      0|    return CHIP_NO_ERROR;
  ------------------
  |  |  482|      0|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  ------------------
  398|      0|}
_ZN4chip4ASN110ASN1Writer19WriteDeferredLengthEv:
  401|  49.5k|{
  402|  49.5k|    VerifyOrReturnError(!IsNullWriter(), CHIP_NO_ERROR);
  ------------------
  |  |  251|  49.5k|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|  49.5k|    do                                                                                                                             \
  |  |  |  |  271|  49.5k|    {                                                                                                                              \
  |  |  |  |  272|  49.5k|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 49.5k, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  273|  49.5k|        {                                                                                                                          \
  |  |  |  |  274|  49.5k|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|  49.5k|            return (value);                                                                                                        \
  |  |  |  |  276|  49.5k|        }                                                                                                                          \
  |  |  |  |  277|  49.5k|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  403|       |
  404|      0|    VerifyOrReturnError(mDeferredLengthCount > 0, ASN1_ERROR_INVALID_STATE);
  ------------------
  |  |  251|      0|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|      0|    do                                                                                                                             \
  |  |  |  |  271|      0|    {                                                                                                                              \
  |  |  |  |  272|      0|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  273|      0|        {                                                                                                                          \
  |  |  |  |  274|      0|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|      0|            return (value);                                                                                                        \
  |  |  |  |  276|      0|        }                                                                                                                          \
  |  |  |  |  277|      0|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  405|       |
  406|      0|    uint8_t * lenField = mDeferredLengthLocations[mDeferredLengthCount - 1];
  407|       |
  408|      0|    VerifyOrReturnError(*lenField == kUnknownLengthMarker, ASN1_ERROR_INVALID_STATE);
  ------------------
  |  |  251|      0|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|      0|    do                                                                                                                             \
  |  |  |  |  271|      0|    {                                                                                                                              \
  |  |  |  |  272|      0|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  273|      0|        {                                                                                                                          \
  |  |  |  |  274|      0|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|      0|            return (value);                                                                                                        \
  |  |  |  |  276|      0|        }                                                                                                                          \
  |  |  |  |  277|      0|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  409|       |
  410|       |    // Compute the length of the element's value.
  411|      0|    size_t elemLen = static_cast<size_t>((mWritePoint - lenField) - kLengthFieldReserveSize);
  412|       |
  413|      0|    VerifyOrReturnError(CanCastTo<int32_t>(elemLen), ASN1_ERROR_LENGTH_OVERFLOW);
  ------------------
  |  |  251|      0|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|      0|    do                                                                                                                             \
  |  |  |  |  271|      0|    {                                                                                                                              \
  |  |  |  |  272|      0|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  273|      0|        {                                                                                                                          \
  |  |  |  |  274|      0|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|      0|            return (value);                                                                                                        \
  |  |  |  |  276|      0|        }                                                                                                                          \
  |  |  |  |  277|      0|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  414|       |
  415|      0|    uint8_t bytesForLen = BytesForLength(static_cast<int32_t>(elemLen));
  416|       |
  417|       |    // Move the element data if the number of bytes consumed by the final length field
  418|       |    // is different than the space that was reserved for the field.
  419|      0|    if (bytesForLen != kLengthFieldReserveSize)
  ------------------
  |  Branch (419:9): [True: 0, False: 0]
  ------------------
  420|      0|    {
  421|      0|        mWritePoint += (bytesForLen - kLengthFieldReserveSize);
  422|       |
  423|      0|        VerifyOrReturnError(mWritePoint <= mBufEnd, ASN1_ERROR_OVERFLOW);
  ------------------
  |  |  251|      0|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|      0|    do                                                                                                                             \
  |  |  |  |  271|      0|    {                                                                                                                              \
  |  |  |  |  272|      0|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  273|      0|        {                                                                                                                          \
  |  |  |  |  274|      0|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|      0|            return (value);                                                                                                        \
  |  |  |  |  276|      0|        }                                                                                                                          \
  |  |  |  |  277|      0|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  424|       |
  425|      0|        memmove(lenField + bytesForLen, lenField + kLengthFieldReserveSize, elemLen);
  426|      0|    }
  427|       |
  428|       |    // Encode the final length of the element, overwriting the unknown length marker
  429|       |    // in the process.
  430|      0|    EncodeLength(lenField, bytesForLen, static_cast<int32_t>(elemLen));
  431|       |
  432|      0|    mDeferredLengthCount--;
  433|       |
  434|      0|    return CHIP_NO_ERROR;
  ------------------
  |  |  482|      0|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  ------------------
  435|      0|}

_ZN4chip18IsValidCASEAuthTagEj:
   50|    717|{
   51|    717|    return (aCAT & kTagVersionMask) > 0;
   52|    717|}

_ZN4chip8Encoding5Read8ERPKh:
  150|  63.4k|{
  151|  63.4k|    return nl::IO::Read8(reinterpret_cast<const void *&>(p));
  152|  63.4k|}
_ZN4chip8Encoding12LittleEndian10HostSwap64Em:
  288|  4.28M|{
  289|  4.28M|    return nl::ByteOrder::Swap64LittleToHost(v);
  290|  4.28M|}
_ZN4chip8Encoding12LittleEndian8HostSwapImEET_S3_:
  294|  4.28M|{
  295|  4.28M|    return HostSwap64(v);
  296|  4.28M|}
_ZN4chip8Encoding12LittleEndian6Read16ERPKh:
  419|  7.83k|{
  420|  7.83k|    return nl::IO::LittleEndian::ReadUnaligned16(reinterpret_cast<const void *&>(p));
  421|  7.83k|}
_ZN4chip8Encoding12LittleEndian6Read32ERPKh:
  459|  1.76k|{
  460|  1.76k|    return nl::IO::LittleEndian::ReadUnaligned32(reinterpret_cast<const void *&>(p));
  461|  1.76k|}
_ZN4chip8Encoding9BigEndian5Get32EPKh:
  698|     97|{
  699|     97|    return nl::IO::BigEndian::GetUnaligned32(p);
  700|     97|}
_ZN4chip8Encoding9BigEndian5Get64EPKh:
  715|    306|{
  716|    306|    return nl::IO::BigEndian::GetUnaligned64(p);
  717|    306|}
_ZN4chip8Encoding9BigEndian5Put32EPhj:
  753|    264|{
  754|    264|    nl::IO::BigEndian::PutUnaligned32(p, v);
  755|    264|}
_ZN4chip8Encoding9BigEndian5Put64EPhm:
  772|    860|{
  773|    860|    nl::IO::BigEndian::PutUnaligned64(p, v);
  774|    860|}

_ZN4chip9ChipErrorC2EjPKcj:
  190|  34.9M|        mError(error) CHIP_INITIALIZE_ERROR_SOURCE(file, line, /*loc=*/nullptr)
  ------------------
  |  |  122|  34.9M|#define CHIP_INITIALIZE_ERROR_SOURCE(f, l, loc) , mFile((f)), mLine((l))
  ------------------
  191|  34.9M|    {}
_ZNK4chip9ChipErroreqERKS0_:
  203|  55.1k|    bool operator==(const ChipError & other) const { return mError == other.mError; }
_ZNK4chip9ChipErrorneERKS0_:
  204|  8.41M|    bool operator!=(const ChipError & other) const { return mError != other.mError; }
_ZN4chip9ChipError9IsSuccessES0_:
  218|  13.7M|    static constexpr bool IsSuccess(ChipError error) { return error.mError == 0; }

_ZN4chip5Uint813to_const_charEPKh:
  162|    582|{
  163|    582|    static_assert(CHAR_BIT == 8, "Can't type cast uint8_t array to char array");
  164|    582|#ifdef __cplusplus
  165|    582|    return reinterpret_cast<const char *>(in);
  166|       |#else
  167|       |    return (const char *) in;
  168|       |#endif
  169|    582|}

_ZN4chip15IsValidFabricIdEm:
  157|    776|{
  158|    776|    return fabricId != kUndefinedFabricId;
  159|    776|}

_ZN4chip19IsOperationalNodeIdEm:
   62|  1.07k|{
   63|  1.07k|    return (aNodeId != kUndefinedNodeId) && (aNodeId <= kMaxOperationalNodeId);
  ------------------
  |  Branch (63:12): [True: 1.06k, False: 9]
  |  Branch (63:45): [True: 898, False: 167]
  ------------------
   64|  1.07k|}

_ZN4chip3TLV9TLVReaderC2Ev:
   53|  14.8k|    ImplicitProfileId(kProfileIdNotSpecified), AppData(nullptr), mElemLenOrVal(0), mBackingStore(nullptr), mReadPoint(nullptr),
   54|  14.8k|    mBufEnd(nullptr), mLenRead(0), mMaxLen(0), mContainerType(kTLVType_NotSpecified), mControlByte(kTLVControlByte_NotSpecified),
   55|  14.8k|    mContainerOpen(false)
   56|  14.8k|{}
_ZN4chip3TLV9TLVReader4InitEPKhm:
   59|  14.8k|{
   60|       |    // TODO: Maybe we can just make mMaxLen and mLenRead size_t instead?
   61|  14.8k|    uint32_t actualDataLen = dataLen > UINT32_MAX ? UINT32_MAX : static_cast<uint32_t>(dataLen);
  ------------------
  |  Branch (61:30): [True: 0, False: 14.8k]
  ------------------
   62|  14.8k|    mBackingStore          = nullptr;
   63|  14.8k|    mReadPoint             = data;
   64|  14.8k|    mBufEnd                = data + actualDataLen;
   65|  14.8k|    mLenRead               = 0;
   66|  14.8k|    mMaxLen                = actualDataLen;
   67|  14.8k|    ClearElementState();
   68|  14.8k|    mContainerType = kTLVType_NotSpecified;
   69|  14.8k|    SetContainerOpen(false);
   70|       |
   71|  14.8k|    ImplicitProfileId = kProfileIdNotSpecified;
   72|  14.8k|}
_ZNK4chip3TLV9TLVReader7GetTypeEv:
  117|  91.5k|{
  118|  91.5k|    TLVElementType elemType = ElementType();
  119|  91.5k|    if (elemType == TLVElementType::EndOfContainer)
  ------------------
  |  Branch (119:9): [True: 432, False: 91.0k]
  ------------------
  120|    432|        return kTLVType_NotSpecified;
  121|  91.0k|    if (elemType == TLVElementType::FloatingPointNumber32 || elemType == TLVElementType::FloatingPointNumber64)
  ------------------
  |  Branch (121:9): [True: 24, False: 91.0k]
  |  Branch (121:62): [True: 32, False: 91.0k]
  ------------------
  122|     56|        return kTLVType_FloatingPointNumber;
  123|  91.0k|    if (elemType == TLVElementType::NotSpecified || elemType >= TLVElementType::Null)
  ------------------
  |  Branch (123:9): [True: 14.9k, False: 76.1k]
  |  Branch (123:53): [True: 37.2k, False: 38.8k]
  ------------------
  124|  52.1k|        return static_cast<TLVType>(elemType);
  125|  38.8k|    return static_cast<TLVType>(static_cast<uint8_t>(elemType) & ~kTLVTypeSizeMask);
  126|  91.0k|}
_ZNK4chip3TLV9TLVReader9GetLengthEv:
  129|  47.4k|{
  130|  47.4k|    if (TLVTypeHasLength(ElementType()))
  ------------------
  |  Branch (130:9): [True: 47.4k, False: 0]
  ------------------
  131|  47.4k|        return static_cast<uint32_t>(mElemLenOrVal);
  132|      0|    return 0;
  133|  47.4k|}
_ZNK4chip3TLV9TLVReader3GetERb:
  136|  2.78k|{
  137|  2.78k|    TLVElementType elemType = ElementType();
  138|  2.78k|    if (elemType == TLVElementType::BooleanFalse)
  ------------------
  |  Branch (138:9): [True: 1.22k, False: 1.55k]
  ------------------
  139|  1.22k|        v = false;
  140|  1.55k|    else if (elemType == TLVElementType::BooleanTrue)
  ------------------
  |  Branch (140:14): [True: 1.51k, False: 44]
  ------------------
  141|  1.51k|        v = true;
  142|     44|    else
  143|     44|        return CHIP_ERROR_WRONG_TLV_TYPE;
  ------------------
  |  |  829|     44|#define CHIP_ERROR_WRONG_TLV_TYPE                              CHIP_CORE_ERROR(0x26)
  |  |  ------------------
  |  |  |  |  436|     44|#define CHIP_CORE_ERROR(e) CHIP_SDK_ERROR(::chip::ChipError::SdkPart::kCore, (e))
  |  |  |  |  ------------------
  |  |  |  |  |  |  171|     44|    (::chip::ChipError(::chip::ChipError::SdkErrorConstant<(part), (code)>::value, __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  144|  2.74k|    return CHIP_NO_ERROR;
  ------------------
  |  |  482|  2.74k|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  ------------------
  145|  2.78k|}
_ZNK4chip3TLV9TLVReader3GetERh:
  208|  13.0k|{
  209|  13.0k|    uint64_t v64   = 0;
  210|  13.0k|    CHIP_ERROR err = Get(v64);
  211|  13.0k|    if (!CanCastTo<uint8_t>(v64))
  ------------------
  |  Branch (211:9): [True: 328, False: 12.7k]
  ------------------
  212|    328|    {
  213|    328|        return CHIP_ERROR_INVALID_INTEGER_VALUE;
  ------------------
  |  | 1388|    328|#define CHIP_ERROR_INVALID_INTEGER_VALUE                       CHIP_CORE_ERROR(0x8f)
  |  |  ------------------
  |  |  |  |  436|    328|#define CHIP_CORE_ERROR(e) CHIP_SDK_ERROR(::chip::ChipError::SdkPart::kCore, (e))
  |  |  |  |  ------------------
  |  |  |  |  |  |  171|    328|    (::chip::ChipError(::chip::ChipError::SdkErrorConstant<(part), (code)>::value, __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  214|    328|    }
  215|  12.7k|    v = static_cast<uint8_t>(v64);
  216|  12.7k|    return err;
  217|  13.0k|}
_ZNK4chip3TLV9TLVReader3GetERt:
  220|    792|{
  221|    792|    uint64_t v64   = 0;
  222|    792|    CHIP_ERROR err = Get(v64);
  223|    792|    if (!CanCastTo<uint16_t>(v64))
  ------------------
  |  Branch (223:9): [True: 264, False: 528]
  ------------------
  224|    264|    {
  225|    264|        return CHIP_ERROR_INVALID_INTEGER_VALUE;
  ------------------
  |  | 1388|    264|#define CHIP_ERROR_INVALID_INTEGER_VALUE                       CHIP_CORE_ERROR(0x8f)
  |  |  ------------------
  |  |  |  |  436|    264|#define CHIP_CORE_ERROR(e) CHIP_SDK_ERROR(::chip::ChipError::SdkPart::kCore, (e))
  |  |  |  |  ------------------
  |  |  |  |  |  |  171|    264|    (::chip::ChipError(::chip::ChipError::SdkErrorConstant<(part), (code)>::value, __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  226|    264|    }
  227|    528|    v = static_cast<uint16_t>(v64);
  228|    528|    return err;
  229|    792|}
_ZNK4chip3TLV9TLVReader3GetERj:
  232|  7.08k|{
  233|  7.08k|    uint64_t v64   = 0;
  234|  7.08k|    CHIP_ERROR err = Get(v64);
  235|  7.08k|    if (!CanCastTo<uint32_t>(v64))
  ------------------
  |  Branch (235:9): [True: 192, False: 6.88k]
  ------------------
  236|    192|    {
  237|    192|        return CHIP_ERROR_INVALID_INTEGER_VALUE;
  ------------------
  |  | 1388|    192|#define CHIP_ERROR_INVALID_INTEGER_VALUE                       CHIP_CORE_ERROR(0x8f)
  |  |  ------------------
  |  |  |  |  436|    192|#define CHIP_CORE_ERROR(e) CHIP_SDK_ERROR(::chip::ChipError::SdkPart::kCore, (e))
  |  |  |  |  ------------------
  |  |  |  |  |  |  171|    192|    (::chip::ChipError(::chip::ChipError::SdkErrorConstant<(part), (code)>::value, __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  238|    192|    }
  239|  6.88k|    v = static_cast<uint32_t>(v64);
  240|  6.88k|    return err;
  241|  7.08k|}
_ZNK4chip3TLV9TLVReader3GetERm:
  244|  23.3k|{
  245|       |    // Internal callers of this method depend on it not modifying "v" on failure.
  246|  23.3k|    switch (ElementType())
  247|  23.3k|    {
  248|  20.5k|    case TLVElementType::UInt8:
  ------------------
  |  Branch (248:5): [True: 20.5k, False: 2.80k]
  ------------------
  249|  20.8k|    case TLVElementType::UInt16:
  ------------------
  |  Branch (249:5): [True: 296, False: 23.0k]
  ------------------
  250|  21.6k|    case TLVElementType::UInt32:
  ------------------
  |  Branch (250:5): [True: 784, False: 22.5k]
  ------------------
  251|  23.0k|    case TLVElementType::UInt64:
  ------------------
  |  Branch (251:5): [True: 1.44k, False: 21.9k]
  ------------------
  252|  23.0k|        v = mElemLenOrVal;
  253|  23.0k|        break;
  254|    284|    default:
  ------------------
  |  Branch (254:5): [True: 284, False: 23.0k]
  ------------------
  255|    284|        return CHIP_ERROR_WRONG_TLV_TYPE;
  ------------------
  |  |  829|    284|#define CHIP_ERROR_WRONG_TLV_TYPE                              CHIP_CORE_ERROR(0x26)
  |  |  ------------------
  |  |  |  |  436|    284|#define CHIP_CORE_ERROR(e) CHIP_SDK_ERROR(::chip::ChipError::SdkPart::kCore, (e))
  |  |  |  |  ------------------
  |  |  |  |  |  |  171|    284|    (::chip::ChipError(::chip::ChipError::SdkErrorConstant<(part), (code)>::value, __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  256|  23.3k|    }
  257|  23.0k|    return CHIP_NO_ERROR;
  ------------------
  |  |  482|  23.0k|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  ------------------
  258|  23.3k|}
_ZNK4chip3TLV9TLVReader3GetERNS_4SpanIKhEE:
  309|  10.6k|{
  310|  10.6k|    const uint8_t * val;
  311|  10.6k|    ReturnErrorOnFailure(GetDataPtr(val));
  ------------------
  |  |  150|  10.6k|    do                                                                                                                             \
  |  |  151|  10.6k|    {                                                                                                                              \
  |  |  152|  10.6k|        auto __err = (expr);                                                                                                       \
  |  |  153|  10.6k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 212, False: 10.4k]
  |  |  ------------------
  |  |  154|  10.6k|        {                                                                                                                          \
  |  |  155|    212|            return __err;                                                                                                          \
  |  |  156|    212|        }                                                                                                                          \
  |  |  157|  10.6k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  312|  10.4k|    v = ByteSpan(val, GetLength());
  313|       |
  314|  10.4k|    return CHIP_NO_ERROR;
  ------------------
  |  |  482|  10.4k|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  ------------------
  315|  10.6k|}
_ZNK4chip3TLV9TLVReader3GetERNS_4SpanIKcEE:
  323|  1.24k|{
  324|  1.24k|    if (!TLVTypeIsUTF8String(ElementType()))
  ------------------
  |  Branch (324:9): [True: 112, False: 1.13k]
  ------------------
  325|    112|    {
  326|    112|        return CHIP_ERROR_WRONG_TLV_TYPE;
  ------------------
  |  |  829|    112|#define CHIP_ERROR_WRONG_TLV_TYPE                              CHIP_CORE_ERROR(0x26)
  |  |  ------------------
  |  |  |  |  436|    112|#define CHIP_CORE_ERROR(e) CHIP_SDK_ERROR(::chip::ChipError::SdkPart::kCore, (e))
  |  |  |  |  ------------------
  |  |  |  |  |  |  171|    112|    (::chip::ChipError(::chip::ChipError::SdkErrorConstant<(part), (code)>::value, __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  327|    112|    }
  328|       |
  329|  1.13k|    const uint8_t * bytes;
  330|  1.13k|    ReturnErrorOnFailure(GetDataPtr(bytes)); // Does length sanity checks
  ------------------
  |  |  150|  1.13k|    do                                                                                                                             \
  |  |  151|  1.13k|    {                                                                                                                              \
  |  |  152|  1.13k|        auto __err = (expr);                                                                                                       \
  |  |  153|  1.13k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 0, False: 1.13k]
  |  |  ------------------
  |  |  154|  1.13k|        {                                                                                                                          \
  |  |  155|      0|            return __err;                                                                                                          \
  |  |  156|      0|        }                                                                                                                          \
  |  |  157|  1.13k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  331|  1.13k|    if (bytes == nullptr)
  ------------------
  |  Branch (331:9): [True: 668, False: 468]
  ------------------
  332|    668|    {
  333|       |        // Calling memchr further down with bytes == nullptr would have undefined behaviour, exiting early.
  334|    668|        return CHIP_NO_ERROR;
  ------------------
  |  |  482|    668|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  ------------------
  335|    668|    }
  336|       |
  337|    468|    uint32_t len = GetLength();
  338|       |
  339|       |    // If Unicode Information Separator 1 (0x1f) is present in the string then method returns
  340|       |    // string ending at first appearance of the Information Separator 1.
  341|    468|    const uint8_t * infoSeparator = reinterpret_cast<const uint8_t *>(memchr(bytes, kUnicodeInformationSeparator1, len));
  342|    468|    if (infoSeparator != nullptr)
  ------------------
  |  Branch (342:9): [True: 108, False: 360]
  ------------------
  343|    108|    {
  344|    108|        len = static_cast<uint32_t>(infoSeparator - bytes);
  345|    108|    }
  346|       |
  347|    468|    v = CharSpan(Uint8::to_const_char(bytes), len);
  348|       |#if CHIP_CONFIG_TLV_VALIDATE_CHAR_STRING_ON_READ
  349|       |    // Spec requirement: A.11.2. UTF-8 and Octet Strings
  350|       |    //
  351|       |    // For UTF-8 strings, the value octets SHALL encode a valid
  352|       |    // UTF-8 character (code points) sequence.
  353|       |    //
  354|       |    // Senders SHALL NOT include a terminating null character to
  355|       |    // mark the end of a string.
  356|       |
  357|       |    if (!Utf8::IsValid(v))
  358|       |    {
  359|       |        return CHIP_ERROR_INVALID_UTF8;
  360|       |    }
  361|       |
  362|       |    if (!v.empty() && (v.back() == 0))
  363|       |    {
  364|       |        return CHIP_ERROR_INVALID_TLV_CHAR_STRING;
  365|       |    }
  366|       |#endif // CHIP_CONFIG_TLV_VALIDATE_CHAR_STRING_ON_READ
  367|    468|    return CHIP_NO_ERROR;
  ------------------
  |  |  482|    468|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  ------------------
  368|  1.13k|}
_ZNK4chip3TLV9TLVReader10GetDataPtrERPKh:
  498|  16.1k|{
  499|  16.1k|    VerifyOrReturnError(TLVTypeIsString(ElementType()), CHIP_ERROR_WRONG_TLV_TYPE);
  ------------------
  |  |  251|  16.1k|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|  16.1k|    do                                                                                                                             \
  |  |  |  |  271|  16.1k|    {                                                                                                                              \
  |  |  |  |  272|  16.1k|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 0, False: 16.1k]
  |  |  |  |  ------------------
  |  |  |  |  273|  16.1k|        {                                                                                                                          \
  |  |  |  |  274|      0|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|      0|            return (value);                                                                                                        \
  |  |  |  |  276|      0|        }                                                                                                                          \
  |  |  |  |  277|  16.1k|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  500|       |
  501|  16.1k|    if (GetLength() == 0)
  ------------------
  |  Branch (501:9): [True: 7.73k, False: 8.42k]
  ------------------
  502|  7.73k|    {
  503|  7.73k|        data = nullptr;
  504|  7.73k|        return CHIP_NO_ERROR;
  ------------------
  |  |  482|  7.73k|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  ------------------
  505|  7.73k|    }
  506|       |
  507|  8.42k|    uint32_t remainingLen = static_cast<decltype(mMaxLen)>(mBufEnd - mReadPoint);
  508|       |
  509|       |    // Verify that the entirety of the data is available in the buffer.
  510|       |    // Note that this may not be possible if the reader is reading from a chain of buffers.
  511|  8.42k|    VerifyOrReturnError(remainingLen >= static_cast<uint32_t>(mElemLenOrVal), CHIP_ERROR_TLV_UNDERRUN);
  ------------------
  |  |  251|  8.42k|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|  8.42k|    do                                                                                                                             \
  |  |  |  |  271|  8.42k|    {                                                                                                                              \
  |  |  |  |  272|  8.42k|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 596, False: 7.83k]
  |  |  |  |  ------------------
  |  |  |  |  273|  8.42k|        {                                                                                                                          \
  |  |  |  |  274|    596|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|    596|            return (value);                                                                                                        \
  |  |  |  |  276|    596|        }                                                                                                                          \
  |  |  |  |  277|  8.42k|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  512|  7.83k|    data = mReadPoint;
  513|  7.83k|    return CHIP_NO_ERROR;
  ------------------
  |  |  482|  7.83k|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  ------------------
  514|  8.42k|}
_ZN4chip3TLV9TLVReader14EnterContainerERNS0_7TLVTypeE:
  563|  27.5k|{
  564|  27.5k|    TLVElementType elemType = ElementType();
  565|  27.5k|    if (!TLVTypeIsContainer(elemType))
  ------------------
  |  Branch (565:9): [True: 0, False: 27.5k]
  ------------------
  566|      0|        return CHIP_ERROR_INCORRECT_STATE;
  ------------------
  |  |  512|      0|#define CHIP_ERROR_INCORRECT_STATE                             CHIP_CORE_ERROR(0x03)
  |  |  ------------------
  |  |  |  |  436|      0|#define CHIP_CORE_ERROR(e) CHIP_SDK_ERROR(::chip::ChipError::SdkPart::kCore, (e))
  |  |  |  |  ------------------
  |  |  |  |  |  |  171|      0|    (::chip::ChipError(::chip::ChipError::SdkErrorConstant<(part), (code)>::value, __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  567|       |
  568|  27.5k|    outerContainerType = mContainerType;
  569|  27.5k|    mContainerType     = static_cast<TLVType>(elemType);
  570|       |
  571|  27.5k|    ClearElementState();
  572|  27.5k|    SetContainerOpen(false);
  573|       |
  574|  27.5k|    return CHIP_NO_ERROR;
  ------------------
  |  |  482|  27.5k|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  ------------------
  575|  27.5k|}
_ZN4chip3TLV9TLVReader13ExitContainerENS0_7TLVTypeE:
  578|  13.9k|{
  579|  13.9k|    CHIP_ERROR err;
  580|       |
  581|  13.9k|    err = SkipToEndOfContainer();
  582|  13.9k|    if (err != CHIP_NO_ERROR)
  ------------------
  |  |  482|  13.9k|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  ------------------
  |  Branch (582:9): [True: 3.32k, False: 10.6k]
  ------------------
  583|  3.32k|        return err;
  584|       |
  585|  10.6k|    mContainerType = outerContainerType;
  586|  10.6k|    ClearElementState();
  587|       |
  588|  10.6k|    return CHIP_NO_ERROR;
  ------------------
  |  |  482|  10.6k|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  ------------------
  589|  13.9k|}
_ZN4chip3TLV9TLVReader20VerifyEndOfContainerEv:
  592|  2.64k|{
  593|  2.64k|    CHIP_ERROR err = Next();
  594|  2.64k|    if (err == CHIP_END_OF_TLV)
  ------------------
  |  |  783|  2.64k|#define CHIP_END_OF_TLV CHIP_ERROR_END_OF_TLV
  |  |  ------------------
  |  |  |  |  782|  2.64k|#define CHIP_ERROR_END_OF_TLV                                  CHIP_CORE_ERROR(0x21)
  |  |  |  |  ------------------
  |  |  |  |  |  |  436|  2.64k|#define CHIP_CORE_ERROR(e) CHIP_SDK_ERROR(::chip::ChipError::SdkPart::kCore, (e))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  171|  2.64k|    (::chip::ChipError(::chip::ChipError::SdkErrorConstant<(part), (code)>::value, __FILE__, __LINE__))
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  |  Branch (594:9): [True: 2.62k, False: 28]
  ------------------
  595|  2.62k|        return CHIP_NO_ERROR;
  ------------------
  |  |  482|  2.62k|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  ------------------
  596|     28|    if (err == CHIP_NO_ERROR)
  ------------------
  |  |  482|     28|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  ------------------
  |  Branch (596:9): [True: 12, False: 16]
  ------------------
  597|     12|        return CHIP_ERROR_UNEXPECTED_TLV_ELEMENT;
  ------------------
  |  |  859|     12|#define CHIP_ERROR_UNEXPECTED_TLV_ELEMENT                      CHIP_CORE_ERROR(0x2b)
  |  |  ------------------
  |  |  |  |  436|     12|#define CHIP_CORE_ERROR(e) CHIP_SDK_ERROR(::chip::ChipError::SdkPart::kCore, (e))
  |  |  |  |  ------------------
  |  |  |  |  |  |  171|     12|    (::chip::ChipError(::chip::ChipError::SdkErrorConstant<(part), (code)>::value, __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  598|     16|    return err;
  599|     28|}
_ZN4chip3TLV9TLVReader4NextEv:
  602|  94.8k|{
  603|  94.8k|    ReturnErrorOnFailure(Skip());
  ------------------
  |  |  150|  94.8k|    do                                                                                                                             \
  |  |  151|  94.8k|    {                                                                                                                              \
  |  |  152|  94.8k|        auto __err = (expr);                                                                                                       \
  |  |  153|  94.8k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 2.52k, False: 92.3k]
  |  |  ------------------
  |  |  154|  94.8k|        {                                                                                                                          \
  |  |  155|  2.52k|            return __err;                                                                                                          \
  |  |  156|  2.52k|        }                                                                                                                          \
  |  |  157|  94.8k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  604|  92.3k|    ReturnErrorOnFailure(ReadElement());
  ------------------
  |  |  150|  92.3k|    do                                                                                                                             \
  |  |  151|  92.3k|    {                                                                                                                              \
  |  |  152|  92.3k|        auto __err = (expr);                                                                                                       \
  |  |  153|  92.3k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 8.28k, False: 84.0k]
  |  |  ------------------
  |  |  154|  92.3k|        {                                                                                                                          \
  |  |  155|  8.28k|            return __err;                                                                                                          \
  |  |  156|  8.28k|        }                                                                                                                          \
  |  |  157|  92.3k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  605|       |
  606|  84.0k|    TLVElementType elemType = ElementType();
  607|       |
  608|  84.0k|    VerifyOrReturnError(elemType != TLVElementType::EndOfContainer, CHIP_END_OF_TLV);
  ------------------
  |  |  251|  84.0k|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|  84.0k|    do                                                                                                                             \
  |  |  |  |  271|  84.0k|    {                                                                                                                              \
  |  |  |  |  272|  84.0k|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 10.1k, False: 73.9k]
  |  |  |  |  ------------------
  |  |  |  |  273|  84.0k|        {                                                                                                                          \
  |  |  |  |  274|  10.1k|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|  10.1k|            return (value);                                                                                                        \
  |  |  |  |  276|  10.1k|        }                                                                                                                          \
  |  |  |  |  277|  84.0k|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  609|       |
  610|       |    // Ensure that GetDataPtr calls can be called immediately after Next, so
  611|       |    // that `Get(ByteSpan&)` does not need to advance buffers and just works
  612|  73.9k|    if (TLVTypeIsString(elemType) && (GetLength() != 0))
  ------------------
  |  Branch (612:9): [True: 16.4k, False: 57.5k]
  |  Branch (612:38): [True: 7.90k, False: 8.49k]
  ------------------
  613|  7.90k|    {
  614|  7.90k|        ReturnErrorOnFailure(EnsureData(CHIP_ERROR_TLV_UNDERRUN));
  ------------------
  |  |  150|  7.90k|    do                                                                                                                             \
  |  |  151|  7.90k|    {                                                                                                                              \
  |  |  152|  7.90k|        auto __err = (expr);                                                                                                       \
  |  |  153|  7.90k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 0, False: 7.90k]
  |  |  ------------------
  |  |  154|  7.90k|        {                                                                                                                          \
  |  |  155|      0|            return __err;                                                                                                          \
  |  |  156|      0|        }                                                                                                                          \
  |  |  157|  7.90k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  615|  7.90k|    }
  616|       |
  617|  73.9k|    return CHIP_NO_ERROR;
  ------------------
  |  |  482|  73.9k|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  ------------------
  618|  73.9k|}
_ZN4chip3TLV9TLVReader6ExpectENS0_3TagE:
  621|  22.7k|{
  622|  22.7k|    VerifyOrReturnError(GetType() != kTLVType_NotSpecified, CHIP_ERROR_WRONG_TLV_TYPE);
  ------------------
  |  |  251|  22.7k|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|  22.7k|    do                                                                                                                             \
  |  |  |  |  271|  22.7k|    {                                                                                                                              \
  |  |  |  |  272|  22.7k|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 0, False: 22.7k]
  |  |  |  |  ------------------
  |  |  |  |  273|  22.7k|        {                                                                                                                          \
  |  |  |  |  274|      0|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|      0|            return (value);                                                                                                        \
  |  |  |  |  276|      0|        }                                                                                                                          \
  |  |  |  |  277|  22.7k|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  623|  22.7k|    VerifyOrReturnError(GetTag() == expectedTag, CHIP_ERROR_UNEXPECTED_TLV_ELEMENT);
  ------------------
  |  |  251|  22.7k|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|  22.7k|    do                                                                                                                             \
  |  |  |  |  271|  22.7k|    {                                                                                                                              \
  |  |  |  |  272|  22.7k|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 460, False: 22.3k]
  |  |  |  |  ------------------
  |  |  |  |  273|  22.7k|        {                                                                                                                          \
  |  |  |  |  274|    460|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|    460|            return (value);                                                                                                        \
  |  |  |  |  276|    460|        }                                                                                                                          \
  |  |  |  |  277|  22.7k|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  624|  22.3k|    return CHIP_NO_ERROR;
  ------------------
  |  |  482|  22.3k|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  ------------------
  625|  22.7k|}
_ZN4chip3TLV9TLVReader4NextENS0_3TagE:
  628|  24.4k|{
  629|  24.4k|    ReturnErrorOnFailure(Next());
  ------------------
  |  |  150|  24.4k|    do                                                                                                                             \
  |  |  151|  24.4k|    {                                                                                                                              \
  |  |  152|  24.4k|        auto __err = (expr);                                                                                                       \
  |  |  153|  24.4k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 2.45k, False: 21.9k]
  |  |  ------------------
  |  |  154|  24.4k|        {                                                                                                                          \
  |  |  155|  2.45k|            return __err;                                                                                                          \
  |  |  156|  2.45k|        }                                                                                                                          \
  |  |  157|  24.4k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  630|  21.9k|    ReturnErrorOnFailure(Expect(expectedTag));
  ------------------
  |  |  150|  21.9k|    do                                                                                                                             \
  |  |  151|  21.9k|    {                                                                                                                              \
  |  |  152|  21.9k|        auto __err = (expr);                                                                                                       \
  |  |  153|  21.9k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 460, False: 21.5k]
  |  |  ------------------
  |  |  154|  21.9k|        {                                                                                                                          \
  |  |  155|    460|            return __err;                                                                                                          \
  |  |  156|    460|        }                                                                                                                          \
  |  |  157|  21.9k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  631|  21.5k|    return CHIP_NO_ERROR;
  ------------------
  |  |  482|  21.5k|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  ------------------
  632|  21.9k|}
_ZN4chip3TLV9TLVReader6ExpectENS0_7TLVTypeENS0_3TagE:
  635|  45.0k|{
  636|  45.0k|    VerifyOrReturnError(GetType() == expectedType, CHIP_ERROR_WRONG_TLV_TYPE);
  ------------------
  |  |  251|  45.0k|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|  45.0k|    do                                                                                                                             \
  |  |  |  |  271|  45.0k|    {                                                                                                                              \
  |  |  |  |  272|  45.0k|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 2.94k, False: 42.1k]
  |  |  |  |  ------------------
  |  |  |  |  273|  45.0k|        {                                                                                                                          \
  |  |  |  |  274|  2.94k|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|  2.94k|            return (value);                                                                                                        \
  |  |  |  |  276|  2.94k|        }                                                                                                                          \
  |  |  |  |  277|  45.0k|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  637|  42.1k|    VerifyOrReturnError(GetTag() == expectedTag, CHIP_ERROR_UNEXPECTED_TLV_ELEMENT);
  ------------------
  |  |  251|  42.1k|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|  42.1k|    do                                                                                                                             \
  |  |  |  |  271|  42.1k|    {                                                                                                                              \
  |  |  |  |  272|  42.1k|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 1.13k, False: 40.9k]
  |  |  |  |  ------------------
  |  |  |  |  273|  42.1k|        {                                                                                                                          \
  |  |  |  |  274|  1.13k|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|  1.13k|            return (value);                                                                                                        \
  |  |  |  |  276|  1.13k|        }                                                                                                                          \
  |  |  |  |  277|  42.1k|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  638|  40.9k|    return CHIP_NO_ERROR;
  ------------------
  |  |  482|  40.9k|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  ------------------
  639|  42.1k|}
_ZN4chip3TLV9TLVReader4NextENS0_7TLVTypeENS0_3TagE:
  642|  15.9k|{
  643|  15.9k|    ReturnErrorOnFailure(Next());
  ------------------
  |  |  150|  15.9k|    do                                                                                                                             \
  |  |  151|  15.9k|    {                                                                                                                              \
  |  |  152|  15.9k|        auto __err = (expr);                                                                                                       \
  |  |  153|  15.9k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 1.68k, False: 14.3k]
  |  |  ------------------
  |  |  154|  15.9k|        {                                                                                                                          \
  |  |  155|  1.68k|            return __err;                                                                                                          \
  |  |  156|  1.68k|        }                                                                                                                          \
  |  |  157|  15.9k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  644|  14.3k|    ReturnErrorOnFailure(Expect(expectedType, expectedTag));
  ------------------
  |  |  150|  14.3k|    do                                                                                                                             \
  |  |  151|  14.3k|    {                                                                                                                              \
  |  |  152|  14.3k|        auto __err = (expr);                                                                                                       \
  |  |  153|  14.3k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 508, False: 13.8k]
  |  |  ------------------
  |  |  154|  14.3k|        {                                                                                                                          \
  |  |  155|    508|            return __err;                                                                                                          \
  |  |  156|    508|        }                                                                                                                          \
  |  |  157|  14.3k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  645|  13.8k|    return CHIP_NO_ERROR;
  ------------------
  |  |  482|  13.8k|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  ------------------
  646|  14.3k|}
_ZN4chip3TLV9TLVReader4SkipEv:
  649|  94.8k|{
  650|  94.8k|    const TLVElementType elemType = ElementType();
  651|  94.8k|    VerifyOrReturnError(elemType != TLVElementType::EndOfContainer, CHIP_END_OF_TLV);
  ------------------
  |  |  251|  94.8k|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|  94.8k|    do                                                                                                                             \
  |  |  |  |  271|  94.8k|    {                                                                                                                              \
  |  |  |  |  272|  94.8k|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 1.09k, False: 93.7k]
  |  |  |  |  ------------------
  |  |  |  |  273|  94.8k|        {                                                                                                                          \
  |  |  |  |  274|  1.09k|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|  1.09k|            return (value);                                                                                                        \
  |  |  |  |  276|  1.09k|        }                                                                                                                          \
  |  |  |  |  277|  94.8k|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  652|       |
  653|  93.7k|    if (TLVTypeIsContainer(elemType))
  ------------------
  |  Branch (653:9): [True: 1.57k, False: 92.2k]
  ------------------
  654|  1.57k|    {
  655|  1.57k|        TLVType outerContainerType;
  656|  1.57k|        ReturnErrorOnFailure(EnterContainer(outerContainerType));
  ------------------
  |  |  150|  1.57k|    do                                                                                                                             \
  |  |  151|  1.57k|    {                                                                                                                              \
  |  |  152|  1.57k|        auto __err = (expr);                                                                                                       \
  |  |  153|  1.57k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 0, False: 1.57k]
  |  |  ------------------
  |  |  154|  1.57k|        {                                                                                                                          \
  |  |  155|      0|            return __err;                                                                                                          \
  |  |  156|      0|        }                                                                                                                          \
  |  |  157|  1.57k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  657|  1.57k|        return ExitContainer(outerContainerType);
  658|  1.57k|    }
  659|       |
  660|  92.2k|    ReturnErrorOnFailure(SkipData());
  ------------------
  |  |  150|  92.2k|    do                                                                                                                             \
  |  |  151|  92.2k|    {                                                                                                                              \
  |  |  152|  92.2k|        auto __err = (expr);                                                                                                       \
  |  |  153|  92.2k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 408, False: 91.8k]
  |  |  ------------------
  |  |  154|  92.2k|        {                                                                                                                          \
  |  |  155|    408|            return __err;                                                                                                          \
  |  |  156|    408|        }                                                                                                                          \
  |  |  157|  92.2k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  661|  91.8k|    ClearElementState();
  662|       |
  663|  91.8k|    return CHIP_NO_ERROR;
  ------------------
  |  |  482|  91.8k|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  ------------------
  664|  92.2k|}
_ZN4chip3TLV9TLVReader17ClearElementStateEv:
  672|   144k|{
  673|   144k|    mElemTag      = AnonymousTag();
  674|   144k|    mControlByte  = kTLVControlByte_NotSpecified;
  675|   144k|    mElemLenOrVal = 0;
  676|   144k|}
_ZN4chip3TLV9TLVReader8SkipDataEv:
  688|  4.29M|{
  689|  4.29M|    CHIP_ERROR err          = CHIP_NO_ERROR;
  ------------------
  |  |  482|  4.29M|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  ------------------
  690|  4.29M|    TLVElementType elemType = ElementType();
  691|       |
  692|  4.29M|    if (TLVTypeHasLength(elemType))
  ------------------
  |  Branch (692:9): [True: 16.0k, False: 4.27M]
  ------------------
  693|  16.0k|    {
  694|  16.0k|        err = ReadData(nullptr, static_cast<uint32_t>(mElemLenOrVal));
  695|  16.0k|    }
  696|       |
  697|  4.29M|    return err;
  698|  4.29M|}
_ZN4chip3TLV9TLVReader20SkipToEndOfContainerEv:
  701|  13.9k|{
  702|  13.9k|    CHIP_ERROR err;
  703|  13.9k|    TLVType outerContainerType = mContainerType;
  704|  13.9k|    uint32_t nestLevel         = 0;
  705|       |
  706|       |    // If the user calls Next() after having called OpenContainer() but before calling
  707|       |    // CloseContainer() they're effectively doing a close container by skipping over
  708|       |    // the container element.  So reset the 'container open' flag here to prevent them
  709|       |    // from calling CloseContainer() with the now orphaned container reader.
  710|  13.9k|    SetContainerOpen(false);
  711|       |
  712|  4.21M|    while (true)
  ------------------
  |  Branch (712:12): [Folded - Ignored]
  ------------------
  713|  4.21M|    {
  714|  4.21M|        TLVElementType elemType = ElementType();
  715|       |
  716|  4.21M|        if (elemType == TLVElementType::EndOfContainer)
  ------------------
  |  Branch (716:13): [True: 11.4k, False: 4.20M]
  ------------------
  717|  11.4k|        {
  718|  11.4k|            if (nestLevel == 0)
  ------------------
  |  Branch (718:17): [True: 10.6k, False: 828]
  ------------------
  719|  10.6k|                return CHIP_NO_ERROR;
  ------------------
  |  |  482|  10.6k|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  ------------------
  720|       |
  721|    828|            nestLevel--;
  722|    828|            mContainerType = (nestLevel == 0) ? outerContainerType : kTLVType_UnknownContainer;
  ------------------
  |  Branch (722:30): [True: 220, False: 608]
  ------------------
  723|    828|        }
  724|       |
  725|  4.20M|        else if (TLVTypeIsContainer(elemType))
  ------------------
  |  Branch (725:18): [True: 4.19M, False: 5.60k]
  ------------------
  726|  4.19M|        {
  727|  4.19M|            nestLevel++;
  728|  4.19M|            mContainerType = static_cast<TLVType>(elemType);
  729|  4.19M|        }
  730|       |
  731|  4.20M|        err = SkipData();
  732|  4.20M|        if (err != CHIP_NO_ERROR)
  ------------------
  |  |  482|  4.20M|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  ------------------
  |  Branch (732:13): [True: 4, False: 4.20M]
  ------------------
  733|      4|            return err;
  734|       |
  735|  4.20M|        err = ReadElement();
  736|  4.20M|        if (err != CHIP_NO_ERROR)
  ------------------
  |  |  482|  4.20M|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  ------------------
  |  Branch (736:13): [True: 3.31k, False: 4.19M]
  ------------------
  737|  3.31k|            return err;
  738|  4.20M|    }
  739|  13.9k|}
_ZN4chip3TLV9TLVReader11ReadElementEv:
  742|  4.29M|{
  743|       |    // Make sure we have input data. Return CHIP_END_OF_TLV if no more data is available.
  744|  4.29M|    ReturnErrorOnFailure(EnsureData(CHIP_END_OF_TLV));
  ------------------
  |  |  150|  4.29M|    do                                                                                                                             \
  |  |  151|  4.29M|    {                                                                                                                              \
  |  |  152|  4.29M|        auto __err = (expr);                                                                                                       \
  |  |  153|  4.29M|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 6.14k, False: 4.28M]
  |  |  ------------------
  |  |  154|  4.29M|        {                                                                                                                          \
  |  |  155|  6.14k|            return __err;                                                                                                          \
  |  |  156|  6.14k|        }                                                                                                                          \
  |  |  157|  4.29M|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  745|  4.28M|    VerifyOrReturnError(mReadPoint != nullptr, CHIP_ERROR_INVALID_TLV_ELEMENT);
  ------------------
  |  |  251|  4.28M|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|  4.28M|    do                                                                                                                             \
  |  |  |  |  271|  4.28M|    {                                                                                                                              \
  |  |  |  |  272|  4.28M|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 0, False: 4.28M]
  |  |  |  |  ------------------
  |  |  |  |  273|  4.28M|        {                                                                                                                          \
  |  |  |  |  274|      0|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|      0|            return (value);                                                                                                        \
  |  |  |  |  276|      0|        }                                                                                                                          \
  |  |  |  |  277|  4.28M|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  746|       |
  747|       |    // Get the element's control byte.
  748|  4.28M|    mControlByte = *mReadPoint;
  749|       |
  750|       |    // Extract the element type from the control byte. Fail if it's invalid.
  751|  4.28M|    TLVElementType elemType = ElementType();
  752|  4.28M|    VerifyOrReturnError(IsValidTLVType(elemType), CHIP_ERROR_INVALID_TLV_ELEMENT);
  ------------------
  |  |  251|  4.28M|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|  4.28M|    do                                                                                                                             \
  |  |  |  |  271|  4.28M|    {                                                                                                                              \
  |  |  |  |  272|  4.28M|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 132, False: 4.28M]
  |  |  |  |  ------------------
  |  |  |  |  273|  4.28M|        {                                                                                                                          \
  |  |  |  |  274|    132|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|    132|            return (value);                                                                                                        \
  |  |  |  |  276|    132|        }                                                                                                                          \
  |  |  |  |  277|  4.28M|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  753|       |
  754|       |    // Extract the tag control from the control byte.
  755|  4.28M|    TLVTagControl tagControl = static_cast<TLVTagControl>(mControlByte & kTLVTagControlMask);
  756|       |
  757|       |    // Determine the number of bytes in the element's tag, if any.
  758|  4.28M|    uint8_t tagBytes = sTagSizes[tagControl >> kTLVTagControlShift];
  759|       |
  760|       |    // Extract the size of length/value field from the control byte.
  761|  4.28M|    TLVFieldSize lenOrValFieldSize = GetTLVFieldSize(elemType);
  762|       |
  763|       |    // Determine the number of bytes in the length/value field.
  764|  4.28M|    const uint8_t valOrLenBytes = TLVFieldSizeToBytes(lenOrValFieldSize);
  765|       |
  766|       |    // Determine the number of bytes in the element's 'head'. This includes: the control byte, the tag bytes (if present), the
  767|       |    // length bytes (if present), and for elements that don't have a length (e.g. integers), the value bytes.
  768|  4.28M|    const uint8_t elemHeadBytes = static_cast<uint8_t>(1 + tagBytes + valOrLenBytes);
  769|       |
  770|       |    // 17 = 1 control byte + 8 tag bytes + 8 length/value bytes
  771|  4.28M|    uint8_t stagingBuf[17];
  772|       |
  773|       |    // Odd workaround: clang-tidy claims garbage value otherwise as it does not
  774|       |    // understand that ReadData initializes stagingBuf
  775|  4.28M|    stagingBuf[1] = 0;
  776|       |
  777|       |    // If the head of the element goes past the end of the current input buffer,
  778|       |    // we need to read it into the staging buffer to parse it.  Just do that unconditionally,
  779|       |    // even if the head does not go past end of current buffer, to save codesize.
  780|  4.28M|    ReturnErrorOnFailure(ReadData(stagingBuf, elemHeadBytes));
  ------------------
  |  |  150|  4.28M|    do                                                                                                                             \
  |  |  151|  4.28M|    {                                                                                                                              \
  |  |  152|  4.28M|        auto __err = (expr);                                                                                                       \
  |  |  153|  4.28M|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 304, False: 4.28M]
  |  |  ------------------
  |  |  154|  4.28M|        {                                                                                                                          \
  |  |  155|    304|            return __err;                                                                                                          \
  |  |  156|    304|        }                                                                                                                          \
  |  |  157|  4.28M|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  781|       |
  782|       |    // +1 to skip over the control byte
  783|  4.28M|    const uint8_t * p = stagingBuf + 1;
  784|       |
  785|       |    // Read the tag field, if present.
  786|  4.28M|    mElemTag      = ReadTag(tagControl, p);
  787|  4.28M|    mElemLenOrVal = 0;
  788|       |
  789|       |    // Read the length/value field, if present.
  790|       |    // NOTE: this is works because even though we only memcpy a subset of values and leave
  791|       |    //       the rest 0. Value looks like "<le-byte> <le-byte> ... <le-byte> 0 0 ... 0"
  792|       |    //       which is the TLV format. HostSwap ensures this becomes a real host value
  793|       |    //       (should be a NOOP on LE machines, will full-swap on big-endian machines)
  794|  4.28M|    memcpy(&mElemLenOrVal, p, valOrLenBytes);
  795|  4.28M|    LittleEndian::HostSwap(mElemLenOrVal);
  796|       |
  797|  4.28M|    VerifyOrReturnError(!TLVTypeHasLength(elemType) || (mElemLenOrVal <= UINT32_MAX), CHIP_ERROR_NOT_IMPLEMENTED);
  ------------------
  |  |  251|  4.28M|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|  4.28M|    do                                                                                                                             \
  |  |  |  |  271|  4.28M|    {                                                                                                                              \
  |  |  |  |  272|  4.30M|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:15): [True: 4.26M, False: 20.8k]
  |  |  |  |  |  Branch (272:15): [True: 20.6k, False: 248]
  |  |  |  |  ------------------
  |  |  |  |  273|  4.28M|        {                                                                                                                          \
  |  |  |  |  274|    248|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|    248|            return (value);                                                                                                        \
  |  |  |  |  276|    248|        }                                                                                                                          \
  |  |  |  |  277|  4.28M|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  798|       |
  799|  4.28M|    return VerifyElement();
  800|  4.28M|}
_ZN4chip3TLV9TLVReader13VerifyElementEv:
  803|  4.28M|{
  804|  4.28M|    if (ElementType() == TLVElementType::EndOfContainer)
  ------------------
  |  Branch (804:9): [True: 11.9k, False: 4.27M]
  ------------------
  805|  11.9k|    {
  806|  11.9k|        if (mContainerType == kTLVType_NotSpecified)
  ------------------
  |  Branch (806:13): [True: 8, False: 11.9k]
  ------------------
  807|      8|            return CHIP_ERROR_INVALID_TLV_ELEMENT;
  ------------------
  |  |  801|      8|#define CHIP_ERROR_INVALID_TLV_ELEMENT                         CHIP_CORE_ERROR(0x23)
  |  |  ------------------
  |  |  |  |  436|      8|#define CHIP_CORE_ERROR(e) CHIP_SDK_ERROR(::chip::ChipError::SdkPart::kCore, (e))
  |  |  |  |  ------------------
  |  |  |  |  |  |  171|      8|    (::chip::ChipError(::chip::ChipError::SdkErrorConstant<(part), (code)>::value, __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  808|  11.9k|        if (mElemTag != AnonymousTag())
  ------------------
  |  Branch (808:13): [True: 428, False: 11.5k]
  ------------------
  809|    428|            return CHIP_ERROR_INVALID_TLV_TAG;
  ------------------
  |  |  810|    428|#define CHIP_ERROR_INVALID_TLV_TAG                             CHIP_CORE_ERROR(0x24)
  |  |  ------------------
  |  |  |  |  436|    428|#define CHIP_CORE_ERROR(e) CHIP_SDK_ERROR(::chip::ChipError::SdkPart::kCore, (e))
  |  |  |  |  ------------------
  |  |  |  |  |  |  171|    428|    (::chip::ChipError(::chip::ChipError::SdkErrorConstant<(part), (code)>::value, __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  810|  11.9k|    }
  811|  4.27M|    else
  812|  4.27M|    {
  813|  4.27M|        if (mElemTag == UnknownImplicitTag())
  ------------------
  |  Branch (813:13): [True: 32, False: 4.27M]
  ------------------
  814|     32|            return CHIP_ERROR_UNKNOWN_IMPLICIT_TLV_TAG;
  ------------------
  |  |  820|     32|#define CHIP_ERROR_UNKNOWN_IMPLICIT_TLV_TAG                    CHIP_CORE_ERROR(0x25)
  |  |  ------------------
  |  |  |  |  436|     32|#define CHIP_CORE_ERROR(e) CHIP_SDK_ERROR(::chip::ChipError::SdkPart::kCore, (e))
  |  |  |  |  ------------------
  |  |  |  |  |  |  171|     32|    (::chip::ChipError(::chip::ChipError::SdkErrorConstant<(part), (code)>::value, __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  815|  4.27M|        switch (mContainerType)
  816|  4.27M|        {
  817|  14.4k|        case kTLVType_NotSpecified:
  ------------------
  |  Branch (817:9): [True: 14.4k, False: 4.26M]
  ------------------
  818|  14.4k|            if (IsContextTag(mElemTag))
  ------------------
  |  Branch (818:17): [True: 3.03k, False: 11.4k]
  ------------------
  819|  3.03k|                return CHIP_ERROR_INVALID_TLV_TAG;
  ------------------
  |  |  810|  3.03k|#define CHIP_ERROR_INVALID_TLV_TAG                             CHIP_CORE_ERROR(0x24)
  |  |  ------------------
  |  |  |  |  436|  3.03k|#define CHIP_CORE_ERROR(e) CHIP_SDK_ERROR(::chip::ChipError::SdkPart::kCore, (e))
  |  |  |  |  ------------------
  |  |  |  |  |  |  171|  3.03k|    (::chip::ChipError(::chip::ChipError::SdkErrorConstant<(part), (code)>::value, __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  820|  11.4k|            break;
  821|  47.8k|        case kTLVType_Structure:
  ------------------
  |  Branch (821:9): [True: 47.8k, False: 4.22M]
  ------------------
  822|  47.8k|            if (mElemTag == AnonymousTag())
  ------------------
  |  Branch (822:17): [True: 20, False: 47.8k]
  ------------------
  823|     20|                return CHIP_ERROR_INVALID_TLV_TAG;
  ------------------
  |  |  810|     20|#define CHIP_ERROR_INVALID_TLV_TAG                             CHIP_CORE_ERROR(0x24)
  |  |  ------------------
  |  |  |  |  436|     20|#define CHIP_CORE_ERROR(e) CHIP_SDK_ERROR(::chip::ChipError::SdkPart::kCore, (e))
  |  |  |  |  ------------------
  |  |  |  |  |  |  171|     20|    (::chip::ChipError(::chip::ChipError::SdkErrorConstant<(part), (code)>::value, __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  824|  47.8k|            break;
  825|  4.19M|        case kTLVType_Array:
  ------------------
  |  Branch (825:9): [True: 4.19M, False: 79.1k]
  ------------------
  826|  4.19M|            if (mElemTag != AnonymousTag())
  ------------------
  |  Branch (826:17): [True: 384, False: 4.19M]
  ------------------
  827|    384|                return CHIP_ERROR_INVALID_TLV_TAG;
  ------------------
  |  |  810|    384|#define CHIP_ERROR_INVALID_TLV_TAG                             CHIP_CORE_ERROR(0x24)
  |  |  ------------------
  |  |  |  |  436|    384|#define CHIP_CORE_ERROR(e) CHIP_SDK_ERROR(::chip::ChipError::SdkPart::kCore, (e))
  |  |  |  |  ------------------
  |  |  |  |  |  |  171|    384|    (::chip::ChipError(::chip::ChipError::SdkErrorConstant<(part), (code)>::value, __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  828|  4.19M|            break;
  829|  4.19M|        case kTLVType_UnknownContainer:
  ------------------
  |  Branch (829:9): [True: 460, False: 4.27M]
  ------------------
  830|  16.8k|        case kTLVType_List:
  ------------------
  |  Branch (830:9): [True: 16.3k, False: 4.25M]
  ------------------
  831|  16.8k|            break;
  832|      0|        default:
  ------------------
  |  Branch (832:9): [True: 0, False: 4.27M]
  ------------------
  833|      0|            return CHIP_ERROR_INCORRECT_STATE;
  ------------------
  |  |  512|      0|#define CHIP_ERROR_INCORRECT_STATE                             CHIP_CORE_ERROR(0x03)
  |  |  ------------------
  |  |  |  |  436|      0|#define CHIP_CORE_ERROR(e) CHIP_SDK_ERROR(::chip::ChipError::SdkPart::kCore, (e))
  |  |  |  |  ------------------
  |  |  |  |  |  |  171|      0|    (::chip::ChipError(::chip::ChipError::SdkErrorConstant<(part), (code)>::value, __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  834|  4.27M|        }
  835|  4.27M|    }
  836|       |
  837|       |    // If the current element encodes a specific length (e.g. a UTF8 string or a byte string), verify
  838|       |    // that the purported length fits within the remaining bytes of the encoding (as delineated by mMaxLen).
  839|       |    //
  840|       |    // Note that this check is not strictly necessary to prevent runtime errors, as any attempt to access
  841|       |    // the data of an element with an invalid length will result in an error.  However checking the length
  842|       |    // here catches the error earlier, and ensures that the application will never see the erroneous length
  843|       |    // value.
  844|       |    //
  845|  4.28M|    if (TLVTypeHasLength(ElementType()))
  ------------------
  |  Branch (845:9): [True: 17.6k, False: 4.26M]
  ------------------
  846|  17.6k|    {
  847|  17.6k|        uint32_t overallLenRemaining = mMaxLen - mLenRead;
  848|  17.6k|        if (overallLenRemaining < static_cast<uint32_t>(mElemLenOrVal))
  ------------------
  |  Branch (848:13): [True: 868, False: 16.7k]
  ------------------
  849|    868|            return CHIP_ERROR_TLV_UNDERRUN;
  ------------------
  |  |  792|    868|#define CHIP_ERROR_TLV_UNDERRUN                                CHIP_CORE_ERROR(0x22)
  |  |  ------------------
  |  |  |  |  436|    868|#define CHIP_CORE_ERROR(e) CHIP_SDK_ERROR(::chip::ChipError::SdkPart::kCore, (e))
  |  |  |  |  ------------------
  |  |  |  |  |  |  171|    868|    (::chip::ChipError(::chip::ChipError::SdkErrorConstant<(part), (code)>::value, __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  850|  17.6k|    }
  851|       |
  852|  4.28M|    return CHIP_NO_ERROR;
  ------------------
  |  |  482|  4.28M|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  ------------------
  853|  4.28M|}
_ZNK4chip3TLV9TLVReader7ReadTagENS0_13TLVTagControlERPKh:
  856|  4.28M|{
  857|  4.28M|    uint16_t vendorId;
  858|  4.28M|    uint16_t profileNum;
  859|       |
  860|  4.28M|    switch (tagControl)
  861|  4.28M|    {
  862|  63.4k|    case TLVTagControl::ContextSpecific:
  ------------------
  |  Branch (862:5): [True: 63.4k, False: 4.22M]
  ------------------
  863|  63.4k|        return ContextTag(Read8(p));
  864|    804|    case TLVTagControl::CommonProfile_2Bytes:
  ------------------
  |  Branch (864:5): [True: 804, False: 4.28M]
  ------------------
  865|    804|        return CommonTag(LittleEndian::Read16(p));
  866|  1.01k|    case TLVTagControl::CommonProfile_4Bytes:
  ------------------
  |  Branch (866:5): [True: 1.01k, False: 4.28M]
  ------------------
  867|  1.01k|        return CommonTag(LittleEndian::Read32(p));
  868|     28|    case TLVTagControl::ImplicitProfile_2Bytes:
  ------------------
  |  Branch (868:5): [True: 28, False: 4.28M]
  ------------------
  869|     28|        if (ImplicitProfileId == kProfileIdNotSpecified)
  ------------------
  |  Branch (869:13): [True: 28, False: 0]
  ------------------
  870|     28|            return UnknownImplicitTag();
  871|      0|        return ProfileTag(ImplicitProfileId, LittleEndian::Read16(p));
  872|      8|    case TLVTagControl::ImplicitProfile_4Bytes:
  ------------------
  |  Branch (872:5): [True: 8, False: 4.28M]
  ------------------
  873|      8|        if (ImplicitProfileId == kProfileIdNotSpecified)
  ------------------
  |  Branch (873:13): [True: 8, False: 0]
  ------------------
  874|      8|            return UnknownImplicitTag();
  875|      0|        return ProfileTag(ImplicitProfileId, LittleEndian::Read32(p));
  876|  1.84k|    case TLVTagControl::FullyQualified_6Bytes:
  ------------------
  |  Branch (876:5): [True: 1.84k, False: 4.28M]
  ------------------
  877|  1.84k|        vendorId   = LittleEndian::Read16(p);
  878|  1.84k|        profileNum = LittleEndian::Read16(p);
  879|  1.84k|        return ProfileTag(vendorId, profileNum, LittleEndian::Read16(p));
  880|    756|    case TLVTagControl::FullyQualified_8Bytes:
  ------------------
  |  Branch (880:5): [True: 756, False: 4.28M]
  ------------------
  881|    756|        vendorId   = LittleEndian::Read16(p);
  882|    756|        profileNum = LittleEndian::Read16(p);
  883|    756|        return ProfileTag(vendorId, profileNum, LittleEndian::Read32(p));
  884|  4.22M|    case TLVTagControl::Anonymous:
  ------------------
  |  Branch (884:5): [True: 4.22M, False: 67.9k]
  ------------------
  885|  4.22M|    default:
  ------------------
  |  Branch (885:5): [True: 0, False: 4.28M]
  ------------------
  886|  4.22M|        return AnonymousTag();
  887|  4.28M|    }
  888|  4.28M|}
_ZN4chip3TLV9TLVReader8ReadDataEPhj:
  891|  4.30M|{
  892|  8.60M|    while (len > 0)
  ------------------
  |  Branch (892:12): [True: 4.29M, False: 4.30M]
  ------------------
  893|  4.29M|    {
  894|  4.29M|        ReturnErrorOnFailure(EnsureData(CHIP_ERROR_TLV_UNDERRUN));
  ------------------
  |  |  150|  4.29M|    do                                                                                                                             \
  |  |  151|  4.29M|    {                                                                                                                              \
  |  |  152|  4.29M|        auto __err = (expr);                                                                                                       \
  |  |  153|  4.29M|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 716, False: 4.29M]
  |  |  ------------------
  |  |  154|  4.29M|        {                                                                                                                          \
  |  |  155|    716|            return __err;                                                                                                          \
  |  |  156|    716|        }                                                                                                                          \
  |  |  157|  4.29M|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  895|       |
  896|  4.29M|        uint32_t remainingLen = static_cast<decltype(mMaxLen)>(mBufEnd - mReadPoint);
  897|       |
  898|  4.29M|        uint32_t readLen = len;
  899|  4.29M|        if (readLen > remainingLen)
  ------------------
  |  Branch (899:13): [True: 484, False: 4.29M]
  ------------------
  900|    484|            readLen = remainingLen;
  901|       |
  902|  4.29M|        if (buf != nullptr)
  ------------------
  |  Branch (902:13): [True: 4.28M, False: 7.65k]
  ------------------
  903|  4.28M|        {
  904|  4.28M|            memcpy(buf, mReadPoint, readLen);
  905|  4.28M|            buf += readLen;
  906|  4.28M|        }
  907|  4.29M|        mReadPoint += readLen;
  908|  4.29M|        mLenRead += readLen;
  909|  4.29M|        len -= readLen;
  910|  4.29M|    }
  911|       |
  912|  4.30M|    return CHIP_NO_ERROR;
  ------------------
  |  |  482|  4.30M|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  ------------------
  913|  4.30M|}
_ZN4chip3TLV9TLVReader10EnsureDataENS_9ChipErrorE:
  916|  8.59M|{
  917|  8.59M|    if (mReadPoint == mBufEnd)
  ------------------
  |  Branch (917:9): [True: 6.85k, False: 8.59M]
  ------------------
  918|  6.85k|    {
  919|  6.85k|        VerifyOrReturnError((mLenRead != mMaxLen) && (mBackingStore != nullptr), noDataErr);
  ------------------
  |  |  251|  6.85k|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|  6.85k|    do                                                                                                                             \
  |  |  |  |  271|  6.85k|    {                                                                                                                              \
  |  |  |  |  272|  6.85k|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:15): [True: 0, False: 6.85k]
  |  |  |  |  |  Branch (272:15): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  273|  6.85k|        {                                                                                                                          \
  |  |  |  |  274|  6.85k|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|  6.85k|            return (value);                                                                                                        \
  |  |  |  |  276|  6.85k|        }                                                                                                                          \
  |  |  |  |  277|  6.85k|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  920|       |
  921|      0|        uint32_t bufLen;
  922|      0|        ReturnErrorOnFailure(mBackingStore->GetNextBuffer(*this, mReadPoint, bufLen));
  ------------------
  |  |  150|      0|    do                                                                                                                             \
  |  |  151|      0|    {                                                                                                                              \
  |  |  152|      0|        auto __err = (expr);                                                                                                       \
  |  |  153|      0|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 0, False: 0]
  |  |  ------------------
  |  |  154|      0|        {                                                                                                                          \
  |  |  155|      0|            return __err;                                                                                                          \
  |  |  156|      0|        }                                                                                                                          \
  |  |  157|      0|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  923|      0|        VerifyOrReturnError(bufLen > 0, noDataErr);
  ------------------
  |  |  251|      0|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|      0|    do                                                                                                                             \
  |  |  |  |  271|      0|    {                                                                                                                              \
  |  |  |  |  272|      0|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 0, False: 0]
  |  |  |  |  ------------------
  |  |  |  |  273|      0|        {                                                                                                                          \
  |  |  |  |  274|      0|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|      0|            return (value);                                                                                                        \
  |  |  |  |  276|      0|        }                                                                                                                          \
  |  |  |  |  277|      0|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  924|       |
  925|       |        // Cap mBufEnd so that we don't read beyond the user's specified maximum length, even
  926|       |        // if the underlying buffer is larger.
  927|      0|        bufLen  = std::min(bufLen, mMaxLen - mLenRead);
  928|      0|        mBufEnd = mReadPoint + bufLen;
  929|      0|    }
  930|       |
  931|  8.59M|    return CHIP_NO_ERROR;
  ------------------
  |  |  482|  8.59M|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  ------------------
  932|  8.59M|}
_ZNK4chip3TLV9TLVReader11ElementTypeEv:
  974|  21.7M|{
  975|  21.7M|    if (mControlByte == static_cast<uint16_t>(kTLVControlByte_NotSpecified))
  ------------------
  |  Branch (975:9): [True: 124k, False: 21.6M]
  ------------------
  976|   124k|        return TLVElementType::NotSpecified;
  977|  21.6M|    return static_cast<TLVElementType>(mControlByte & kTLVTypeMask);
  978|  21.7M|}

_ZN4chip3TLV9TLVReader4InitERKNS_4SpanIKhEE:
  116|  14.8k|    void Init(const ByteSpan & data) { Init(data.data(), data.size()); }
_ZNK4chip3TLV9TLVReader6GetTagEv:
  258|  93.1k|    Tag GetTag() const { return mElemTag; }
_ZN4chip3TLV9TLVReader16SetContainerOpenEb:
  971|  56.3k|    void SetContainerOpen(bool aContainerOpen) { mContainerOpen = aContainerOpen; }
_ZNK4chip3TLV9TLVReader3GetILm65EEENS_9ChipErrorERNS_9FixedSpanIKhXT_EEE:
  471|  2.92k|    {
  472|  2.92k|        const uint8_t * val;
  473|  2.92k|        ReturnErrorOnFailure(GetDataPtr(val));
  ------------------
  |  |  150|  2.92k|    do                                                                                                                             \
  |  |  151|  2.92k|    {                                                                                                                              \
  |  |  152|  2.92k|        auto __err = (expr);                                                                                                       \
  |  |  153|  2.92k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 384, False: 2.53k]
  |  |  ------------------
  |  |  154|  2.92k|        {                                                                                                                          \
  |  |  155|    384|            return __err;                                                                                                          \
  |  |  156|    384|        }                                                                                                                          \
  |  |  157|  2.92k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  474|  2.53k|        VerifyOrReturnError(GetLength() == N, CHIP_ERROR_UNEXPECTED_TLV_ELEMENT);
  ------------------
  |  |  251|  2.53k|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|  2.53k|    do                                                                                                                             \
  |  |  |  |  271|  2.53k|    {                                                                                                                              \
  |  |  |  |  272|  2.53k|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 120, False: 2.41k]
  |  |  |  |  ------------------
  |  |  |  |  273|  2.53k|        {                                                                                                                          \
  |  |  |  |  274|    120|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|    120|            return (value);                                                                                                        \
  |  |  |  |  276|    120|        }                                                                                                                          \
  |  |  |  |  277|  2.53k|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  475|  2.41k|        v = FixedByteSpan<N>(val);
  476|  2.41k|        return CHIP_NO_ERROR;
  ------------------
  |  |  482|  2.41k|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  ------------------
  477|  2.53k|    }
_ZNK4chip3TLV9TLVReader3GetILm20EEENS_9ChipErrorERNS_9FixedSpanIKhXT_EEE:
  471|  1.23k|    {
  472|  1.23k|        const uint8_t * val;
  473|  1.23k|        ReturnErrorOnFailure(GetDataPtr(val));
  ------------------
  |  |  150|  1.23k|    do                                                                                                                             \
  |  |  151|  1.23k|    {                                                                                                                              \
  |  |  152|  1.23k|        auto __err = (expr);                                                                                                       \
  |  |  153|  1.23k|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 0, False: 1.23k]
  |  |  ------------------
  |  |  154|  1.23k|        {                                                                                                                          \
  |  |  155|      0|            return __err;                                                                                                          \
  |  |  156|      0|        }                                                                                                                          \
  |  |  157|  1.23k|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  474|  1.23k|        VerifyOrReturnError(GetLength() == N, CHIP_ERROR_UNEXPECTED_TLV_ELEMENT);
  ------------------
  |  |  251|  1.23k|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|  1.23k|    do                                                                                                                             \
  |  |  |  |  271|  1.23k|    {                                                                                                                              \
  |  |  |  |  272|  1.23k|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 48, False: 1.18k]
  |  |  |  |  ------------------
  |  |  |  |  273|  1.23k|        {                                                                                                                          \
  |  |  |  |  274|     48|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|     48|            return (value);                                                                                                        \
  |  |  |  |  276|     48|        }                                                                                                                          \
  |  |  |  |  277|  1.23k|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  475|  1.18k|        v = FixedByteSpan<N>(val);
  476|  1.18k|        return CHIP_NO_ERROR;
  ------------------
  |  |  482|  1.18k|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  ------------------
  477|  1.23k|    }
_ZNK4chip3TLV9TLVReader3GetILm64EEENS_9ChipErrorERNS_9FixedSpanIKhXT_EEE:
  471|    216|    {
  472|    216|        const uint8_t * val;
  473|    216|        ReturnErrorOnFailure(GetDataPtr(val));
  ------------------
  |  |  150|    216|    do                                                                                                                             \
  |  |  151|    216|    {                                                                                                                              \
  |  |  152|    216|        auto __err = (expr);                                                                                                       \
  |  |  153|    216|        if (!::chip::ChipError::IsSuccess(__err))                                                                                  \
  |  |  ------------------
  |  |  |  Branch (153:13): [True: 0, False: 216]
  |  |  ------------------
  |  |  154|    216|        {                                                                                                                          \
  |  |  155|      0|            return __err;                                                                                                          \
  |  |  156|      0|        }                                                                                                                          \
  |  |  157|    216|    } while (false)
  |  |  ------------------
  |  |  |  Branch (157:14): [Folded - Ignored]
  |  |  ------------------
  ------------------
  474|    216|        VerifyOrReturnError(GetLength() == N, CHIP_ERROR_UNEXPECTED_TLV_ELEMENT);
  ------------------
  |  |  251|    216|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|    216|    do                                                                                                                             \
  |  |  |  |  271|    216|    {                                                                                                                              \
  |  |  |  |  272|    216|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 92, False: 124]
  |  |  |  |  ------------------
  |  |  |  |  273|    216|        {                                                                                                                          \
  |  |  |  |  274|     92|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|     92|            return (value);                                                                                                        \
  |  |  |  |  276|     92|        }                                                                                                                          \
  |  |  |  |  277|    216|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  475|    124|        v = FixedByteSpan<N>(val);
  476|    124|        return CHIP_NO_ERROR;
  ------------------
  |  |  482|    124|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  ------------------
  477|    216|    }

_ZNK4chip3TLV3TageqERKS1_:
   41|  4.40M|    constexpr bool operator==(const Tag & other) const { return mVal == other.mVal; }
_ZNK4chip3TLV3TagneERKS1_:
   42|  4.20M|    constexpr bool operator!=(const Tag & other) const { return mVal != other.mVal; }
_ZN4chip3TLV3TagC2Em:
   48|  13.0M|    explicit constexpr Tag(uint64_t val) : mVal(val) {}
_ZN4chip3TLV10ProfileTagEjj:
  136|  13.0M|{
  137|  13.0M|    return Tag((static_cast<uint64_t>(~profileId) << Tag::kProfileIdShift) | tagNum);
  138|  13.0M|}
_ZN4chip3TLV10ProfileTagEttj:
  149|  2.59k|{
  150|  2.59k|    constexpr uint32_t kVendorIdShift = Tag::kVendorIdShift - Tag::kProfileIdShift;
  151|       |
  152|  2.59k|    return ProfileTag((static_cast<uint32_t>(vendorId) << kVendorIdShift) | profileNum, tagNum);
  153|  2.59k|}
_ZN4chip3TLV10ContextTagEh:
  162|   134k|{
  163|   134k|    return ProfileTag(Tag::kSpecialTagProfileId, tagNum);
  164|   134k|}
_ZN4chip3TLV9CommonTagEj:
  202|  1.81k|{
  203|  1.81k|    return ProfileTag(kCommonProfileId, tagNum);
  204|  1.81k|}
_ZN4chip3TLV12AnonymousTagEv:
  210|  8.63M|{
  211|  8.63M|    return ProfileTag(Tag::kSpecialTagProfileId, Tag::kAnonymousTagNum);
  212|  8.63M|}
_ZN4chip3TLV18UnknownImplicitTagEv:
  218|  4.27M|{
  219|  4.27M|    return ProfileTag(Tag::kSpecialTagProfileId, Tag::kUnknownImplicitTagNum);
  220|  4.27M|}
_ZN4chip3TLV16ProfileIdFromTagENS0_3TagE:
  231|  29.7k|{
  232|  29.7k|    return ~static_cast<uint32_t>(tag.mVal >> Tag::kProfileIdShift);
  233|  29.7k|}
_ZN4chip3TLV13TagNumFromTagENS0_3TagE:
  275|  43.6k|{
  276|  43.6k|    return static_cast<uint32_t>(tag.mVal);
  277|  43.6k|}
_ZN4chip3TLV12IsContextTagENS0_3TagE:
  291|  29.7k|{
  292|  29.7k|    return ProfileIdFromTag(tag) == Tag::kSpecialTagProfileId && TagNumFromTag(tag) <= Tag::kContextTagMaxNum;
  ------------------
  |  Branch (292:12): [True: 28.9k, False: 868]
  |  Branch (292:66): [True: 17.7k, False: 11.2k]
  ------------------
  293|  29.7k|}
TLVReader.cpp:_ZN4chip3TLVrsINS0_3$_0EEEhNS0_13TLVTagControlERKT_:
  117|  4.28M|{
  118|  4.28M|    return static_cast<uint8_t>(static_cast<uint8_t>(lhs) >> rhs);
  119|  4.28M|}

_ZN4chip3TLV14IsValidTLVTypeENS0_14TLVElementTypeE:
  124|  4.28M|{
  125|  4.28M|    return type <= TLVElementType::EndOfContainer;
  126|  4.28M|}
_ZN4chip3TLV15TLVTypeHasValueENS0_14TLVElementTypeE:
  134|  4.28M|{
  135|  4.28M|    return (type <= TLVElementType::UInt64 ||
  ------------------
  |  Branch (135:13): [True: 23.8k, False: 4.26M]
  ------------------
  136|  4.28M|            (type >= TLVElementType::FloatingPointNumber32 && type <= TLVElementType::ByteString_8ByteLength));
  ------------------
  |  Branch (136:14): [True: 4.25M, False: 4.92k]
  |  Branch (136:63): [True: 21.0k, False: 4.23M]
  ------------------
  137|  4.28M|}
_ZN4chip3TLV16TLVTypeHasLengthENS0_14TLVElementTypeE:
  145|  12.9M|{
  146|  12.9M|    return type >= TLVElementType::UTF8String_1ByteLength && type <= TLVElementType::ByteString_8ByteLength;
  ------------------
  |  Branch (146:12): [True: 12.7M, False: 138k]
  |  Branch (146:62): [True: 102k, False: 12.6M]
  ------------------
  147|  12.9M|}
_ZN4chip3TLV18TLVTypeIsContainerENS0_14TLVElementTypeE:
  155|  4.32M|{
  156|  4.32M|    return type >= TLVElementType::Structure && type <= TLVElementType::List;
  ------------------
  |  Branch (156:12): [True: 4.22M, False: 97.8k]
  |  Branch (156:49): [True: 4.22M, False: 0]
  ------------------
  157|  4.32M|}
_ZN4chip3TLV15TLVTypeIsStringENS0_14TLVElementTypeE:
  170|  90.0k|{
  171|  90.0k|    return type >= TLVElementType::UTF8String_1ByteLength && type <= TLVElementType::ByteString_8ByteLength;
  ------------------
  |  Branch (171:12): [True: 62.5k, False: 27.4k]
  |  Branch (171:62): [True: 32.5k, False: 30.0k]
  ------------------
  172|  90.0k|}
_ZN4chip3TLV19TLVTypeIsUTF8StringENS0_14TLVElementTypeE:
  180|  1.24k|{
  181|  1.24k|    return type >= TLVElementType::UTF8String_1ByteLength && type <= TLVElementType::UTF8String_8ByteLength;
  ------------------
  |  Branch (181:12): [True: 1.20k, False: 44]
  |  Branch (181:62): [True: 1.13k, False: 68]
  ------------------
  182|  1.24k|}
_ZN4chip3TLV15GetTLVFieldSizeENS0_14TLVElementTypeE:
  196|  4.28M|{
  197|  4.28M|    if (TLVTypeHasValue(type))
  ------------------
  |  Branch (197:9): [True: 44.8k, False: 4.24M]
  ------------------
  198|  44.8k|        return static_cast<TLVFieldSize>(static_cast<uint8_t>(type) & kTLVTypeSizeMask);
  199|  4.24M|    return kTLVFieldSize_0Byte;
  200|  4.28M|}
_ZN4chip3TLV19TLVFieldSizeToBytesENS0_12TLVFieldSizeE:
  204|  4.28M|{
  205|       |    // We would like to assert fieldSize < 7, but that gives us fatal
  206|       |    // -Wtautological-constant-out-of-range-compare warnings...
  207|  4.28M|    return static_cast<uint8_t>((fieldSize != kTLVFieldSize_0Byte) ? (1 << fieldSize) : 0);
  ------------------
  |  Branch (207:33): [True: 44.8k, False: 4.24M]
  ------------------
  208|  4.28M|}

_ZN4chip8BitFlagsINS_11Credentials15CertDecodeFlagsEhEC2Ev:
   49|  14.8k|    constexpr BitFlags() : mValue(0) {}
_ZN4chip8BitFlagsINS_8Encoding8HexFlagsEiE2OrES2_:
  245|  1.61k|    static constexpr IntegerType Or(FlagsEnum value) { return static_cast<IntegerType>(value); }
_ZN4chip8BitFlagsINS_8Encoding8HexFlagsEiEC2IJEEES2_DpOT_:
   57|  1.61k|    constexpr BitFlags(FlagsEnum flag, Args &&... args) : mValue(Or(flag, std::forward<Args>(args)...))
   58|  1.61k|    {}
_ZN4chip8BitFlagsINS_11Credentials9CertFlagsEtEC2Ev:
   49|  14.8k|    constexpr BitFlags() : mValue(0) {}
_ZN4chip8BitFlagsINS_11Credentials13KeyUsageFlagsEtEC2Ev:
   49|  14.8k|    constexpr BitFlags() : mValue(0) {}
_ZN4chip8BitFlagsINS_11Credentials15KeyPurposeFlagsEhEC2Ev:
   49|  14.8k|    constexpr BitFlags() : mValue(0) {}
_ZN4chip8BitFlagsINS_11Credentials9CertFlagsEtE8ClearAllEv:
  124|  14.8k|    {
  125|  14.8k|        mValue = 0;
  126|  14.8k|        return *this;
  127|  14.8k|    }
_ZN4chip8BitFlagsINS_11Credentials13KeyUsageFlagsEtE8ClearAllEv:
  124|  14.8k|    {
  125|  14.8k|        mValue = 0;
  126|  14.8k|        return *this;
  127|  14.8k|    }
_ZN4chip8BitFlagsINS_11Credentials15KeyPurposeFlagsEhE8ClearAllEv:
  124|  14.8k|    {
  125|  14.8k|        mValue = 0;
  126|  14.8k|        return *this;
  127|  14.8k|    }
_ZN4chip8BitFlagsINS_11Credentials13KeyUsageFlagsEtEC2Et:
   54|    460|    explicit constexpr BitFlags(IntegerType value) : mValue(value) {}
_ZNK4chip8BitFlagsINS_11Credentials13KeyUsageFlagsEtE7HasOnlyIJS2_S2_S2_S2_S2_S2_S2_S2_S2_EEEbDpOT_:
  148|    460|    {
  149|    460|        return (mValue & Or(std::forward<Args>(args)...)) == mValue;
  150|    460|    }
_ZN4chip8BitFlagsINS_11Credentials13KeyUsageFlagsEtE2OrIJS2_S2_S2_S2_S2_S2_S2_S2_EEEtS2_DpOT_:
  237|    460|    {
  238|    460|        return static_cast<IntegerType>(flag) | Or(std::forward<Args>(args)...);
  239|    460|    }
_ZN4chip8BitFlagsINS_11Credentials13KeyUsageFlagsEtE2OrIJS2_S2_S2_S2_S2_S2_S2_EEEtS2_DpOT_:
  237|    460|    {
  238|    460|        return static_cast<IntegerType>(flag) | Or(std::forward<Args>(args)...);
  239|    460|    }
_ZN4chip8BitFlagsINS_11Credentials13KeyUsageFlagsEtE2OrIJS2_S2_S2_S2_S2_S2_EEEtS2_DpOT_:
  237|    460|    {
  238|    460|        return static_cast<IntegerType>(flag) | Or(std::forward<Args>(args)...);
  239|    460|    }
_ZN4chip8BitFlagsINS_11Credentials13KeyUsageFlagsEtE2OrIJS2_S2_S2_S2_S2_EEEtS2_DpOT_:
  237|    460|    {
  238|    460|        return static_cast<IntegerType>(flag) | Or(std::forward<Args>(args)...);
  239|    460|    }
_ZN4chip8BitFlagsINS_11Credentials13KeyUsageFlagsEtE2OrIJS2_S2_S2_S2_EEEtS2_DpOT_:
  237|    460|    {
  238|    460|        return static_cast<IntegerType>(flag) | Or(std::forward<Args>(args)...);
  239|    460|    }
_ZN4chip8BitFlagsINS_11Credentials13KeyUsageFlagsEtE2OrIJS2_S2_S2_EEEtS2_DpOT_:
  237|    460|    {
  238|    460|        return static_cast<IntegerType>(flag) | Or(std::forward<Args>(args)...);
  239|    460|    }
_ZN4chip8BitFlagsINS_11Credentials13KeyUsageFlagsEtE2OrIJS2_S2_EEEtS2_DpOT_:
  237|    460|    {
  238|    460|        return static_cast<IntegerType>(flag) | Or(std::forward<Args>(args)...);
  239|    460|    }
_ZN4chip8BitFlagsINS_11Credentials13KeyUsageFlagsEtE2OrIJS2_EEEtS2_DpOT_:
  237|    460|    {
  238|    460|        return static_cast<IntegerType>(flag) | Or(std::forward<Args>(args)...);
  239|    460|    }
_ZN4chip8BitFlagsINS_11Credentials13KeyUsageFlagsEtE2OrES2_:
  245|    460|    static constexpr IntegerType Or(FlagsEnum value) { return static_cast<IntegerType>(value); }
_ZN4chip8BitFlagsINS_11Credentials15KeyPurposeFlagsEhE3SetES2_:
   85|    964|    {
   86|    964|        mValue |= static_cast<IntegerType>(flag);
   87|    964|        return *this;
   88|    964|    }
_ZNK4chip8BitFlagsINS_11Credentials15CertDecodeFlagsEhE3HasES2_:
  135|  14.9k|    constexpr bool Has(FlagsEnum flag) const { return (mValue & static_cast<IntegerType>(flag)) != 0; }
_ZN4chip8BitFlagsINS_11Credentials9CertFlagsEtE3SetES2_:
   85|  9.01k|    {
   86|  9.01k|        mValue |= static_cast<IntegerType>(flag);
   87|  9.01k|        return *this;
   88|  9.01k|    }
_ZNK4chip8BitFlagsINS_8Encoding8HexFlagsEiE3HasES2_:
  135|  2.27k|    constexpr bool Has(FlagsEnum flag) const { return (mValue & static_cast<IntegerType>(flag)) != 0; }

_ZN4chip8Encoding10BytesToHexEPKhmPcmNS_8BitFlagsINS0_8HexFlagsEiEE:
  100|  1.12k|{
  101|  1.12k|    if ((src_bytes == nullptr) && (src_size != 0))
  ------------------
  |  Branch (101:9): [True: 0, False: 1.12k]
  |  Branch (101:35): [True: 0, False: 0]
  ------------------
  102|      0|    {
  103|      0|        return CHIP_ERROR_INVALID_ARGUMENT;
  ------------------
  |  |  888|      0|#define CHIP_ERROR_INVALID_ARGUMENT                            CHIP_CORE_ERROR(0x2f)
  |  |  ------------------
  |  |  |  |  436|      0|#define CHIP_CORE_ERROR(e) CHIP_SDK_ERROR(::chip::ChipError::SdkPart::kCore, (e))
  |  |  |  |  ------------------
  |  |  |  |  |  |  171|      0|    (::chip::ChipError(::chip::ChipError::SdkErrorConstant<(part), (code)>::value, __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  104|      0|    }
  105|       |
  106|  1.12k|    if ((dest_hex == nullptr) && (dest_size_max != 0))
  ------------------
  |  Branch (106:9): [True: 0, False: 1.12k]
  |  Branch (106:34): [True: 0, False: 0]
  ------------------
  107|      0|    {
  108|      0|        return CHIP_ERROR_INVALID_ARGUMENT;
  ------------------
  |  |  888|      0|#define CHIP_ERROR_INVALID_ARGUMENT                            CHIP_CORE_ERROR(0x2f)
  |  |  ------------------
  |  |  |  |  436|      0|#define CHIP_CORE_ERROR(e) CHIP_SDK_ERROR(::chip::ChipError::SdkPart::kCore, (e))
  |  |  |  |  ------------------
  |  |  |  |  |  |  171|      0|    (::chip::ChipError(::chip::ChipError::SdkErrorConstant<(part), (code)>::value, __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  109|      0|    }
  110|       |
  111|  1.12k|    if (src_size > ((SIZE_MAX - 1) / 2u))
  ------------------
  |  Branch (111:9): [True: 0, False: 1.12k]
  ------------------
  112|      0|    {
  113|       |        // Output would overflow a size_t, let's bail out to avoid computation wraparounds below.
  114|       |        // This condition will hit with slightly less than the very max, but is unlikely to
  115|       |        // ever happen unless an error occurs and won't happen on embedded targets.
  116|      0|        return CHIP_ERROR_INVALID_ARGUMENT;
  ------------------
  |  |  888|      0|#define CHIP_ERROR_INVALID_ARGUMENT                            CHIP_CORE_ERROR(0x2f)
  |  |  ------------------
  |  |  |  |  436|      0|#define CHIP_CORE_ERROR(e) CHIP_SDK_ERROR(::chip::ChipError::SdkPart::kCore, (e))
  |  |  |  |  ------------------
  |  |  |  |  |  |  171|      0|    (::chip::ChipError(::chip::ChipError::SdkErrorConstant<(part), (code)>::value, __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  117|      0|    }
  118|       |
  119|  1.12k|    bool nul_terminate          = flags.Has(HexFlags::kNullTerminate);
  120|  1.12k|    size_t expected_output_size = (src_size * 2u) + (nul_terminate ? 1u : 0u);
  ------------------
  |  Branch (120:54): [True: 0, False: 1.12k]
  ------------------
  121|  1.12k|    if (dest_size_max < expected_output_size)
  ------------------
  |  Branch (121:9): [True: 0, False: 1.12k]
  ------------------
  122|      0|    {
  123|      0|        return CHIP_ERROR_BUFFER_TOO_SMALL;
  ------------------
  |  |  709|      0|#define CHIP_ERROR_BUFFER_TOO_SMALL                            CHIP_CORE_ERROR(0x19)
  |  |  ------------------
  |  |  |  |  436|      0|#define CHIP_CORE_ERROR(e) CHIP_SDK_ERROR(::chip::ChipError::SdkPart::kCore, (e))
  |  |  |  |  ------------------
  |  |  |  |  |  |  171|      0|    (::chip::ChipError(::chip::ChipError::SdkErrorConstant<(part), (code)>::value, __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  124|      0|    }
  125|       |
  126|  1.12k|    bool uppercase = flags.Has(HexFlags::kUppercase);
  127|  1.12k|    char * cursor  = dest_hex;
  128|  9.06k|    for (size_t byte_idx = 0; byte_idx < src_size; ++byte_idx)
  ------------------
  |  Branch (128:31): [True: 7.93k, False: 1.12k]
  ------------------
  129|  7.93k|    {
  130|  7.93k|        *cursor++ = NibbleToHex((src_bytes[byte_idx] >> 4) & 0xFu, uppercase);
  131|  7.93k|        *cursor++ = NibbleToHex((src_bytes[byte_idx] >> 0) & 0xFu, uppercase);
  132|  7.93k|    }
  133|       |
  134|  1.12k|    if (nul_terminate)
  ------------------
  |  Branch (134:9): [True: 0, False: 1.12k]
  ------------------
  135|      0|    {
  136|      0|        *cursor = '\0';
  137|      0|    }
  138|       |
  139|  1.12k|    return CHIP_NO_ERROR;
  ------------------
  |  |  482|  1.12k|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  ------------------
  140|  1.12k|}
_ZN4chip8Encoding11Uint64ToHexEmPcmNS_8BitFlagsINS0_8HexFlagsEiEE:
  143|    860|{
  144|    860|    uint8_t buf[sizeof(src)] = { 0 };
  145|    860|    Encoding::BigEndian::Put64(buf, src);
  146|    860|    return BytesToHex(buf, sizeof(buf), dest_hex, dest_size_max, flags);
  147|    860|}
_ZN4chip8Encoding11Uint32ToHexEjPcmNS_8BitFlagsINS0_8HexFlagsEiEE:
  150|    264|{
  151|    264|    uint8_t buf[sizeof(src)] = { 0 };
  152|    264|    Encoding::BigEndian::Put32(buf, src);
  153|    264|    return BytesToHex(buf, sizeof(buf), dest_hex, dest_size_max, flags);
  154|    264|}
_ZN4chip8Encoding20UppercaseHexToUint64EPKcmRm:
  169|    357|{
  170|    357|    uint8_t buf[sizeof(uint64_t)] = { 0 };
  171|    357|    size_t decoded_size           = HexToBytes(src_hex, src_size, buf, sizeof(buf), HexFlags::kUppercase);
  172|    357|    if (decoded_size != sizeof(buf))
  ------------------
  |  Branch (172:9): [True: 51, False: 306]
  ------------------
  173|     51|    {
  174|     51|        return 0;
  175|     51|    }
  176|    306|    dest = Encoding::BigEndian::Get64(buf);
  177|    306|    return decoded_size;
  178|    357|}
_ZN4chip8Encoding20UppercaseHexToUint32EPKcmRj:
  181|    134|{
  182|    134|    uint8_t buf[sizeof(uint32_t)] = { 0 };
  183|    134|    size_t decoded_size           = HexToBytes(src_hex, src_size, buf, sizeof(buf), HexFlags::kUppercase);
  184|    134|    if (decoded_size != sizeof(buf))
  ------------------
  |  Branch (184:9): [True: 37, False: 97]
  ------------------
  185|     37|    {
  186|     37|        return 0;
  187|     37|    }
  188|     97|    dest = Encoding::BigEndian::Get32(buf);
  189|     97|    return decoded_size;
  190|    134|}
BytesToHex.cpp:_ZN4chip8Encoding12_GLOBAL__N_111NibbleToHexEhb:
   30|  15.8k|{
   31|  15.8k|    char x = static_cast<char>(nibble & 0xFu);
   32|       |
   33|  15.8k|    if (x >= 10)
  ------------------
  |  Branch (33:9): [True: 1.70k, False: 14.1k]
  ------------------
   34|  1.70k|    {
   35|  1.70k|        return static_cast<char>((x - 10) + (uppercase ? 'A' : 'a'));
  ------------------
  |  Branch (35:46): [True: 1.70k, False: 0]
  ------------------
   36|  1.70k|    }
   37|       |
   38|  14.1k|    return static_cast<char>(x + '0');
   39|  15.8k|}
BytesToHex.cpp:_ZN4chip8Encoding12_GLOBAL__N_110HexToBytesEPKcmPhmNS_8BitFlagsINS0_8HexFlagsEiEE:
   76|    491|{
   77|    491|    if ((src_hex == nullptr) || (dest_bytes == nullptr))
  ------------------
  |  Branch (77:9): [True: 0, False: 491]
  |  Branch (77:33): [True: 0, False: 491]
  ------------------
   78|      0|    {
   79|      0|        return 0;
   80|      0|    }
   81|       |    // Octet string where each octet is 2 ascii digits representing the hex value
   82|       |    // Each is represented by two ascii chars, so must be even number
   83|    491|    if ((src_size & 0x1) != 0 || src_size > dest_size_max * 2)
  ------------------
  |  Branch (83:9): [True: 2, False: 489]
  |  Branch (83:34): [True: 11, False: 478]
  ------------------
   84|     13|    {
   85|     13|        return 0;
   86|     13|    }
   87|       |
   88|    478|    size_t bytesFilled = 0;
   89|  3.38k|    for (size_t i = 0; i < src_size; i += 2)
  ------------------
  |  Branch (89:24): [True: 2.93k, False: 450]
  ------------------
   90|  2.93k|    {
   91|  2.93k|        VerifyOrReturnError(MakeU8FromAsciiHex(src_hex + i, 2, &dest_bytes[i / 2], flags) == CHIP_NO_ERROR, 0);
  ------------------
  |  |  251|  2.93k|#define VerifyOrReturnError(expr, code, ...) VerifyOrReturnValue(expr, code, ##__VA_ARGS__)
  |  |  ------------------
  |  |  |  |  270|  2.93k|    do                                                                                                                             \
  |  |  |  |  271|  2.93k|    {                                                                                                                              \
  |  |  |  |  272|  2.93k|        if (!(expr))                                                                                                               \
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (272:13): [True: 28, False: 2.90k]
  |  |  |  |  ------------------
  |  |  |  |  273|  2.93k|        {                                                                                                                          \
  |  |  |  |  274|     28|            __VA_ARGS__;                                                                                                           \
  |  |  |  |  275|     28|            return (value);                                                                                                        \
  |  |  |  |  276|     28|        }                                                                                                                          \
  |  |  |  |  277|  2.93k|    } while (false)
  |  |  |  |  ------------------
  |  |  |  |  |  Branch (277:14): [Folded - Ignored]
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   92|  2.90k|        bytesFilled++;
   93|  2.90k|    }
   94|    450|    return bytesFilled;
   95|    478|}
BytesToHex.cpp:_ZN4chip8Encoding12_GLOBAL__N_118MakeU8FromAsciiHexEPKcmPhNS_8BitFlagsINS0_8HexFlagsEiEE:
   42|  2.93k|{
   43|  2.93k|    if (srcLen != 2)
  ------------------
  |  Branch (43:9): [True: 0, False: 2.93k]
  ------------------
   44|      0|    {
   45|      0|        return CHIP_ERROR_INVALID_ARGUMENT;
  ------------------
  |  |  888|      0|#define CHIP_ERROR_INVALID_ARGUMENT                            CHIP_CORE_ERROR(0x2f)
  |  |  ------------------
  |  |  |  |  436|      0|#define CHIP_CORE_ERROR(e) CHIP_SDK_ERROR(::chip::ChipError::SdkPart::kCore, (e))
  |  |  |  |  ------------------
  |  |  |  |  |  |  171|      0|    (::chip::ChipError(::chip::ChipError::SdkErrorConstant<(part), (code)>::value, __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   46|      0|    }
   47|  2.93k|    uint8_t ret = 0;
   48|  8.75k|    for (size_t i = 0; i < srcLen; ++i)
  ------------------
  |  Branch (48:24): [True: 5.84k, False: 2.90k]
  ------------------
   49|  5.84k|    {
   50|  5.84k|        ret          = static_cast<uint8_t>(ret << 4);
   51|  5.84k|        char c       = src[i];
   52|  5.84k|        uint8_t cval = static_cast<uint8_t>(c);
   53|  5.84k|        if (c >= '0' && c <= '9')
  ------------------
  |  Branch (53:13): [True: 5.83k, False: 11]
  |  Branch (53:25): [True: 2.48k, False: 3.35k]
  ------------------
   54|  2.48k|        {
   55|  2.48k|            ret = static_cast<uint8_t>(ret + cval - static_cast<uint8_t>('0'));
   56|  2.48k|        }
   57|  3.36k|        else if (c >= 'A' && c <= 'F')
  ------------------
  |  Branch (57:18): [True: 3.34k, False: 20]
  |  Branch (57:30): [True: 3.34k, False: 8]
  ------------------
   58|  3.34k|        {
   59|  3.34k|            ret = static_cast<uint8_t>(ret + cval - static_cast<uint8_t>('A') + 0xA);
   60|  3.34k|        }
   61|       |        // If kUppercase flag is not set then lowercase are also allowed.
   62|     28|        else if (!flags.Has(HexFlags::kUppercase) && c >= 'a' && c <= 'f')
  ------------------
  |  Branch (62:18): [True: 0, False: 28]
  |  Branch (62:54): [True: 0, False: 0]
  |  Branch (62:66): [True: 0, False: 0]
  ------------------
   63|      0|        {
   64|      0|            ret = static_cast<uint8_t>(ret + cval - static_cast<uint8_t>('a') + 0xA);
   65|      0|        }
   66|     28|        else
   67|     28|        {
   68|     28|            return CHIP_ERROR_INVALID_ARGUMENT;
  ------------------
  |  |  888|     28|#define CHIP_ERROR_INVALID_ARGUMENT                            CHIP_CORE_ERROR(0x2f)
  |  |  ------------------
  |  |  |  |  436|     28|#define CHIP_CORE_ERROR(e) CHIP_SDK_ERROR(::chip::ChipError::SdkPart::kCore, (e))
  |  |  |  |  ------------------
  |  |  |  |  |  |  171|     28|    (::chip::ChipError(::chip::ChipError::SdkErrorConstant<(part), (code)>::value, __FILE__, __LINE__))
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   69|     28|        }
   70|  5.84k|    }
   71|  2.90k|    *val = ret;
   72|  2.90k|    return CHIP_NO_ERROR;
  ------------------
  |  |  482|  2.90k|#define CHIP_NO_ERROR                                          CHIP_ERROR(0, __FILE__, __LINE__)
  ------------------
   73|  2.93k|}

_ZN4chip9CanCastToIjmTnNSt3__19enable_ifIXsr11is_integralIT_EE5valueEiE4typeELi0EEEbT0_:
   39|  11.5k|{
   40|  11.5k|    using namespace std;
   41|       |    // U might be a reference to an integer type, if we're assigning from
   42|       |    // something passed by reference.
   43|  11.5k|    typedef typename remove_reference<U>::type V; // V for "value"
   44|  11.5k|    static_assert(is_integral<V>::value, "Must be assigning from an integral type");
   45|       |
   46|       |    // We want to check that "arg" can fit inside T but without doing any tests
   47|       |    // that are always true or always false due to the types involved, which
   48|       |    // would trigger compiler warnings themselves.  So for example, we can't
   49|       |    // compare arg to max values for T if all U values are representable in T,
   50|       |    // etc, because those trigger warnings on some compilers.
   51|       |
   52|       |    // We also can't directly compare signed to unsigned values in general,
   53|       |    // because that will trigger sign conversion warnings. In fact, it will
   54|       |    // trigger them even on runtime-unreached codepaths, so for example we can't
   55|       |    // directly compare two min() values to each other!
   56|       |
   57|       |    // Oh, and some compilers warn on theoretical signed-to-unsigned compares
   58|       |    // even when those can't be reached, and that's known at compile time.
   59|       |    // Hence all the casts to intmax_t and uintmax_t below.
   60|       |
   61|       |    // A bunch of these tests could sure benefit from "if constexpr", but let's
   62|       |    // hope compilers just manage to optimize them properly anyway.
   63|       |    // We can't blindly compare "arg" to the minimal or maximal value of T one
   64|       |    // of T and V is signed and the other is unsigned: there might not be a
   65|       |    // single integer type that can represent _both_ the value of arg and the
   66|       |    // minimal/maximal value.
   67|  11.5k|    if (numeric_limits<T>::is_signed && numeric_limits<V>::is_signed)
  ------------------
  |  Branch (67:9): [Folded - Ignored]
  |  Branch (67:41): [Folded - Ignored]
  ------------------
   68|      0|    {
   69|      0|        if (static_cast<intmax_t>(numeric_limits<V>::max()) <= static_cast<intmax_t>(numeric_limits<T>::max()) &&
  ------------------
  |  Branch (69:13): [Folded - Ignored]
  ------------------
   70|      0|            static_cast<intmax_t>(numeric_limits<V>::min()) >= static_cast<intmax_t>(numeric_limits<T>::min()))
  ------------------
  |  Branch (70:13): [Folded - Ignored]
  ------------------
   71|      0|        {
   72|       |            // Any checks on arg would be trivially true; don't even do them, to
   73|       |            // avoid warnings.
   74|      0|            return true;
   75|      0|        }
   76|       |
   77|      0|        return static_cast<intmax_t>(numeric_limits<T>::min()) <= static_cast<intmax_t>(arg) &&
  ------------------
  |  Branch (77:16): [True: 0, False: 0]
  ------------------
   78|      0|            static_cast<intmax_t>(arg) <= static_cast<intmax_t>(numeric_limits<T>::max());
  ------------------
  |  Branch (78:13): [True: 0, False: 0]
  ------------------
   79|      0|    }
   80|       |
   81|  11.5k|    if (!numeric_limits<T>::is_signed && !numeric_limits<V>::is_signed)
  ------------------
  |  Branch (81:9): [Folded - Ignored]
  |  Branch (81:42): [Folded - Ignored]
  ------------------
   82|  11.5k|    {
   83|  11.5k|        if (static_cast<uintmax_t>(numeric_limits<V>::max()) <= static_cast<uintmax_t>(numeric_limits<T>::max()))
  ------------------
  |  Branch (83:13): [Folded - Ignored]
  ------------------
   84|      0|        {
   85|       |            // Any checks on arg would be trivially true; don't even do them, to
   86|       |            // avoid warnings.
   87|      0|            return true;
   88|      0|        }
   89|       |
   90|  11.5k|        return static_cast<uintmax_t>(arg) <= static_cast<uintmax_t>(numeric_limits<T>::max());
   91|  11.5k|    }
   92|       |
   93|      0|    if (numeric_limits<T>::is_signed)
  ------------------
  |  Branch (93:9): [Folded - Ignored]
  ------------------
   94|      0|    {
   95|      0|        static_assert(numeric_limits<T>::max() >= 0, "What weird type is this?");
   96|      0|        if (static_cast<uintmax_t>(numeric_limits<V>::max()) <= static_cast<uintmax_t>(numeric_limits<T>::max()))
  ------------------
  |  Branch (96:13): [Folded - Ignored]
  ------------------
   97|      0|        {
   98|      0|            return true;
   99|      0|        }
  100|       |
  101|      0|        return static_cast<uintmax_t>(arg) <= static_cast<uintmax_t>(numeric_limits<T>::max());
  102|      0|    }
  103|       |
  104|      0|    return 0 <= arg && static_cast<uintmax_t>(arg) <= static_cast<uintmax_t>(numeric_limits<T>::max());
  ------------------
  |  Branch (104:12): [True: 0, False: 0]
  |  Branch (104:24): [True: 0, False: 0]
  ------------------
  105|      0|}
_ZN4chip9CanCastToItmTnNSt3__19enable_ifIXsr11is_integralIT_EE5valueEiE4typeELi0EEEbT0_:
   39|  5.36k|{
   40|  5.36k|    using namespace std;
   41|       |    // U might be a reference to an integer type, if we're assigning from
   42|       |    // something passed by reference.
   43|  5.36k|    typedef typename remove_reference<U>::type V; // V for "value"
   44|  5.36k|    static_assert(is_integral<V>::value, "Must be assigning from an integral type");
   45|       |
   46|       |    // We want to check that "arg" can fit inside T but without doing any tests
   47|       |    // that are always true or always false due to the types involved, which
   48|       |    // would trigger compiler warnings themselves.  So for example, we can't
   49|       |    // compare arg to max values for T if all U values are representable in T,
   50|       |    // etc, because those trigger warnings on some compilers.
   51|       |
   52|       |    // We also can't directly compare signed to unsigned values in general,
   53|       |    // because that will trigger sign conversion warnings. In fact, it will
   54|       |    // trigger them even on runtime-unreached codepaths, so for example we can't
   55|       |    // directly compare two min() values to each other!
   56|       |
   57|       |    // Oh, and some compilers warn on theoretical signed-to-unsigned compares
   58|       |    // even when those can't be reached, and that's known at compile time.
   59|       |    // Hence all the casts to intmax_t and uintmax_t below.
   60|       |
   61|       |    // A bunch of these tests could sure benefit from "if constexpr", but let's
   62|       |    // hope compilers just manage to optimize them properly anyway.
   63|       |    // We can't blindly compare "arg" to the minimal or maximal value of T one
   64|       |    // of T and V is signed and the other is unsigned: there might not be a
   65|       |    // single integer type that can represent _both_ the value of arg and the
   66|       |    // minimal/maximal value.
   67|  5.36k|    if (numeric_limits<T>::is_signed && numeric_limits<V>::is_signed)
  ------------------
  |  Branch (67:9): [Folded - Ignored]
  |  Branch (67:41): [Folded - Ignored]
  ------------------
   68|      0|    {
   69|      0|        if (static_cast<intmax_t>(numeric_limits<V>::max()) <= static_cast<intmax_t>(numeric_limits<T>::max()) &&
  ------------------
  |  Branch (69:13): [Folded - Ignored]
  ------------------
   70|      0|            static_cast<intmax_t>(numeric_limits<V>::min()) >= static_cast<intmax_t>(numeric_limits<T>::min()))
  ------------------
  |  Branch (70:13): [Folded - Ignored]
  ------------------
   71|      0|        {
   72|       |            // Any checks on arg would be trivially true; don't even do them, to
   73|       |            // avoid warnings.
   74|      0|            return true;
   75|      0|        }
   76|       |
   77|      0|        return static_cast<intmax_t>(numeric_limits<T>::min()) <= static_cast<intmax_t>(arg) &&
  ------------------
  |  Branch (77:16): [True: 0, False: 0]
  ------------------
   78|      0|            static_cast<intmax_t>(arg) <= static_cast<intmax_t>(numeric_limits<T>::max());
  ------------------
  |  Branch (78:13): [True: 0, False: 0]
  ------------------
   79|      0|    }
   80|       |
   81|  5.36k|    if (!numeric_limits<T>::is_signed && !numeric_limits<V>::is_signed)
  ------------------
  |  Branch (81:9): [Folded - Ignored]
  |  Branch (81:42): [Folded - Ignored]
  ------------------
   82|  5.36k|    {
   83|  5.36k|        if (static_cast<uintmax_t>(numeric_limits<V>::max()) <= static_cast<uintmax_t>(numeric_limits<T>::max()))
  ------------------
  |  Branch (83:13): [Folded - Ignored]
  ------------------
   84|      0|        {
   85|       |            // Any checks on arg would be trivially true; don't even do them, to
   86|       |            // avoid warnings.
   87|      0|            return true;
   88|      0|        }
   89|       |
   90|  5.36k|        return static_cast<uintmax_t>(arg) <= static_cast<uintmax_t>(numeric_limits<T>::max());
   91|  5.36k|    }
   92|       |
   93|      0|    if (numeric_limits<T>::is_signed)
  ------------------
  |  Branch (93:9): [Folded - Ignored]
  ------------------
   94|      0|    {
   95|      0|        static_assert(numeric_limits<T>::max() >= 0, "What weird type is this?");
   96|      0|        if (static_cast<uintmax_t>(numeric_limits<V>::max()) <= static_cast<uintmax_t>(numeric_limits<T>::max()))
  ------------------
  |  Branch (96:13): [Folded - Ignored]
  ------------------
   97|      0|        {
   98|      0|            return true;
   99|      0|        }
  100|       |
  101|      0|        return static_cast<uintmax_t>(arg) <= static_cast<uintmax_t>(numeric_limits<T>::max());
  102|      0|    }
  103|       |
  104|      0|    return 0 <= arg && static_cast<uintmax_t>(arg) <= static_cast<uintmax_t>(numeric_limits<T>::max());
  ------------------
  |  Branch (104:12): [True: 0, False: 0]
  |  Branch (104:24): [True: 0, False: 0]
  ------------------
  105|      0|}
_ZN4chip9CanCastToItjTnNSt3__19enable_ifIXsr11is_integralIT_EE5valueEiE4typeELi0EEEbT0_:
   39|  3.98k|{
   40|  3.98k|    using namespace std;
   41|       |    // U might be a reference to an integer type, if we're assigning from
   42|       |    // something passed by reference.
   43|  3.98k|    typedef typename remove_reference<U>::type V; // V for "value"
   44|  3.98k|    static_assert(is_integral<V>::value, "Must be assigning from an integral type");
   45|       |
   46|       |    // We want to check that "arg" can fit inside T but without doing any tests
   47|       |    // that are always true or always false due to the types involved, which
   48|       |    // would trigger compiler warnings themselves.  So for example, we can't
   49|       |    // compare arg to max values for T if all U values are representable in T,
   50|       |    // etc, because those trigger warnings on some compilers.
   51|       |
   52|       |    // We also can't directly compare signed to unsigned values in general,
   53|       |    // because that will trigger sign conversion warnings. In fact, it will
   54|       |    // trigger them even on runtime-unreached codepaths, so for example we can't
   55|       |    // directly compare two min() values to each other!
   56|       |
   57|       |    // Oh, and some compilers warn on theoretical signed-to-unsigned compares
   58|       |    // even when those can't be reached, and that's known at compile time.
   59|       |    // Hence all the casts to intmax_t and uintmax_t below.
   60|       |
   61|       |    // A bunch of these tests could sure benefit from "if constexpr", but let's
   62|       |    // hope compilers just manage to optimize them properly anyway.
   63|       |    // We can't blindly compare "arg" to the minimal or maximal value of T one
   64|       |    // of T and V is signed and the other is unsigned: there might not be a
   65|       |    // single integer type that can represent _both_ the value of arg and the
   66|       |    // minimal/maximal value.
   67|  3.98k|    if (numeric_limits<T>::is_signed && numeric_limits<V>::is_signed)
  ------------------
  |  Branch (67:9): [Folded - Ignored]
  |  Branch (67:41): [Folded - Ignored]
  ------------------
   68|      0|    {
   69|      0|        if (static_cast<intmax_t>(numeric_limits<V>::max()) <= static_cast<intmax_t>(numeric_limits<T>::max()) &&
  ------------------
  |  Branch (69:13): [Folded - Ignored]
  ------------------
   70|      0|            static_cast<intmax_t>(numeric_limits<V>::min()) >= static_cast<intmax_t>(numeric_limits<T>::min()))
  ------------------
  |  Branch (70:13): [Folded - Ignored]
  ------------------
   71|      0|        {
   72|       |            // Any checks on arg would be trivially true; don't even do them, to
   73|       |            // avoid warnings.
   74|      0|            return true;
   75|      0|        }
   76|       |
   77|      0|        return static_cast<intmax_t>(numeric_limits<T>::min()) <= static_cast<intmax_t>(arg) &&
  ------------------
  |  Branch (77:16): [True: 0, False: 0]
  ------------------
   78|      0|            static_cast<intmax_t>(arg) <= static_cast<intmax_t>(numeric_limits<T>::max());
  ------------------
  |  Branch (78:13): [True: 0, False: 0]
  ------------------
   79|      0|    }
   80|       |
   81|  3.98k|    if (!numeric_limits<T>::is_signed && !numeric_limits<V>::is_signed)
  ------------------
  |  Branch (81:9): [Folded - Ignored]
  |  Branch (81:42): [Folded - Ignored]
  ------------------
   82|  3.98k|    {
   83|  3.98k|        if (static_cast<uintmax_t>(numeric_limits<V>::max()) <= static_cast<uintmax_t>(numeric_limits<T>::max()))
  ------------------
  |  Branch (83:13): [Folded - Ignored]
  ------------------
   84|      0|        {
   85|       |            // Any checks on arg would be trivially true; don't even do them, to
   86|       |            // avoid warnings.
   87|      0|            return true;
   88|      0|        }
   89|       |
   90|  3.98k|        return static_cast<uintmax_t>(arg) <= static_cast<uintmax_t>(numeric_limits<T>::max());
   91|  3.98k|    }
   92|       |
   93|      0|    if (numeric_limits<T>::is_signed)
  ------------------
  |  Branch (93:9): [Folded - Ignored]
  ------------------
   94|      0|    {
   95|      0|        static_assert(numeric_limits<T>::max() >= 0, "What weird type is this?");
   96|      0|        if (static_cast<uintmax_t>(numeric_limits<V>::max()) <= static_cast<uintmax_t>(numeric_limits<T>::max()))
  ------------------
  |  Branch (96:13): [Folded - Ignored]
  ------------------
   97|      0|        {
   98|      0|            return true;
   99|      0|        }
  100|       |
  101|      0|        return static_cast<uintmax_t>(arg) <= static_cast<uintmax_t>(numeric_limits<T>::max());
  102|      0|    }
  103|       |
  104|      0|    return 0 <= arg && static_cast<uintmax_t>(arg) <= static_cast<uintmax_t>(numeric_limits<T>::max());
  ------------------
  |  Branch (104:12): [True: 0, False: 0]
  |  Branch (104:24): [True: 0, False: 0]
  ------------------
  105|      0|}
_ZN4chip9CanCastToIjlTnNSt3__19enable_ifIXsr11is_integralIT_EE5valueEiE4typeELi0EEEbT0_:
   39|  46.2k|{
   40|  46.2k|    using namespace std;
   41|       |    // U might be a reference to an integer type, if we're assigning from
   42|       |    // something passed by reference.
   43|  46.2k|    typedef typename remove_reference<U>::type V; // V for "value"
   44|  46.2k|    static_assert(is_integral<V>::value, "Must be assigning from an integral type");
   45|       |
   46|       |    // We want to check that "arg" can fit inside T but without doing any tests
   47|       |    // that are always true or always false due to the types involved, which
   48|       |    // would trigger compiler warnings themselves.  So for example, we can't
   49|       |    // compare arg to max values for T if all U values are representable in T,
   50|       |    // etc, because those trigger warnings on some compilers.
   51|       |
   52|       |    // We also can't directly compare signed to unsigned values in general,
   53|       |    // because that will trigger sign conversion warnings. In fact, it will
   54|       |    // trigger them even on runtime-unreached codepaths, so for example we can't
   55|       |    // directly compare two min() values to each other!
   56|       |
   57|       |    // Oh, and some compilers warn on theoretical signed-to-unsigned compares
   58|       |    // even when those can't be reached, and that's known at compile time.
   59|       |    // Hence all the casts to intmax_t and uintmax_t below.
   60|       |
   61|       |    // A bunch of these tests could sure benefit from "if constexpr", but let's
   62|       |    // hope compilers just manage to optimize them properly anyway.
   63|       |    // We can't blindly compare "arg" to the minimal or maximal value of T one
   64|       |    // of T and V is signed and the other is unsigned: there might not be a
   65|       |    // single integer type that can represent _both_ the value of arg and the
   66|       |    // minimal/maximal value.
   67|  46.2k|    if (numeric_limits<T>::is_signed && numeric_limits<V>::is_signed)
  ------------------
  |  Branch (67:9): [Folded - Ignored]
  |  Branch (67:41): [Folded - Ignored]
  ------------------
   68|      0|    {
   69|      0|        if (static_cast<intmax_t>(numeric_limits<V>::max()) <= static_cast<intmax_t>(numeric_limits<T>::max()) &&
  ------------------
  |  Branch (69:13): [Folded - Ignored]
  ------------------
   70|      0|            static_cast<intmax_t>(numeric_limits<V>::min()) >= static_cast<intmax_t>(numeric_limits<T>::min()))
  ------------------
  |  Branch (70:13): [Folded - Ignored]
  ------------------
   71|      0|        {
   72|       |            // Any checks on arg would be trivially true; don't even do them, to
   73|       |            // avoid warnings.
   74|      0|            return true;
   75|      0|        }
   76|       |
   77|      0|        return static_cast<intmax_t>(numeric_limits<T>::min()) <= static_cast<intmax_t>(arg) &&
  ------------------
  |  Branch (77:16): [True: 0, False: 0]
  ------------------
   78|      0|            static_cast<intmax_t>(arg) <= static_cast<intmax_t>(numeric_limits<T>::max());
  ------------------
  |  Branch (78:13): [True: 0, False: 0]
  ------------------
   79|      0|    }
   80|       |
   81|  46.2k|    if (!numeric_limits<T>::is_signed && !numeric_limits<V>::is_signed)
  ------------------
  |  Branch (81:9): [Folded - Ignored]
  |  Branch (81:42): [Folded - Ignored]
  ------------------
   82|      0|    {
   83|      0|        if (static_cast<uintmax_t>(numeric_limits<V>::max()) <= static_cast<uintmax_t>(numeric_limits<T>::max()))
  ------------------
  |  Branch (83:13): [Folded - Ignored]
  ------------------
   84|      0|        {
   85|       |            // Any checks on arg would be trivially true; don't even do them, to
   86|       |            // avoid warnings.
   87|      0|            return true;
   88|      0|        }
   89|       |
   90|      0|        return static_cast<uintmax_t>(arg) <= static_cast<uintmax_t>(numeric_limits<T>::max());
   91|      0|    }
   92|       |
   93|  46.2k|    if (numeric_limits<T>::is_signed)
  ------------------
  |  Branch (93:9): [Folded - Ignored]
  ------------------
   94|      0|    {
   95|      0|        static_assert(numeric_limits<T>::max() >= 0, "What weird type is this?");
   96|      0|        if (static_cast<uintmax_t>(numeric_limits<V>::max()) <= static_cast<uintmax_t>(numeric_limits<T>::max()))
  ------------------
  |  Branch (96:13): [Folded - Ignored]
  ------------------
   97|      0|        {
   98|      0|            return true;
   99|      0|        }
  100|       |
  101|      0|        return static_cast<uintmax_t>(arg) <= static_cast<uintmax_t>(numeric_limits<T>::max());
  102|      0|    }
  103|       |
  104|  46.2k|    return 0 <= arg && static_cast<uintmax_t>(arg) <= static_cast<uintmax_t>(numeric_limits<T>::max());
  ------------------
  |  Branch (104:12): [True: 46.2k, False: 0]
  |  Branch (104:24): [True: 46.2k, False: 0]
  ------------------
  105|  46.2k|}
_ZN4chip9CanCastToIhmTnNSt3__19enable_ifIXsr11is_integralIT_EE5valueEiE4typeELi0EEEbT0_:
   39|  13.0k|{
   40|  13.0k|    using namespace std;
   41|       |    // U might be a reference to an integer type, if we're assigning from
   42|       |    // something passed by reference.
   43|  13.0k|    typedef typename remove_reference<U>::type V; // V for "value"
   44|  13.0k|    static_assert(is_integral<V>::value, "Must be assigning from an integral type");
   45|       |
   46|       |    // We want to check that "arg" can fit inside T but without doing any tests
   47|       |    // that are always true or always false due to the types involved, which
   48|       |    // would trigger compiler warnings themselves.  So for example, we can't
   49|       |    // compare arg to max values for T if all U values are representable in T,
   50|       |    // etc, because those trigger warnings on some compilers.
   51|       |
   52|       |    // We also can't directly compare signed to unsigned values in general,
   53|       |    // because that will trigger sign conversion warnings. In fact, it will
   54|       |    // trigger them even on runtime-unreached codepaths, so for example we can't
   55|       |    // directly compare two min() values to each other!
   56|       |
   57|       |    // Oh, and some compilers warn on theoretical signed-to-unsigned compares
   58|       |    // even when those can't be reached, and that's known at compile time.
   59|       |    // Hence all the casts to intmax_t and uintmax_t below.
   60|       |
   61|       |    // A bunch of these tests could sure benefit from "if constexpr", but let's
   62|       |    // hope compilers just manage to optimize them properly anyway.
   63|       |    // We can't blindly compare "arg" to the minimal or maximal value of T one
   64|       |    // of T and V is signed and the other is unsigned: there might not be a
   65|       |    // single integer type that can represent _both_ the value of arg and the
   66|       |    // minimal/maximal value.
   67|  13.0k|    if (numeric_limits<T>::is_signed && numeric_limits<V>::is_signed)
  ------------------
  |  Branch (67:9): [Folded - Ignored]
  |  Branch (67:41): [Folded - Ignored]
  ------------------
   68|      0|    {
   69|      0|        if (static_cast<intmax_t>(numeric_limits<V>::max()) <= static_cast<intmax_t>(numeric_limits<T>::max()) &&
  ------------------
  |  Branch (69:13): [Folded - Ignored]
  ------------------
   70|      0|            static_cast<intmax_t>(numeric_limits<V>::min()) >= static_cast<intmax_t>(numeric_limits<T>::min()))
  ------------------
  |  Branch (70:13): [Folded - Ignored]
  ------------------
   71|      0|        {
   72|       |            // Any checks on arg would be trivially true; don't even do them, to
   73|       |            // avoid warnings.
   74|      0|            return true;
   75|      0|        }
   76|       |
   77|      0|        return static_cast<intmax_t>(numeric_limits<T>::min()) <= static_cast<intmax_t>(arg) &&
  ------------------
  |  Branch (77:16): [True: 0, False: 0]
  ------------------
   78|      0|            static_cast<intmax_t>(arg) <= static_cast<intmax_t>(numeric_limits<T>::max());
  ------------------
  |  Branch (78:13): [True: 0, False: 0]
  ------------------
   79|      0|    }
   80|       |
   81|  13.0k|    if (!numeric_limits<T>::is_signed && !numeric_limits<V>::is_signed)
  ------------------
  |  Branch (81:9): [Folded - Ignored]
  |  Branch (81:42): [Folded - Ignored]
  ------------------
   82|  13.0k|    {
   83|  13.0k|        if (static_cast<uintmax_t>(numeric_limits<V>::max()) <= static_cast<uintmax_t>(numeric_limits<T>::max()))
  ------------------
  |  Branch (83:13): [Folded - Ignored]
  ------------------
   84|      0|        {
   85|       |            // Any checks on arg would be trivially true; don't even do them, to
   86|       |            // avoid warnings.
   87|      0|            return true;
   88|      0|        }
   89|       |
   90|  13.0k|        return static_cast<uintmax_t>(arg) <= static_cast<uintmax_t>(numeric_limits<T>::max());
   91|  13.0k|    }
   92|       |
   93|      0|    if (numeric_limits<T>::is_signed)
  ------------------
  |  Branch (93:9): [Folded - Ignored]
  ------------------
   94|      0|    {
   95|      0|        static_assert(numeric_limits<T>::max() >= 0, "What weird type is this?");
   96|      0|        if (static_cast<uintmax_t>(numeric_limits<V>::max()) <= static_cast<uintmax_t>(numeric_limits<T>::max()))
  ------------------
  |  Branch (96:13): [Folded - Ignored]
  ------------------
   97|      0|        {
   98|      0|            return true;
   99|      0|        }
  100|       |
  101|      0|        return static_cast<uintmax_t>(arg) <= static_cast<uintmax_t>(numeric_limits<T>::max());
  102|      0|    }
  103|       |
  104|      0|    return 0 <= arg && static_cast<uintmax_t>(arg) <= static_cast<uintmax_t>(numeric_limits<T>::max());
  ------------------
  |  Branch (104:12): [True: 0, False: 0]
  |  Branch (104:24): [True: 0, False: 0]
  ------------------
  105|      0|}

_ZN4chip9FixedSpanIKhLm65EEC2Ev:
  260|  33.4k|    constexpr FixedSpan() : mDataBuf(detail::shared_zeroes<T, N>()) {}
_ZN4chip6detail13shared_zeroesIKhLm65EEEPKT_v:
  242|  33.4k|{
  243|  33.4k|    static_assert(N <= zero_limit<typename std::remove_const<T>::type>::value, "N exceeds zero_limit<T>");
  244|  33.4k|    return kZeroes<typename std::remove_const<T>::type>;
  245|  33.4k|}
_ZN4chip4SpanIKhEC2EPS1_m:
   52|  14.1k|    Span(pointer databuf, size_t datalen) : mDataBuf(databuf), mDataLen(datalen)
   53|  14.1k|    {
   54|  14.1k|        VerifyOrDie(databuf != nullptr || datalen == 0); // not constexpr on some platforms
  ------------------
  |  |  497|  14.1k|    nlABORT_ACTION(aCondition, ChipLogError(Support, "VerifyOrDie failure at %s:%d: %s", __FILE__, __LINE__, #aCondition))
  |  |  ------------------
  |  |  |  |  711|  14.1k|#define nlABORT_ACTION(aCondition, anAction)                                    __nlABORT_ACTION(NL_ASSERT_ABORT_PRODUCTION_FLAGS, aCondition, anAction)
  |  |  |  |  ------------------
  |  |  |  |  |  |  487|  14.1k|#define __nlABORT_ACTION(flags, condition, action)                                        __nlPRECONDITION_ACTION(flags, condition, NL_ASSERT_ABORT(), action)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  431|  14.1k|    if (__nlSHOULD_ASSERT(condition))                                                     \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  125|  35.3k|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 7.18k, False: 6.98k]
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 6.98k, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  432|      0|    {                                                                                     \
  |  |  |  |  |  |  |  |  433|      0|        __NL_ASSERT_MAYBE_RUN_PRE_ACTION_TRIGGERS((flags),                                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  203|      0|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  204|      0|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  205|      0|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  835|      0|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (205:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  206|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  207|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  208|      0|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  815|      0|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (208:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  209|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  210|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  211|      0|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (211:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  434|      0|                                                  NL_ASSERT_PREFIX_STRING,                \
  |  |  |  |  |  |  |  |  435|      0|                                                  NL_ASSERT_COMPONENT_STRING,             \
  |  |  |  |  |  |  |  |  436|      0|                                                  #condition,                             \
  |  |  |  |  |  |  |  |  437|      0|                                                  0,                                      \
  |  |  |  |  |  |  |  |  438|      0|                                                  NL_ASSERT_FILE,                         \
  |  |  |  |  |  |  |  |  439|      0|                                                  __LINE__,                               \
  |  |  |  |  |  |  |  |  440|      0|                                                  0);                                     \
  |  |  |  |  |  |  |  |  441|      0|        {                                                                                 \
  |  |  |  |  |  |  |  |  442|      0|            action;                                                                       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (442:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  Branch (442:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  Branch (442:13): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (442:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  443|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  444|      0|        __NL_ASSERT_MAYBE_RUN_POST_ACTION_TRIGGERS((flags),                               \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  214|      0|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  215|      0|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  216|      0|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  855|      0|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (216:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  217|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  218|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  219|      0|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (219:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  445|      0|                                                   NL_ASSERT_PREFIX_STRING,               \
  |  |  |  |  |  |  |  |  446|      0|                                                   NL_ASSERT_COMPONENT_STRING,            \
  |  |  |  |  |  |  |  |  447|      0|                                                   #condition,                            \
  |  |  |  |  |  |  |  |  448|      0|                                                   0,                                     \
  |  |  |  |  |  |  |  |  449|      0|                                                   NL_ASSERT_FILE,                        \
  |  |  |  |  |  |  |  |  450|      0|                                                   __LINE__,                              \
  |  |  |  |  |  |  |  |  451|      0|                                                   0);                                    \
  |  |  |  |  |  |  |  |  452|      0|        {                                                                                 \
  |  |  |  |  |  |  |  |  453|      0|            termination;                                                                  \
  |  |  |  |  |  |  |  |  454|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  455|      0|    }                                                                                     \
  |  |  |  |  |  |  |  |  456|      0|    else do {} while (0) /* This is explained in the comment above __nlCHECK */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (456:23): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   55|  14.1k|    }
_ZNK4chip4SpanIKhE4sizeEv:
  119|  38.7k|    constexpr size_t size() const { return mDataLen; }
_ZNK4chip4SpanIKhE4dataEv:
  118|  32.0k|    constexpr pointer data() const { return mDataBuf; }
_ZNK4chip4SpanIKcE4sizeEv:
  119|  3.19k|    constexpr size_t size() const { return mDataLen; }
_ZNK4chip4SpanIKcE4dataEv:
  118|  1.58k|    constexpr pointer data() const { return mDataBuf; }
_ZN4chip4SpanIKcEC2EPS1_m:
   52|  1.70k|    Span(pointer databuf, size_t datalen) : mDataBuf(databuf), mDataLen(datalen)
   53|  1.70k|    {
   54|  1.70k|        VerifyOrDie(databuf != nullptr || datalen == 0); // not constexpr on some platforms
  ------------------
  |  |  497|  1.70k|    nlABORT_ACTION(aCondition, ChipLogError(Support, "VerifyOrDie failure at %s:%d: %s", __FILE__, __LINE__, #aCondition))
  |  |  ------------------
  |  |  |  |  711|  1.70k|#define nlABORT_ACTION(aCondition, anAction)                                    __nlABORT_ACTION(NL_ASSERT_ABORT_PRODUCTION_FLAGS, aCondition, anAction)
  |  |  |  |  ------------------
  |  |  |  |  |  |  487|  1.70k|#define __nlABORT_ACTION(flags, condition, action)                                        __nlPRECONDITION_ACTION(flags, condition, NL_ASSERT_ABORT(), action)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  431|  1.70k|    if (__nlSHOULD_ASSERT(condition))                                                     \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  125|  3.41k|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 1.70k, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  432|      0|    {                                                                                     \
  |  |  |  |  |  |  |  |  433|      0|        __NL_ASSERT_MAYBE_RUN_PRE_ACTION_TRIGGERS((flags),                                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  203|      0|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  204|      0|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  205|      0|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  835|      0|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (205:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  206|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  207|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  208|      0|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  815|      0|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (208:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  209|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  210|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  211|      0|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (211:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  434|      0|                                                  NL_ASSERT_PREFIX_STRING,                \
  |  |  |  |  |  |  |  |  435|      0|                                                  NL_ASSERT_COMPONENT_STRING,             \
  |  |  |  |  |  |  |  |  436|      0|                                                  #condition,                             \
  |  |  |  |  |  |  |  |  437|      0|                                                  0,                                      \
  |  |  |  |  |  |  |  |  438|      0|                                                  NL_ASSERT_FILE,                         \
  |  |  |  |  |  |  |  |  439|      0|                                                  __LINE__,                               \
  |  |  |  |  |  |  |  |  440|      0|                                                  0);                                     \
  |  |  |  |  |  |  |  |  441|      0|        {                                                                                 \
  |  |  |  |  |  |  |  |  442|      0|            action;                                                                       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (442:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  Branch (442:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  Branch (442:13): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (442:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  443|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  444|      0|        __NL_ASSERT_MAYBE_RUN_POST_ACTION_TRIGGERS((flags),                               \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  214|      0|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  215|      0|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  216|      0|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  855|      0|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (216:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  217|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  218|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  219|      0|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (219:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  445|      0|                                                   NL_ASSERT_PREFIX_STRING,               \
  |  |  |  |  |  |  |  |  446|      0|                                                   NL_ASSERT_COMPONENT_STRING,            \
  |  |  |  |  |  |  |  |  447|      0|                                                   #condition,                            \
  |  |  |  |  |  |  |  |  448|      0|                                                   0,                                     \
  |  |  |  |  |  |  |  |  449|      0|                                                   NL_ASSERT_FILE,                        \
  |  |  |  |  |  |  |  |  450|      0|                                                   __LINE__,                              \
  |  |  |  |  |  |  |  |  451|      0|                                                   0);                                    \
  |  |  |  |  |  |  |  |  452|      0|        {                                                                                 \
  |  |  |  |  |  |  |  |  453|      0|            termination;                                                                  \
  |  |  |  |  |  |  |  |  454|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  455|      0|    }                                                                                     \
  |  |  |  |  |  |  |  |  456|      0|    else do {} while (0) /* This is explained in the comment above __nlCHECK */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (456:23): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
   55|  1.70k|    }
_ZN4chip4SpanIKhEC2Ev:
   46|  33.2k|    constexpr Span() : mDataBuf(nullptr), mDataLen(0) {}
_ZNK4chip9FixedSpanIKhLm20EE4dataEv:
  310|  1.18k|    constexpr pointer data() const { return mDataBuf; }
_ZN4chip9FixedSpanIKhLm20EE4sizeEv:
  315|  1.18k|    static constexpr size_t size() { return N; }
_ZNK4chip9FixedSpanIKhLm65EE4dataEv:
  310|  2.40k|    constexpr pointer data() const { return mDataBuf; }
_ZN4chip9FixedSpanIKhLm65EE4sizeEv:
  315|  2.40k|    static constexpr size_t size() { return N; }
_ZN4chip9FixedSpanIKhLm20EEC2Ev:
  260|  59.5k|    constexpr FixedSpan() : mDataBuf(detail::shared_zeroes<T, N>()) {}
_ZN4chip6detail13shared_zeroesIKhLm20EEEPKT_v:
  242|  59.5k|{
  243|  59.5k|    static_assert(N <= zero_limit<typename std::remove_const<T>::type>::value, "N exceeds zero_limit<T>");
  244|  59.5k|    return kZeroes<typename std::remove_const<T>::type>;
  245|  59.5k|}
_ZN4chip9FixedSpanIKhLm64EEC2Ev:
  260|  29.7k|    constexpr FixedSpan() : mDataBuf(detail::shared_zeroes<T, N>()) {}
_ZN4chip6detail13shared_zeroesIKhLm64EEEPKT_v:
  242|  29.7k|{
  243|  29.7k|    static_assert(N <= zero_limit<typename std::remove_const<T>::type>::value, "N exceeds zero_limit<T>");
  244|  29.7k|    return kZeroes<typename std::remove_const<T>::type>;
  245|  29.7k|}
_ZN4chip4SpanIKcEC2Ev:
   46|   486k|    constexpr Span() : mDataBuf(nullptr), mDataLen(0) {}
_ZN4chip9FixedSpanIKhLm65EEC2IPS1_vEET_:
  275|  2.41k|    explicit FixedSpan(U databuf) : mDataBuf(databuf)
  276|  2.41k|    {
  277|  2.41k|        VerifyOrDie(databuf != nullptr || N == 0); // not constexpr on some platforms
  ------------------
  |  |  497|  2.41k|    nlABORT_ACTION(aCondition, ChipLogError(Support, "VerifyOrDie failure at %s:%d: %s", __FILE__, __LINE__, #aCondition))
  |  |  ------------------
  |  |  |  |  711|  2.41k|#define nlABORT_ACTION(aCondition, anAction)                                    __nlABORT_ACTION(NL_ASSERT_ABORT_PRODUCTION_FLAGS, aCondition, anAction)
  |  |  |  |  ------------------
  |  |  |  |  |  |  487|  2.41k|#define __nlABORT_ACTION(flags, condition, action)                                        __nlPRECONDITION_ACTION(flags, condition, NL_ASSERT_ABORT(), action)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  431|  2.41k|    if (__nlSHOULD_ASSERT(condition))                                                     \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  125|  4.83k|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 2.41k, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  432|      0|    {                                                                                     \
  |  |  |  |  |  |  |  |  433|      0|        __NL_ASSERT_MAYBE_RUN_PRE_ACTION_TRIGGERS((flags),                                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  203|      0|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  204|      0|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  205|      0|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  835|      0|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (205:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  206|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  207|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  208|      0|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  815|      0|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (208:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  209|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  210|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  211|      0|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (211:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  434|      0|                                                  NL_ASSERT_PREFIX_STRING,                \
  |  |  |  |  |  |  |  |  435|      0|                                                  NL_ASSERT_COMPONENT_STRING,             \
  |  |  |  |  |  |  |  |  436|      0|                                                  #condition,                             \
  |  |  |  |  |  |  |  |  437|      0|                                                  0,                                      \
  |  |  |  |  |  |  |  |  438|      0|                                                  NL_ASSERT_FILE,                         \
  |  |  |  |  |  |  |  |  439|      0|                                                  __LINE__,                               \
  |  |  |  |  |  |  |  |  440|      0|                                                  0);                                     \
  |  |  |  |  |  |  |  |  441|      0|        {                                                                                 \
  |  |  |  |  |  |  |  |  442|      0|            action;                                                                       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (442:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  Branch (442:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  Branch (442:13): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (442:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  443|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  444|      0|        __NL_ASSERT_MAYBE_RUN_POST_ACTION_TRIGGERS((flags),                               \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  214|      0|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  215|      0|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  216|      0|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  855|      0|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (216:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  217|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  218|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  219|      0|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (219:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  445|      0|                                                   NL_ASSERT_PREFIX_STRING,               \
  |  |  |  |  |  |  |  |  446|      0|                                                   NL_ASSERT_COMPONENT_STRING,            \
  |  |  |  |  |  |  |  |  447|      0|                                                   #condition,                            \
  |  |  |  |  |  |  |  |  448|      0|                                                   0,                                     \
  |  |  |  |  |  |  |  |  449|      0|                                                   NL_ASSERT_FILE,                        \
  |  |  |  |  |  |  |  |  450|      0|                                                   __LINE__,                              \
  |  |  |  |  |  |  |  |  451|      0|                                                   0);                                    \
  |  |  |  |  |  |  |  |  452|      0|        {                                                                                 \
  |  |  |  |  |  |  |  |  453|      0|            termination;                                                                  \
  |  |  |  |  |  |  |  |  454|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  455|      0|    }                                                                                     \
  |  |  |  |  |  |  |  |  456|      0|    else do {} while (0) /* This is explained in the comment above __nlCHECK */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (456:23): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  278|  2.41k|    }
_ZN4chip9FixedSpanIKhLm64EEC2IPS1_vEET_:
  275|    124|    explicit FixedSpan(U databuf) : mDataBuf(databuf)
  276|    124|    {
  277|    124|        VerifyOrDie(databuf != nullptr || N == 0); // not constexpr on some platforms
  ------------------
  |  |  497|    124|    nlABORT_ACTION(aCondition, ChipLogError(Support, "VerifyOrDie failure at %s:%d: %s", __FILE__, __LINE__, #aCondition))
  |  |  ------------------
  |  |  |  |  711|    124|#define nlABORT_ACTION(aCondition, anAction)                                    __nlABORT_ACTION(NL_ASSERT_ABORT_PRODUCTION_FLAGS, aCondition, anAction)
  |  |  |  |  ------------------
  |  |  |  |  |  |  487|    124|#define __nlABORT_ACTION(flags, condition, action)                                        __nlPRECONDITION_ACTION(flags, condition, NL_ASSERT_ABORT(), action)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  431|    124|    if (__nlSHOULD_ASSERT(condition))                                                     \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  125|    248|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 124, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  432|      0|    {                                                                                     \
  |  |  |  |  |  |  |  |  433|      0|        __NL_ASSERT_MAYBE_RUN_PRE_ACTION_TRIGGERS((flags),                                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  203|      0|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  204|      0|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  205|      0|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  835|      0|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (205:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  206|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  207|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  208|      0|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  815|      0|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (208:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  209|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  210|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  211|      0|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (211:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  434|      0|                                                  NL_ASSERT_PREFIX_STRING,                \
  |  |  |  |  |  |  |  |  435|      0|                                                  NL_ASSERT_COMPONENT_STRING,             \
  |  |  |  |  |  |  |  |  436|      0|                                                  #condition,                             \
  |  |  |  |  |  |  |  |  437|      0|                                                  0,                                      \
  |  |  |  |  |  |  |  |  438|      0|                                                  NL_ASSERT_FILE,                         \
  |  |  |  |  |  |  |  |  439|      0|                                                  __LINE__,                               \
  |  |  |  |  |  |  |  |  440|      0|                                                  0);                                     \
  |  |  |  |  |  |  |  |  441|      0|        {                                                                                 \
  |  |  |  |  |  |  |  |  442|      0|            action;                                                                       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (442:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  Branch (442:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  Branch (442:13): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (442:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  443|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  444|      0|        __NL_ASSERT_MAYBE_RUN_POST_ACTION_TRIGGERS((flags),                               \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  214|      0|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  215|      0|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  216|      0|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  855|      0|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (216:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  217|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  218|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  219|      0|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (219:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  445|      0|                                                   NL_ASSERT_PREFIX_STRING,               \
  |  |  |  |  |  |  |  |  446|      0|                                                   NL_ASSERT_COMPONENT_STRING,            \
  |  |  |  |  |  |  |  |  447|      0|                                                   #condition,                            \
  |  |  |  |  |  |  |  |  448|      0|                                                   0,                                     \
  |  |  |  |  |  |  |  |  449|      0|                                                   NL_ASSERT_FILE,                        \
  |  |  |  |  |  |  |  |  450|      0|                                                   __LINE__,                              \
  |  |  |  |  |  |  |  |  451|      0|                                                   0);                                    \
  |  |  |  |  |  |  |  |  452|      0|        {                                                                                 \
  |  |  |  |  |  |  |  |  453|      0|            termination;                                                                  \
  |  |  |  |  |  |  |  |  454|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  455|      0|    }                                                                                     \
  |  |  |  |  |  |  |  |  456|      0|    else do {} while (0) /* This is explained in the comment above __nlCHECK */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (456:23): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  278|    124|    }
_ZN4chip9FixedSpanIKhLm20EEC2IPS1_vEET_:
  275|  1.18k|    explicit FixedSpan(U databuf) : mDataBuf(databuf)
  276|  1.18k|    {
  277|  1.18k|        VerifyOrDie(databuf != nullptr || N == 0); // not constexpr on some platforms
  ------------------
  |  |  497|  1.18k|    nlABORT_ACTION(aCondition, ChipLogError(Support, "VerifyOrDie failure at %s:%d: %s", __FILE__, __LINE__, #aCondition))
  |  |  ------------------
  |  |  |  |  711|  1.18k|#define nlABORT_ACTION(aCondition, anAction)                                    __nlABORT_ACTION(NL_ASSERT_ABORT_PRODUCTION_FLAGS, aCondition, anAction)
  |  |  |  |  ------------------
  |  |  |  |  |  |  487|  1.18k|#define __nlABORT_ACTION(flags, condition, action)                                        __nlPRECONDITION_ACTION(flags, condition, NL_ASSERT_ABORT(), action)
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  431|  1.18k|    if (__nlSHOULD_ASSERT(condition))                                                     \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  125|  2.36k|#define __nlSHOULD_ASSERT(condition) condition) { /* do nothing */ } else if (1
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [True: 1.18k, False: 0]
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:38): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  |  Branch (125:79): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  432|      0|    {                                                                                     \
  |  |  |  |  |  |  |  |  433|      0|        __NL_ASSERT_MAYBE_RUN_PRE_ACTION_TRIGGERS((flags),                                \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  203|      0|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  204|      0|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  205|      0|        if ((flags) & NL_ASSERT_FLAG_LOG) {                                               \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  835|      0|#define NL_ASSERT_FLAG_LOG              0x00000002
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (205:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  206|      0|            NL_ASSERT_LOG(prefix, name, condition, label, file, line, message);           \
  |  |  |  |  |  |  |  |  |  |  207|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  208|      0|        if ((flags) & NL_ASSERT_FLAG_BACKTRACE) {                                         \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  815|      0|#define NL_ASSERT_FLAG_BACKTRACE        0x00000001
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (208:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  209|      0|            NL_ASSERT_BACKTRACE();                                                        \
  |  |  |  |  |  |  |  |  |  |  210|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  211|      0|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (211:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  434|      0|                                                  NL_ASSERT_PREFIX_STRING,                \
  |  |  |  |  |  |  |  |  435|      0|                                                  NL_ASSERT_COMPONENT_STRING,             \
  |  |  |  |  |  |  |  |  436|      0|                                                  #condition,                             \
  |  |  |  |  |  |  |  |  437|      0|                                                  0,                                      \
  |  |  |  |  |  |  |  |  438|      0|                                                  NL_ASSERT_FILE,                         \
  |  |  |  |  |  |  |  |  439|      0|                                                  __LINE__,                               \
  |  |  |  |  |  |  |  |  440|      0|                                                  0);                                     \
  |  |  |  |  |  |  |  |  441|      0|        {                                                                                 \
  |  |  |  |  |  |  |  |  442|      0|            action;                                                                       \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (442:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  Branch (442:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  Branch (442:13): [True: 0, False: 0]
  |  |  |  |  |  |  |  |  |  Branch (442:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  443|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  444|      0|        __NL_ASSERT_MAYBE_RUN_POST_ACTION_TRIGGERS((flags),                               \
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  214|      0|    do                                                                                    \
  |  |  |  |  |  |  |  |  |  |  215|      0|    {                                                                                     \
  |  |  |  |  |  |  |  |  |  |  216|      0|        if ((flags) & NL_ASSERT_FLAG_TRAP) {                                              \
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  |  855|      0|#define NL_ASSERT_FLAG_TRAP             0x00000004
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (216:13): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  217|      0|            NL_ASSERT_TRAP();                                                             \
  |  |  |  |  |  |  |  |  |  |  218|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  |  |  219|      0|    } while (0)
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  |  |  Branch (219:14): [Folded - Ignored]
  |  |  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  445|      0|                                                   NL_ASSERT_PREFIX_STRING,               \
  |  |  |  |  |  |  |  |  446|      0|                                                   NL_ASSERT_COMPONENT_STRING,            \
  |  |  |  |  |  |  |  |  447|      0|                                                   #condition,                            \
  |  |  |  |  |  |  |  |  448|      0|                                                   0,                                     \
  |  |  |  |  |  |  |  |  449|      0|                                                   NL_ASSERT_FILE,                        \
  |  |  |  |  |  |  |  |  450|      0|                                                   __LINE__,                              \
  |  |  |  |  |  |  |  |  451|      0|                                                   0);                                    \
  |  |  |  |  |  |  |  |  452|      0|        {                                                                                 \
  |  |  |  |  |  |  |  |  453|      0|            termination;                                                                  \
  |  |  |  |  |  |  |  |  454|      0|        }                                                                                 \
  |  |  |  |  |  |  |  |  455|      0|    }                                                                                     \
  |  |  |  |  |  |  |  |  456|      0|    else do {} while (0) /* This is explained in the comment above __nlCHECK */
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  |  Branch (456:23): [Folded - Ignored]
  |  |  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  ------------------
  278|  1.18k|    }

_ZN4chip32DaysSinceUnixEpochToCalendarDateEjRtRhS1_:
  317|  4.41k|{
  318|       |    // NOTE: This algorithm is based on the logic described in http://howardhinnant.github.io/date_algorithms.html.
  319|  4.41k|    if (daysSinceEpoch / kDaysPerStandardYear + 1 > std::numeric_limits<std::remove_reference<decltype(year)>::type>::max())
  ------------------
  |  Branch (319:9): [True: 0, False: 4.41k]
  ------------------
  320|      0|    {
  321|       |        // Our year calculation will likely overflow.
  322|      0|        return false;
  323|      0|    }
  324|       |
  325|       |    // Adjust days value to be relative to 0000-03-01.
  326|  4.41k|    daysSinceEpoch += kEpochOffsetDays;
  327|       |
  328|       |    // Compute the 400-year Gregorian cycle in which the given day resides.
  329|  4.41k|    uint32_t cycle = daysSinceEpoch / kDaysPerCycle;
  330|       |
  331|       |    // Compute the relative day within the cycle.
  332|  4.41k|    uint32_t dayOfCycle = daysSinceEpoch - (cycle * kDaysPerCycle);
  333|       |
  334|       |    // Compute the relative year within the cycle, adjusting for leap-years.
  335|  4.41k|    uint16_t yearOfCycle =
  336|  4.41k|        static_cast<uint16_t>((dayOfCycle - dayOfCycle / 1460 + dayOfCycle / 36524 - dayOfCycle / 146096) / kDaysPerStandardYear);
  337|       |
  338|       |    // Compute the relative day with the year.
  339|  4.41k|    uint16_t dayOfYear = static_cast<uint16_t>(
  340|  4.41k|        dayOfCycle - (yearOfCycle * kDaysPerStandardYear + yearOfCycle / kLeapYearInterval - yearOfCycle / kYearsPerCentury));
  341|       |
  342|       |    // Compute a March-based month number (i.e. 0=March...11=February) from the day of year.
  343|  4.41k|    month = MarchBasedDayOfYearToMonth(dayOfYear);
  344|       |
  345|       |    // Compute the days from March 1st to the start of the corresponding month.
  346|  4.41k|    uint16_t daysFromMarch1ToStartOfMonth = MarchBasedMonthToDayOfYear(month);
  347|       |
  348|       |    // Compute the day of month in standard form (1=1st, 2=2nd, etc.).
  349|  4.41k|    dayOfMonth = static_cast<uint8_t>(dayOfYear - daysFromMarch1ToStartOfMonth + 1);
  350|       |
  351|       |    // Convert the month number to standard form (1=January...12=December).
  352|  4.41k|    month = static_cast<uint8_t>(month + (month < 10 ? 3 : -9));
  ------------------
  |  Branch (352:43): [True: 112, False: 4.30k]
  ------------------
  353|       |
  354|       |    // Compute the year, adjusting for the standard start of year (January).
  355|  4.41k|    year = static_cast<uint16_t>(yearOfCycle + cycle * kYearsPerCycle);
  356|  4.41k|    if (month <= kFebruary)
  ------------------
  |  Branch (356:9): [True: 4.30k, False: 112]
  ------------------
  357|  4.30k|        year++;
  358|  4.41k|    return true;
  359|  4.41k|}
_ZN4chip23ChipEpochToCalendarTimeEjRtRhS1_S1_S1_S1_:
  558|  4.41k|{
  559|  4.41k|    SecondsSinceUnixEpochToCalendarTime(static_cast<uint64_t>(chipEpochTime) + kChipEpochSecondsSinceUnixEpoch, year, month,
  560|  4.41k|                                        dayOfMonth, hour, minute, second);
  561|  4.41k|}
TimeUtils.cpp:_ZN4chipL26MarchBasedDayOfYearToMonthEt:
   74|  4.41k|{
   75|       |    // This assumes dayOfYear is not using the full uint16_t range, so the cast
   76|       |    // to uint8_t doesn't overflow.
   77|  4.41k|    return static_cast<uint8_t>((5 * dayOfYear + 2) / 153);
   78|  4.41k|}
TimeUtils.cpp:_ZN4chipL26MarchBasedMonthToDayOfYearEh:
   67|  4.41k|{
   68|  4.41k|    return static_cast<uint16_t>((153 * month + 2) / 5);
   69|  4.41k|}
TimeUtils.cpp:_ZN4chipL35SecondsSinceUnixEpochToCalendarTimeEmRtRhS1_S1_S1_S1_:
  475|  4.41k|{
  476|  4.41k|    uint32_t daysSinceEpoch = static_cast<uint32_t>(secondsSinceEpoch / kSecondsPerDay);
  477|  4.41k|    static_assert((static_cast<uint64_t>(UINT32_MAX) + kChipEpochSecondsSinceUnixEpoch) / kSecondsPerDay <=
  478|  4.41k|                      std::numeric_limits<decltype(daysSinceEpoch)>::max(),
  479|  4.41k|                  "daysSinceEpoch would overflow");
  480|  4.41k|    uint32_t timeOfDay = static_cast<uint32_t>(secondsSinceEpoch - (daysSinceEpoch * kSecondsPerDay));
  481|       |
  482|       |    // Note: This call to DaysSinceUnixEpochToCalendarDate can't fail, because we
  483|       |    // can't overflow a uint16_t year with a muximum possible value of the
  484|       |    // secondsSinceEpoch input.
  485|  4.41k|    static_assert((static_cast<uint64_t>(UINT32_MAX) + kChipEpochSecondsSinceUnixEpoch) / (kDaysPerStandardYear * kSecondsPerDay) +
  486|  4.41k|                          1 <=
  487|  4.41k|                      std::numeric_limits<std::remove_reference<decltype(year)>::type>::max(),
  488|  4.41k|                  "What happened to our year or day lengths?");
  489|  4.41k|    DaysSinceUnixEpochToCalendarDate(daysSinceEpoch, year, month, dayOfMonth);
  490|       |
  491|  4.41k|    hour = static_cast<uint8_t>(timeOfDay / kSecondsPerHour);
  492|  4.41k|    timeOfDay -= (hour * kSecondsPerHour);
  493|  4.41k|    minute = static_cast<uint8_t>(timeOfDay / kSecondsPerMinute);
  494|  4.41k|    timeOfDay -= (minute * kSecondsPerMinute);
  495|  4.41k|    second = static_cast<uint8_t>(timeOfDay);
  496|  4.41k|}

TLVReader.cpp:_ZL29nlByteOrderSwap64LittleToHostm:
   79|  4.28M|{
   80|  4.28M|    return inValue;
   81|  4.28M|}
TLVReader.cpp:_ZL29nlByteOrderSwap16LittleToHostt:
   43|  7.83k|{
   44|  7.83k|    return inValue;
   45|  7.83k|}
TLVReader.cpp:_ZL29nlByteOrderSwap32LittleToHostj:
   61|  1.76k|{
   62|  1.76k|    return inValue;
   63|  1.76k|}
BytesToHex.cpp:_ZL26nlByteOrderSwap64HostToBigm:
  241|    860|{
  242|    860|    return nlByteOrderValueSwap64(inValue);
  243|    860|}
BytesToHex.cpp:_ZL26nlByteOrderSwap32HostToBigj:
  223|    264|{
  224|    264|    return nlByteOrderValueSwap32(inValue);
  225|    264|}
BytesToHex.cpp:_ZL26nlByteOrderSwap64BigToHostm:
  187|    306|{
  188|    306|    return nlByteOrderValueSwap64(inValue);
  189|    306|}
BytesToHex.cpp:_ZL26nlByteOrderSwap32BigToHostj:
  169|     97|{
  170|     97|    return nlByteOrderValueSwap32(inValue);
  171|     97|}

BytesToHex.cpp:_ZL22nlByteOrderValueSwap64m:
  258|  1.16k|{
  259|  1.16k|    return __nlBYTEORDER_BSWAP64(inValue);
  ------------------
  |  |   58|  1.16k|#define __nlBYTEORDER_BSWAP64 __builtin_bswap64
  ------------------
  260|  1.16k|}
BytesToHex.cpp:_ZL22nlByteOrderValueSwap32j:
  245|    361|{
  246|    361|    return __nlBYTEORDER_BSWAP32(inValue);
  ------------------
  |  |   52|    361|#define __nlBYTEORDER_BSWAP32 __builtin_bswap32
  ------------------
  247|    361|}

_ZN2nl9ByteOrder18Swap16LittleToHostEt:
  160|  7.83k|        {
  161|  7.83k|            return nlByteOrderSwap16LittleToHost(inValue);
  162|  7.83k|        }
_ZN2nl9ByteOrder18Swap32LittleToHostEj:
  178|  1.76k|        {
  179|  1.76k|            return nlByteOrderSwap32LittleToHost(inValue);
  180|  1.76k|        }
_ZN2nl9ByteOrder18Swap64LittleToHostEm:
  196|  4.28M|        {
  197|  4.28M|            return nlByteOrderSwap64LittleToHost(inValue);
  198|  4.28M|        }
_ZN2nl9ByteOrder15Swap32BigToHostEj:
  286|     97|        {
  287|     97|            return nlByteOrderSwap32BigToHost(inValue);
  288|     97|        }
_ZN2nl9ByteOrder15Swap64BigToHostEm:
  304|    306|        {
  305|    306|            return nlByteOrderSwap64BigToHost(inValue);
  306|    306|        }
_ZN2nl9ByteOrder15Swap32HostToBigEj:
  340|    264|        {
  341|    264|            return nlByteOrderSwap32HostToBig(inValue);
  342|    264|        }
_ZN2nl9ByteOrder15Swap64HostToBigEm:
  358|    860|        {
  359|    860|            return nlByteOrderSwap64HostToBig(inValue);
  360|    860|        }

TLVReader.cpp:_ZL9nlIORead8PPKv:
  982|  63.4k|{
  983|  63.4k|    return nlIOReadAligned8(p);
  984|  63.4k|}
TLVReader.cpp:_ZL16nlIOReadAligned8PPKv:
  447|  63.4k|{
  448|  63.4k|    const uint8_t temp = nlIOGetAligned8(*p);
  449|       |
  450|  63.4k|    *(const uint8_t **)(p) += sizeof (uint8_t);
  451|       |
  452|  63.4k|    return temp;
  453|  63.4k|}
TLVReader.cpp:_ZL15nlIOGetAligned8PKv:
   83|  63.4k|{
   84|  63.4k|    return *(const uint8_t *)(p);
   85|  63.4k|}
TLVReader.cpp:_ZL19nlIOReadUnaligned16PPKv:
  542|  7.83k|{
  543|  7.83k|    const uint16_t temp = nlIOGetUnaligned16(*p);
  544|       |
  545|  7.83k|    *(const uint8_t **)(p) += sizeof (uint16_t);
  546|       |
  547|  7.83k|    return temp;
  548|  7.83k|}
TLVReader.cpp:_ZL18nlIOGetUnaligned16PKv:
  148|  7.83k|{
  149|  7.83k|    uint16_t temp;
  150|       |
  151|  7.83k|    __nlIO_MEMCPY(&temp, p, sizeof(uint16_t));
  ------------------
  |  |   44|  7.83k|#define __nlIO_MEMCPY __builtin_memcpy
  ------------------
  152|       |
  153|  7.83k|    return temp;
  154|  7.83k|}
TLVReader.cpp:_ZL19nlIOReadUnaligned32PPKv:
  561|  1.76k|{
  562|  1.76k|    const uint32_t temp = nlIOGetUnaligned32(*p);
  563|       |
  564|  1.76k|    *(const uint8_t **)(p) += sizeof (uint32_t);
  565|       |
  566|  1.76k|    return temp;
  567|  1.76k|}
TLVReader.cpp:_ZL18nlIOGetUnaligned32PKv:
  165|  1.76k|{
  166|  1.76k|    uint32_t temp;
  167|       |
  168|  1.76k|    __nlIO_MEMCPY(&temp, p, sizeof(uint32_t));
  ------------------
  |  |   44|  1.76k|#define __nlIO_MEMCPY __builtin_memcpy
  ------------------
  169|       |
  170|  1.76k|    return temp;
  171|  1.76k|}
BytesToHex.cpp:_ZL18nlIOPutUnaligned64Pvm:
  363|    860|{
  364|    860|    __nlIO_MEMCPY(p, &v, sizeof(uint64_t));
  ------------------
  |  |   44|    860|#define __nlIO_MEMCPY __builtin_memcpy
  ------------------
  365|    860|}
BytesToHex.cpp:_ZL18nlIOPutUnaligned32Pvj:
  349|    264|{
  350|    264|    __nlIO_MEMCPY(p, &v, sizeof(uint32_t));
  ------------------
  |  |   44|    264|#define __nlIO_MEMCPY __builtin_memcpy
  ------------------
  351|    264|}
BytesToHex.cpp:_ZL18nlIOGetUnaligned64PKv:
  182|    306|{
  183|    306|    uint64_t temp;
  184|       |
  185|    306|    __nlIO_MEMCPY(&temp, p, sizeof(uint64_t));
  ------------------
  |  |   44|    306|#define __nlIO_MEMCPY __builtin_memcpy
  ------------------
  186|       |
  187|    306|    return temp;
  188|    306|}
BytesToHex.cpp:_ZL18nlIOGetUnaligned32PKv:
  165|     97|{
  166|     97|    uint32_t temp;
  167|       |
  168|     97|    __nlIO_MEMCPY(&temp, p, sizeof(uint32_t));
  ------------------
  |  |   44|     97|#define __nlIO_MEMCPY __builtin_memcpy
  ------------------
  169|       |
  170|     97|    return temp;
  171|     97|}

TLVReader.cpp:_ZN2nl2IOL5Read8ERPKv:
  901|  63.4k|{
  902|  63.4k|    return nlIORead8(&p);
  903|  63.4k|}
TLVReader.cpp:_ZN2nl2IOL15ReadUnaligned16ERPKv:
  488|  7.83k|{
  489|  7.83k|    return nlIOReadUnaligned16(&p);
  490|  7.83k|}
TLVReader.cpp:_ZN2nl2IOL15ReadUnaligned32ERPKv:
  503|  1.76k|{
  504|  1.76k|    return nlIOReadUnaligned32(&p);
  505|  1.76k|}
BytesToHex.cpp:_ZN2nl2IOL14PutUnaligned64EPvm:
  338|    860|{
  339|    860|    nlIOPutUnaligned64(p, v);
  340|    860|}
BytesToHex.cpp:_ZN2nl2IOL14PutUnaligned32EPvj:
  324|    264|{
  325|    264|    nlIOPutUnaligned32(p, v);
  326|    264|}
BytesToHex.cpp:_ZN2nl2IOL14GetUnaligned64EPKv:
  170|    306|{
  171|    306|    return nlIOGetUnaligned64(p);
  172|    306|}
BytesToHex.cpp:_ZN2nl2IOL14GetUnaligned32EPKv:
  157|     97|{
  158|     97|    return nlIOGetUnaligned32(p);
  159|     97|}

BytesToHex.cpp:_ZN2nl2IO9BigEndianL14PutUnaligned64EPvm:
  756|    860|{
  757|    860|    IO::PutUnaligned64(p, ByteOrder::Swap64HostToBig(v));
  758|    860|}
BytesToHex.cpp:_ZN2nl2IO9BigEndianL14PutUnaligned32EPvj:
  738|    264|{
  739|    264|    IO::PutUnaligned32(p, ByteOrder::Swap32HostToBig(v));
  740|    264|}
BytesToHex.cpp:_ZN2nl2IO9BigEndianL14GetUnaligned64EPKv:
  684|    306|{
  685|    306|    return ByteOrder::Swap64BigToHost(IO::GetUnaligned64(p));
  686|    306|}
BytesToHex.cpp:_ZN2nl2IO9BigEndianL14GetUnaligned32EPKv:
  668|     97|{
  669|     97|    return ByteOrder::Swap32BigToHost(IO::GetUnaligned32(p));
  670|     97|}

TLVReader.cpp:_ZN2nl2IO12LittleEndianL15ReadUnaligned16ERPKv:
  794|  7.83k|{
  795|  7.83k|    return ByteOrder::Swap16LittleToHost(IO::ReadUnaligned16(p));
  796|  7.83k|}
TLVReader.cpp:_ZN2nl2IO12LittleEndianL15ReadUnaligned32ERPKv:
  813|  1.76k|{
  814|  1.76k|    return ByteOrder::Swap32LittleToHost(IO::ReadUnaligned32(p));
  815|  1.76k|}

