_ZN11flatbuffers12EndianScalarIjEET_S1_:
  415|  1.25M|template<typename T> T EndianScalar(T t) {
  416|  1.25M|  #if FLATBUFFERS_LITTLEENDIAN
  417|  1.25M|    return t;
  418|       |  #else
  419|       |    return EndianSwap(t);
  420|       |  #endif
  421|  1.25M|}
_ZN11flatbuffers12EndianScalarIiEET_S1_:
  415|  1.31M|template<typename T> T EndianScalar(T t) {
  416|  1.31M|  #if FLATBUFFERS_LITTLEENDIAN
  417|  1.31M|    return t;
  418|       |  #else
  419|       |    return EndianSwap(t);
  420|       |  #endif
  421|  1.31M|}
_ZN11flatbuffers12EndianScalarIdEET_S1_:
  415|  9.15k|template<typename T> T EndianScalar(T t) {
  416|  9.15k|  #if FLATBUFFERS_LITTLEENDIAN
  417|  9.15k|    return t;
  418|       |  #else
  419|       |    return EndianSwap(t);
  420|       |  #endif
  421|  9.15k|}
_ZN11flatbuffers10ReadScalarIiEET_PKv:
  426|  1.30M|T ReadScalar(const void *p) {
  427|  1.30M|  return EndianScalar(*reinterpret_cast<const T *>(p));
  428|  1.30M|}
_ZN11flatbuffers10ReadScalarItEET_PKv:
  426|  1.78M|T ReadScalar(const void *p) {
  427|  1.78M|  return EndianScalar(*reinterpret_cast<const T *>(p));
  428|  1.78M|}
_ZN11flatbuffers12EndianScalarItEET_S1_:
  415|  1.78M|template<typename T> T EndianScalar(T t) {
  416|  1.78M|  #if FLATBUFFERS_LITTLEENDIAN
  417|  1.78M|    return t;
  418|       |  #else
  419|       |    return EndianSwap(t);
  420|       |  #endif
  421|  1.78M|}
_ZN11flatbuffers10ReadScalarImEET_PKv:
  426|  16.3k|T ReadScalar(const void *p) {
  427|  16.3k|  return EndianScalar(*reinterpret_cast<const T *>(p));
  428|  16.3k|}
_ZN11flatbuffers12EndianScalarImEET_S1_:
  415|  19.0k|template<typename T> T EndianScalar(T t) {
  416|  19.0k|  #if FLATBUFFERS_LITTLEENDIAN
  417|  19.0k|    return t;
  418|       |  #else
  419|       |    return EndianSwap(t);
  420|       |  #endif
  421|  19.0k|}
_ZN11flatbuffers10ReadScalarIjEET_PKv:
  426|   426k|T ReadScalar(const void *p) {
  427|   426k|  return EndianScalar(*reinterpret_cast<const T *>(p));
  428|   426k|}
_ZN11flatbuffers12EndianScalarIhEET_S1_:
  415|  2.75M|template<typename T> T EndianScalar(T t) {
  416|  2.75M|  #if FLATBUFFERS_LITTLEENDIAN
  417|  2.75M|    return t;
  418|       |  #else
  419|       |    return EndianSwap(t);
  420|       |  #endif
  421|  2.75M|}

_ZN11flatbuffers19BufferHasIdentifierEPKvPKcb:
  168|      2|                                bool size_prefixed = false) {
  169|      2|  return strncmp(GetBufferIdentifier(buf, size_prefixed), identifier,
  170|      2|                 flatbuffers::kFileIdentifierLength) == 0;
  171|      2|}
_ZN11flatbuffers19GetBufferIdentifierEPKvb:
  161|      2|                                       bool size_prefixed = false) {
  162|      2|  return reinterpret_cast<const char *>(buf) +
  163|      2|         ((size_prefixed) ? 2 * sizeof(uoffset_t) : sizeof(uoffset_t));
  ------------------
  |  Branch (163:11): [True: 0, False: 2]
  ------------------
  164|      2|}
_ZN11flatbuffers14IndirectHelperINS_6OffsetIN10reflection6ObjectEEEE4ReadEPKhj:
  115|      6|  static return_type Read(const uint8_t *const p, const offset_type i) {
  116|       |    // Offsets are relative to themselves, so first update the pointer to
  117|       |    // point to the offset location.
  118|      6|    const uint8_t *const offset_location = p + i * element_stride;
  119|       |
  120|       |    // Then read the scalar value of the offset (which may be 32 or 64-bits) and
  121|       |    // then determine the relative location from the offset location.
  122|      6|    return reinterpret_cast<return_type>(
  123|      6|        offset_location + ReadScalar<offset_type>(offset_location));
  124|      6|  }
_ZN11flatbuffers14IndirectHelperINS_6OffsetIN10reflection5FieldEEEE4ReadEPKhj:
  115|     46|  static return_type Read(const uint8_t *const p, const offset_type i) {
  116|       |    // Offsets are relative to themselves, so first update the pointer to
  117|       |    // point to the offset location.
  118|     46|    const uint8_t *const offset_location = p + i * element_stride;
  119|       |
  120|       |    // Then read the scalar value of the offset (which may be 32 or 64-bits) and
  121|       |    // then determine the relative location from the offset location.
  122|     46|    return reinterpret_cast<return_type>(
  123|     46|        offset_location + ReadScalar<offset_type>(offset_location));
  124|     46|  }
_ZN11flatbuffers14IndirectHelperINS_6OffsetIN10reflection10SchemaFileEEEE4ReadEPKhj:
  115|      2|  static return_type Read(const uint8_t *const p, const offset_type i) {
  116|       |    // Offsets are relative to themselves, so first update the pointer to
  117|       |    // point to the offset location.
  118|      2|    const uint8_t *const offset_location = p + i * element_stride;
  119|       |
  120|       |    // Then read the scalar value of the offset (which may be 32 or 64-bits) and
  121|       |    // then determine the relative location from the offset location.
  122|      2|    return reinterpret_cast<return_type>(
  123|      2|        offset_location + ReadScalar<offset_type>(offset_location));
  124|      2|  }
_ZN11flatbuffers14IndirectHelperINS_6OffsetI12WrapperTableEEE4ReadEPKhj:
  115|   411k|  static return_type Read(const uint8_t *const p, const offset_type i) {
  116|       |    // Offsets are relative to themselves, so first update the pointer to
  117|       |    // point to the offset location.
  118|   411k|    const uint8_t *const offset_location = p + i * element_stride;
  119|       |
  120|       |    // Then read the scalar value of the offset (which may be 32 or 64-bits) and
  121|       |    // then determine the relative location from the offset location.
  122|   411k|    return reinterpret_cast<return_type>(
  123|   411k|        offset_location + ReadScalar<offset_type>(offset_location));
  124|   411k|  }
_ZN11flatbuffers19GetSizePrefixedRootI9RootTablemEEPKT_PKv:
  193|    131|const T *GetSizePrefixedRoot(const void *buf) {
  194|    131|  return GetRoot<T>(reinterpret_cast<const uint8_t *>(buf) + sizeof(SizeT));
  195|    131|}
_ZN11flatbuffers7GetRootI9RootTableEEPKT_PKv:
  188|    800|template<typename T> const T *GetRoot(const void *buf) {
  189|    800|  return GetMutableRoot<T>(const_cast<void *>(buf));
  190|    800|}
_ZN11flatbuffers14GetMutableRootI9RootTableEEPT_Pv:
  175|    800|template<typename T> T *GetMutableRoot(void *buf) {
  176|    800|  if (!buf) return nullptr;
  ------------------
  |  Branch (176:7): [True: 0, False: 800]
  ------------------
  177|    800|  EndianCheck();
  178|    800|  return reinterpret_cast<T *>(
  179|    800|      reinterpret_cast<uint8_t *>(buf) +
  180|    800|      EndianScalar(*reinterpret_cast<uoffset_t *>(buf)));
  181|    800|}
_ZN11flatbuffers11EndianCheckEv:
   55|    800|inline void EndianCheck() {
   56|    800|  int endiantest = 1;
   57|       |  // If this fails, see FLATBUFFERS_LITTLEENDIAN above.
   58|    800|  FLATBUFFERS_ASSERT(*reinterpret_cast<char *>(&endiantest) ==
   59|    800|                     FLATBUFFERS_LITTLEENDIAN);
   60|      0|  (void)endiantest;
   61|    800|}
_ZN11flatbuffers14IndirectHelperIhE4ReadEPKhm:
   98|  2.75M|  static return_type Read(const uint8_t *p, const size_t i) {
   99|  2.75M|    return EndianScalar((reinterpret_cast<const T *>(p))[i]);
  100|  2.75M|  }
_ZN11flatbuffers14IndirectHelperIPK10LeafStructE4ReadEPKhm:
  143|  9.15k|  static return_type Read(const uint8_t *const p, const size_t i) {
  144|       |    // Structs are stored inline, relative to the first struct pointer.
  145|  9.15k|    return reinterpret_cast<return_type>(p + i * element_stride);
  146|  9.15k|  }

_ZN10reflection18VerifySchemaBufferERN11flatbuffers8VerifierE:
 1460|      2|    ::flatbuffers::Verifier &verifier) {
 1461|      2|  return verifier.VerifyBuffer<reflection::Schema>(SchemaIdentifier());
 1462|      2|}
_ZNK10reflection6Schema6VerifyERN11flatbuffers8VerifierE:
 1321|      2|  bool Verify(::flatbuffers::Verifier &verifier) const {
 1322|      2|    return VerifyTableStart(verifier) &&
  ------------------
  |  Branch (1322:12): [True: 2, False: 0]
  ------------------
 1323|      2|           VerifyOffsetRequired(verifier, VT_OBJECTS) &&
  ------------------
  |  Branch (1323:12): [True: 2, False: 0]
  ------------------
 1324|      2|           verifier.VerifyVector(objects()) &&
  ------------------
  |  Branch (1324:12): [True: 2, False: 0]
  ------------------
 1325|      2|           verifier.VerifyVectorOfTables(objects()) &&
  ------------------
  |  Branch (1325:12): [True: 2, False: 0]
  ------------------
 1326|      2|           VerifyOffsetRequired(verifier, VT_ENUMS) &&
  ------------------
  |  Branch (1326:12): [True: 2, False: 0]
  ------------------
 1327|      2|           verifier.VerifyVector(enums()) &&
  ------------------
  |  Branch (1327:12): [True: 2, False: 0]
  ------------------
 1328|      2|           verifier.VerifyVectorOfTables(enums()) &&
  ------------------
  |  Branch (1328:12): [True: 2, False: 0]
  ------------------
 1329|      2|           VerifyOffset(verifier, VT_FILE_IDENT) &&
  ------------------
  |  Branch (1329:12): [True: 2, False: 0]
  ------------------
 1330|      2|           verifier.VerifyString(file_ident()) &&
  ------------------
  |  Branch (1330:12): [True: 2, False: 0]
  ------------------
 1331|      2|           VerifyOffset(verifier, VT_FILE_EXT) &&
  ------------------
  |  Branch (1331:12): [True: 2, False: 0]
  ------------------
 1332|      2|           verifier.VerifyString(file_ext()) &&
  ------------------
  |  Branch (1332:12): [True: 2, False: 0]
  ------------------
 1333|      2|           VerifyOffset(verifier, VT_ROOT_TABLE) &&
  ------------------
  |  Branch (1333:12): [True: 2, False: 0]
  ------------------
 1334|      2|           verifier.VerifyTable(root_table()) &&
  ------------------
  |  Branch (1334:12): [True: 2, False: 0]
  ------------------
 1335|      2|           VerifyOffset(verifier, VT_SERVICES) &&
  ------------------
  |  Branch (1335:12): [True: 2, False: 0]
  ------------------
 1336|      2|           verifier.VerifyVector(services()) &&
  ------------------
  |  Branch (1336:12): [True: 2, False: 0]
  ------------------
 1337|      2|           verifier.VerifyVectorOfTables(services()) &&
  ------------------
  |  Branch (1337:12): [True: 2, False: 0]
  ------------------
 1338|      2|           VerifyField<uint64_t>(verifier, VT_ADVANCED_FEATURES, 8) &&
  ------------------
  |  Branch (1338:12): [True: 2, False: 0]
  ------------------
 1339|      2|           VerifyOffset(verifier, VT_FBS_FILES) &&
  ------------------
  |  Branch (1339:12): [True: 2, False: 0]
  ------------------
 1340|      2|           verifier.VerifyVector(fbs_files()) &&
  ------------------
  |  Branch (1340:12): [True: 2, False: 0]
  ------------------
 1341|      2|           verifier.VerifyVectorOfTables(fbs_files()) &&
  ------------------
  |  Branch (1341:12): [True: 2, False: 0]
  ------------------
 1342|      2|           verifier.EndTable();
  ------------------
  |  Branch (1342:12): [True: 2, False: 0]
  ------------------
 1343|      2|  }
_ZNK10reflection6Schema7objectsEv:
 1295|      4|  const ::flatbuffers::Vector<::flatbuffers::Offset<reflection::Object>> *objects() const {
 1296|      4|    return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<reflection::Object>> *>(VT_OBJECTS);
 1297|      4|  }
_ZNK10reflection6Object6VerifyERN11flatbuffers8VerifierE:
  859|      8|  bool Verify(::flatbuffers::Verifier &verifier) const {
  860|      8|    return VerifyTableStart(verifier) &&
  ------------------
  |  Branch (860:12): [True: 8, False: 0]
  ------------------
  861|      8|           VerifyOffsetRequired(verifier, VT_NAME) &&
  ------------------
  |  Branch (861:12): [True: 8, False: 0]
  ------------------
  862|      8|           verifier.VerifyString(name()) &&
  ------------------
  |  Branch (862:12): [True: 8, False: 0]
  ------------------
  863|      8|           VerifyOffsetRequired(verifier, VT_FIELDS) &&
  ------------------
  |  Branch (863:12): [True: 8, False: 0]
  ------------------
  864|      8|           verifier.VerifyVector(fields()) &&
  ------------------
  |  Branch (864:12): [True: 8, False: 0]
  ------------------
  865|      8|           verifier.VerifyVectorOfTables(fields()) &&
  ------------------
  |  Branch (865:12): [True: 8, False: 0]
  ------------------
  866|      8|           VerifyField<uint8_t>(verifier, VT_IS_STRUCT, 1) &&
  ------------------
  |  Branch (866:12): [True: 8, False: 0]
  ------------------
  867|      8|           VerifyField<int32_t>(verifier, VT_MINALIGN, 4) &&
  ------------------
  |  Branch (867:12): [True: 8, False: 0]
  ------------------
  868|      8|           VerifyField<int32_t>(verifier, VT_BYTESIZE, 4) &&
  ------------------
  |  Branch (868:12): [True: 8, False: 0]
  ------------------
  869|      8|           VerifyOffset(verifier, VT_ATTRIBUTES) &&
  ------------------
  |  Branch (869:12): [True: 8, False: 0]
  ------------------
  870|      8|           verifier.VerifyVector(attributes()) &&
  ------------------
  |  Branch (870:12): [True: 8, False: 0]
  ------------------
  871|      8|           verifier.VerifyVectorOfTables(attributes()) &&
  ------------------
  |  Branch (871:12): [True: 8, False: 0]
  ------------------
  872|      8|           VerifyOffset(verifier, VT_DOCUMENTATION) &&
  ------------------
  |  Branch (872:12): [True: 8, False: 0]
  ------------------
  873|      8|           verifier.VerifyVector(documentation()) &&
  ------------------
  |  Branch (873:12): [True: 8, False: 0]
  ------------------
  874|      8|           verifier.VerifyVectorOfStrings(documentation()) &&
  ------------------
  |  Branch (874:12): [True: 8, False: 0]
  ------------------
  875|      8|           VerifyOffset(verifier, VT_DECLARATION_FILE) &&
  ------------------
  |  Branch (875:12): [True: 8, False: 0]
  ------------------
  876|      8|           verifier.VerifyString(declaration_file()) &&
  ------------------
  |  Branch (876:12): [True: 8, False: 0]
  ------------------
  877|      8|           verifier.EndTable();
  ------------------
  |  Branch (877:12): [True: 8, False: 0]
  ------------------
  878|      8|  }
_ZNK10reflection6Object4nameEv:
  828|      8|  const ::flatbuffers::String *name() const {
  829|      8|    return GetPointer<const ::flatbuffers::String *>(VT_NAME);
  830|      8|  }
_ZNK10reflection6Object6fieldsEv:
  837|     16|  const ::flatbuffers::Vector<::flatbuffers::Offset<reflection::Field>> *fields() const {
  838|     16|    return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<reflection::Field>> *>(VT_FIELDS);
  839|     16|  }
_ZNK10reflection5Field6VerifyERN11flatbuffers8VerifierE:
  660|     46|  bool Verify(::flatbuffers::Verifier &verifier) const {
  661|     46|    return VerifyTableStart(verifier) &&
  ------------------
  |  Branch (661:12): [True: 46, False: 0]
  ------------------
  662|     46|           VerifyOffsetRequired(verifier, VT_NAME) &&
  ------------------
  |  Branch (662:12): [True: 46, False: 0]
  ------------------
  663|     46|           verifier.VerifyString(name()) &&
  ------------------
  |  Branch (663:12): [True: 46, False: 0]
  ------------------
  664|     46|           VerifyOffsetRequired(verifier, VT_TYPE) &&
  ------------------
  |  Branch (664:12): [True: 46, False: 0]
  ------------------
  665|     46|           verifier.VerifyTable(type()) &&
  ------------------
  |  Branch (665:12): [True: 46, False: 0]
  ------------------
  666|     46|           VerifyField<uint16_t>(verifier, VT_ID, 2) &&
  ------------------
  |  Branch (666:12): [True: 46, False: 0]
  ------------------
  667|     46|           VerifyField<uint16_t>(verifier, VT_OFFSET, 2) &&
  ------------------
  |  Branch (667:12): [True: 46, False: 0]
  ------------------
  668|     46|           VerifyField<int64_t>(verifier, VT_DEFAULT_INTEGER, 8) &&
  ------------------
  |  Branch (668:12): [True: 46, False: 0]
  ------------------
  669|     46|           VerifyField<double>(verifier, VT_DEFAULT_REAL, 8) &&
  ------------------
  |  Branch (669:12): [True: 46, False: 0]
  ------------------
  670|     46|           VerifyField<uint8_t>(verifier, VT_DEPRECATED, 1) &&
  ------------------
  |  Branch (670:12): [True: 46, False: 0]
  ------------------
  671|     46|           VerifyField<uint8_t>(verifier, VT_REQUIRED, 1) &&
  ------------------
  |  Branch (671:12): [True: 46, False: 0]
  ------------------
  672|     46|           VerifyField<uint8_t>(verifier, VT_KEY, 1) &&
  ------------------
  |  Branch (672:12): [True: 46, False: 0]
  ------------------
  673|     46|           VerifyOffset(verifier, VT_ATTRIBUTES) &&
  ------------------
  |  Branch (673:12): [True: 46, False: 0]
  ------------------
  674|     46|           verifier.VerifyVector(attributes()) &&
  ------------------
  |  Branch (674:12): [True: 46, False: 0]
  ------------------
  675|     46|           verifier.VerifyVectorOfTables(attributes()) &&
  ------------------
  |  Branch (675:12): [True: 46, False: 0]
  ------------------
  676|     46|           VerifyOffset(verifier, VT_DOCUMENTATION) &&
  ------------------
  |  Branch (676:12): [True: 46, False: 0]
  ------------------
  677|     46|           verifier.VerifyVector(documentation()) &&
  ------------------
  |  Branch (677:12): [True: 46, False: 0]
  ------------------
  678|     46|           verifier.VerifyVectorOfStrings(documentation()) &&
  ------------------
  |  Branch (678:12): [True: 46, False: 0]
  ------------------
  679|     46|           VerifyField<uint8_t>(verifier, VT_OPTIONAL, 1) &&
  ------------------
  |  Branch (679:12): [True: 46, False: 0]
  ------------------
  680|     46|           VerifyField<uint16_t>(verifier, VT_PADDING, 2) &&
  ------------------
  |  Branch (680:12): [True: 46, False: 0]
  ------------------
  681|     46|           VerifyField<uint8_t>(verifier, VT_OFFSET64, 1) &&
  ------------------
  |  Branch (681:12): [True: 46, False: 0]
  ------------------
  682|     46|           verifier.EndTable();
  ------------------
  |  Branch (682:12): [True: 46, False: 0]
  ------------------
  683|     46|  }
_ZNK10reflection5Field4nameEv:
  610|     46|  const ::flatbuffers::String *name() const {
  611|     46|    return GetPointer<const ::flatbuffers::String *>(VT_NAME);
  612|     46|  }
_ZNK10reflection4Type6VerifyERN11flatbuffers8VerifierE:
  199|     46|  bool Verify(::flatbuffers::Verifier &verifier) const {
  200|     46|    return VerifyTableStart(verifier) &&
  ------------------
  |  Branch (200:12): [True: 46, False: 0]
  ------------------
  201|     46|           VerifyField<int8_t>(verifier, VT_BASE_TYPE, 1) &&
  ------------------
  |  Branch (201:12): [True: 46, False: 0]
  ------------------
  202|     46|           VerifyField<int8_t>(verifier, VT_ELEMENT, 1) &&
  ------------------
  |  Branch (202:12): [True: 46, False: 0]
  ------------------
  203|     46|           VerifyField<int32_t>(verifier, VT_INDEX, 4) &&
  ------------------
  |  Branch (203:12): [True: 46, False: 0]
  ------------------
  204|     46|           VerifyField<uint16_t>(verifier, VT_FIXED_LENGTH, 2) &&
  ------------------
  |  Branch (204:12): [True: 46, False: 0]
  ------------------
  205|     46|           VerifyField<uint32_t>(verifier, VT_BASE_SIZE, 4) &&
  ------------------
  |  Branch (205:12): [True: 46, False: 0]
  ------------------
  206|     46|           VerifyField<uint32_t>(verifier, VT_ELEMENT_SIZE, 4) &&
  ------------------
  |  Branch (206:12): [True: 46, False: 0]
  ------------------
  207|     46|           verifier.EndTable();
  ------------------
  |  Branch (207:12): [True: 46, False: 0]
  ------------------
  208|     46|  }
_ZNK10reflection5Field4typeEv:
  619|     46|  const reflection::Type *type() const {
  620|     46|    return GetPointer<const reflection::Type *>(VT_TYPE);
  621|     46|  }
_ZNK10reflection5Field10attributesEv:
  643|     92|  const ::flatbuffers::Vector<::flatbuffers::Offset<reflection::KeyValue>> *attributes() const {
  644|     92|    return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<reflection::KeyValue>> *>(VT_ATTRIBUTES);
  645|     92|  }
_ZNK10reflection5Field13documentationEv:
  646|     92|  const ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *documentation() const {
  647|     92|    return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *>(VT_DOCUMENTATION);
  648|     92|  }
_ZNK10reflection6Object10attributesEv:
  849|     16|  const ::flatbuffers::Vector<::flatbuffers::Offset<reflection::KeyValue>> *attributes() const {
  850|     16|    return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<reflection::KeyValue>> *>(VT_ATTRIBUTES);
  851|     16|  }
_ZNK10reflection6Object13documentationEv:
  852|     16|  const ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *documentation() const {
  853|     16|    return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *>(VT_DOCUMENTATION);
  854|     16|  }
_ZNK10reflection6Object16declaration_fileEv:
  856|      8|  const ::flatbuffers::String *declaration_file() const {
  857|      8|    return GetPointer<const ::flatbuffers::String *>(VT_DECLARATION_FILE);
  858|      8|  }
_ZNK10reflection6Schema5enumsEv:
 1298|      4|  const ::flatbuffers::Vector<::flatbuffers::Offset<reflection::Enum>> *enums() const {
 1299|      4|    return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<reflection::Enum>> *>(VT_ENUMS);
 1300|      4|  }
_ZNK10reflection6Schema10file_identEv:
 1301|      2|  const ::flatbuffers::String *file_ident() const {
 1302|      2|    return GetPointer<const ::flatbuffers::String *>(VT_FILE_IDENT);
 1303|      2|  }
_ZNK10reflection6Schema8file_extEv:
 1304|      2|  const ::flatbuffers::String *file_ext() const {
 1305|      2|    return GetPointer<const ::flatbuffers::String *>(VT_FILE_EXT);
 1306|      2|  }
_ZNK10reflection6Schema10root_tableEv:
 1307|      2|  const reflection::Object *root_table() const {
 1308|      2|    return GetPointer<const reflection::Object *>(VT_ROOT_TABLE);
 1309|      2|  }
_ZNK10reflection6Schema8servicesEv:
 1310|      4|  const ::flatbuffers::Vector<::flatbuffers::Offset<reflection::Service>> *services() const {
 1311|      4|    return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<reflection::Service>> *>(VT_SERVICES);
 1312|      4|  }
_ZNK10reflection6Schema9fbs_filesEv:
 1318|      4|  const ::flatbuffers::Vector<::flatbuffers::Offset<reflection::SchemaFile>> *fbs_files() const {
 1319|      4|    return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<reflection::SchemaFile>> *>(VT_FBS_FILES);
 1320|      4|  }
_ZNK10reflection10SchemaFile6VerifyERN11flatbuffers8VerifierE:
 1228|      2|  bool Verify(::flatbuffers::Verifier &verifier) const {
 1229|      2|    return VerifyTableStart(verifier) &&
  ------------------
  |  Branch (1229:12): [True: 2, False: 0]
  ------------------
 1230|      2|           VerifyOffsetRequired(verifier, VT_FILENAME) &&
  ------------------
  |  Branch (1230:12): [True: 2, False: 0]
  ------------------
 1231|      2|           verifier.VerifyString(filename()) &&
  ------------------
  |  Branch (1231:12): [True: 2, False: 0]
  ------------------
 1232|      2|           VerifyOffset(verifier, VT_INCLUDED_FILENAMES) &&
  ------------------
  |  Branch (1232:12): [True: 2, False: 0]
  ------------------
 1233|      2|           verifier.VerifyVector(included_filenames()) &&
  ------------------
  |  Branch (1233:12): [True: 2, False: 0]
  ------------------
 1234|      2|           verifier.VerifyVectorOfStrings(included_filenames()) &&
  ------------------
  |  Branch (1234:12): [True: 2, False: 0]
  ------------------
 1235|      2|           verifier.EndTable();
  ------------------
  |  Branch (1235:12): [True: 2, False: 0]
  ------------------
 1236|      2|  }
_ZNK10reflection10SchemaFile8filenameEv:
 1215|      2|  const ::flatbuffers::String *filename() const {
 1216|      2|    return GetPointer<const ::flatbuffers::String *>(VT_FILENAME);
 1217|      2|  }
_ZNK10reflection10SchemaFile18included_filenamesEv:
 1225|      4|  const ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *included_filenames() const {
 1226|      4|    return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *>(VT_INCLUDED_FILENAMES);
 1227|      4|  }
_ZN10reflection16SchemaIdentifierEv:
 1445|      2|inline const char *SchemaIdentifier() {
 1446|      2|  return "BFBS";
 1447|      2|}

_ZNK11flatbuffers6String3strEv:
   27|    540|  std::string str() const { return std::string(c_str(), size()); }
_ZNK11flatbuffers6String5c_strEv:
   26|    540|  const char *c_str() const { return reinterpret_cast<const char *>(Data()); }

_ZNK11flatbuffers5Table12GetPointer64IPKNS_6VectorIhjEEEET_t:
   66|  4.78k|  template<typename P> P GetPointer64(voffset_t field) const {
   67|  4.78k|    return GetPointer<P, uoffset64_t>(field);
   68|  4.78k|  }
_ZNK11flatbuffers5Table10GetPointerIPKNS_6VectorIhjEEmEET_t:
   58|  4.78k|  P GetPointer(voffset_t field) const {
   59|  4.78k|    return const_cast<Table *>(this)->GetPointer<P, OffsetSize>(field);
   60|  4.78k|  }
_ZN11flatbuffers5Table10GetPointerIPKNS_6VectorIhjEEmEET_t:
   51|  4.78k|  P GetPointer(voffset_t field) {
   52|  4.78k|    auto field_offset = GetOptionalFieldOffset(field);
   53|  4.78k|    auto p = data_ + field_offset;
   54|  4.78k|    return field_offset ? reinterpret_cast<P>(p + ReadScalar<OffsetSize>(p))
  ------------------
  |  Branch (54:12): [True: 626, False: 4.15k]
  ------------------
   55|  4.78k|                        : nullptr;
   56|  4.78k|  }
_ZNK11flatbuffers5Table22GetOptionalFieldOffsetEt:
   35|   893k|  voffset_t GetOptionalFieldOffset(voffset_t field) const {
   36|       |    // The vtable offset is always at the start.
   37|   893k|    auto vtable = GetVTable();
   38|       |    // The first element is the size of the vtable (fields + type id + itself).
   39|   893k|    auto vtsize = ReadScalar<voffset_t>(vtable);
   40|       |    // If the field we're accessing is outside the vtable, we're reading older
   41|       |    // data, so it's the same as if the offset was 0 (not present).
   42|   893k|    return field < vtsize ? ReadScalar<voffset_t>(vtable + field) : 0;
  ------------------
  |  Branch (42:12): [True: 59.1k, False: 833k]
  ------------------
   43|   893k|  }
_ZNK11flatbuffers5Table9GetVTableEv:
   29|   893k|  const uint8_t *GetVTable() const {
   30|   893k|    return data_ - ReadScalar<soffset_t>(data_);
   31|   893k|  }
_ZNK11flatbuffers5Table8GetFieldIiEET_tS2_:
   45|    800|  template<typename T> T GetField(voffset_t field, T defaultval) const {
   46|    800|    auto field_offset = GetOptionalFieldOffset(field);
   47|    800|    return field_offset ? ReadScalar<T>(data_ + field_offset) : defaultval;
  ------------------
  |  Branch (47:12): [True: 176, False: 624]
  ------------------
   48|    800|  }
_ZNK11flatbuffers5Table12GetPointer64IPKNS_6StringEEET_t:
   66|  4.46k|  template<typename P> P GetPointer64(voffset_t field) const {
   67|  4.46k|    return GetPointer<P, uoffset64_t>(field);
   68|  4.46k|  }
_ZNK11flatbuffers5Table10GetPointerIPKNS_6StringEmEET_t:
   58|  4.46k|  P GetPointer(voffset_t field) const {
   59|  4.46k|    return const_cast<Table *>(this)->GetPointer<P, OffsetSize>(field);
   60|  4.46k|  }
_ZN11flatbuffers5Table10GetPointerIPKNS_6StringEmEET_t:
   51|  4.46k|  P GetPointer(voffset_t field) {
   52|  4.46k|    auto field_offset = GetOptionalFieldOffset(field);
   53|  4.46k|    auto p = data_ + field_offset;
   54|  4.46k|    return field_offset ? reinterpret_cast<P>(p + ReadScalar<OffsetSize>(p))
  ------------------
  |  Branch (54:12): [True: 1.49k, False: 2.97k]
  ------------------
   55|  4.46k|                        : nullptr;
   56|  4.46k|  }
_ZNK11flatbuffers5Table12GetPointer64IPKNS_6VectorIhmEEEET_t:
   66|  13.0k|  template<typename P> P GetPointer64(voffset_t field) const {
   67|  13.0k|    return GetPointer<P, uoffset64_t>(field);
   68|  13.0k|  }
_ZNK11flatbuffers5Table10GetPointerIPKNS_6VectorIhmEEmEET_t:
   58|  13.0k|  P GetPointer(voffset_t field) const {
   59|  13.0k|    return const_cast<Table *>(this)->GetPointer<P, OffsetSize>(field);
   60|  13.0k|  }
_ZN11flatbuffers5Table10GetPointerIPKNS_6VectorIhmEEmEET_t:
   51|  13.0k|  P GetPointer(voffset_t field) {
   52|  13.0k|    auto field_offset = GetOptionalFieldOffset(field);
   53|  13.0k|    auto p = data_ + field_offset;
   54|  13.0k|    return field_offset ? reinterpret_cast<P>(p + ReadScalar<OffsetSize>(p))
  ------------------
  |  Branch (54:12): [True: 3.75k, False: 9.27k]
  ------------------
   55|  13.0k|                        : nullptr;
   56|  13.0k|  }
_ZNK11flatbuffers5Table10GetPointerIPKNS_6StringEjEET_t:
   58|  3.98k|  P GetPointer(voffset_t field) const {
   59|  3.98k|    return const_cast<Table *>(this)->GetPointer<P, OffsetSize>(field);
   60|  3.98k|  }
_ZN11flatbuffers5Table10GetPointerIPKNS_6StringEjEET_t:
   51|  3.98k|  P GetPointer(voffset_t field) {
   52|  3.98k|    auto field_offset = GetOptionalFieldOffset(field);
   53|  3.98k|    auto p = data_ + field_offset;
   54|  3.98k|    return field_offset ? reinterpret_cast<P>(p + ReadScalar<OffsetSize>(p))
  ------------------
  |  Branch (54:12): [True: 1.40k, False: 2.58k]
  ------------------
   55|  3.98k|                        : nullptr;
   56|  3.98k|  }
_ZNK11flatbuffers5Table12GetPointer64IPKNS_6VectorIPK10LeafStructjEEEET_t:
   66|  3.33k|  template<typename P> P GetPointer64(voffset_t field) const {
   67|  3.33k|    return GetPointer<P, uoffset64_t>(field);
   68|  3.33k|  }
_ZNK11flatbuffers5Table10GetPointerIPKNS_6VectorIPK10LeafStructjEEmEET_t:
   58|  3.33k|  P GetPointer(voffset_t field) const {
   59|  3.33k|    return const_cast<Table *>(this)->GetPointer<P, OffsetSize>(field);
   60|  3.33k|  }
_ZN11flatbuffers5Table10GetPointerIPKNS_6VectorIPK10LeafStructjEEmEET_t:
   51|  3.33k|  P GetPointer(voffset_t field) {
   52|  3.33k|    auto field_offset = GetOptionalFieldOffset(field);
   53|  3.33k|    auto p = data_ + field_offset;
   54|  3.33k|    return field_offset ? reinterpret_cast<P>(p + ReadScalar<OffsetSize>(p))
  ------------------
  |  Branch (54:12): [True: 666, False: 2.66k]
  ------------------
   55|  3.33k|                        : nullptr;
   56|  3.33k|  }
_ZNK11flatbuffers5Table12GetPointer64IPKNS_6VectorIPK10LeafStructmEEEET_t:
   66|  3.22k|  template<typename P> P GetPointer64(voffset_t field) const {
   67|  3.22k|    return GetPointer<P, uoffset64_t>(field);
   68|  3.22k|  }
_ZNK11flatbuffers5Table10GetPointerIPKNS_6VectorIPK10LeafStructmEEmEET_t:
   58|  3.22k|  P GetPointer(voffset_t field) const {
   59|  3.22k|    return const_cast<Table *>(this)->GetPointer<P, OffsetSize>(field);
   60|  3.22k|  }
_ZN11flatbuffers5Table10GetPointerIPKNS_6VectorIPK10LeafStructmEEmEET_t:
   51|  3.22k|  P GetPointer(voffset_t field) {
   52|  3.22k|    auto field_offset = GetOptionalFieldOffset(field);
   53|  3.22k|    auto p = data_ + field_offset;
   54|  3.22k|    return field_offset ? reinterpret_cast<P>(p + ReadScalar<OffsetSize>(p))
  ------------------
  |  Branch (54:12): [True: 534, False: 2.69k]
  ------------------
   55|  3.22k|                        : nullptr;
   56|  3.22k|  }
_ZNK11flatbuffers5Table16VerifyTableStartERNS_8VerifierE:
  119|   416k|  bool VerifyTableStart(Verifier &verifier) const {
  120|   416k|    return verifier.VerifyTableStart(data_);
  121|   416k|  }
_ZNK11flatbuffers5Table20VerifyOffsetRequiredIjEEbRKNS_8VerifierEt:
  151|    114|  bool VerifyOffsetRequired(const Verifier &verifier, voffset_t field) const {
  152|    114|    auto field_offset = GetOptionalFieldOffset(field);
  153|    114|    return verifier.Check(field_offset != 0) &&
  ------------------
  |  Branch (153:12): [True: 114, False: 0]
  ------------------
  154|    114|           verifier.VerifyOffset<OffsetT>(data_, field_offset);
  ------------------
  |  Branch (154:12): [True: 114, False: 0]
  ------------------
  155|    114|  }
_ZNK11flatbuffers5Table10GetPointerIPKNS_6VectorINS_6OffsetIN10reflection6ObjectEEEjEEjEET_t:
   58|      4|  P GetPointer(voffset_t field) const {
   59|      4|    return const_cast<Table *>(this)->GetPointer<P, OffsetSize>(field);
   60|      4|  }
_ZN11flatbuffers5Table10GetPointerIPKNS_6VectorINS_6OffsetIN10reflection6ObjectEEEjEEjEET_t:
   51|      4|  P GetPointer(voffset_t field) {
   52|      4|    auto field_offset = GetOptionalFieldOffset(field);
   53|      4|    auto p = data_ + field_offset;
   54|      4|    return field_offset ? reinterpret_cast<P>(p + ReadScalar<OffsetSize>(p))
  ------------------
  |  Branch (54:12): [True: 4, False: 0]
  ------------------
   55|      4|                        : nullptr;
   56|      4|  }
_ZNK11flatbuffers5Table10GetPointerIPKNS_6VectorINS_6OffsetIN10reflection5FieldEEEjEEjEET_t:
   58|     16|  P GetPointer(voffset_t field) const {
   59|     16|    return const_cast<Table *>(this)->GetPointer<P, OffsetSize>(field);
   60|     16|  }
_ZN11flatbuffers5Table10GetPointerIPKNS_6VectorINS_6OffsetIN10reflection5FieldEEEjEEjEET_t:
   51|     16|  P GetPointer(voffset_t field) {
   52|     16|    auto field_offset = GetOptionalFieldOffset(field);
   53|     16|    auto p = data_ + field_offset;
   54|     16|    return field_offset ? reinterpret_cast<P>(p + ReadScalar<OffsetSize>(p))
  ------------------
  |  Branch (54:12): [True: 16, False: 0]
  ------------------
   55|     16|                        : nullptr;
   56|     16|  }
_ZNK11flatbuffers5Table11VerifyFieldIaEEbRKNS_8VerifierEtm:
  126|     92|                   size_t align) const {
  127|       |    // Calling GetOptionalFieldOffset should be safe now thanks to
  128|       |    // VerifyTable().
  129|     92|    auto field_offset = GetOptionalFieldOffset(field);
  130|       |    // Check the actual field.
  131|     92|    return !field_offset || verifier.VerifyField<T>(data_, field_offset, align);
  ------------------
  |  Branch (131:12): [True: 16, False: 76]
  |  Branch (131:29): [True: 76, False: 0]
  ------------------
  132|     92|  }
_ZNK11flatbuffers5Table11VerifyFieldIjEEbRKNS_8VerifierEtm:
  126|     92|                   size_t align) const {
  127|       |    // Calling GetOptionalFieldOffset should be safe now thanks to
  128|       |    // VerifyTable().
  129|     92|    auto field_offset = GetOptionalFieldOffset(field);
  130|       |    // Check the actual field.
  131|     92|    return !field_offset || verifier.VerifyField<T>(data_, field_offset, align);
  ------------------
  |  Branch (131:12): [True: 28, False: 64]
  |  Branch (131:29): [True: 64, False: 0]
  ------------------
  132|     92|  }
_ZNK11flatbuffers5Table10GetPointerIPKN10reflection4TypeEjEET_t:
   58|     46|  P GetPointer(voffset_t field) const {
   59|     46|    return const_cast<Table *>(this)->GetPointer<P, OffsetSize>(field);
   60|     46|  }
_ZN11flatbuffers5Table10GetPointerIPKN10reflection4TypeEjEET_t:
   51|     46|  P GetPointer(voffset_t field) {
   52|     46|    auto field_offset = GetOptionalFieldOffset(field);
   53|     46|    auto p = data_ + field_offset;
   54|     46|    return field_offset ? reinterpret_cast<P>(p + ReadScalar<OffsetSize>(p))
  ------------------
  |  Branch (54:12): [True: 46, False: 0]
  ------------------
   55|     46|                        : nullptr;
   56|     46|  }
_ZNK11flatbuffers5Table11VerifyFieldItEEbRKNS_8VerifierEtm:
  126|    184|                   size_t align) const {
  127|       |    // Calling GetOptionalFieldOffset should be safe now thanks to
  128|       |    // VerifyTable().
  129|    184|    auto field_offset = GetOptionalFieldOffset(field);
  130|       |    // Check the actual field.
  131|    184|    return !field_offset || verifier.VerifyField<T>(data_, field_offset, align);
  ------------------
  |  Branch (131:12): [True: 100, False: 84]
  |  Branch (131:29): [True: 84, False: 0]
  ------------------
  132|    184|  }
_ZNK11flatbuffers5Table11VerifyFieldIlEEbRKNS_8VerifierEtm:
  126|     46|                   size_t align) const {
  127|       |    // Calling GetOptionalFieldOffset should be safe now thanks to
  128|       |    // VerifyTable().
  129|     46|    auto field_offset = GetOptionalFieldOffset(field);
  130|       |    // Check the actual field.
  131|     46|    return !field_offset || verifier.VerifyField<T>(data_, field_offset, align);
  ------------------
  |  Branch (131:12): [True: 46, False: 0]
  |  Branch (131:29): [True: 0, False: 0]
  ------------------
  132|     46|  }
_ZNK11flatbuffers5Table11VerifyFieldIdEEbRKNS_8VerifierEtm:
  126|     46|                   size_t align) const {
  127|       |    // Calling GetOptionalFieldOffset should be safe now thanks to
  128|       |    // VerifyTable().
  129|     46|    auto field_offset = GetOptionalFieldOffset(field);
  130|       |    // Check the actual field.
  131|     46|    return !field_offset || verifier.VerifyField<T>(data_, field_offset, align);
  ------------------
  |  Branch (131:12): [True: 46, False: 0]
  |  Branch (131:29): [True: 0, False: 0]
  ------------------
  132|     46|  }
_ZNK11flatbuffers5Table10GetPointerIPKNS_6VectorINS_6OffsetIN10reflection8KeyValueEEEjEEjEET_t:
   58|    108|  P GetPointer(voffset_t field) const {
   59|    108|    return const_cast<Table *>(this)->GetPointer<P, OffsetSize>(field);
   60|    108|  }
_ZN11flatbuffers5Table10GetPointerIPKNS_6VectorINS_6OffsetIN10reflection8KeyValueEEEjEEjEET_t:
   51|    108|  P GetPointer(voffset_t field) {
   52|    108|    auto field_offset = GetOptionalFieldOffset(field);
   53|    108|    auto p = data_ + field_offset;
   54|    108|    return field_offset ? reinterpret_cast<P>(p + ReadScalar<OffsetSize>(p))
  ------------------
  |  Branch (54:12): [True: 0, False: 108]
  ------------------
   55|    108|                        : nullptr;
   56|    108|  }
_ZNK11flatbuffers5Table10GetPointerIPKNS_6VectorINS_6OffsetINS_6StringEEEjEEjEET_t:
   58|    112|  P GetPointer(voffset_t field) const {
   59|    112|    return const_cast<Table *>(this)->GetPointer<P, OffsetSize>(field);
   60|    112|  }
_ZN11flatbuffers5Table10GetPointerIPKNS_6VectorINS_6OffsetINS_6StringEEEjEEjEET_t:
   51|    112|  P GetPointer(voffset_t field) {
   52|    112|    auto field_offset = GetOptionalFieldOffset(field);
   53|    112|    auto p = data_ + field_offset;
   54|    112|    return field_offset ? reinterpret_cast<P>(p + ReadScalar<OffsetSize>(p))
  ------------------
  |  Branch (54:12): [True: 4, False: 108]
  ------------------
   55|    112|                        : nullptr;
   56|    112|  }
_ZNK11flatbuffers5Table11VerifyFieldIhEEbRKNS_8VerifierEtm:
  126|    238|                   size_t align) const {
  127|       |    // Calling GetOptionalFieldOffset should be safe now thanks to
  128|       |    // VerifyTable().
  129|    238|    auto field_offset = GetOptionalFieldOffset(field);
  130|       |    // Check the actual field.
  131|    238|    return !field_offset || verifier.VerifyField<T>(data_, field_offset, align);
  ------------------
  |  Branch (131:12): [True: 168, False: 70]
  |  Branch (131:29): [True: 70, False: 0]
  ------------------
  132|    238|  }
_ZNK11flatbuffers5Table11VerifyFieldIiEEbRKNS_8VerifierEtm:
  126|  3.95k|                   size_t align) const {
  127|       |    // Calling GetOptionalFieldOffset should be safe now thanks to
  128|       |    // VerifyTable().
  129|  3.95k|    auto field_offset = GetOptionalFieldOffset(field);
  130|       |    // Check the actual field.
  131|  3.95k|    return !field_offset || verifier.VerifyField<T>(data_, field_offset, align);
  ------------------
  |  Branch (131:12): [True: 3.12k, False: 822]
  |  Branch (131:29): [True: 792, False: 30]
  ------------------
  132|  3.95k|  }
_ZNK11flatbuffers5Table10GetPointerIPKNS_6VectorINS_6OffsetIN10reflection4EnumEEEjEEjEET_t:
   58|      4|  P GetPointer(voffset_t field) const {
   59|      4|    return const_cast<Table *>(this)->GetPointer<P, OffsetSize>(field);
   60|      4|  }
_ZN11flatbuffers5Table10GetPointerIPKNS_6VectorINS_6OffsetIN10reflection4EnumEEEjEEjEET_t:
   51|      4|  P GetPointer(voffset_t field) {
   52|      4|    auto field_offset = GetOptionalFieldOffset(field);
   53|      4|    auto p = data_ + field_offset;
   54|      4|    return field_offset ? reinterpret_cast<P>(p + ReadScalar<OffsetSize>(p))
  ------------------
  |  Branch (54:12): [True: 4, False: 0]
  ------------------
   55|      4|                        : nullptr;
   56|      4|  }
_ZNK11flatbuffers5Table12VerifyOffsetIjEEbRKNS_8VerifierEt:
  145|  5.60k|  bool VerifyOffset(const Verifier &verifier, voffset_t field) const {
  146|  5.60k|    auto field_offset = GetOptionalFieldOffset(field);
  147|  5.60k|    return !field_offset || verifier.VerifyOffset<OffsetT>(data_, field_offset);
  ------------------
  |  Branch (147:12): [True: 3.53k, False: 2.06k]
  |  Branch (147:29): [True: 1.94k, False: 126]
  ------------------
  148|  5.60k|  }
_ZNK11flatbuffers5Table10GetPointerIPKN10reflection6ObjectEjEET_t:
   58|      2|  P GetPointer(voffset_t field) const {
   59|      2|    return const_cast<Table *>(this)->GetPointer<P, OffsetSize>(field);
   60|      2|  }
_ZN11flatbuffers5Table10GetPointerIPKN10reflection6ObjectEjEET_t:
   51|      2|  P GetPointer(voffset_t field) {
   52|      2|    auto field_offset = GetOptionalFieldOffset(field);
   53|      2|    auto p = data_ + field_offset;
   54|      2|    return field_offset ? reinterpret_cast<P>(p + ReadScalar<OffsetSize>(p))
  ------------------
  |  Branch (54:12): [True: 2, False: 0]
  ------------------
   55|      2|                        : nullptr;
   56|      2|  }
_ZNK11flatbuffers5Table10GetPointerIPKNS_6VectorINS_6OffsetIN10reflection7ServiceEEEjEEjEET_t:
   58|      4|  P GetPointer(voffset_t field) const {
   59|      4|    return const_cast<Table *>(this)->GetPointer<P, OffsetSize>(field);
   60|      4|  }
_ZN11flatbuffers5Table10GetPointerIPKNS_6VectorINS_6OffsetIN10reflection7ServiceEEEjEEjEET_t:
   51|      4|  P GetPointer(voffset_t field) {
   52|      4|    auto field_offset = GetOptionalFieldOffset(field);
   53|      4|    auto p = data_ + field_offset;
   54|      4|    return field_offset ? reinterpret_cast<P>(p + ReadScalar<OffsetSize>(p))
  ------------------
  |  Branch (54:12): [True: 4, False: 0]
  ------------------
   55|      4|                        : nullptr;
   56|      4|  }
_ZNK11flatbuffers5Table11VerifyFieldImEEbRKNS_8VerifierEtm:
  126|      2|                   size_t align) const {
  127|       |    // Calling GetOptionalFieldOffset should be safe now thanks to
  128|       |    // VerifyTable().
  129|      2|    auto field_offset = GetOptionalFieldOffset(field);
  130|       |    // Check the actual field.
  131|      2|    return !field_offset || verifier.VerifyField<T>(data_, field_offset, align);
  ------------------
  |  Branch (131:12): [True: 2, False: 0]
  |  Branch (131:29): [True: 0, False: 0]
  ------------------
  132|      2|  }
_ZNK11flatbuffers5Table10GetPointerIPKNS_6VectorINS_6OffsetIN10reflection10SchemaFileEEEjEEjEET_t:
   58|      4|  P GetPointer(voffset_t field) const {
   59|      4|    return const_cast<Table *>(this)->GetPointer<P, OffsetSize>(field);
   60|      4|  }
_ZN11flatbuffers5Table10GetPointerIPKNS_6VectorINS_6OffsetIN10reflection10SchemaFileEEEjEEjEET_t:
   51|      4|  P GetPointer(voffset_t field) {
   52|      4|    auto field_offset = GetOptionalFieldOffset(field);
   53|      4|    auto p = data_ + field_offset;
   54|      4|    return field_offset ? reinterpret_cast<P>(p + ReadScalar<OffsetSize>(p))
  ------------------
  |  Branch (54:12): [True: 4, False: 0]
  ------------------
   55|      4|                        : nullptr;
   56|      4|  }
_ZNK11flatbuffers5Table14VerifyOffset64ERKNS_8VerifierEt:
  157|   432k|  bool VerifyOffset64(const Verifier &verifier, voffset_t field) const {
  158|   432k|    return VerifyOffset<uoffset64_t>(verifier, field);
  159|   432k|  }
_ZNK11flatbuffers5Table12VerifyOffsetImEEbRKNS_8VerifierEt:
  145|   432k|  bool VerifyOffset(const Verifier &verifier, voffset_t field) const {
  146|   432k|    auto field_offset = GetOptionalFieldOffset(field);
  147|   432k|    return !field_offset || verifier.VerifyOffset<OffsetT>(data_, field_offset);
  ------------------
  |  Branch (147:12): [True: 426k, False: 6.01k]
  |  Branch (147:29): [True: 5.12k, False: 890]
  ------------------
  148|   432k|  }
_ZNK11flatbuffers5Table10GetPointerIPKNS_6VectorINS_6OffsetI12WrapperTableEEjEEjEET_t:
   58|  4.36k|  P GetPointer(voffset_t field) const {
   59|  4.36k|    return const_cast<Table *>(this)->GetPointer<P, OffsetSize>(field);
   60|  4.36k|  }
_ZN11flatbuffers5Table10GetPointerIPKNS_6VectorINS_6OffsetI12WrapperTableEEjEEjEET_t:
   51|  4.36k|  P GetPointer(voffset_t field) {
   52|  4.36k|    auto field_offset = GetOptionalFieldOffset(field);
   53|  4.36k|    auto p = data_ + field_offset;
   54|  4.36k|    return field_offset ? reinterpret_cast<P>(p + ReadScalar<OffsetSize>(p))
  ------------------
  |  Branch (54:12): [True: 1.55k, False: 2.80k]
  ------------------
   55|  4.36k|                        : nullptr;
   56|  4.36k|  }
_ZNK11flatbuffers5Table12GetPointer64IPKNS_6VectorIajEEEET_t:
   66|   411k|  template<typename P> P GetPointer64(voffset_t field) const {
   67|   411k|    return GetPointer<P, uoffset64_t>(field);
   68|   411k|  }
_ZNK11flatbuffers5Table10GetPointerIPKNS_6VectorIajEEmEET_t:
   58|   411k|  P GetPointer(voffset_t field) const {
   59|   411k|    return const_cast<Table *>(this)->GetPointer<P, OffsetSize>(field);
   60|   411k|  }
_ZN11flatbuffers5Table10GetPointerIPKNS_6VectorIajEEmEET_t:
   51|   411k|  P GetPointer(voffset_t field) {
   52|   411k|    auto field_offset = GetOptionalFieldOffset(field);
   53|   411k|    auto p = data_ + field_offset;
   54|   411k|    return field_offset ? reinterpret_cast<P>(p + ReadScalar<OffsetSize>(p))
  ------------------
  |  Branch (54:12): [True: 525, False: 410k]
  ------------------
   55|   411k|                        : nullptr;
   56|   411k|  }

_ZNK11flatbuffers6VectorIcjE4DataEv:
  253|    540|  const uint8_t *Data() const {
  254|    540|    return reinterpret_cast<const uint8_t *>(&length_ + 1);
  255|    540|  }
_ZNK11flatbuffers6VectorIcjE4sizeEv:
  164|    540|  SizeT size() const { return EndianScalar(length_); }
_ZNK11flatbuffers6VectorINS_6OffsetIN10reflection6ObjectEEEjE4sizeEv:
  164|     14|  SizeT size() const { return EndianScalar(length_); }
_ZNK11flatbuffers6VectorINS_6OffsetIN10reflection6ObjectEEEjE3GetEj:
  175|      6|  return_type Get(SizeT i) const {
  176|      6|    FLATBUFFERS_ASSERT(i < size());
  177|      0|    return IndirectHelper<T>::Read(Data(), i);
  178|      6|  }
_ZNK11flatbuffers6VectorINS_6OffsetIN10reflection6ObjectEEEjE4DataEv:
  253|      6|  const uint8_t *Data() const {
  254|      6|    return reinterpret_cast<const uint8_t *>(&length_ + 1);
  255|      6|  }
_ZNK11flatbuffers6VectorINS_6OffsetIN10reflection5FieldEEEjE4sizeEv:
  164|    100|  SizeT size() const { return EndianScalar(length_); }
_ZNK11flatbuffers6VectorINS_6OffsetIN10reflection5FieldEEEjE3GetEj:
  175|     46|  return_type Get(SizeT i) const {
  176|     46|    FLATBUFFERS_ASSERT(i < size());
  177|      0|    return IndirectHelper<T>::Read(Data(), i);
  178|     46|  }
_ZNK11flatbuffers6VectorINS_6OffsetIN10reflection5FieldEEEjE4DataEv:
  253|     46|  const uint8_t *Data() const {
  254|     46|    return reinterpret_cast<const uint8_t *>(&length_ + 1);
  255|     46|  }
_ZNK11flatbuffers6VectorINS_6OffsetINS_6StringEEEjE4sizeEv:
  164|      2|  SizeT size() const { return EndianScalar(length_); }
_ZNK11flatbuffers6VectorINS_6OffsetIN10reflection4EnumEEEjE4sizeEv:
  164|      2|  SizeT size() const { return EndianScalar(length_); }
_ZNK11flatbuffers6VectorINS_6OffsetIN10reflection7ServiceEEEjE4sizeEv:
  164|      2|  SizeT size() const { return EndianScalar(length_); }
_ZNK11flatbuffers6VectorINS_6OffsetIN10reflection10SchemaFileEEEjE4sizeEv:
  164|      6|  SizeT size() const { return EndianScalar(length_); }
_ZNK11flatbuffers6VectorINS_6OffsetIN10reflection10SchemaFileEEEjE3GetEj:
  175|      2|  return_type Get(SizeT i) const {
  176|      2|    FLATBUFFERS_ASSERT(i < size());
  177|      0|    return IndirectHelper<T>::Read(Data(), i);
  178|      2|  }
_ZNK11flatbuffers6VectorINS_6OffsetIN10reflection10SchemaFileEEEjE4DataEv:
  253|      2|  const uint8_t *Data() const {
  254|      2|    return reinterpret_cast<const uint8_t *>(&length_ + 1);
  255|      2|  }
_ZNK11flatbuffers6VectorIhmE4sizeEv:
  164|  2.61k|  SizeT size() const { return EndianScalar(length_); }
_ZNK11flatbuffers6VectorIhmE4dataEv:
  260|  1.08k|  const T *data() const { return reinterpret_cast<const T *>(Data()); }
_ZNK11flatbuffers6VectorIhmE4DataEv:
  253|  2.06k|  const uint8_t *Data() const {
  254|  2.06k|    return reinterpret_cast<const uint8_t *>(&length_ + 1);
  255|  2.06k|  }
_ZNK11flatbuffers6VectorINS_6OffsetI12WrapperTableEEjE4sizeEv:
  164|   823k|  SizeT size() const { return EndianScalar(length_); }
_ZNK11flatbuffers6VectorINS_6OffsetI12WrapperTableEEjE3GetEj:
  175|   411k|  return_type Get(SizeT i) const {
  176|   411k|    FLATBUFFERS_ASSERT(i < size());
  177|      0|    return IndirectHelper<T>::Read(Data(), i);
  178|   411k|  }
_ZNK11flatbuffers6VectorINS_6OffsetI12WrapperTableEEjE4DataEv:
  253|   411k|  const uint8_t *Data() const {
  254|   411k|    return reinterpret_cast<const uint8_t *>(&length_ + 1);
  255|   411k|  }
_ZNK11flatbuffers6VectorIhjE5beginEv:
  206|    162|  const_iterator begin() const { return const_iterator(Data(), 0); }
_ZNK11flatbuffers6VectorIhjE4DataEv:
  253|    324|  const uint8_t *Data() const {
  254|    324|    return reinterpret_cast<const uint8_t *>(&length_ + 1);
  255|    324|  }
_ZN11flatbuffers14VectorIteratorIhhPKhjEC2ES2_j:
   41|    324|  VectorIterator(Data data, SizeT i) : data_(data + element_stride * i) {}
_ZNK11flatbuffers6VectorIhjE3endEv:
  209|    162|  const_iterator end() const { return const_iterator(Data(), size()); }
_ZNK11flatbuffers6VectorIhjE4sizeEv:
  164|    162|  SizeT size() const { return EndianScalar(length_); }
_ZNK11flatbuffers14VectorIteratorIhhPKhjEneERKS3_:
   63|   126k|  bool operator!=(const VectorIterator &other) const {
   64|   126k|    return data_ != other.data_;
   65|   126k|  }
_ZNK11flatbuffers14VectorIteratorIhhPKhjEdeEv:
   73|   126k|  IT operator*() const { return IndirectHelper<T>::Read(data_, 0); }
_ZN11flatbuffers14VectorIteratorIhhPKhjEppEv:
   79|   126k|  VectorIterator &operator++() {
   80|   126k|    data_ += element_stride;
   81|   126k|    return *this;
   82|   126k|  }
_ZNK11flatbuffers6VectorIhmE5beginEv:
  206|    413|  const_iterator begin() const { return const_iterator(Data(), 0); }
_ZN11flatbuffers14VectorIteratorIhhPKhmEC2ES2_m:
   41|    826|  VectorIterator(Data data, SizeT i) : data_(data + element_stride * i) {}
_ZNK11flatbuffers6VectorIhmE3endEv:
  209|    413|  const_iterator end() const { return const_iterator(Data(), size()); }
_ZNK11flatbuffers14VectorIteratorIhhPKhmEneERKS3_:
   63|  2.62M|  bool operator!=(const VectorIterator &other) const {
   64|  2.62M|    return data_ != other.data_;
   65|  2.62M|  }
_ZNK11flatbuffers14VectorIteratorIhhPKhmEdeEv:
   73|  2.62M|  IT operator*() const { return IndirectHelper<T>::Read(data_, 0); }
_ZN11flatbuffers14VectorIteratorIhhPKhmEppEv:
   79|  2.62M|  VectorIterator &operator++() {
   80|  2.62M|    data_ += element_stride;
   81|  2.62M|    return *this;
   82|  2.62M|  }
_ZNK11flatbuffers6VectorIPK10LeafStructjE5beginEv:
  206|    191|  const_iterator begin() const { return const_iterator(Data(), 0); }
_ZNK11flatbuffers6VectorIPK10LeafStructjE4DataEv:
  253|    382|  const uint8_t *Data() const {
  254|    382|    return reinterpret_cast<const uint8_t *>(&length_ + 1);
  255|    382|  }
_ZN11flatbuffers14VectorIteratorIPK10LeafStructS3_PKhjEC2ES5_j:
   41|    382|  VectorIterator(Data data, SizeT i) : data_(data + element_stride * i) {}
_ZNK11flatbuffers6VectorIPK10LeafStructjE3endEv:
  209|    191|  const_iterator end() const { return const_iterator(Data(), size()); }
_ZNK11flatbuffers6VectorIPK10LeafStructjE4sizeEv:
  164|    191|  SizeT size() const { return EndianScalar(length_); }
_ZNK11flatbuffers14VectorIteratorIPK10LeafStructS3_PKhjEneERKS6_:
   63|  4.10k|  bool operator!=(const VectorIterator &other) const {
   64|  4.10k|    return data_ != other.data_;
   65|  4.10k|  }
_ZNK11flatbuffers14VectorIteratorIPK10LeafStructS3_PKhjEdeEv:
   73|  3.91k|  IT operator*() const { return IndirectHelper<T>::Read(data_, 0); }
_ZN11flatbuffers14VectorIteratorIPK10LeafStructS3_PKhjEppEv:
   79|  3.91k|  VectorIterator &operator++() {
   80|  3.91k|    data_ += element_stride;
   81|  3.91k|    return *this;
   82|  3.91k|  }
_ZNK11flatbuffers6VectorIPK10LeafStructmE5beginEv:
  206|    140|  const_iterator begin() const { return const_iterator(Data(), 0); }
_ZNK11flatbuffers6VectorIPK10LeafStructmE4DataEv:
  253|    280|  const uint8_t *Data() const {
  254|    280|    return reinterpret_cast<const uint8_t *>(&length_ + 1);
  255|    280|  }
_ZN11flatbuffers14VectorIteratorIPK10LeafStructS3_PKhmEC2ES5_m:
   41|    280|  VectorIterator(Data data, SizeT i) : data_(data + element_stride * i) {}
_ZNK11flatbuffers6VectorIPK10LeafStructmE3endEv:
  209|    140|  const_iterator end() const { return const_iterator(Data(), size()); }
_ZNK11flatbuffers6VectorIPK10LeafStructmE4sizeEv:
  164|    140|  SizeT size() const { return EndianScalar(length_); }
_ZNK11flatbuffers14VectorIteratorIPK10LeafStructS3_PKhmEneERKS6_:
   63|  5.38k|  bool operator!=(const VectorIterator &other) const {
   64|  5.38k|    return data_ != other.data_;
   65|  5.38k|  }
_ZNK11flatbuffers14VectorIteratorIPK10LeafStructS3_PKhmEdeEv:
   73|  5.24k|  IT operator*() const { return IndirectHelper<T>::Read(data_, 0); }
_ZN11flatbuffers14VectorIteratorIPK10LeafStructS3_PKhmEppEv:
   79|  5.24k|  VectorIterator &operator++() {
   80|  5.24k|    data_ += element_stride;
   81|  5.24k|    return *this;
   82|  5.24k|  }

_ZN11flatbuffers8VerifierC2EPKhmjjb:
   59|      2|        }()) {}
_ZZN11flatbuffers8VerifierC1EPKhmjjbENKUlvE_clEv:
   53|      2|      : Verifier(buf, buf_len, [&] {
   54|      2|          Options opts;
   55|      2|          opts.max_depth = max_depth;
   56|      2|          opts.max_tables = max_tables;
   57|      2|          opts.check_alignment = check_alignment;
   58|      2|          return opts;
   59|      2|        }()) {}
_ZN11flatbuffers8VerifierC2EPKhmRKNS0_7OptionsE:
   45|  4.63k|      : buf_(buf), size_(buf_len), opts_(opts) {
   46|  4.63k|    FLATBUFFERS_ASSERT(size_ < opts.max_size);
   47|  4.63k|  }
_ZN11flatbuffers8Verifier12VerifyBufferIN10reflection6SchemaEEEbPKc:
  242|      2|  template<typename T> bool VerifyBuffer(const char *const identifier) {
  243|      2|    return VerifyBufferFromStart<T>(identifier, 0);
  244|      2|  }
_ZN11flatbuffers8Verifier21VerifyBufferFromStartIN10reflection6SchemaEEEbPKcm:
  199|      2|  bool VerifyBufferFromStart(const char *const identifier, const size_t start) {
  200|       |    // Buffers have to be of some size to be valid. The reason it is a runtime
  201|       |    // check instead of static_assert, is that nested flatbuffers go through
  202|       |    // this call and their size is determined at runtime.
  203|      2|    if (!Check(size_ >= FLATBUFFERS_MIN_BUFFER_SIZE)) return false;
  ------------------
  |  |  347|      2|#define FLATBUFFERS_MIN_BUFFER_SIZE sizeof(uoffset_t) + sizeof(soffset_t) + \
  |  |  348|      2|   sizeof(uint16_t) + sizeof(uint16_t)
  ------------------
  |  Branch (203:9): [True: 0, False: 2]
  ------------------
  204|       |
  205|       |    // If an identifier is provided, check that we have a buffer
  206|      2|    if (identifier && !Check((size_ >= 2 * sizeof(flatbuffers::uoffset_t) &&
  ------------------
  |  Branch (206:9): [True: 2, False: 0]
  |  Branch (206:23): [True: 0, False: 2]
  |  Branch (206:31): [True: 2, False: 0]
  ------------------
  207|      2|                              BufferHasIdentifier(buf_ + start, identifier)))) {
  ------------------
  |  Branch (207:31): [True: 2, False: 0]
  ------------------
  208|      0|      return false;
  209|      0|    }
  210|       |
  211|       |    // Call T::Verify, which must be in the generated code for this type.
  212|      2|    const auto o = VerifyOffset<uoffset_t>(start);
  213|      2|    return Check(o != 0) &&
  ------------------
  |  Branch (213:12): [True: 2, False: 0]
  ------------------
  214|      2|           reinterpret_cast<const T *>(buf_ + start + o)->Verify(*this)
  ------------------
  |  Branch (214:12): [True: 2, False: 0]
  ------------------
  215|       |    // clang-format off
  216|       |    #ifdef FLATBUFFERS_TRACK_VERIFIER_BUFFER_SIZE
  217|       |           && GetComputedSize()
  218|       |    #endif
  219|      2|        ;
  220|       |    // clang-format on
  221|      2|  }
_ZNK11flatbuffers8Verifier5CheckEb:
   62|  3.43M|  bool Check(const bool ok) const {
   63|       |    // clang-format off
   64|       |    #ifdef FLATBUFFERS_DEBUG_VERIFICATION_FAILURE
   65|       |       if (opts_.assert) { FLATBUFFERS_ASSERT(ok); }
   66|       |    #endif
   67|       |    #ifdef FLATBUFFERS_TRACK_VERIFIER_BUFFER_SIZE
   68|       |      if (!ok)
   69|       |        upper_bound_ = 0;
   70|       |    #endif
   71|       |    // clang-format on
   72|  3.43M|    return ok;
   73|  3.43M|  }
_ZNK11flatbuffers8Verifier12VerifyOffsetIjiEEmm:
  256|  6.85k|  size_t VerifyOffset(const size_t start) const {
  257|  6.85k|    if (!Verify<OffsetT>(start)) return 0;
  ------------------
  |  Branch (257:9): [True: 45, False: 6.81k]
  ------------------
  258|  6.81k|    const auto o = ReadScalar<OffsetT>(buf_ + start);
  259|       |    // May not point to itself.
  260|  6.81k|    if (!Check(o != 0)) return 0;
  ------------------
  |  Branch (260:9): [True: 21, False: 6.79k]
  ------------------
  261|       |    // Can't wrap around larger than the max size.
  262|  6.79k|    if (!Check(static_cast<SOffsetT>(o) >= 0)) return 0;
  ------------------
  |  Branch (262:9): [True: 168, False: 6.62k]
  ------------------
  263|       |    // Must be inside the buffer to create a pointer from it (pointer outside
  264|       |    // buffer is UB).
  265|  6.62k|    if (!Verify(start + o, 1)) return 0;
  ------------------
  |  Branch (265:9): [True: 169, False: 6.45k]
  ------------------
  266|  6.45k|    return o;
  267|  6.62k|  }
_ZNK11flatbuffers8Verifier6VerifyIjEEbm:
   92|  11.5k|  template<typename T> bool Verify(const size_t elem) const {
   93|  11.5k|    return VerifyAlignment(elem, sizeof(T)) && Verify(elem, sizeof(T));
  ------------------
  |  Branch (93:12): [True: 11.4k, False: 114]
  |  Branch (93:48): [True: 11.3k, False: 107]
  ------------------
   94|  11.5k|  }
_ZNK11flatbuffers8Verifier15VerifyAlignmentEmm:
   87|  1.27M|  bool VerifyAlignment(const size_t elem, const size_t align) const {
   88|  1.27M|    return Check((elem & (align - 1)) == 0 || !opts_.check_alignment);
  ------------------
  |  Branch (88:18): [True: 1.26M, False: 426]
  |  Branch (88:47): [True: 0, False: 426]
  ------------------
   89|  1.27M|  }
_ZNK11flatbuffers8Verifier6VerifyEmm:
   76|  1.29M|  bool Verify(const size_t elem, const size_t elem_len) const {
   77|       |    // clang-format off
   78|       |    #ifdef FLATBUFFERS_TRACK_VERIFIER_BUFFER_SIZE
   79|       |      auto upper_bound = elem + elem_len;
   80|       |      if (upper_bound_ < upper_bound)
   81|       |        upper_bound_ =  upper_bound;
   82|       |    #endif
   83|       |    // clang-format on
   84|  1.29M|    return Check(elem_len < size_ && elem <= size_ - elem_len);
  ------------------
  |  Branch (84:18): [True: 1.29M, False: 425]
  |  Branch (84:38): [True: 1.28M, False: 1.07k]
  ------------------
   85|  1.29M|  }
_ZN11flatbuffers8Verifier16VerifyTableStartEPKh:
  181|   416k|  bool VerifyTableStart(const uint8_t *const table) {
  182|       |    // Check the vtable offset.
  183|   416k|    const auto tableo = static_cast<size_t>(table - buf_);
  184|   416k|    if (!Verify<soffset_t>(tableo)) return false;
  ------------------
  |  Branch (184:9): [True: 215, False: 416k]
  ------------------
  185|       |    // This offset may be signed, but doing the subtraction unsigned always
  186|       |    // gives the result we want.
  187|   416k|    const auto vtableo =
  188|   416k|        tableo - static_cast<size_t>(ReadScalar<soffset_t>(table));
  189|       |    // Check the vtable size field, then check vtable fits in its entirety.
  190|   416k|    if (!(VerifyComplexity() && Verify<voffset_t>(vtableo) &&
  ------------------
  |  Branch (190:11): [True: 416k, False: 0]
  |  Branch (190:33): [True: 416k, False: 111]
  ------------------
  191|   416k|          VerifyAlignment(ReadScalar<voffset_t>(buf_ + vtableo),
  ------------------
  |  Branch (191:11): [True: 416k, False: 4]
  ------------------
  192|   416k|                          sizeof(voffset_t))))
  193|    115|      return false;
  194|   416k|    const auto vsize = ReadScalar<voffset_t>(buf_ + vtableo);
  195|   416k|    return Check((vsize & 1) == 0) && Verify(vtableo, vsize);
  ------------------
  |  Branch (195:12): [True: 416k, False: 0]
  |  Branch (195:39): [True: 415k, False: 24]
  ------------------
  196|   416k|  }
_ZNK11flatbuffers8Verifier6VerifyIiEEbm:
   92|   416k|  template<typename T> bool Verify(const size_t elem) const {
   93|   416k|    return VerifyAlignment(elem, sizeof(T)) && Verify(elem, sizeof(T));
  ------------------
  |  Branch (93:12): [True: 416k, False: 123]
  |  Branch (93:48): [True: 416k, False: 92]
  ------------------
   94|   416k|  }
_ZN11flatbuffers8Verifier16VerifyComplexityEv:
  277|   416k|  bool VerifyComplexity() {
  278|   416k|    depth_++;
  279|   416k|    num_tables_++;
  280|   416k|    return Check(depth_ <= opts_.max_depth && num_tables_ <= opts_.max_tables);
  ------------------
  |  Branch (280:18): [True: 416k, False: 0]
  |  Branch (280:47): [True: 416k, False: 0]
  ------------------
  281|   416k|  }
_ZNK11flatbuffers8Verifier6VerifyItEEbm:
   92|   416k|  template<typename T> bool Verify(const size_t elem) const {
   93|   416k|    return VerifyAlignment(elem, sizeof(T)) && Verify(elem, sizeof(T));
  ------------------
  |  Branch (93:12): [True: 416k, False: 12]
  |  Branch (93:48): [True: 416k, False: 99]
  ------------------
   94|   416k|  }
_ZNK11flatbuffers8Verifier12VerifyOffsetIjEEmPKht:
  270|  2.18k|  size_t VerifyOffset(const uint8_t *const base, const voffset_t start) const {
  271|  2.18k|    return VerifyOffset<OffsetT>(static_cast<size_t>(base - buf_) + start);
  272|  2.18k|  }
_ZNK11flatbuffers8Verifier12VerifyVectorIJENS_6OffsetIN10reflection6ObjectEEEjEEbPKNS_6VectorIT0_T1_EE:
  121|      2|  bool VerifyVector(const Vector<T, LenT> *const vec) const {
  122|      2|    return !vec || VerifyVectorOrString<LenT>(
  ------------------
  |  Branch (122:12): [True: 0, False: 2]
  |  Branch (122:20): [True: 2, False: 0]
  ------------------
  123|      2|                       reinterpret_cast<const uint8_t *>(vec), sizeof(T));
  124|      2|  }
_ZNK11flatbuffers8Verifier20VerifyVectorOrStringIjEEbPKhmPm:
  144|  4.67k|                            size_t *const end = nullptr) const {
  145|  4.67k|    const auto vec_offset = static_cast<size_t>(vec - buf_);
  146|       |    // Check we can read the size field.
  147|  4.67k|    if (!Verify<LenT>(vec_offset)) return false;
  ------------------
  |  Branch (147:9): [True: 176, False: 4.49k]
  ------------------
  148|       |    // Check the whole array. If this is a string, the byte past the array must
  149|       |    // be 0.
  150|  4.49k|    const LenT size = ReadScalar<LenT>(vec);
  151|  4.49k|    const auto max_elems = opts_.max_size / elem_size;
  152|  4.49k|    if (!Check(size < max_elems))
  ------------------
  |  Branch (152:9): [True: 49, False: 4.44k]
  ------------------
  153|     49|      return false;  // Protect against byte_size overflowing.
  154|  4.44k|    const auto byte_size = sizeof(LenT) + elem_size * size;
  155|  4.44k|    if (end) *end = vec_offset + byte_size;
  ------------------
  |  Branch (155:9): [True: 2.27k, False: 2.17k]
  ------------------
  156|  4.44k|    return Verify(vec_offset, byte_size);
  157|  4.49k|  }
_ZN11flatbuffers8Verifier20VerifyVectorOfTablesIN10reflection6ObjectEEEbPKNS_6VectorINS_6OffsetIT_EEjEE:
  171|      2|  bool VerifyVectorOfTables(const Vector<Offset<T>> *const vec) {
  172|      2|    if (vec) {
  ------------------
  |  Branch (172:9): [True: 2, False: 0]
  ------------------
  173|      8|      for (uoffset_t i = 0; i < vec->size(); i++) {
  ------------------
  |  Branch (173:29): [True: 6, False: 2]
  ------------------
  174|      6|        if (!vec->Get(i)->Verify(*this)) return false;
  ------------------
  |  Branch (174:13): [True: 0, False: 6]
  ------------------
  175|      6|      }
  176|      2|    }
  177|      2|    return true;
  178|      2|  }
_ZNK11flatbuffers8Verifier12VerifyVectorIJENS_6OffsetIN10reflection5FieldEEEjEEbPKNS_6VectorIT0_T1_EE:
  121|      8|  bool VerifyVector(const Vector<T, LenT> *const vec) const {
  122|      8|    return !vec || VerifyVectorOrString<LenT>(
  ------------------
  |  Branch (122:12): [True: 0, False: 8]
  |  Branch (122:20): [True: 8, False: 0]
  ------------------
  123|      8|                       reinterpret_cast<const uint8_t *>(vec), sizeof(T));
  124|      8|  }
_ZN11flatbuffers8Verifier20VerifyVectorOfTablesIN10reflection5FieldEEEbPKNS_6VectorINS_6OffsetIT_EEjEE:
  171|      8|  bool VerifyVectorOfTables(const Vector<Offset<T>> *const vec) {
  172|      8|    if (vec) {
  ------------------
  |  Branch (172:9): [True: 8, False: 0]
  ------------------
  173|     54|      for (uoffset_t i = 0; i < vec->size(); i++) {
  ------------------
  |  Branch (173:29): [True: 46, False: 8]
  ------------------
  174|     46|        if (!vec->Get(i)->Verify(*this)) return false;
  ------------------
  |  Branch (174:13): [True: 0, False: 46]
  ------------------
  175|     46|      }
  176|      8|    }
  177|      8|    return true;
  178|      8|  }
_ZN11flatbuffers8Verifier11VerifyTableIN10reflection4TypeEEEbPKT_:
  115|     46|  template<typename T> bool VerifyTable(const T *const table) {
  116|     46|    return !table || table->Verify(*this);
  ------------------
  |  Branch (116:12): [True: 0, False: 46]
  |  Branch (116:22): [True: 46, False: 0]
  ------------------
  117|     46|  }
_ZNK11flatbuffers8Verifier11VerifyFieldIaEEbPKhtm:
  109|     76|                   const size_t align) const {
  110|     76|    const auto f = static_cast<size_t>(base - buf_) + elem_off;
  111|     76|    return VerifyAlignment(f, align) && Verify(f, sizeof(T));
  ------------------
  |  Branch (111:12): [True: 76, False: 0]
  |  Branch (111:41): [True: 76, False: 0]
  ------------------
  112|     76|  }
_ZNK11flatbuffers8Verifier11VerifyFieldIjEEbPKhtm:
  109|     64|                   const size_t align) const {
  110|     64|    const auto f = static_cast<size_t>(base - buf_) + elem_off;
  111|     64|    return VerifyAlignment(f, align) && Verify(f, sizeof(T));
  ------------------
  |  Branch (111:12): [True: 64, False: 0]
  |  Branch (111:41): [True: 64, False: 0]
  ------------------
  112|     64|  }
_ZNK11flatbuffers8Verifier11VerifyFieldItEEbPKhtm:
  109|     84|                   const size_t align) const {
  110|     84|    const auto f = static_cast<size_t>(base - buf_) + elem_off;
  111|     84|    return VerifyAlignment(f, align) && Verify(f, sizeof(T));
  ------------------
  |  Branch (111:12): [True: 84, False: 0]
  |  Branch (111:41): [True: 84, False: 0]
  ------------------
  112|     84|  }
_ZNK11flatbuffers8Verifier11VerifyFieldIhEEbPKhtm:
  109|     70|                   const size_t align) const {
  110|     70|    const auto f = static_cast<size_t>(base - buf_) + elem_off;
  111|     70|    return VerifyAlignment(f, align) && Verify(f, sizeof(T));
  ------------------
  |  Branch (111:12): [True: 70, False: 0]
  |  Branch (111:41): [True: 70, False: 0]
  ------------------
  112|     70|  }
_ZNK11flatbuffers8Verifier11VerifyFieldIiEEbPKhtm:
  109|    822|                   const size_t align) const {
  110|    822|    const auto f = static_cast<size_t>(base - buf_) + elem_off;
  111|    822|    return VerifyAlignment(f, align) && Verify(f, sizeof(T));
  ------------------
  |  Branch (111:12): [True: 815, False: 7]
  |  Branch (111:41): [True: 792, False: 23]
  ------------------
  112|    822|  }
_ZNK11flatbuffers8Verifier12VerifyVectorIJENS_6OffsetIN10reflection8KeyValueEEEjEEbPKNS_6VectorIT0_T1_EE:
  121|     54|  bool VerifyVector(const Vector<T, LenT> *const vec) const {
  122|     54|    return !vec || VerifyVectorOrString<LenT>(
  ------------------
  |  Branch (122:12): [True: 54, False: 0]
  |  Branch (122:20): [True: 0, False: 0]
  ------------------
  123|      0|                       reinterpret_cast<const uint8_t *>(vec), sizeof(T));
  124|     54|  }
_ZN11flatbuffers8Verifier20VerifyVectorOfTablesIN10reflection8KeyValueEEEbPKNS_6VectorINS_6OffsetIT_EEjEE:
  171|     54|  bool VerifyVectorOfTables(const Vector<Offset<T>> *const vec) {
  172|     54|    if (vec) {
  ------------------
  |  Branch (172:9): [True: 0, False: 54]
  ------------------
  173|      0|      for (uoffset_t i = 0; i < vec->size(); i++) {
  ------------------
  |  Branch (173:29): [True: 0, False: 0]
  ------------------
  174|      0|        if (!vec->Get(i)->Verify(*this)) return false;
  ------------------
  |  Branch (174:13): [True: 0, False: 0]
  ------------------
  175|      0|      }
  176|      0|    }
  177|     54|    return true;
  178|     54|  }
_ZNK11flatbuffers8Verifier12VerifyVectorIJENS_6OffsetINS_6StringEEEjEEbPKNS_6VectorIT0_T1_EE:
  121|     56|  bool VerifyVector(const Vector<T, LenT> *const vec) const {
  122|     56|    return !vec || VerifyVectorOrString<LenT>(
  ------------------
  |  Branch (122:12): [True: 54, False: 2]
  |  Branch (122:20): [True: 2, False: 0]
  ------------------
  123|      2|                       reinterpret_cast<const uint8_t *>(vec), sizeof(T));
  124|     56|  }
_ZNK11flatbuffers8Verifier21VerifyVectorOfStringsEPKNS_6VectorINS_6OffsetINS_6StringEEEjEE:
  160|     56|  bool VerifyVectorOfStrings(const Vector<Offset<String>> *const vec) const {
  161|     56|    if (vec) {
  ------------------
  |  Branch (161:9): [True: 2, False: 54]
  ------------------
  162|      2|      for (uoffset_t i = 0; i < vec->size(); i++) {
  ------------------
  |  Branch (162:29): [True: 0, False: 2]
  ------------------
  163|      0|        if (!VerifyString(vec->Get(i))) return false;
  ------------------
  |  Branch (163:13): [True: 0, False: 0]
  ------------------
  164|      0|      }
  165|      2|    }
  166|     56|    return true;
  167|     56|  }
_ZNK11flatbuffers8Verifier12VerifyVectorIJENS_6OffsetIN10reflection4EnumEEEjEEbPKNS_6VectorIT0_T1_EE:
  121|      2|  bool VerifyVector(const Vector<T, LenT> *const vec) const {
  122|      2|    return !vec || VerifyVectorOrString<LenT>(
  ------------------
  |  Branch (122:12): [True: 0, False: 2]
  |  Branch (122:20): [True: 2, False: 0]
  ------------------
  123|      2|                       reinterpret_cast<const uint8_t *>(vec), sizeof(T));
  124|      2|  }
_ZN11flatbuffers8Verifier20VerifyVectorOfTablesIN10reflection4EnumEEEbPKNS_6VectorINS_6OffsetIT_EEjEE:
  171|      2|  bool VerifyVectorOfTables(const Vector<Offset<T>> *const vec) {
  172|      2|    if (vec) {
  ------------------
  |  Branch (172:9): [True: 2, False: 0]
  ------------------
  173|      2|      for (uoffset_t i = 0; i < vec->size(); i++) {
  ------------------
  |  Branch (173:29): [True: 0, False: 2]
  ------------------
  174|      0|        if (!vec->Get(i)->Verify(*this)) return false;
  ------------------
  |  Branch (174:13): [True: 0, False: 0]
  ------------------
  175|      0|      }
  176|      2|    }
  177|      2|    return true;
  178|      2|  }
_ZNK11flatbuffers8Verifier12VerifyStringEPKNS_6StringE:
  133|  6.85k|  bool VerifyString(const String *const str) const {
  134|  6.85k|    size_t end;
  135|  6.85k|    return !str || (VerifyVectorOrString<uoffset_t>(
  ------------------
  |  Branch (135:12): [True: 4.49k, False: 2.36k]
  |  Branch (135:21): [True: 2.13k, False: 222]
  ------------------
  136|  2.36k|                        reinterpret_cast<const uint8_t *>(str), 1, &end) &&
  137|  2.36k|                    Verify(end, 1) &&           // Must have terminator
  ------------------
  |  Branch (137:21): [True: 2.11k, False: 27]
  ------------------
  138|  2.36k|                    Check(buf_[end] == '\0'));  // Terminating byte must be 0.
  ------------------
  |  Branch (138:21): [True: 2.06k, False: 48]
  ------------------
  139|  6.85k|  }
_ZN11flatbuffers8Verifier11VerifyTableIN10reflection6ObjectEEEbPKT_:
  115|      2|  template<typename T> bool VerifyTable(const T *const table) {
  116|      2|    return !table || table->Verify(*this);
  ------------------
  |  Branch (116:12): [True: 0, False: 2]
  |  Branch (116:22): [True: 2, False: 0]
  ------------------
  117|      2|  }
_ZNK11flatbuffers8Verifier12VerifyVectorIJENS_6OffsetIN10reflection7ServiceEEEjEEbPKNS_6VectorIT0_T1_EE:
  121|      2|  bool VerifyVector(const Vector<T, LenT> *const vec) const {
  122|      2|    return !vec || VerifyVectorOrString<LenT>(
  ------------------
  |  Branch (122:12): [True: 0, False: 2]
  |  Branch (122:20): [True: 2, False: 0]
  ------------------
  123|      2|                       reinterpret_cast<const uint8_t *>(vec), sizeof(T));
  124|      2|  }
_ZN11flatbuffers8Verifier20VerifyVectorOfTablesIN10reflection7ServiceEEEbPKNS_6VectorINS_6OffsetIT_EEjEE:
  171|      2|  bool VerifyVectorOfTables(const Vector<Offset<T>> *const vec) {
  172|      2|    if (vec) {
  ------------------
  |  Branch (172:9): [True: 2, False: 0]
  ------------------
  173|      2|      for (uoffset_t i = 0; i < vec->size(); i++) {
  ------------------
  |  Branch (173:29): [True: 0, False: 2]
  ------------------
  174|      0|        if (!vec->Get(i)->Verify(*this)) return false;
  ------------------
  |  Branch (174:13): [True: 0, False: 0]
  ------------------
  175|      0|      }
  176|      2|    }
  177|      2|    return true;
  178|      2|  }
_ZNK11flatbuffers8Verifier12VerifyVectorIJENS_6OffsetIN10reflection10SchemaFileEEEjEEbPKNS_6VectorIT0_T1_EE:
  121|      2|  bool VerifyVector(const Vector<T, LenT> *const vec) const {
  122|      2|    return !vec || VerifyVectorOrString<LenT>(
  ------------------
  |  Branch (122:12): [True: 0, False: 2]
  |  Branch (122:20): [True: 2, False: 0]
  ------------------
  123|      2|                       reinterpret_cast<const uint8_t *>(vec), sizeof(T));
  124|      2|  }
_ZN11flatbuffers8Verifier20VerifyVectorOfTablesIN10reflection10SchemaFileEEEbPKNS_6VectorINS_6OffsetIT_EEjEE:
  171|      2|  bool VerifyVectorOfTables(const Vector<Offset<T>> *const vec) {
  172|      2|    if (vec) {
  ------------------
  |  Branch (172:9): [True: 2, False: 0]
  ------------------
  173|      4|      for (uoffset_t i = 0; i < vec->size(); i++) {
  ------------------
  |  Branch (173:29): [True: 2, False: 2]
  ------------------
  174|      2|        if (!vec->Get(i)->Verify(*this)) return false;
  ------------------
  |  Branch (174:13): [True: 0, False: 2]
  ------------------
  175|      2|      }
  176|      2|    }
  177|      2|    return true;
  178|      2|  }
_ZN11flatbuffers8Verifier8EndTableEv:
  284|   413k|  bool EndTable() {
  285|   413k|    depth_--;
  286|   413k|    return true;
  287|   413k|  }
_ZN11flatbuffers8Verifier24VerifySizePrefixedBufferI9RootTablemEEbPKc:
  247|    516|  bool VerifySizePrefixedBuffer(const char *const identifier) {
  248|    516|    return Verify<SizeT>(0U) &&
  ------------------
  |  Branch (248:12): [True: 516, False: 0]
  ------------------
  249|       |           // Ensure the prefixed size is within the bounds of the provided
  250|       |           // length.
  251|    516|           Check(ReadScalar<SizeT>(buf_) + sizeof(SizeT) <= size_) &&
  ------------------
  |  Branch (251:12): [True: 409, False: 107]
  ------------------
  252|    516|           VerifyBufferFromStart<T>(identifier, sizeof(SizeT));
  ------------------
  |  Branch (252:12): [True: 158, False: 251]
  ------------------
  253|    516|  }
_ZNK11flatbuffers8Verifier6VerifyImEEbm:
   92|  8.99k|  template<typename T> bool Verify(const size_t elem) const {
   93|  8.99k|    return VerifyAlignment(elem, sizeof(T)) && Verify(elem, sizeof(T));
  ------------------
  |  Branch (93:12): [True: 8.83k, False: 166]
  |  Branch (93:48): [True: 8.69k, False: 132]
  ------------------
   94|  8.99k|  }
_ZN11flatbuffers8Verifier21VerifyBufferFromStartI9RootTableEEbPKcm:
  199|  4.67k|  bool VerifyBufferFromStart(const char *const identifier, const size_t start) {
  200|       |    // Buffers have to be of some size to be valid. The reason it is a runtime
  201|       |    // check instead of static_assert, is that nested flatbuffers go through
  202|       |    // this call and their size is determined at runtime.
  203|  4.67k|    if (!Check(size_ >= FLATBUFFERS_MIN_BUFFER_SIZE)) return false;
  ------------------
  |  |  347|  4.67k|#define FLATBUFFERS_MIN_BUFFER_SIZE sizeof(uoffset_t) + sizeof(soffset_t) + \
  |  |  348|  4.67k|   sizeof(uint16_t) + sizeof(uint16_t)
  ------------------
  |  Branch (203:9): [True: 4, False: 4.67k]
  ------------------
  204|       |
  205|       |    // If an identifier is provided, check that we have a buffer
  206|  4.67k|    if (identifier && !Check((size_ >= 2 * sizeof(flatbuffers::uoffset_t) &&
  ------------------
  |  Branch (206:9): [True: 0, False: 4.67k]
  |  Branch (206:23): [True: 0, False: 0]
  |  Branch (206:31): [True: 0, False: 0]
  ------------------
  207|      0|                              BufferHasIdentifier(buf_ + start, identifier)))) {
  ------------------
  |  Branch (207:31): [True: 0, False: 0]
  ------------------
  208|      0|      return false;
  209|      0|    }
  210|       |
  211|       |    // Call T::Verify, which must be in the generated code for this type.
  212|  4.67k|    const auto o = VerifyOffset<uoffset_t>(start);
  213|  4.67k|    return Check(o != 0) &&
  ------------------
  |  Branch (213:12): [True: 4.39k, False: 277]
  ------------------
  214|  4.67k|           reinterpret_cast<const T *>(buf_ + start + o)->Verify(*this)
  ------------------
  |  Branch (214:12): [True: 1.59k, False: 2.80k]
  ------------------
  215|       |    // clang-format off
  216|       |    #ifdef FLATBUFFERS_TRACK_VERIFIER_BUFFER_SIZE
  217|       |           && GetComputedSize()
  218|       |    #endif
  219|  4.67k|        ;
  220|       |    // clang-format on
  221|  4.67k|  }
_ZNK11flatbuffers8Verifier12VerifyOffsetImEEmPKht:
  270|  6.01k|  size_t VerifyOffset(const uint8_t *const base, const voffset_t start) const {
  271|  6.01k|    return VerifyOffset<OffsetT>(static_cast<size_t>(base - buf_) + start);
  272|  6.01k|  }
_ZNK11flatbuffers8Verifier12VerifyOffsetImiEEmm:
  326|  6.01k|inline size_t Verifier::VerifyOffset<uoffset64_t>(const size_t start) const {
  327|  6.01k|  return VerifyOffset<uoffset64_t, soffset64_t>(start);
  328|  6.01k|}
_ZNK11flatbuffers8Verifier12VerifyOffsetImlEEmm:
  256|  6.01k|  size_t VerifyOffset(const size_t start) const {
  257|  6.01k|    if (!Verify<OffsetT>(start)) return 0;
  ------------------
  |  Branch (257:9): [True: 202, False: 5.81k]
  ------------------
  258|  5.81k|    const auto o = ReadScalar<OffsetT>(buf_ + start);
  259|       |    // May not point to itself.
  260|  5.81k|    if (!Check(o != 0)) return 0;
  ------------------
  |  Branch (260:9): [True: 21, False: 5.79k]
  ------------------
  261|       |    // Can't wrap around larger than the max size.
  262|  5.79k|    if (!Check(static_cast<SOffsetT>(o) >= 0)) return 0;
  ------------------
  |  Branch (262:9): [True: 319, False: 5.47k]
  ------------------
  263|       |    // Must be inside the buffer to create a pointer from it (pointer outside
  264|       |    // buffer is UB).
  265|  5.47k|    if (!Verify(start + o, 1)) return 0;
  ------------------
  |  Branch (265:9): [True: 348, False: 5.12k]
  ------------------
  266|  5.12k|    return o;
  267|  5.47k|  }
_ZNK11flatbuffers8Verifier12VerifyVectorIJEhjEEbPKNS_6VectorIT0_T1_EE:
  121|  3.98k|  bool VerifyVector(const Vector<T, LenT> *const vec) const {
  122|  3.98k|    return !vec || VerifyVectorOrString<LenT>(
  ------------------
  |  Branch (122:12): [True: 3.52k, False: 464]
  |  Branch (122:20): [True: 368, False: 96]
  ------------------
  123|    464|                       reinterpret_cast<const uint8_t *>(vec), sizeof(T));
  124|  3.98k|  }
_ZNK11flatbuffers8Verifier12VerifyVectorIJEhmEEbPKNS_6VectorIT0_T1_EE:
  121|  7.90k|  bool VerifyVector(const Vector<T, LenT> *const vec) const {
  122|  7.90k|    return !vec || VerifyVectorOrString<LenT>(
  ------------------
  |  Branch (122:12): [True: 5.83k, False: 2.06k]
  |  Branch (122:20): [True: 1.85k, False: 215]
  ------------------
  123|  2.06k|                       reinterpret_cast<const uint8_t *>(vec), sizeof(T));
  124|  7.90k|  }
_ZNK11flatbuffers8Verifier20VerifyVectorOrStringImEEbPKhmPm:
  144|  2.46k|                            size_t *const end = nullptr) const {
  145|  2.46k|    const auto vec_offset = static_cast<size_t>(vec - buf_);
  146|       |    // Check we can read the size field.
  147|  2.46k|    if (!Verify<LenT>(vec_offset)) return false;
  ------------------
  |  Branch (147:9): [True: 96, False: 2.36k]
  ------------------
  148|       |    // Check the whole array. If this is a string, the byte past the array must
  149|       |    // be 0.
  150|  2.36k|    const LenT size = ReadScalar<LenT>(vec);
  151|  2.36k|    const auto max_elems = opts_.max_size / elem_size;
  152|  2.36k|    if (!Check(size < max_elems))
  ------------------
  |  Branch (152:9): [True: 210, False: 2.15k]
  ------------------
  153|    210|      return false;  // Protect against byte_size overflowing.
  154|  2.15k|    const auto byte_size = sizeof(LenT) + elem_size * size;
  155|  2.15k|    if (end) *end = vec_offset + byte_size;
  ------------------
  |  Branch (155:9): [True: 0, False: 2.15k]
  ------------------
  156|  2.15k|    return Verify(vec_offset, byte_size);
  157|  2.36k|  }
_ZN11flatbuffers8Verifier22VerifyNestedFlatBufferI9RootTableJEmEEbPKNS_6VectorIhT1_EEPKc:
  225|  2.87k|                              const char *const identifier) {
  226|       |    // Caller opted out of this.
  227|  2.87k|    if (!opts_.check_nested_flatbuffers) return true;
  ------------------
  |  Branch (227:9): [True: 0, False: 2.87k]
  ------------------
  228|       |
  229|       |    // An empty buffer is OK as it indicates not present.
  230|  2.87k|    if (!buf) return true;
  ------------------
  |  Branch (230:9): [True: 1.76k, False: 1.11k]
  ------------------
  231|       |
  232|       |    // If there is a nested buffer, it must be greater than the min size.
  233|  1.11k|    if (!Check(buf->size() >= FLATBUFFERS_MIN_BUFFER_SIZE)) return false;
  ------------------
  |  |  347|  1.11k|#define FLATBUFFERS_MIN_BUFFER_SIZE sizeof(uoffset_t) + sizeof(soffset_t) + \
  |  |  348|  1.11k|   sizeof(uint16_t) + sizeof(uint16_t)
  ------------------
  |  Branch (233:9): [True: 33, False: 1.08k]
  ------------------
  234|       |
  235|  1.08k|    Verifier nested_verifier(buf->data(), buf->size(), opts_);
  236|  1.08k|    return nested_verifier.VerifyBuffer<T>(identifier);
  237|  1.11k|  }
_ZN11flatbuffers8Verifier12VerifyBufferI9RootTableEEbPKc:
  242|  4.27k|  template<typename T> bool VerifyBuffer(const char *const identifier) {
  243|  4.27k|    return VerifyBufferFromStart<T>(identifier, 0);
  244|  4.27k|  }
_ZNK11flatbuffers8Verifier12VerifyVectorIJE10LeafStructjEEbPKNS_6VectorIPKT0_T1_EE:
  128|  2.53k|  bool VerifyVector(const Vector<const T *, LenT> *const vec) const {
  129|  2.53k|    return VerifyVector(reinterpret_cast<const Vector<T, LenT> *>(vec));
  130|  2.53k|  }
_ZNK11flatbuffers8Verifier12VerifyVectorIJE10LeafStructjEEbPKNS_6VectorIT0_T1_EE:
  121|  2.53k|  bool VerifyVector(const Vector<T, LenT> *const vec) const {
  122|  2.53k|    return !vec || VerifyVectorOrString<LenT>(
  ------------------
  |  Branch (122:12): [True: 2.05k, False: 475]
  |  Branch (122:20): [True: 383, False: 92]
  ------------------
  123|    475|                       reinterpret_cast<const uint8_t *>(vec), sizeof(T));
  124|  2.53k|  }
_ZNK11flatbuffers8Verifier12VerifyVectorIJE10LeafStructmEEbPKNS_6VectorIPKT0_T1_EE:
  128|  2.42k|  bool VerifyVector(const Vector<const T *, LenT> *const vec) const {
  129|  2.42k|    return VerifyVector(reinterpret_cast<const Vector<T, LenT> *>(vec));
  130|  2.42k|  }
_ZNK11flatbuffers8Verifier12VerifyVectorIJE10LeafStructmEEbPKNS_6VectorIT0_T1_EE:
  121|  2.42k|  bool VerifyVector(const Vector<T, LenT> *const vec) const {
  122|  2.42k|    return !vec || VerifyVectorOrString<LenT>(
  ------------------
  |  Branch (122:12): [True: 2.03k, False: 394]
  |  Branch (122:20): [True: 224, False: 170]
  ------------------
  123|    394|                       reinterpret_cast<const uint8_t *>(vec), sizeof(T));
  124|  2.42k|  }
_ZNK11flatbuffers8Verifier12VerifyVectorIJENS_6OffsetI12WrapperTableEEjEEbPKNS_6VectorIT0_T1_EE:
  121|  2.23k|  bool VerifyVector(const Vector<T, LenT> *const vec) const {
  122|  2.23k|    return !vec || VerifyVectorOrString<LenT>(
  ------------------
  |  Branch (122:12): [True: 1.40k, False: 830]
  |  Branch (122:20): [True: 723, False: 107]
  ------------------
  123|    830|                       reinterpret_cast<const uint8_t *>(vec), sizeof(T));
  124|  2.23k|  }
_ZN11flatbuffers8Verifier20VerifyVectorOfTablesI12WrapperTableEEbPKNS_6VectorINS_6OffsetIT_EEjEE:
  171|  2.12k|  bool VerifyVectorOfTables(const Vector<Offset<T>> *const vec) {
  172|  2.12k|    if (vec) {
  ------------------
  |  Branch (172:9): [True: 723, False: 1.40k]
  ------------------
  173|   412k|      for (uoffset_t i = 0; i < vec->size(); i++) {
  ------------------
  |  Branch (173:29): [True: 411k, False: 267]
  ------------------
  174|   411k|        if (!vec->Get(i)->Verify(*this)) return false;
  ------------------
  |  Branch (174:13): [True: 456, False: 411k]
  ------------------
  175|   411k|      }
  176|    723|    }
  177|  1.67k|    return true;
  178|  2.12k|  }
_ZNK11flatbuffers8Verifier12VerifyVectorIJEajEEbPKNS_6VectorIT0_T1_EE:
  121|   411k|  bool VerifyVector(const Vector<T, LenT> *const vec) const {
  122|   411k|    return !vec || VerifyVectorOrString<LenT>(
  ------------------
  |  Branch (122:12): [True: 410k, False: 525]
  |  Branch (122:20): [True: 421, False: 104]
  ------------------
  123|    525|                       reinterpret_cast<const uint8_t *>(vec), sizeof(T));
  124|   411k|  }

_ZN11flatbuffers13ClassicLocaleC2Ev:
  408|      2|    : locale_(newlocale(LC_ALL, "C", nullptr)) {}
_ZN11flatbuffers23ReadEnvironmentVariableEPKcPNSt3__112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEE:
  429|      2|bool ReadEnvironmentVariable(const char *var_name, std::string *_value) {
  430|       |#ifdef _MSC_VER
  431|       |  __pragma(warning(disable : 4996));  // _CRT_SECURE_NO_WARNINGS
  432|       |#endif
  433|      2|  auto env_str = std::getenv(var_name);
  434|      2|  if (!env_str) return false;
  ------------------
  |  Branch (434:7): [True: 2, False: 0]
  ------------------
  435|      0|  if (_value) *_value = std::string(env_str);
  ------------------
  |  Branch (435:7): [True: 0, False: 0]
  ------------------
  436|      0|  return true;
  437|      2|}

_ZN21RootTableBinarySchema5beginEv:
   82|      2|  const uint8_t *begin() {
   83|      2|    return data();
   84|      2|  }
_ZN21RootTableBinarySchema4dataEv:
   10|      2|  static const uint8_t *data() {
   11|       |    // Buffer containing the binary schema.
   12|      2|    static const uint8_t bfbsData[1248] = {
   13|      2|      0x1C,0x00,0x00,0x00,0x42,0x46,0x42,0x53,0x14,0x00,0x20,0x00,0x04,0x00,0x08,0x00,0x0C,0x00,0x10,0x00,
   14|      2|      0x14,0x00,0x18,0x00,0x00,0x00,0x1C,0x00,0x14,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x2C,0x00,0x00,0x00,
   15|      2|      0x20,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x2C,0x00,0x00,0x00,
   16|      2|      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
   17|      2|      0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0xA4,0x03,0x00,0x00,0x28,0x00,0x00,0x00,0x00,0x03,0x00,0x00,
   18|      2|      0x01,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x08,0x00,0x0C,0x00,0x04,0x00,0x08,0x00,0x08,0x00,0x00,0x00,
   19|      2|      0xA0,0x03,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0xFD,0xFF,0xFF,0x3C,0x00,0x00,0x00,
   20|      2|      0x0C,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x84,0x03,0x00,0x00,0x0A,0x00,0x00,0x00,0x60,0x02,0x00,0x00,
   21|      2|      0xAC,0x00,0x00,0x00,0xC4,0x01,0x00,0x00,0x24,0x02,0x00,0x00,0xF0,0x00,0x00,0x00,0x70,0x02,0x00,0x00,
   22|      2|      0x20,0x00,0x00,0x00,0x5C,0x00,0x00,0x00,0x7C,0x01,0x00,0x00,0x28,0x01,0x00,0x00,0x09,0x00,0x00,0x00,
   23|      2|      0x52,0x6F,0x6F,0x74,0x54,0x61,0x62,0x6C,0x65,0x00,0x00,0x00,0x28,0xFE,0xFF,0xFF,0x00,0x00,0x01,0x01,
   24|      2|      0x09,0x00,0x16,0x00,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x6C,0xFE,0xFF,0xFF,0x00,0x00,0x12,0x04,
   25|      2|      0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x15,0x00,0x00,0x00,0x66,0x6F,0x72,0x63,0x65,0x64,0x5F,0x61,
   26|      2|      0x6C,0x69,0x67,0x6E,0x65,0x64,0x5F,0x76,0x65,0x63,0x74,0x6F,0x72,0x00,0x00,0x00,0xF8,0xFE,0xFF,0xFF,
   27|      2|      0x00,0x00,0x00,0x01,0x08,0x00,0x14,0x00,0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x78,0xFF,0xFF,0xFF,
   28|      2|      0x00,0x00,0x0E,0x0F,0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x6D,0x61,0x6E,0x79,
   29|      2|      0x5F,0x76,0x65,0x63,0x74,0x6F,0x72,0x73,0x00,0x00,0x00,0x00,0xA0,0xFE,0xFF,0xFF,0x00,0x00,0x01,0x01,
   30|      2|      0x07,0x00,0x12,0x00,0x2C,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x10,0x00,0x14,0x00,0x06,0x00,0x07,0x00,
   31|      2|      0x08,0x00,0x00,0x00,0x0C,0x00,0x10,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x12,0x0F,0x00,0x00,0x00,0x00,
   32|      2|      0x08,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x62,0x69,0x67,0x5F,0x73,0x74,0x72,0x75,
   33|      2|      0x63,0x74,0x5F,0x76,0x65,0x63,0x74,0x6F,0x72,0x00,0x00,0x00,0xF0,0xFE,0xFF,0xFF,0x00,0x00,0x01,0x01,
   34|      2|      0x06,0x00,0x10,0x00,0x28,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x10,0x00,0x10,0x00,0x06,0x00,0x07,0x00,
   35|      2|      0x08,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x0E,0x0F,0x00,0x00,0x00,0x00,
   36|      2|      0x10,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x66,0x61,0x72,0x5F,0x73,0x74,0x72,0x75,0x63,0x74,0x5F,0x76,
   37|      2|      0x65,0x63,0x74,0x6F,0x72,0x00,0x00,0x00,0x3C,0xFF,0xFF,0xFF,0x00,0x00,0x01,0x01,0x05,0x00,0x0E,0x00,
   38|      2|      0x18,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x80,0xFF,0xFF,0xFF,0x00,0x00,0x12,0x04,0x08,0x00,0x00,0x00,
   39|      2|      0x01,0x00,0x00,0x00,0x0B,0x00,0x00,0x00,0x6E,0x65,0x73,0x74,0x65,0x64,0x5F,0x72,0x6F,0x6F,0x74,0x00,
   40|      2|      0x1C,0x00,0x14,0x00,0x0C,0x00,0x10,0x00,0x08,0x00,0x0A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
   41|      2|      0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x04,0x00,0x0C,0x00,
   42|      2|      0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x90,0xFD,0xFF,0xFF,0x00,0x00,0x00,0x0D,0x01,0x00,0x00,0x00,
   43|      2|      0x0B,0x00,0x00,0x00,0x6E,0x65,0x61,0x72,0x5F,0x73,0x74,0x72,0x69,0x6E,0x67,0x00,0xBC,0xFF,0xFF,0xFF,
   44|      2|      0x00,0x00,0x01,0x01,0x03,0x00,0x0A,0x00,0x28,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x10,0x00,0x10,0x00,
   45|      2|      0x06,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x0C,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x12,0x04,
   46|      2|      0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0A,0x00,0x00,0x00,0x62,0x69,0x67,0x5F,0x76,0x65,0x63,0x74,
   47|      2|      0x6F,0x72,0x00,0x00,0x20,0x00,0x14,0x00,0x0C,0x00,0x10,0x00,0x08,0x00,0x0A,0x00,0x00,0x00,0x00,0x00,
   48|      2|      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x07,0x00,0x20,0x00,0x00,0x00,
   49|      2|      0x00,0x00,0x01,0x01,0x02,0x00,0x08,0x00,0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x24,0xFE,0xFF,0xFF,
   50|      2|      0x00,0x00,0x00,0x0D,0x01,0x00,0x00,0x00,0x0A,0x00,0x00,0x00,0x66,0x61,0x72,0x5F,0x73,0x74,0x72,0x69,
   51|      2|      0x6E,0x67,0x00,0x00,0xB0,0xFE,0xFF,0xFF,0x01,0x00,0x06,0x00,0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
   52|      2|      0x50,0xFE,0xFF,0xFF,0x00,0x00,0x00,0x07,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x61,0x00,0x00,0x00,
   53|      2|      0x90,0xFF,0xFF,0xFF,0x01,0x01,0x04,0x00,0x14,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x70,0xFF,0xFF,0xFF,
   54|      2|      0x00,0x00,0x0E,0x04,0x01,0x00,0x00,0x00,0x0A,0x00,0x00,0x00,0x66,0x61,0x72,0x5F,0x76,0x65,0x63,0x74,
   55|      2|      0x6F,0x72,0x00,0x00,0x14,0x00,0x14,0x00,0x04,0x00,0x08,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,
   56|      2|      0x00,0x00,0x10,0x00,0x14,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
   57|      2|      0xA8,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x57,0x72,0x61,0x70,
   58|      2|      0x70,0x65,0x72,0x54,0x61,0x62,0x6C,0x65,0x00,0x00,0x00,0x00,0x20,0x00,0x10,0x00,0x08,0x00,0x0C,0x00,
   59|      2|      0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,
   60|      2|      0x00,0x00,0x05,0x00,0x20,0x00,0x00,0x00,0x01,0x01,0x04,0x00,0x24,0x00,0x00,0x00,0x14,0x00,0x00,0x00,
   61|      2|      0x10,0x00,0x0C,0x00,0x06,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x10,0x00,0x00,0x00,
   62|      2|      0x00,0x00,0x0E,0x03,0x01,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x76,0x65,0x63,0x74,0x6F,0x72,0x00,0x00,
   63|      2|      0x14,0x00,0x1C,0x00,0x08,0x00,0x0C,0x00,0x07,0x00,0x10,0x00,0x14,0x00,0x00,0x00,0x00,0x00,0x18,0x00,
   64|      2|      0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x38,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
   65|      2|      0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x2F,0x2F,0x74,0x65,0x73,0x74,0x5F,0x36,
   66|      2|      0x34,0x62,0x69,0x74,0x2E,0x66,0x62,0x73,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x78,0x00,0x00,0x00,
   67|      2|      0x20,0x00,0x00,0x00,0x0A,0x00,0x00,0x00,0x4C,0x65,0x61,0x66,0x53,0x74,0x72,0x75,0x63,0x74,0x00,0x00,
   68|      2|      0x0C,0x00,0x10,0x00,0x08,0x00,0x0C,0x00,0x04,0x00,0x06,0x00,0x0C,0x00,0x00,0x00,0x01,0x00,0x08,0x00,
   69|      2|      0x28,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x10,0x00,0x10,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
   70|      2|      0x08,0x00,0x0C,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x08,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
   71|      2|      0x01,0x00,0x00,0x00,0x62,0x00,0x1E,0x00,0x10,0x00,0x08,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
   72|      2|      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x1E,0x00,0x00,0x00,
   73|      2|      0x00,0x00,0x04,0x00,0x24,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x10,0x00,0x0C,0x00,0x07,0x00,0x00,0x00,
   74|      2|      0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x01,0x00,0x00,0x00,
   75|      2|      0x01,0x00,0x00,0x00,0x61,0x00,0x00,0x00
   76|      2|    };
   77|      2|    return bfbsData;
   78|      2|  }
_ZN21RootTableBinarySchema4sizeEv:
   79|      2|  static size_t size() {
   80|      2|    return 1248;
   81|      2|  }

_ZNK10LeafStruct1aEv:
   64|  9.15k|  int32_t a() const {
   65|  9.15k|    return ::flatbuffers::EndianScalar(a_);
   66|  9.15k|  }
_ZNK10LeafStruct1bEv:
   70|  9.15k|  double b() const {
   71|  9.15k|    return ::flatbuffers::EndianScalar(b_);
   72|  9.15k|  }
_ZNK9RootTable10far_vectorEv:
  196|  4.78k|  const ::flatbuffers::Vector<uint8_t> *far_vector() const {
  197|  4.78k|    return GetPointer64<const ::flatbuffers::Vector<uint8_t> *>(VT_FAR_VECTOR);
  198|  4.78k|  }
_ZNK9RootTable1aEv:
  202|    800|  int32_t a() const {
  203|    800|    return GetField<int32_t>(VT_A, 0);
  204|    800|  }
_ZNK9RootTable10far_stringEv:
  208|  4.46k|  const ::flatbuffers::String *far_string() const {
  209|  4.46k|    return GetPointer64<const ::flatbuffers::String *>(VT_FAR_STRING);
  210|  4.46k|  }
_ZNK9RootTable10big_vectorEv:
  214|  4.14k|  const ::flatbuffers::Vector64<uint8_t> *big_vector() const {
  215|  4.14k|    return GetPointer64<const ::flatbuffers::Vector64<uint8_t> *>(VT_BIG_VECTOR);
  216|  4.14k|  }
_ZNK9RootTable11near_stringEv:
  220|  3.91k|  const ::flatbuffers::String *near_string() const {
  221|  3.91k|    return GetPointer<const ::flatbuffers::String *>(VT_NEAR_STRING);
  222|  3.91k|  }
_ZNK9RootTable11nested_rootEv:
  226|  7.27k|  const ::flatbuffers::Vector64<uint8_t> *nested_root() const {
  227|  7.27k|    return GetPointer64<const ::flatbuffers::Vector64<uint8_t> *>(VT_NESTED_ROOT);
  228|  7.27k|  }
_ZNK9RootTable17far_struct_vectorEv:
  237|  3.33k|  const ::flatbuffers::Vector<const LeafStruct *> *far_struct_vector() const {
  238|  3.33k|    return GetPointer64<const ::flatbuffers::Vector<const LeafStruct *> *>(VT_FAR_STRUCT_VECTOR);
  239|  3.33k|  }
_ZNK9RootTable17big_struct_vectorEv:
  243|  3.22k|  const ::flatbuffers::Vector64<const LeafStruct *> *big_struct_vector() const {
  244|  3.22k|    return GetPointer64<const ::flatbuffers::Vector64<const LeafStruct *> *>(VT_BIG_STRUCT_VECTOR);
  245|  3.22k|  }
_Z33VerifySizePrefixedRootTableBufferRN11flatbuffers8VerifierE:
  625|    516|    ::flatbuffers::Verifier &verifier) {
  626|    516|  return verifier.VerifySizePrefixedBuffer<RootTable,::flatbuffers::uoffset64_t>(nullptr);
  627|    516|}
_ZNK9RootTable6VerifyERN11flatbuffers8VerifierE:
  261|  4.39k|  bool Verify(::flatbuffers::Verifier &verifier) const {
  262|  4.39k|    return VerifyTableStart(verifier) &&
  ------------------
  |  Branch (262:12): [True: 4.16k, False: 229]
  ------------------
  263|  4.39k|           VerifyOffset64(verifier, VT_FAR_VECTOR) &&
  ------------------
  |  Branch (263:12): [True: 3.98k, False: 184]
  ------------------
  264|  4.39k|           verifier.VerifyVector(far_vector()) &&
  ------------------
  |  Branch (264:12): [True: 3.88k, False: 96]
  ------------------
  265|  4.39k|           VerifyField<int32_t>(verifier, VT_A, 4) &&
  ------------------
  |  Branch (265:12): [True: 3.85k, False: 30]
  ------------------
  266|  4.39k|           VerifyOffset64(verifier, VT_FAR_STRING) &&
  ------------------
  |  Branch (266:12): [True: 3.66k, False: 190]
  ------------------
  267|  4.39k|           verifier.VerifyString(far_string()) &&
  ------------------
  |  Branch (267:12): [True: 3.51k, False: 153]
  ------------------
  268|  4.39k|           VerifyOffset64(verifier, VT_BIG_VECTOR) &&
  ------------------
  |  Branch (268:12): [True: 3.34k, False: 172]
  ------------------
  269|  4.39k|           verifier.VerifyVector(big_vector()) &&
  ------------------
  |  Branch (269:12): [True: 3.22k, False: 122]
  ------------------
  270|  4.39k|           VerifyOffset(verifier, VT_NEAR_STRING) &&
  ------------------
  |  Branch (270:12): [True: 3.11k, False: 105]
  ------------------
  271|  4.39k|           verifier.VerifyString(near_string()) &&
  ------------------
  |  Branch (271:12): [True: 2.97k, False: 144]
  ------------------
  272|  4.39k|           VerifyOffset64(verifier, VT_NESTED_ROOT) &&
  ------------------
  |  Branch (272:12): [True: 2.95k, False: 23]
  ------------------
  273|  4.39k|           verifier.VerifyVector(nested_root()) &&
  ------------------
  |  Branch (273:12): [True: 2.87k, False: 72]
  ------------------
  274|  4.39k|           verifier.VerifyNestedFlatBuffer<RootTable>(nested_root(), nullptr) &&
  ------------------
  |  Branch (274:12): [True: 2.55k, False: 324]
  ------------------
  275|  4.39k|           VerifyOffset64(verifier, VT_FAR_STRUCT_VECTOR) &&
  ------------------
  |  Branch (275:12): [True: 2.53k, False: 20]
  ------------------
  276|  4.39k|           verifier.VerifyVector(far_struct_vector()) &&
  ------------------
  |  Branch (276:12): [True: 2.44k, False: 92]
  ------------------
  277|  4.39k|           VerifyOffset64(verifier, VT_BIG_STRUCT_VECTOR) &&
  ------------------
  |  Branch (277:12): [True: 2.42k, False: 17]
  ------------------
  278|  4.39k|           verifier.VerifyVector(big_struct_vector()) &&
  ------------------
  |  Branch (278:12): [True: 2.25k, False: 170]
  ------------------
  279|  4.39k|           VerifyOffset(verifier, VT_MANY_VECTORS) &&
  ------------------
  |  Branch (279:12): [True: 2.23k, False: 21]
  ------------------
  280|  4.39k|           verifier.VerifyVector(many_vectors()) &&
  ------------------
  |  Branch (280:12): [True: 2.12k, False: 107]
  ------------------
  281|  4.39k|           verifier.VerifyVectorOfTables(many_vectors()) &&
  ------------------
  |  Branch (281:12): [True: 1.67k, False: 456]
  ------------------
  282|  4.39k|           VerifyOffset64(verifier, VT_FORCED_ALIGNED_VECTOR) &&
  ------------------
  |  Branch (282:12): [True: 1.61k, False: 57]
  ------------------
  283|  4.39k|           verifier.VerifyVector(forced_aligned_vector()) &&
  ------------------
  |  Branch (283:12): [True: 1.59k, False: 21]
  ------------------
  284|  4.39k|           verifier.EndTable();
  ------------------
  |  Branch (284:12): [True: 1.59k, False: 0]
  ------------------
  285|  4.39k|  }
_ZNK9RootTable12many_vectorsEv:
  249|  4.36k|  const ::flatbuffers::Vector<::flatbuffers::Offset<WrapperTable>> *many_vectors() const {
  250|  4.36k|    return GetPointer<const ::flatbuffers::Vector<::flatbuffers::Offset<WrapperTable>> *>(VT_MANY_VECTORS);
  251|  4.36k|  }
_ZNK12WrapperTable6VerifyERN11flatbuffers8VerifierE:
  111|   411k|  bool Verify(::flatbuffers::Verifier &verifier) const {
  112|   411k|    return VerifyTableStart(verifier) &&
  ------------------
  |  Branch (112:12): [True: 411k, False: 125]
  ------------------
  113|   411k|           VerifyOffset64(verifier, VT_VECTOR) &&
  ------------------
  |  Branch (113:12): [True: 411k, False: 227]
  ------------------
  114|   411k|           verifier.VerifyVector(vector()) &&
  ------------------
  |  Branch (114:12): [True: 411k, False: 104]
  ------------------
  115|   411k|           verifier.EndTable();
  ------------------
  |  Branch (115:12): [True: 411k, False: 0]
  ------------------
  116|   411k|  }
_ZNK12WrapperTable6vectorEv:
  105|   411k|  const ::flatbuffers::Vector<int8_t> *vector() const {
  106|   411k|    return GetPointer64<const ::flatbuffers::Vector<int8_t> *>(VT_VECTOR);
  107|   411k|  }
_ZNK9RootTable21forced_aligned_vectorEv:
  255|  1.61k|  const ::flatbuffers::Vector64<uint8_t> *forced_aligned_vector() const {
  256|  1.61k|    return GetPointer64<const ::flatbuffers::Vector64<uint8_t> *>(VT_FORCED_ALIGNED_VECTOR);
  257|  1.61k|  }
_Z21VerifyRootTableBufferRN11flatbuffers8VerifierE:
  620|  3.18k|    ::flatbuffers::Verifier &verifier) {
  621|  3.18k|  return verifier.VerifyBuffer<RootTable>(nullptr);
  622|  3.18k|}
_Z24GetSizePrefixedRootTablePKv:
  607|    131|inline const RootTable *GetSizePrefixedRootTable(const void *buf) {
  608|    131|  return ::flatbuffers::GetSizePrefixedRoot<RootTable,::flatbuffers::uoffset64_t>(buf);
  609|    131|}
_Z12GetRootTablePKv:
  603|    511|inline const RootTable *GetRootTable(const void *buf) {
  604|    511|  return ::flatbuffers::GetRoot<RootTable>(buf);
  605|    511|}
_ZNK9RootTable23nested_root_nested_rootEv:
  232|    642|  const RootTable *nested_root_nested_root() const {
  233|    642|    const auto _f = nested_root();
  234|    642|    return _f ? ::flatbuffers::GetRoot<RootTable>(_f->Data())
  ------------------
  |  Branch (234:12): [True: 158, False: 484]
  ------------------
  235|    642|              : nullptr;
  236|    642|  }

_ZN11flatbuffers4HashEdm:
   31|  9.15k|uint64_t Hash(double value, uint64_t hash) {
   32|  9.15k|  static_assert(sizeof(double) == sizeof(uint64_t));
   33|  9.15k|  return (hash * kFnvPrime) ^ static_cast<uint64_t>(value);
   34|  9.15k|}
_ZN11flatbuffers4HashEPKNS_6StringEm:
   36|  1.60k|uint64_t Hash(const flatbuffers::String *value, uint64_t hash) {
   37|  1.60k|  if (value == nullptr) { return hash * kFnvPrime; }
  ------------------
  |  Branch (37:7): [True: 1.06k, False: 540]
  ------------------
   38|  2.71M|  for (auto &c : value->str()) { hash = Hash(static_cast<uint8_t>(c), hash); }
  ------------------
  |  Branch (38:16): [True: 2.71M, False: 540]
  ------------------
   39|    540|  return hash;
   40|  1.60k|}
_ZN11flatbuffers4HashEPK10LeafStructm:
   42|  9.15k|uint64_t Hash(const LeafStruct *value, uint64_t hash) {
   43|  9.15k|  if (value == nullptr) { return hash * kFnvPrime; }
  ------------------
  |  Branch (43:7): [True: 0, False: 9.15k]
  ------------------
   44|  9.15k|  hash = Hash(value->a(), hash);
   45|  9.15k|  hash = Hash(value->b(), hash);
   46|  9.15k|  return hash;
   47|  9.15k|}
_ZN11flatbuffers4HashEPK9RootTablem:
   61|  1.28k|uint64_t Hash(const RootTable *value, uint64_t hash) {
   62|  1.28k|  if (value == nullptr) { return hash * kFnvPrime; }
  ------------------
  |  Branch (62:7): [True: 484, False: 800]
  ------------------
   63|       |  // Hash all the fields so we can exercise all parts of the code.
   64|    800|  hash = Hash(value->far_vector(), hash);
   65|    800|  hash = Hash(value->a(), hash);
   66|    800|  hash = Hash(value->far_string(), hash);
   67|    800|  hash = Hash(value->big_vector(), hash);
   68|    800|  hash = Hash(value->near_string(), hash);
   69|    800|  hash = Hash(value->nested_root(), hash);
   70|    800|  hash = Hash(value->far_struct_vector(), hash);
   71|    800|  hash = Hash(value->big_struct_vector(), hash);
   72|    800|  return hash;
   73|  1.28k|}
LLVMFuzzerInitialize:
   88|      2|extern "C" int LLVMFuzzerInitialize(int *, char ***argv) {
   89|      2|  Verifier verifier(schema.begin(), schema.size());
   90|      2|  TEST_EQ(true, reflection::VerifySchemaBuffer(verifier));
  ------------------
  |  |   19|      2|#define TEST_EQ(exp, val) TestEq(exp, val, "'" #exp "' != '" #val "'", __FILE__, __LINE__, "")
  ------------------
   91|       |
   92|      2|  return 0;
   93|      2|}
LLVMFuzzerTestOneInput:
   95|  3.55k|extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
   96|  3.55k|  if (size < FLATBUFFERS_MIN_BUFFER_SIZE) { return 0; }
  ------------------
  |  |  347|  3.55k|#define FLATBUFFERS_MIN_BUFFER_SIZE sizeof(uoffset_t) + sizeof(soffset_t) + \
  |  |  348|  3.55k|   sizeof(uint16_t) + sizeof(uint16_t)
  ------------------
  |  Branch (96:7): [True: 6, False: 3.54k]
  ------------------
   97|       |
   98|       |  // Take the first bit of data as a flag to control things.
   99|  3.54k|  const uint8_t flags = data[0];
  100|  3.54k|  data++;
  101|  3.54k|  size--;
  102|       |
  103|  3.54k|  Verifier::Options options;
  104|  3.54k|  options.assert = true;
  105|  3.54k|  options.check_alignment = true;
  106|  3.54k|  options.check_nested_flatbuffers = true;
  107|       |
  108|  3.54k|  Verifier verifier(data, size, options);
  109|       |
  110|  3.54k|  const bool is_size_prefixed = flags & flags_sized_prefixed;
  111|       |
  112|       |  // Filter out data that isn't valid.
  113|  3.54k|  if ((is_size_prefixed && !VerifySizePrefixedRootTableBuffer(verifier)) ||
  ------------------
  |  Branch (113:8): [True: 516, False: 3.02k]
  |  Branch (113:28): [True: 358, False: 158]
  ------------------
  114|  3.54k|      !VerifyRootTableBuffer(verifier)) {
  ------------------
  |  Branch (114:7): [True: 2.54k, False: 642]
  ------------------
  115|  2.90k|    return 0;
  116|  2.90k|  }
  117|       |
  118|    642|  return AccessBuffer(data, size, is_size_prefixed);
  119|  3.54k|}
flatbuffers_64bit_fuzzer.cc:_ZN11flatbuffersL12AccessBufferEPKhmb:
   76|    642|                        bool is_size_prefixed) {
   77|    642|  const RootTable *root_table =
   78|    642|      is_size_prefixed ? GetSizePrefixedRootTable(data) : GetRootTable(data);
  ------------------
  |  Branch (78:7): [True: 131, False: 511]
  ------------------
   79|    642|  TEST_NOTNULL(root_table);
  ------------------
  |  |   23|    642|#define TEST_NOTNULL(val) TestEq(true, (val) != nullptr, "'" "nullptr" "' == '" #val "'", __FILE__, __LINE__, "")
  ------------------
   80|       |
   81|    642|  uint64_t hash = kOffsetBasis;
   82|    642|  hash = Hash(root_table, hash);
   83|    642|  hash = Hash(root_table->nested_root_nested_root(), hash);
   84|       |
   85|    642|  return 0;
   86|    642|}
_ZN11flatbuffers4HashIhvEEmT_m:
   27|  5.47M|uint64_t Hash(T value, uint64_t hash) {
   28|  5.47M|  return (hash * kFnvPrime) ^ value;
   29|  5.47M|}
_ZN11flatbuffers4HashIivEEmT_m:
   27|  9.95k|uint64_t Hash(T value, uint64_t hash) {
   28|  9.95k|  return (hash * kFnvPrime) ^ value;
   29|  9.95k|}
_ZN11flatbuffers4HashIhEEmPKNS_6VectorIT_jEEm:
   49|    800|template<typename T> uint64_t Hash(const Vector<T> *value, uint64_t hash) {
   50|    800|  if (value == nullptr) { return hash * kFnvPrime; }
  ------------------
  |  Branch (50:7): [True: 638, False: 162]
  ------------------
   51|   126k|  for (const T c : *value) { hash = Hash(c, hash); }
  ------------------
  |  Branch (51:18): [True: 126k, False: 162]
  ------------------
   52|    162|  return hash;
   53|    800|}
_ZN11flatbuffers4HashIhEEmPKNS_6VectorIT_mEEm:
   55|  1.60k|template<typename T> uint64_t Hash(const Vector64<T> *value, uint64_t hash) {
   56|  1.60k|  if (value == nullptr) { return hash * kFnvPrime; }
  ------------------
  |  Branch (56:7): [True: 1.18k, False: 413]
  ------------------
   57|  2.62M|  for (const T c : *value) { hash = Hash(c, hash); }
  ------------------
  |  Branch (57:18): [True: 2.62M, False: 413]
  ------------------
   58|    413|  return hash;
   59|  1.60k|}
_ZN11flatbuffers4HashIPK10LeafStructEEmPKNS_6VectorIT_jEEm:
   49|    800|template<typename T> uint64_t Hash(const Vector<T> *value, uint64_t hash) {
   50|    800|  if (value == nullptr) { return hash * kFnvPrime; }
  ------------------
  |  Branch (50:7): [True: 609, False: 191]
  ------------------
   51|  3.91k|  for (const T c : *value) { hash = Hash(c, hash); }
  ------------------
  |  Branch (51:18): [True: 3.91k, False: 191]
  ------------------
   52|    191|  return hash;
   53|    800|}
_ZN11flatbuffers4HashIPK10LeafStructEEmPKNS_6VectorIT_mEEm:
   55|    800|template<typename T> uint64_t Hash(const Vector64<T> *value, uint64_t hash) {
   56|    800|  if (value == nullptr) { return hash * kFnvPrime; }
  ------------------
  |  Branch (56:7): [True: 660, False: 140]
  ------------------
   57|  5.24k|  for (const T c : *value) { hash = Hash(c, hash); }
  ------------------
  |  Branch (57:18): [True: 5.24k, False: 140]
  ------------------
   58|    140|  return hash;
   59|    800|}

_ZN15OneTimeTestInitC2Ev:
   27|      2|  OneTimeTestInit() : has_locale_(false) {
   28|       |    // Fuzzer test should be independent of the test engine implementation.
   29|       |    // This hook will terminate test if TEST_EQ/TEST_ASSERT asserted.
   30|      2|    InitTestEngine(OneTimeTestInit::TestFailListener);
   31|       |
   32|       |    // Read a locale for the test.
   33|      2|    if (flatbuffers::ReadEnvironmentVariable("FLATBUFFERS_TEST_LOCALE",
  ------------------
  |  Branch (33:9): [True: 0, False: 2]
  ------------------
   34|      2|                                             &test_locale_)) {
   35|      0|      TEST_OUTPUT_LINE("The environment variable FLATBUFFERS_TEST_LOCALE=%s",
  ------------------
  |  |   16|      0|      do { printf(__VA_ARGS__); printf("\n"); } while(!IsConstTrue(true))
  |  |  ------------------
  |  |  |  Branch (16:55): [Folded - Ignored]
  |  |  ------------------
  ------------------
   36|      0|                       test_locale_.c_str());
   37|      0|      test_locale_ = flatbuffers::RemoveStringQuotes(test_locale_);
   38|      0|      has_locale_ = true;
   39|      0|    }
   40|      2|  }

_Z14InitTestEnginePFbPKcS0_S0_S0_iS0_E:
   39|      2|void InitTestEngine(TestFailEventListener listener) {
   40|      2|  testing_fails = 0;
   41|       |  // Disable stdout buffering to prevent information lost on assertion or core
   42|       |  // dump.
   43|      2|  setvbuf(stdout, nullptr, _IONBF, 0);
   44|      2|  setvbuf(stderr, nullptr, _IONBF, 0);
   45|       |
   46|       |  // clang-format off
   47|       |
   48|       |  #if defined(FLATBUFFERS_MEMORY_LEAK_TRACKING_MSVC)
   49|       |    // For more thorough checking:
   50|       |    // _CRTDBG_DELAY_FREE_MEM_DF | _CRTDBG_CHECK_ALWAYS_DF
   51|       |    auto flags = _CrtSetDbgFlag(_CRTDBG_REPORT_FLAG);
   52|       |    _CrtSetDbgFlag(flags | _CRTDBG_ALLOC_MEM_DF);
   53|       |  #endif
   54|       |  // clang-format on
   55|       |
   56|      2|  fail_listener_ = listener;
   57|      2|}

_Z6TestEqIbbEvT_T0_PKcS3_iS3_:
   93|    644|            const char *func) {
   94|    644|  if (static_cast<U>(expval) != val) {
  ------------------
  |  Branch (94:7): [True: 0, False: 644]
  ------------------
   95|      0|    TestFail(flatbuffers::NumToString(scalar_as_underlying(expval)).c_str(),
   96|      0|             flatbuffers::NumToString(scalar_as_underlying(val)).c_str(), exp,
   97|      0|             file, line, func);
   98|      0|  }
   99|    644|}

