LCOV - code coverage report
Current view: top level - flamenco/runtime/tests/generated - gossip.pb.h (source / functions) Hit Total Coverage
Test: cov.lcov Lines: 0 19 0.0 %
Date: 2026-05-19 08:05:42 Functions: 0 0 -

          Line data    Source code
       1             : /* Automatically generated nanopb header */
       2             : /* Generated by nanopb-0.4.9.1 */
       3             : 
       4             : #ifndef PB_ORG_SOLANA_SEALEVEL_V1_GOSSIP_PB_H_INCLUDED
       5             : #define PB_ORG_SOLANA_SEALEVEL_V1_GOSSIP_PB_H_INCLUDED
       6             : 
       7             : #include "../../../../ballet/nanopb/pb_firedancer.h"
       8             : #include "metadata.pb.h"
       9             : 
      10             : #if PB_PROTO_HEADER_VERSION != 40
      11             : #error Regenerate this file with the current version of nanopb generator.
      12             : #endif
      13             : 
      14             : /* Struct definitions */
      15             : typedef struct fd_exec_test_gossip_ping {
      16             :     pb_bytes_array_t *from;
      17             :     pb_bytes_array_t *token;
      18             :     pb_bytes_array_t *signature;
      19             : } fd_exec_test_gossip_ping_t;
      20             : 
      21             : typedef struct fd_exec_test_gossip_pong {
      22             :     pb_bytes_array_t *from;
      23             :     pb_bytes_array_t *hash;
      24             :     pb_bytes_array_t *signature;
      25             : } fd_exec_test_gossip_pong_t;
      26             : 
      27             : typedef struct fd_exec_test_gossip_pull_response {
      28             :     pb_bytes_array_t *pubkey;
      29             :     pb_size_t values_count;
      30             :     struct fd_exec_test_gossip_crds_value *values;
      31             : } fd_exec_test_gossip_pull_response_t;
      32             : 
      33             : typedef struct fd_exec_test_gossip_push_message {
      34             :     pb_bytes_array_t *pubkey;
      35             :     pb_size_t values_count;
      36             :     struct fd_exec_test_gossip_crds_value *values;
      37             : } fd_exec_test_gossip_push_message_t;
      38             : 
      39             : typedef struct fd_exec_test_gossip_prune_data {
      40             :     pb_bytes_array_t *pubkey;
      41             :     pb_size_t prunes_count;
      42             :     pb_bytes_array_t **prunes;
      43             :     pb_bytes_array_t *signature;
      44             :     pb_bytes_array_t *destination;
      45             :     uint64_t wallclock;
      46             : } fd_exec_test_gossip_prune_data_t;
      47             : 
      48             : typedef struct fd_exec_test_gossip_prune_message {
      49             :     pb_bytes_array_t *pubkey;
      50             :     bool has_data;
      51             :     fd_exec_test_gossip_prune_data_t data;
      52             : } fd_exec_test_gossip_prune_message_t;
      53             : 
      54             : typedef struct fd_exec_test_gossip_bloom {
      55             :     pb_size_t keys_count;
      56             :     uint64_t *keys;
      57             :     pb_bytes_array_t *bits;
      58             :     uint64_t num_bits_set;
      59             : } fd_exec_test_gossip_bloom_t;
      60             : 
      61             : typedef struct fd_exec_test_gossip_crds_filter {
      62             :     bool has_filter;
      63             :     fd_exec_test_gossip_bloom_t filter;
      64             :     uint64_t mask;
      65             :     uint32_t mask_bits;
      66             : } fd_exec_test_gossip_crds_filter_t;
      67             : 
      68             : typedef struct fd_exec_test_gossip_contact_info {
      69             :     pb_bytes_array_t *pubkey;
      70             :     uint64_t wallclock;
      71             :     uint64_t outset;
      72             :     uint32_t shred_version;
      73             :     uint32_t version_major;
      74             :     uint32_t version_minor;
      75             :     uint32_t version_patch;
      76             :     uint32_t version_commit;
      77             :     uint32_t version_feature_set;
      78             :     uint32_t version_client;
      79             :     pb_size_t addrs_count;
      80             :     struct fd_exec_test_gossip_ip_addr *addrs;
      81             :     pb_size_t sockets_count;
      82             :     struct fd_exec_test_gossip_socket_entry *sockets;
      83             :     pb_bytes_array_t *extensions;
      84             : } fd_exec_test_gossip_contact_info_t;
      85             : 
      86             : typedef struct fd_exec_test_gossip_ipv6_addr {
      87             :     uint64_t hi;
      88             :     uint64_t lo;
      89             : } fd_exec_test_gossip_ipv6_addr_t;
      90             : 
      91             : typedef struct fd_exec_test_gossip_ip_addr {
      92             :     pb_size_t which_addr;
      93             :     union {
      94             :         uint32_t ipv4;
      95             :         fd_exec_test_gossip_ipv6_addr_t ipv6;
      96             :     } addr;
      97             : } fd_exec_test_gossip_ip_addr_t;
      98             : 
      99             : typedef struct fd_exec_test_gossip_socket_entry {
     100             :     uint32_t key;
     101             :     uint32_t index;
     102             :     uint32_t offset;
     103             : } fd_exec_test_gossip_socket_entry_t;
     104             : 
     105             : typedef struct fd_exec_test_gossip_vote {
     106             :     uint32_t index;
     107             :     pb_bytes_array_t *from;
     108             :     uint64_t wallclock;
     109             :     pb_bytes_array_t *transaction;
     110             : } fd_exec_test_gossip_vote_t;
     111             : 
     112             : typedef struct fd_exec_test_gossip_lowest_slot {
     113             :     uint32_t index;
     114             :     pb_bytes_array_t *from;
     115             :     uint64_t lowest;
     116             :     uint64_t wallclock;
     117             : } fd_exec_test_gossip_lowest_slot_t;
     118             : 
     119             : typedef struct fd_exec_test_gossip_epoch_slots {
     120             :     uint32_t index;
     121             :     pb_bytes_array_t *from;
     122             :     uint64_t wallclock;
     123             :     pb_size_t slots_count;
     124             :     struct fd_exec_test_gossip_compressed_slots *slots;
     125             : } fd_exec_test_gossip_epoch_slots_t;
     126             : 
     127             : typedef struct fd_exec_test_gossip_compressed_slots {
     128             :     uint64_t first_slot;
     129             :     uint64_t num;
     130             :     pb_size_t which_data;
     131             :     union {
     132             :         pb_bytes_array_t *uncompressed;
     133             :         pb_bytes_array_t *flate2;
     134             :     } data;
     135             : } fd_exec_test_gossip_compressed_slots_t;
     136             : 
     137             : typedef struct fd_exec_test_gossip_snapshot_hashes {
     138             :     pb_bytes_array_t *from;
     139             :     uint64_t full_slot;
     140             :     pb_bytes_array_t *full_hash;
     141             :     pb_size_t incremental_count;
     142             :     struct fd_exec_test_gossip_incremental_hash *incremental;
     143             :     uint64_t wallclock;
     144             : } fd_exec_test_gossip_snapshot_hashes_t;
     145             : 
     146             : typedef struct fd_exec_test_gossip_incremental_hash {
     147             :     uint64_t slot;
     148             :     pb_bytes_array_t *hash;
     149             : } fd_exec_test_gossip_incremental_hash_t;
     150             : 
     151             : typedef struct fd_exec_test_gossip_duplicate_shred {
     152             :     uint32_t index;
     153             :     pb_bytes_array_t *from;
     154             :     uint64_t wallclock;
     155             :     uint64_t slot;
     156             :     uint32_t shred_index;
     157             :     uint32_t shred_type;
     158             :     uint32_t num_chunks;
     159             :     uint32_t chunk_index;
     160             :     pb_bytes_array_t *chunk;
     161             : } fd_exec_test_gossip_duplicate_shred_t;
     162             : 
     163             : typedef struct fd_exec_test_gossip_crds_data {
     164             :     pb_size_t which_data;
     165             :     union {
     166             :         fd_exec_test_gossip_contact_info_t contact_info;
     167             :         fd_exec_test_gossip_vote_t vote;
     168             :         fd_exec_test_gossip_lowest_slot_t lowest_slot;
     169             :         fd_exec_test_gossip_epoch_slots_t epoch_slots;
     170             :         fd_exec_test_gossip_snapshot_hashes_t snapshot_hashes;
     171             :         fd_exec_test_gossip_duplicate_shred_t duplicate_shred;
     172             :     } data;
     173             : } fd_exec_test_gossip_crds_data_t;
     174             : 
     175             : typedef struct fd_exec_test_gossip_crds_value {
     176             :     pb_bytes_array_t *signature;
     177             :     bool has_data;
     178             :     fd_exec_test_gossip_crds_data_t data;
     179             : } fd_exec_test_gossip_crds_value_t;
     180             : 
     181             : typedef struct fd_exec_test_gossip_pull_request {
     182             :     bool has_filter;
     183             :     fd_exec_test_gossip_crds_filter_t filter;
     184             :     bool has_value;
     185             :     fd_exec_test_gossip_crds_value_t value;
     186             : } fd_exec_test_gossip_pull_request_t;
     187             : 
     188             : typedef struct fd_exec_test_gossip_msg {
     189             :     pb_size_t which_msg;
     190             :     union {
     191             :         fd_exec_test_gossip_ping_t ping;
     192             :         fd_exec_test_gossip_pong_t pong;
     193             :         fd_exec_test_gossip_pull_request_t pull_request;
     194             :         fd_exec_test_gossip_pull_response_t pull_response;
     195             :         fd_exec_test_gossip_push_message_t push_message;
     196             :         fd_exec_test_gossip_prune_message_t prune_message;
     197             :     } msg;
     198             : } fd_exec_test_gossip_msg_t;
     199             : 
     200             : typedef struct fd_exec_test_gossip_effects {
     201             :     bool valid;
     202             :     bool has_msg;
     203             :     fd_exec_test_gossip_msg_t msg;
     204             : } fd_exec_test_gossip_effects_t;
     205             : 
     206             : typedef struct fd_exec_test_gossip_fixture {
     207             :     bool has_metadata;
     208             :     fd_exec_test_fixture_metadata_t metadata;
     209             :     pb_bytes_array_t *input;
     210             :     bool has_output;
     211             :     fd_exec_test_gossip_effects_t output;
     212             : } fd_exec_test_gossip_fixture_t;
     213             : 
     214             : 
     215             : #ifdef __cplusplus
     216             : extern "C" {
     217             : #endif
     218             : 
     219             : /* Initializer values for message structs */
     220             : #define FD_EXEC_TEST_GOSSIP_FIXTURE_INIT_DEFAULT {false, FD_EXEC_TEST_FIXTURE_METADATA_INIT_DEFAULT, NULL, false, FD_EXEC_TEST_GOSSIP_EFFECTS_INIT_DEFAULT}
     221             : #define FD_EXEC_TEST_GOSSIP_EFFECTS_INIT_DEFAULT {0, false, FD_EXEC_TEST_GOSSIP_MSG_INIT_DEFAULT}
     222             : #define FD_EXEC_TEST_GOSSIP_MSG_INIT_DEFAULT     {0, {FD_EXEC_TEST_GOSSIP_PING_INIT_DEFAULT}}
     223             : #define FD_EXEC_TEST_GOSSIP_PING_INIT_DEFAULT    {NULL, NULL, NULL}
     224             : #define FD_EXEC_TEST_GOSSIP_PONG_INIT_DEFAULT    {NULL, NULL, NULL}
     225             : #define FD_EXEC_TEST_GOSSIP_PULL_REQUEST_INIT_DEFAULT {false, FD_EXEC_TEST_GOSSIP_CRDS_FILTER_INIT_DEFAULT, false, FD_EXEC_TEST_GOSSIP_CRDS_VALUE_INIT_DEFAULT}
     226             : #define FD_EXEC_TEST_GOSSIP_PULL_RESPONSE_INIT_DEFAULT {NULL, 0, NULL}
     227             : #define FD_EXEC_TEST_GOSSIP_PUSH_MESSAGE_INIT_DEFAULT {NULL, 0, NULL}
     228             : #define FD_EXEC_TEST_GOSSIP_PRUNE_MESSAGE_INIT_DEFAULT {NULL, false, FD_EXEC_TEST_GOSSIP_PRUNE_DATA_INIT_DEFAULT}
     229             : #define FD_EXEC_TEST_GOSSIP_PRUNE_DATA_INIT_DEFAULT {NULL, 0, NULL, NULL, NULL, 0}
     230             : #define FD_EXEC_TEST_GOSSIP_CRDS_FILTER_INIT_DEFAULT {false, FD_EXEC_TEST_GOSSIP_BLOOM_INIT_DEFAULT, 0, 0}
     231             : #define FD_EXEC_TEST_GOSSIP_BLOOM_INIT_DEFAULT   {0, NULL, NULL, 0}
     232             : #define FD_EXEC_TEST_GOSSIP_CRDS_VALUE_INIT_DEFAULT {NULL, false, FD_EXEC_TEST_GOSSIP_CRDS_DATA_INIT_DEFAULT}
     233             : #define FD_EXEC_TEST_GOSSIP_CRDS_DATA_INIT_DEFAULT {0, {FD_EXEC_TEST_GOSSIP_CONTACT_INFO_INIT_DEFAULT}}
     234             : #define FD_EXEC_TEST_GOSSIP_CONTACT_INFO_INIT_DEFAULT {NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, 0, NULL, NULL}
     235             : #define FD_EXEC_TEST_GOSSIP_IP_ADDR_INIT_DEFAULT {0, {0}}
     236             : #define FD_EXEC_TEST_GOSSIP_IPV6_ADDR_INIT_DEFAULT {0, 0}
     237             : #define FD_EXEC_TEST_GOSSIP_SOCKET_ENTRY_INIT_DEFAULT {0, 0, 0}
     238             : #define FD_EXEC_TEST_GOSSIP_VOTE_INIT_DEFAULT    {0, NULL, 0, NULL}
     239             : #define FD_EXEC_TEST_GOSSIP_LOWEST_SLOT_INIT_DEFAULT {0, NULL, 0, 0}
     240             : #define FD_EXEC_TEST_GOSSIP_EPOCH_SLOTS_INIT_DEFAULT {0, NULL, 0, 0, NULL}
     241             : #define FD_EXEC_TEST_GOSSIP_COMPRESSED_SLOTS_INIT_DEFAULT {0, 0, 0, {NULL}}
     242             : #define FD_EXEC_TEST_GOSSIP_SNAPSHOT_HASHES_INIT_DEFAULT {NULL, 0, NULL, 0, NULL, 0}
     243             : #define FD_EXEC_TEST_GOSSIP_INCREMENTAL_HASH_INIT_DEFAULT {0, NULL}
     244             : #define FD_EXEC_TEST_GOSSIP_DUPLICATE_SHRED_INIT_DEFAULT {0, NULL, 0, 0, 0, 0, 0, 0, NULL}
     245             : #define FD_EXEC_TEST_GOSSIP_FIXTURE_INIT_ZERO    {false, FD_EXEC_TEST_FIXTURE_METADATA_INIT_ZERO, NULL, false, FD_EXEC_TEST_GOSSIP_EFFECTS_INIT_ZERO}
     246           0 : #define FD_EXEC_TEST_GOSSIP_EFFECTS_INIT_ZERO    {0, false, FD_EXEC_TEST_GOSSIP_MSG_INIT_ZERO}
     247           0 : #define FD_EXEC_TEST_GOSSIP_MSG_INIT_ZERO        {0, {FD_EXEC_TEST_GOSSIP_PING_INIT_ZERO}}
     248           0 : #define FD_EXEC_TEST_GOSSIP_PING_INIT_ZERO       {NULL, NULL, NULL}
     249             : #define FD_EXEC_TEST_GOSSIP_PONG_INIT_ZERO       {NULL, NULL, NULL}
     250             : #define FD_EXEC_TEST_GOSSIP_PULL_REQUEST_INIT_ZERO {false, FD_EXEC_TEST_GOSSIP_CRDS_FILTER_INIT_ZERO, false, FD_EXEC_TEST_GOSSIP_CRDS_VALUE_INIT_ZERO}
     251             : #define FD_EXEC_TEST_GOSSIP_PULL_RESPONSE_INIT_ZERO {NULL, 0, NULL}
     252             : #define FD_EXEC_TEST_GOSSIP_PUSH_MESSAGE_INIT_ZERO {NULL, 0, NULL}
     253             : #define FD_EXEC_TEST_GOSSIP_PRUNE_MESSAGE_INIT_ZERO {NULL, false, FD_EXEC_TEST_GOSSIP_PRUNE_DATA_INIT_ZERO}
     254             : #define FD_EXEC_TEST_GOSSIP_PRUNE_DATA_INIT_ZERO {NULL, 0, NULL, NULL, NULL, 0}
     255             : #define FD_EXEC_TEST_GOSSIP_CRDS_FILTER_INIT_ZERO {false, FD_EXEC_TEST_GOSSIP_BLOOM_INIT_ZERO, 0, 0}
     256             : #define FD_EXEC_TEST_GOSSIP_BLOOM_INIT_ZERO      {0, NULL, NULL, 0}
     257             : #define FD_EXEC_TEST_GOSSIP_CRDS_VALUE_INIT_ZERO {NULL, false, FD_EXEC_TEST_GOSSIP_CRDS_DATA_INIT_ZERO}
     258             : #define FD_EXEC_TEST_GOSSIP_CRDS_DATA_INIT_ZERO  {0, {FD_EXEC_TEST_GOSSIP_CONTACT_INFO_INIT_ZERO}}
     259             : #define FD_EXEC_TEST_GOSSIP_CONTACT_INFO_INIT_ZERO {NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, 0, NULL, NULL}
     260             : #define FD_EXEC_TEST_GOSSIP_IP_ADDR_INIT_ZERO    {0, {0}}
     261             : #define FD_EXEC_TEST_GOSSIP_IPV6_ADDR_INIT_ZERO  {0, 0}
     262             : #define FD_EXEC_TEST_GOSSIP_SOCKET_ENTRY_INIT_ZERO {0, 0, 0}
     263             : #define FD_EXEC_TEST_GOSSIP_VOTE_INIT_ZERO       {0, NULL, 0, NULL}
     264             : #define FD_EXEC_TEST_GOSSIP_LOWEST_SLOT_INIT_ZERO {0, NULL, 0, 0}
     265             : #define FD_EXEC_TEST_GOSSIP_EPOCH_SLOTS_INIT_ZERO {0, NULL, 0, 0, NULL}
     266             : #define FD_EXEC_TEST_GOSSIP_COMPRESSED_SLOTS_INIT_ZERO {0, 0, 0, {NULL}}
     267             : #define FD_EXEC_TEST_GOSSIP_SNAPSHOT_HASHES_INIT_ZERO {NULL, 0, NULL, 0, NULL, 0}
     268             : #define FD_EXEC_TEST_GOSSIP_INCREMENTAL_HASH_INIT_ZERO {0, NULL}
     269             : #define FD_EXEC_TEST_GOSSIP_DUPLICATE_SHRED_INIT_ZERO {0, NULL, 0, 0, 0, 0, 0, 0, NULL}
     270             : 
     271             : /* Field tags (for use in manual encoding/decoding) */
     272             : #define FD_EXEC_TEST_GOSSIP_PING_FROM_TAG        1
     273             : #define FD_EXEC_TEST_GOSSIP_PING_TOKEN_TAG       2
     274             : #define FD_EXEC_TEST_GOSSIP_PING_SIGNATURE_TAG   3
     275             : #define FD_EXEC_TEST_GOSSIP_PONG_FROM_TAG        1
     276             : #define FD_EXEC_TEST_GOSSIP_PONG_HASH_TAG        2
     277             : #define FD_EXEC_TEST_GOSSIP_PONG_SIGNATURE_TAG   3
     278             : #define FD_EXEC_TEST_GOSSIP_PULL_RESPONSE_PUBKEY_TAG 1
     279             : #define FD_EXEC_TEST_GOSSIP_PULL_RESPONSE_VALUES_TAG 2
     280             : #define FD_EXEC_TEST_GOSSIP_PUSH_MESSAGE_PUBKEY_TAG 1
     281             : #define FD_EXEC_TEST_GOSSIP_PUSH_MESSAGE_VALUES_TAG 2
     282             : #define FD_EXEC_TEST_GOSSIP_PRUNE_DATA_PUBKEY_TAG 1
     283             : #define FD_EXEC_TEST_GOSSIP_PRUNE_DATA_PRUNES_TAG 2
     284             : #define FD_EXEC_TEST_GOSSIP_PRUNE_DATA_SIGNATURE_TAG 3
     285             : #define FD_EXEC_TEST_GOSSIP_PRUNE_DATA_DESTINATION_TAG 4
     286             : #define FD_EXEC_TEST_GOSSIP_PRUNE_DATA_WALLCLOCK_TAG 5
     287             : #define FD_EXEC_TEST_GOSSIP_PRUNE_MESSAGE_PUBKEY_TAG 1
     288             : #define FD_EXEC_TEST_GOSSIP_PRUNE_MESSAGE_DATA_TAG 2
     289             : #define FD_EXEC_TEST_GOSSIP_BLOOM_KEYS_TAG       1
     290             : #define FD_EXEC_TEST_GOSSIP_BLOOM_BITS_TAG       2
     291             : #define FD_EXEC_TEST_GOSSIP_BLOOM_NUM_BITS_SET_TAG 3
     292             : #define FD_EXEC_TEST_GOSSIP_CRDS_FILTER_FILTER_TAG 1
     293             : #define FD_EXEC_TEST_GOSSIP_CRDS_FILTER_MASK_TAG 2
     294             : #define FD_EXEC_TEST_GOSSIP_CRDS_FILTER_MASK_BITS_TAG 3
     295             : #define FD_EXEC_TEST_GOSSIP_CONTACT_INFO_PUBKEY_TAG 1
     296             : #define FD_EXEC_TEST_GOSSIP_CONTACT_INFO_WALLCLOCK_TAG 2
     297             : #define FD_EXEC_TEST_GOSSIP_CONTACT_INFO_OUTSET_TAG 3
     298             : #define FD_EXEC_TEST_GOSSIP_CONTACT_INFO_SHRED_VERSION_TAG 4
     299             : #define FD_EXEC_TEST_GOSSIP_CONTACT_INFO_VERSION_MAJOR_TAG 5
     300             : #define FD_EXEC_TEST_GOSSIP_CONTACT_INFO_VERSION_MINOR_TAG 6
     301             : #define FD_EXEC_TEST_GOSSIP_CONTACT_INFO_VERSION_PATCH_TAG 7
     302             : #define FD_EXEC_TEST_GOSSIP_CONTACT_INFO_VERSION_COMMIT_TAG 8
     303             : #define FD_EXEC_TEST_GOSSIP_CONTACT_INFO_VERSION_FEATURE_SET_TAG 9
     304             : #define FD_EXEC_TEST_GOSSIP_CONTACT_INFO_VERSION_CLIENT_TAG 10
     305             : #define FD_EXEC_TEST_GOSSIP_CONTACT_INFO_ADDRS_TAG 11
     306             : #define FD_EXEC_TEST_GOSSIP_CONTACT_INFO_SOCKETS_TAG 12
     307             : #define FD_EXEC_TEST_GOSSIP_CONTACT_INFO_EXTENSIONS_TAG 13
     308             : #define FD_EXEC_TEST_GOSSIP_IPV6_ADDR_HI_TAG     1
     309             : #define FD_EXEC_TEST_GOSSIP_IPV6_ADDR_LO_TAG     2
     310           0 : #define FD_EXEC_TEST_GOSSIP_IP_ADDR_IPV4_TAG     1
     311           0 : #define FD_EXEC_TEST_GOSSIP_IP_ADDR_IPV6_TAG     2
     312             : #define FD_EXEC_TEST_GOSSIP_SOCKET_ENTRY_KEY_TAG 1
     313             : #define FD_EXEC_TEST_GOSSIP_SOCKET_ENTRY_INDEX_TAG 2
     314             : #define FD_EXEC_TEST_GOSSIP_SOCKET_ENTRY_OFFSET_TAG 3
     315             : #define FD_EXEC_TEST_GOSSIP_VOTE_INDEX_TAG       1
     316             : #define FD_EXEC_TEST_GOSSIP_VOTE_FROM_TAG        2
     317             : #define FD_EXEC_TEST_GOSSIP_VOTE_WALLCLOCK_TAG   3
     318             : #define FD_EXEC_TEST_GOSSIP_VOTE_TRANSACTION_TAG 4
     319             : #define FD_EXEC_TEST_GOSSIP_LOWEST_SLOT_INDEX_TAG 1
     320             : #define FD_EXEC_TEST_GOSSIP_LOWEST_SLOT_FROM_TAG 2
     321             : #define FD_EXEC_TEST_GOSSIP_LOWEST_SLOT_LOWEST_TAG 3
     322             : #define FD_EXEC_TEST_GOSSIP_LOWEST_SLOT_WALLCLOCK_TAG 4
     323             : #define FD_EXEC_TEST_GOSSIP_EPOCH_SLOTS_INDEX_TAG 1
     324             : #define FD_EXEC_TEST_GOSSIP_EPOCH_SLOTS_FROM_TAG 2
     325             : #define FD_EXEC_TEST_GOSSIP_EPOCH_SLOTS_WALLCLOCK_TAG 3
     326             : #define FD_EXEC_TEST_GOSSIP_EPOCH_SLOTS_SLOTS_TAG 4
     327             : #define FD_EXEC_TEST_GOSSIP_COMPRESSED_SLOTS_FIRST_SLOT_TAG 1
     328             : #define FD_EXEC_TEST_GOSSIP_COMPRESSED_SLOTS_NUM_TAG 2
     329           0 : #define FD_EXEC_TEST_GOSSIP_COMPRESSED_SLOTS_UNCOMPRESSED_TAG 3
     330           0 : #define FD_EXEC_TEST_GOSSIP_COMPRESSED_SLOTS_FLATE2_TAG 4
     331             : #define FD_EXEC_TEST_GOSSIP_SNAPSHOT_HASHES_FROM_TAG 1
     332             : #define FD_EXEC_TEST_GOSSIP_SNAPSHOT_HASHES_FULL_SLOT_TAG 2
     333             : #define FD_EXEC_TEST_GOSSIP_SNAPSHOT_HASHES_FULL_HASH_TAG 3
     334             : #define FD_EXEC_TEST_GOSSIP_SNAPSHOT_HASHES_INCREMENTAL_TAG 4
     335             : #define FD_EXEC_TEST_GOSSIP_SNAPSHOT_HASHES_WALLCLOCK_TAG 5
     336             : #define FD_EXEC_TEST_GOSSIP_INCREMENTAL_HASH_SLOT_TAG 1
     337             : #define FD_EXEC_TEST_GOSSIP_INCREMENTAL_HASH_HASH_TAG 2
     338             : #define FD_EXEC_TEST_GOSSIP_DUPLICATE_SHRED_INDEX_TAG 1
     339             : #define FD_EXEC_TEST_GOSSIP_DUPLICATE_SHRED_FROM_TAG 2
     340             : #define FD_EXEC_TEST_GOSSIP_DUPLICATE_SHRED_WALLCLOCK_TAG 3
     341             : #define FD_EXEC_TEST_GOSSIP_DUPLICATE_SHRED_SLOT_TAG 4
     342             : #define FD_EXEC_TEST_GOSSIP_DUPLICATE_SHRED_SHRED_INDEX_TAG 5
     343             : #define FD_EXEC_TEST_GOSSIP_DUPLICATE_SHRED_SHRED_TYPE_TAG 6
     344             : #define FD_EXEC_TEST_GOSSIP_DUPLICATE_SHRED_NUM_CHUNKS_TAG 7
     345             : #define FD_EXEC_TEST_GOSSIP_DUPLICATE_SHRED_CHUNK_INDEX_TAG 8
     346             : #define FD_EXEC_TEST_GOSSIP_DUPLICATE_SHRED_CHUNK_TAG 9
     347           0 : #define FD_EXEC_TEST_GOSSIP_CRDS_DATA_CONTACT_INFO_TAG 1
     348           0 : #define FD_EXEC_TEST_GOSSIP_CRDS_DATA_VOTE_TAG   2
     349           0 : #define FD_EXEC_TEST_GOSSIP_CRDS_DATA_LOWEST_SLOT_TAG 3
     350           0 : #define FD_EXEC_TEST_GOSSIP_CRDS_DATA_EPOCH_SLOTS_TAG 4
     351           0 : #define FD_EXEC_TEST_GOSSIP_CRDS_DATA_SNAPSHOT_HASHES_TAG 5
     352           0 : #define FD_EXEC_TEST_GOSSIP_CRDS_DATA_DUPLICATE_SHRED_TAG 6
     353             : #define FD_EXEC_TEST_GOSSIP_CRDS_VALUE_SIGNATURE_TAG 1
     354             : #define FD_EXEC_TEST_GOSSIP_CRDS_VALUE_DATA_TAG  2
     355             : #define FD_EXEC_TEST_GOSSIP_PULL_REQUEST_FILTER_TAG 1
     356             : #define FD_EXEC_TEST_GOSSIP_PULL_REQUEST_VALUE_TAG 2
     357           0 : #define FD_EXEC_TEST_GOSSIP_MSG_PING_TAG         1
     358           0 : #define FD_EXEC_TEST_GOSSIP_MSG_PONG_TAG         2
     359           0 : #define FD_EXEC_TEST_GOSSIP_MSG_PULL_REQUEST_TAG 3
     360           0 : #define FD_EXEC_TEST_GOSSIP_MSG_PULL_RESPONSE_TAG 4
     361           0 : #define FD_EXEC_TEST_GOSSIP_MSG_PUSH_MESSAGE_TAG 5
     362           0 : #define FD_EXEC_TEST_GOSSIP_MSG_PRUNE_MESSAGE_TAG 6
     363             : #define FD_EXEC_TEST_GOSSIP_EFFECTS_VALID_TAG    1
     364             : #define FD_EXEC_TEST_GOSSIP_EFFECTS_MSG_TAG      2
     365             : #define FD_EXEC_TEST_GOSSIP_FIXTURE_METADATA_TAG 1
     366             : #define FD_EXEC_TEST_GOSSIP_FIXTURE_INPUT_TAG    2
     367             : #define FD_EXEC_TEST_GOSSIP_FIXTURE_OUTPUT_TAG   3
     368             : 
     369             : /* Struct field encoding specification for nanopb */
     370             : #define FD_EXEC_TEST_GOSSIP_FIXTURE_FIELDLIST(X, a) \
     371             : X(a, STATIC,   OPTIONAL, MESSAGE,  metadata,          1) \
     372             : X(a, POINTER,  SINGULAR, BYTES,    input,             2) \
     373             : X(a, STATIC,   OPTIONAL, MESSAGE,  output,            3)
     374             : #define FD_EXEC_TEST_GOSSIP_FIXTURE_CALLBACK NULL
     375             : #define FD_EXEC_TEST_GOSSIP_FIXTURE_DEFAULT NULL
     376             : #define fd_exec_test_gossip_fixture_t_metadata_MSGTYPE fd_exec_test_fixture_metadata_t
     377             : #define fd_exec_test_gossip_fixture_t_output_MSGTYPE fd_exec_test_gossip_effects_t
     378             : 
     379             : #define FD_EXEC_TEST_GOSSIP_EFFECTS_FIELDLIST(X, a) \
     380             : X(a, STATIC,   SINGULAR, BOOL,     valid,             1) \
     381             : X(a, STATIC,   OPTIONAL, MESSAGE,  msg,               2)
     382             : #define FD_EXEC_TEST_GOSSIP_EFFECTS_CALLBACK NULL
     383             : #define FD_EXEC_TEST_GOSSIP_EFFECTS_DEFAULT NULL
     384             : #define fd_exec_test_gossip_effects_t_msg_MSGTYPE fd_exec_test_gossip_msg_t
     385             : 
     386             : #define FD_EXEC_TEST_GOSSIP_MSG_FIELDLIST(X, a) \
     387             : X(a, STATIC,   ONEOF,    MESSAGE,  (msg,ping,msg.ping),   1) \
     388             : X(a, STATIC,   ONEOF,    MESSAGE,  (msg,pong,msg.pong),   2) \
     389             : X(a, STATIC,   ONEOF,    MESSAGE,  (msg,pull_request,msg.pull_request),   3) \
     390             : X(a, STATIC,   ONEOF,    MESSAGE,  (msg,pull_response,msg.pull_response),   4) \
     391             : X(a, STATIC,   ONEOF,    MESSAGE,  (msg,push_message,msg.push_message),   5) \
     392             : X(a, STATIC,   ONEOF,    MESSAGE,  (msg,prune_message,msg.prune_message),   6)
     393             : #define FD_EXEC_TEST_GOSSIP_MSG_CALLBACK NULL
     394             : #define FD_EXEC_TEST_GOSSIP_MSG_DEFAULT NULL
     395             : #define fd_exec_test_gossip_msg_t_msg_ping_MSGTYPE fd_exec_test_gossip_ping_t
     396             : #define fd_exec_test_gossip_msg_t_msg_pong_MSGTYPE fd_exec_test_gossip_pong_t
     397             : #define fd_exec_test_gossip_msg_t_msg_pull_request_MSGTYPE fd_exec_test_gossip_pull_request_t
     398             : #define fd_exec_test_gossip_msg_t_msg_pull_response_MSGTYPE fd_exec_test_gossip_pull_response_t
     399             : #define fd_exec_test_gossip_msg_t_msg_push_message_MSGTYPE fd_exec_test_gossip_push_message_t
     400             : #define fd_exec_test_gossip_msg_t_msg_prune_message_MSGTYPE fd_exec_test_gossip_prune_message_t
     401             : 
     402             : #define FD_EXEC_TEST_GOSSIP_PING_FIELDLIST(X, a) \
     403             : X(a, POINTER,  SINGULAR, BYTES,    from,              1) \
     404             : X(a, POINTER,  SINGULAR, BYTES,    token,             2) \
     405             : X(a, POINTER,  SINGULAR, BYTES,    signature,         3)
     406             : #define FD_EXEC_TEST_GOSSIP_PING_CALLBACK NULL
     407             : #define FD_EXEC_TEST_GOSSIP_PING_DEFAULT NULL
     408             : 
     409             : #define FD_EXEC_TEST_GOSSIP_PONG_FIELDLIST(X, a) \
     410             : X(a, POINTER,  SINGULAR, BYTES,    from,              1) \
     411             : X(a, POINTER,  SINGULAR, BYTES,    hash,              2) \
     412             : X(a, POINTER,  SINGULAR, BYTES,    signature,         3)
     413             : #define FD_EXEC_TEST_GOSSIP_PONG_CALLBACK NULL
     414             : #define FD_EXEC_TEST_GOSSIP_PONG_DEFAULT NULL
     415             : 
     416             : #define FD_EXEC_TEST_GOSSIP_PULL_REQUEST_FIELDLIST(X, a) \
     417             : X(a, STATIC,   OPTIONAL, MESSAGE,  filter,            1) \
     418             : X(a, STATIC,   OPTIONAL, MESSAGE,  value,             2)
     419             : #define FD_EXEC_TEST_GOSSIP_PULL_REQUEST_CALLBACK NULL
     420             : #define FD_EXEC_TEST_GOSSIP_PULL_REQUEST_DEFAULT NULL
     421             : #define fd_exec_test_gossip_pull_request_t_filter_MSGTYPE fd_exec_test_gossip_crds_filter_t
     422             : #define fd_exec_test_gossip_pull_request_t_value_MSGTYPE fd_exec_test_gossip_crds_value_t
     423             : 
     424             : #define FD_EXEC_TEST_GOSSIP_PULL_RESPONSE_FIELDLIST(X, a) \
     425             : X(a, POINTER,  SINGULAR, BYTES,    pubkey,            1) \
     426             : X(a, POINTER,  REPEATED, MESSAGE,  values,            2)
     427             : #define FD_EXEC_TEST_GOSSIP_PULL_RESPONSE_CALLBACK NULL
     428             : #define FD_EXEC_TEST_GOSSIP_PULL_RESPONSE_DEFAULT NULL
     429             : #define fd_exec_test_gossip_pull_response_t_values_MSGTYPE fd_exec_test_gossip_crds_value_t
     430             : 
     431             : #define FD_EXEC_TEST_GOSSIP_PUSH_MESSAGE_FIELDLIST(X, a) \
     432             : X(a, POINTER,  SINGULAR, BYTES,    pubkey,            1) \
     433             : X(a, POINTER,  REPEATED, MESSAGE,  values,            2)
     434             : #define FD_EXEC_TEST_GOSSIP_PUSH_MESSAGE_CALLBACK NULL
     435             : #define FD_EXEC_TEST_GOSSIP_PUSH_MESSAGE_DEFAULT NULL
     436             : #define fd_exec_test_gossip_push_message_t_values_MSGTYPE fd_exec_test_gossip_crds_value_t
     437             : 
     438             : #define FD_EXEC_TEST_GOSSIP_PRUNE_MESSAGE_FIELDLIST(X, a) \
     439             : X(a, POINTER,  SINGULAR, BYTES,    pubkey,            1) \
     440             : X(a, STATIC,   OPTIONAL, MESSAGE,  data,              2)
     441             : #define FD_EXEC_TEST_GOSSIP_PRUNE_MESSAGE_CALLBACK NULL
     442             : #define FD_EXEC_TEST_GOSSIP_PRUNE_MESSAGE_DEFAULT NULL
     443             : #define fd_exec_test_gossip_prune_message_t_data_MSGTYPE fd_exec_test_gossip_prune_data_t
     444             : 
     445             : #define FD_EXEC_TEST_GOSSIP_PRUNE_DATA_FIELDLIST(X, a) \
     446             : X(a, POINTER,  SINGULAR, BYTES,    pubkey,            1) \
     447             : X(a, POINTER,  REPEATED, BYTES,    prunes,            2) \
     448             : X(a, POINTER,  SINGULAR, BYTES,    signature,         3) \
     449             : X(a, POINTER,  SINGULAR, BYTES,    destination,       4) \
     450             : X(a, STATIC,   SINGULAR, UINT64,   wallclock,         5)
     451             : #define FD_EXEC_TEST_GOSSIP_PRUNE_DATA_CALLBACK NULL
     452             : #define FD_EXEC_TEST_GOSSIP_PRUNE_DATA_DEFAULT NULL
     453             : 
     454             : #define FD_EXEC_TEST_GOSSIP_CRDS_FILTER_FIELDLIST(X, a) \
     455             : X(a, STATIC,   OPTIONAL, MESSAGE,  filter,            1) \
     456             : X(a, STATIC,   SINGULAR, UINT64,   mask,              2) \
     457             : X(a, STATIC,   SINGULAR, UINT32,   mask_bits,         3)
     458             : #define FD_EXEC_TEST_GOSSIP_CRDS_FILTER_CALLBACK NULL
     459             : #define FD_EXEC_TEST_GOSSIP_CRDS_FILTER_DEFAULT NULL
     460             : #define fd_exec_test_gossip_crds_filter_t_filter_MSGTYPE fd_exec_test_gossip_bloom_t
     461             : 
     462             : #define FD_EXEC_TEST_GOSSIP_BLOOM_FIELDLIST(X, a) \
     463             : X(a, POINTER,  REPEATED, UINT64,   keys,              1) \
     464             : X(a, POINTER,  SINGULAR, BYTES,    bits,              2) \
     465             : X(a, STATIC,   SINGULAR, UINT64,   num_bits_set,      3)
     466             : #define FD_EXEC_TEST_GOSSIP_BLOOM_CALLBACK NULL
     467             : #define FD_EXEC_TEST_GOSSIP_BLOOM_DEFAULT NULL
     468             : 
     469             : #define FD_EXEC_TEST_GOSSIP_CRDS_VALUE_FIELDLIST(X, a) \
     470             : X(a, POINTER,  SINGULAR, BYTES,    signature,         1) \
     471             : X(a, STATIC,   OPTIONAL, MESSAGE,  data,              2)
     472             : #define FD_EXEC_TEST_GOSSIP_CRDS_VALUE_CALLBACK NULL
     473             : #define FD_EXEC_TEST_GOSSIP_CRDS_VALUE_DEFAULT NULL
     474             : #define fd_exec_test_gossip_crds_value_t_data_MSGTYPE fd_exec_test_gossip_crds_data_t
     475             : 
     476             : #define FD_EXEC_TEST_GOSSIP_CRDS_DATA_FIELDLIST(X, a) \
     477             : X(a, STATIC,   ONEOF,    MESSAGE,  (data,contact_info,data.contact_info),   1) \
     478             : X(a, STATIC,   ONEOF,    MESSAGE,  (data,vote,data.vote),   2) \
     479             : X(a, STATIC,   ONEOF,    MESSAGE,  (data,lowest_slot,data.lowest_slot),   3) \
     480             : X(a, STATIC,   ONEOF,    MESSAGE,  (data,epoch_slots,data.epoch_slots),   4) \
     481             : X(a, STATIC,   ONEOF,    MESSAGE,  (data,snapshot_hashes,data.snapshot_hashes),   5) \
     482             : X(a, STATIC,   ONEOF,    MESSAGE,  (data,duplicate_shred,data.duplicate_shred),   6)
     483             : #define FD_EXEC_TEST_GOSSIP_CRDS_DATA_CALLBACK NULL
     484             : #define FD_EXEC_TEST_GOSSIP_CRDS_DATA_DEFAULT NULL
     485             : #define fd_exec_test_gossip_crds_data_t_data_contact_info_MSGTYPE fd_exec_test_gossip_contact_info_t
     486             : #define fd_exec_test_gossip_crds_data_t_data_vote_MSGTYPE fd_exec_test_gossip_vote_t
     487             : #define fd_exec_test_gossip_crds_data_t_data_lowest_slot_MSGTYPE fd_exec_test_gossip_lowest_slot_t
     488             : #define fd_exec_test_gossip_crds_data_t_data_epoch_slots_MSGTYPE fd_exec_test_gossip_epoch_slots_t
     489             : #define fd_exec_test_gossip_crds_data_t_data_snapshot_hashes_MSGTYPE fd_exec_test_gossip_snapshot_hashes_t
     490             : #define fd_exec_test_gossip_crds_data_t_data_duplicate_shred_MSGTYPE fd_exec_test_gossip_duplicate_shred_t
     491             : 
     492             : #define FD_EXEC_TEST_GOSSIP_CONTACT_INFO_FIELDLIST(X, a) \
     493             : X(a, POINTER,  SINGULAR, BYTES,    pubkey,            1) \
     494             : X(a, STATIC,   SINGULAR, UINT64,   wallclock,         2) \
     495             : X(a, STATIC,   SINGULAR, UINT64,   outset,            3) \
     496             : X(a, STATIC,   SINGULAR, UINT32,   shred_version,     4) \
     497             : X(a, STATIC,   SINGULAR, UINT32,   version_major,     5) \
     498             : X(a, STATIC,   SINGULAR, UINT32,   version_minor,     6) \
     499             : X(a, STATIC,   SINGULAR, UINT32,   version_patch,     7) \
     500             : X(a, STATIC,   SINGULAR, UINT32,   version_commit,    8) \
     501             : X(a, STATIC,   SINGULAR, UINT32,   version_feature_set,   9) \
     502             : X(a, STATIC,   SINGULAR, UINT32,   version_client,   10) \
     503             : X(a, POINTER,  REPEATED, MESSAGE,  addrs,            11) \
     504             : X(a, POINTER,  REPEATED, MESSAGE,  sockets,          12) \
     505             : X(a, POINTER,  SINGULAR, BYTES,    extensions,       13)
     506             : #define FD_EXEC_TEST_GOSSIP_CONTACT_INFO_CALLBACK NULL
     507             : #define FD_EXEC_TEST_GOSSIP_CONTACT_INFO_DEFAULT NULL
     508             : #define fd_exec_test_gossip_contact_info_t_addrs_MSGTYPE fd_exec_test_gossip_ip_addr_t
     509             : #define fd_exec_test_gossip_contact_info_t_sockets_MSGTYPE fd_exec_test_gossip_socket_entry_t
     510             : 
     511             : #define FD_EXEC_TEST_GOSSIP_IP_ADDR_FIELDLIST(X, a) \
     512             : X(a, STATIC,   ONEOF,    FIXED32,  (addr,ipv4,addr.ipv4),   1) \
     513             : X(a, STATIC,   ONEOF,    MESSAGE,  (addr,ipv6,addr.ipv6),   2)
     514             : #define FD_EXEC_TEST_GOSSIP_IP_ADDR_CALLBACK NULL
     515             : #define FD_EXEC_TEST_GOSSIP_IP_ADDR_DEFAULT NULL
     516             : #define fd_exec_test_gossip_ip_addr_t_addr_ipv6_MSGTYPE fd_exec_test_gossip_ipv6_addr_t
     517             : 
     518             : #define FD_EXEC_TEST_GOSSIP_IPV6_ADDR_FIELDLIST(X, a) \
     519             : X(a, STATIC,   SINGULAR, FIXED64,  hi,                1) \
     520             : X(a, STATIC,   SINGULAR, FIXED64,  lo,                2)
     521             : #define FD_EXEC_TEST_GOSSIP_IPV6_ADDR_CALLBACK NULL
     522             : #define FD_EXEC_TEST_GOSSIP_IPV6_ADDR_DEFAULT NULL
     523             : 
     524             : #define FD_EXEC_TEST_GOSSIP_SOCKET_ENTRY_FIELDLIST(X, a) \
     525             : X(a, STATIC,   SINGULAR, UINT32,   key,               1) \
     526             : X(a, STATIC,   SINGULAR, UINT32,   index,             2) \
     527             : X(a, STATIC,   SINGULAR, UINT32,   offset,            3)
     528             : #define FD_EXEC_TEST_GOSSIP_SOCKET_ENTRY_CALLBACK NULL
     529             : #define FD_EXEC_TEST_GOSSIP_SOCKET_ENTRY_DEFAULT NULL
     530             : 
     531             : #define FD_EXEC_TEST_GOSSIP_VOTE_FIELDLIST(X, a) \
     532             : X(a, STATIC,   SINGULAR, UINT32,   index,             1) \
     533             : X(a, POINTER,  SINGULAR, BYTES,    from,              2) \
     534             : X(a, STATIC,   SINGULAR, UINT64,   wallclock,         3) \
     535             : X(a, POINTER,  SINGULAR, BYTES,    transaction,       4)
     536             : #define FD_EXEC_TEST_GOSSIP_VOTE_CALLBACK NULL
     537             : #define FD_EXEC_TEST_GOSSIP_VOTE_DEFAULT NULL
     538             : 
     539             : #define FD_EXEC_TEST_GOSSIP_LOWEST_SLOT_FIELDLIST(X, a) \
     540             : X(a, STATIC,   SINGULAR, UINT32,   index,             1) \
     541             : X(a, POINTER,  SINGULAR, BYTES,    from,              2) \
     542             : X(a, STATIC,   SINGULAR, UINT64,   lowest,            3) \
     543             : X(a, STATIC,   SINGULAR, UINT64,   wallclock,         4)
     544             : #define FD_EXEC_TEST_GOSSIP_LOWEST_SLOT_CALLBACK NULL
     545             : #define FD_EXEC_TEST_GOSSIP_LOWEST_SLOT_DEFAULT NULL
     546             : 
     547             : #define FD_EXEC_TEST_GOSSIP_EPOCH_SLOTS_FIELDLIST(X, a) \
     548             : X(a, STATIC,   SINGULAR, UINT32,   index,             1) \
     549             : X(a, POINTER,  SINGULAR, BYTES,    from,              2) \
     550             : X(a, STATIC,   SINGULAR, UINT64,   wallclock,         3) \
     551             : X(a, POINTER,  REPEATED, MESSAGE,  slots,             4)
     552             : #define FD_EXEC_TEST_GOSSIP_EPOCH_SLOTS_CALLBACK NULL
     553             : #define FD_EXEC_TEST_GOSSIP_EPOCH_SLOTS_DEFAULT NULL
     554             : #define fd_exec_test_gossip_epoch_slots_t_slots_MSGTYPE fd_exec_test_gossip_compressed_slots_t
     555             : 
     556             : #define FD_EXEC_TEST_GOSSIP_COMPRESSED_SLOTS_FIELDLIST(X, a) \
     557             : X(a, STATIC,   SINGULAR, UINT64,   first_slot,        1) \
     558             : X(a, STATIC,   SINGULAR, UINT64,   num,               2) \
     559             : X(a, POINTER,  ONEOF,    BYTES,    (data,uncompressed,data.uncompressed),   3) \
     560             : X(a, POINTER,  ONEOF,    BYTES,    (data,flate2,data.flate2),   4)
     561             : #define FD_EXEC_TEST_GOSSIP_COMPRESSED_SLOTS_CALLBACK NULL
     562             : #define FD_EXEC_TEST_GOSSIP_COMPRESSED_SLOTS_DEFAULT NULL
     563             : 
     564             : #define FD_EXEC_TEST_GOSSIP_SNAPSHOT_HASHES_FIELDLIST(X, a) \
     565             : X(a, POINTER,  SINGULAR, BYTES,    from,              1) \
     566             : X(a, STATIC,   SINGULAR, UINT64,   full_slot,         2) \
     567             : X(a, POINTER,  SINGULAR, BYTES,    full_hash,         3) \
     568             : X(a, POINTER,  REPEATED, MESSAGE,  incremental,       4) \
     569             : X(a, STATIC,   SINGULAR, UINT64,   wallclock,         5)
     570             : #define FD_EXEC_TEST_GOSSIP_SNAPSHOT_HASHES_CALLBACK NULL
     571             : #define FD_EXEC_TEST_GOSSIP_SNAPSHOT_HASHES_DEFAULT NULL
     572             : #define fd_exec_test_gossip_snapshot_hashes_t_incremental_MSGTYPE fd_exec_test_gossip_incremental_hash_t
     573             : 
     574             : #define FD_EXEC_TEST_GOSSIP_INCREMENTAL_HASH_FIELDLIST(X, a) \
     575             : X(a, STATIC,   SINGULAR, UINT64,   slot,              1) \
     576             : X(a, POINTER,  SINGULAR, BYTES,    hash,              2)
     577             : #define FD_EXEC_TEST_GOSSIP_INCREMENTAL_HASH_CALLBACK NULL
     578             : #define FD_EXEC_TEST_GOSSIP_INCREMENTAL_HASH_DEFAULT NULL
     579             : 
     580             : #define FD_EXEC_TEST_GOSSIP_DUPLICATE_SHRED_FIELDLIST(X, a) \
     581             : X(a, STATIC,   SINGULAR, UINT32,   index,             1) \
     582             : X(a, POINTER,  SINGULAR, BYTES,    from,              2) \
     583             : X(a, STATIC,   SINGULAR, UINT64,   wallclock,         3) \
     584             : X(a, STATIC,   SINGULAR, UINT64,   slot,              4) \
     585             : X(a, STATIC,   SINGULAR, UINT32,   shred_index,       5) \
     586             : X(a, STATIC,   SINGULAR, UINT32,   shred_type,        6) \
     587             : X(a, STATIC,   SINGULAR, UINT32,   num_chunks,        7) \
     588             : X(a, STATIC,   SINGULAR, UINT32,   chunk_index,       8) \
     589             : X(a, POINTER,  SINGULAR, BYTES,    chunk,             9)
     590             : #define FD_EXEC_TEST_GOSSIP_DUPLICATE_SHRED_CALLBACK NULL
     591             : #define FD_EXEC_TEST_GOSSIP_DUPLICATE_SHRED_DEFAULT NULL
     592             : 
     593             : extern const pb_msgdesc_t fd_exec_test_gossip_fixture_t_msg;
     594             : extern const pb_msgdesc_t fd_exec_test_gossip_effects_t_msg;
     595             : extern const pb_msgdesc_t fd_exec_test_gossip_msg_t_msg;
     596             : extern const pb_msgdesc_t fd_exec_test_gossip_ping_t_msg;
     597             : extern const pb_msgdesc_t fd_exec_test_gossip_pong_t_msg;
     598             : extern const pb_msgdesc_t fd_exec_test_gossip_pull_request_t_msg;
     599             : extern const pb_msgdesc_t fd_exec_test_gossip_pull_response_t_msg;
     600             : extern const pb_msgdesc_t fd_exec_test_gossip_push_message_t_msg;
     601             : extern const pb_msgdesc_t fd_exec_test_gossip_prune_message_t_msg;
     602             : extern const pb_msgdesc_t fd_exec_test_gossip_prune_data_t_msg;
     603             : extern const pb_msgdesc_t fd_exec_test_gossip_crds_filter_t_msg;
     604             : extern const pb_msgdesc_t fd_exec_test_gossip_bloom_t_msg;
     605             : extern const pb_msgdesc_t fd_exec_test_gossip_crds_value_t_msg;
     606             : extern const pb_msgdesc_t fd_exec_test_gossip_crds_data_t_msg;
     607             : extern const pb_msgdesc_t fd_exec_test_gossip_contact_info_t_msg;
     608             : extern const pb_msgdesc_t fd_exec_test_gossip_ip_addr_t_msg;
     609             : extern const pb_msgdesc_t fd_exec_test_gossip_ipv6_addr_t_msg;
     610             : extern const pb_msgdesc_t fd_exec_test_gossip_socket_entry_t_msg;
     611             : extern const pb_msgdesc_t fd_exec_test_gossip_vote_t_msg;
     612             : extern const pb_msgdesc_t fd_exec_test_gossip_lowest_slot_t_msg;
     613             : extern const pb_msgdesc_t fd_exec_test_gossip_epoch_slots_t_msg;
     614             : extern const pb_msgdesc_t fd_exec_test_gossip_compressed_slots_t_msg;
     615             : extern const pb_msgdesc_t fd_exec_test_gossip_snapshot_hashes_t_msg;
     616             : extern const pb_msgdesc_t fd_exec_test_gossip_incremental_hash_t_msg;
     617             : extern const pb_msgdesc_t fd_exec_test_gossip_duplicate_shred_t_msg;
     618             : 
     619             : /* Defines for backwards compatibility with code written before nanopb-0.4.0 */
     620             : #define FD_EXEC_TEST_GOSSIP_FIXTURE_FIELDS &fd_exec_test_gossip_fixture_t_msg
     621             : #define FD_EXEC_TEST_GOSSIP_EFFECTS_FIELDS &fd_exec_test_gossip_effects_t_msg
     622             : #define FD_EXEC_TEST_GOSSIP_MSG_FIELDS &fd_exec_test_gossip_msg_t_msg
     623             : #define FD_EXEC_TEST_GOSSIP_PING_FIELDS &fd_exec_test_gossip_ping_t_msg
     624             : #define FD_EXEC_TEST_GOSSIP_PONG_FIELDS &fd_exec_test_gossip_pong_t_msg
     625             : #define FD_EXEC_TEST_GOSSIP_PULL_REQUEST_FIELDS &fd_exec_test_gossip_pull_request_t_msg
     626             : #define FD_EXEC_TEST_GOSSIP_PULL_RESPONSE_FIELDS &fd_exec_test_gossip_pull_response_t_msg
     627             : #define FD_EXEC_TEST_GOSSIP_PUSH_MESSAGE_FIELDS &fd_exec_test_gossip_push_message_t_msg
     628             : #define FD_EXEC_TEST_GOSSIP_PRUNE_MESSAGE_FIELDS &fd_exec_test_gossip_prune_message_t_msg
     629             : #define FD_EXEC_TEST_GOSSIP_PRUNE_DATA_FIELDS &fd_exec_test_gossip_prune_data_t_msg
     630             : #define FD_EXEC_TEST_GOSSIP_CRDS_FILTER_FIELDS &fd_exec_test_gossip_crds_filter_t_msg
     631             : #define FD_EXEC_TEST_GOSSIP_BLOOM_FIELDS &fd_exec_test_gossip_bloom_t_msg
     632             : #define FD_EXEC_TEST_GOSSIP_CRDS_VALUE_FIELDS &fd_exec_test_gossip_crds_value_t_msg
     633             : #define FD_EXEC_TEST_GOSSIP_CRDS_DATA_FIELDS &fd_exec_test_gossip_crds_data_t_msg
     634             : #define FD_EXEC_TEST_GOSSIP_CONTACT_INFO_FIELDS &fd_exec_test_gossip_contact_info_t_msg
     635             : #define FD_EXEC_TEST_GOSSIP_IP_ADDR_FIELDS &fd_exec_test_gossip_ip_addr_t_msg
     636             : #define FD_EXEC_TEST_GOSSIP_IPV6_ADDR_FIELDS &fd_exec_test_gossip_ipv6_addr_t_msg
     637             : #define FD_EXEC_TEST_GOSSIP_SOCKET_ENTRY_FIELDS &fd_exec_test_gossip_socket_entry_t_msg
     638             : #define FD_EXEC_TEST_GOSSIP_VOTE_FIELDS &fd_exec_test_gossip_vote_t_msg
     639             : #define FD_EXEC_TEST_GOSSIP_LOWEST_SLOT_FIELDS &fd_exec_test_gossip_lowest_slot_t_msg
     640             : #define FD_EXEC_TEST_GOSSIP_EPOCH_SLOTS_FIELDS &fd_exec_test_gossip_epoch_slots_t_msg
     641             : #define FD_EXEC_TEST_GOSSIP_COMPRESSED_SLOTS_FIELDS &fd_exec_test_gossip_compressed_slots_t_msg
     642             : #define FD_EXEC_TEST_GOSSIP_SNAPSHOT_HASHES_FIELDS &fd_exec_test_gossip_snapshot_hashes_t_msg
     643             : #define FD_EXEC_TEST_GOSSIP_INCREMENTAL_HASH_FIELDS &fd_exec_test_gossip_incremental_hash_t_msg
     644             : #define FD_EXEC_TEST_GOSSIP_DUPLICATE_SHRED_FIELDS &fd_exec_test_gossip_duplicate_shred_t_msg
     645             : 
     646             : /* Maximum encoded size of messages (where known) */
     647             : /* fd_exec_test_GossipFixture_size depends on runtime parameters */
     648             : /* fd_exec_test_GossipEffects_size depends on runtime parameters */
     649             : /* fd_exec_test_GossipMsg_size depends on runtime parameters */
     650             : /* fd_exec_test_GossipPing_size depends on runtime parameters */
     651             : /* fd_exec_test_GossipPong_size depends on runtime parameters */
     652             : /* fd_exec_test_GossipPullRequest_size depends on runtime parameters */
     653             : /* fd_exec_test_GossipPullResponse_size depends on runtime parameters */
     654             : /* fd_exec_test_GossipPushMessage_size depends on runtime parameters */
     655             : /* fd_exec_test_GossipPruneMessage_size depends on runtime parameters */
     656             : /* fd_exec_test_GossipPruneData_size depends on runtime parameters */
     657             : /* fd_exec_test_GossipCrdsFilter_size depends on runtime parameters */
     658             : /* fd_exec_test_GossipBloom_size depends on runtime parameters */
     659             : /* fd_exec_test_GossipCrdsValue_size depends on runtime parameters */
     660             : /* fd_exec_test_GossipCrdsData_size depends on runtime parameters */
     661             : /* fd_exec_test_GossipContactInfo_size depends on runtime parameters */
     662             : /* fd_exec_test_GossipVote_size depends on runtime parameters */
     663             : /* fd_exec_test_GossipLowestSlot_size depends on runtime parameters */
     664             : /* fd_exec_test_GossipEpochSlots_size depends on runtime parameters */
     665             : /* fd_exec_test_GossipCompressedSlots_size depends on runtime parameters */
     666             : /* fd_exec_test_GossipSnapshotHashes_size depends on runtime parameters */
     667             : /* fd_exec_test_GossipIncrementalHash_size depends on runtime parameters */
     668             : /* fd_exec_test_GossipDuplicateShred_size depends on runtime parameters */
     669             : #define FD_EXEC_TEST_GOSSIP_IPV6_ADDR_SIZE       18
     670             : #define FD_EXEC_TEST_GOSSIP_IP_ADDR_SIZE         20
     671             : #define FD_EXEC_TEST_GOSSIP_SOCKET_ENTRY_SIZE    18
     672             : #define ORG_SOLANA_SEALEVEL_V1_GOSSIP_PB_H_MAX_SIZE FD_EXEC_TEST_GOSSIP_IP_ADDR_SIZE
     673             : 
     674             : /* Mapping from canonical names (mangle_names or overridden package name) */
     675             : #define org_solana_sealevel_v1_GossipFixture fd_exec_test_GossipFixture
     676             : #define org_solana_sealevel_v1_GossipEffects fd_exec_test_GossipEffects
     677             : #define org_solana_sealevel_v1_GossipMsg fd_exec_test_GossipMsg
     678             : #define org_solana_sealevel_v1_GossipPing fd_exec_test_GossipPing
     679             : #define org_solana_sealevel_v1_GossipPong fd_exec_test_GossipPong
     680             : #define org_solana_sealevel_v1_GossipPullRequest fd_exec_test_GossipPullRequest
     681             : #define org_solana_sealevel_v1_GossipPullResponse fd_exec_test_GossipPullResponse
     682             : #define org_solana_sealevel_v1_GossipPushMessage fd_exec_test_GossipPushMessage
     683             : #define org_solana_sealevel_v1_GossipPruneMessage fd_exec_test_GossipPruneMessage
     684             : #define org_solana_sealevel_v1_GossipPruneData fd_exec_test_GossipPruneData
     685             : #define org_solana_sealevel_v1_GossipCrdsFilter fd_exec_test_GossipCrdsFilter
     686             : #define org_solana_sealevel_v1_GossipBloom fd_exec_test_GossipBloom
     687             : #define org_solana_sealevel_v1_GossipCrdsValue fd_exec_test_GossipCrdsValue
     688             : #define org_solana_sealevel_v1_GossipCrdsData fd_exec_test_GossipCrdsData
     689             : #define org_solana_sealevel_v1_GossipContactInfo fd_exec_test_GossipContactInfo
     690             : #define org_solana_sealevel_v1_GossipIpAddr fd_exec_test_GossipIpAddr
     691             : #define org_solana_sealevel_v1_GossipIpv6Addr fd_exec_test_GossipIpv6Addr
     692             : #define org_solana_sealevel_v1_GossipSocketEntry fd_exec_test_GossipSocketEntry
     693             : #define org_solana_sealevel_v1_GossipVote fd_exec_test_GossipVote
     694             : #define org_solana_sealevel_v1_GossipLowestSlot fd_exec_test_GossipLowestSlot
     695             : #define org_solana_sealevel_v1_GossipEpochSlots fd_exec_test_GossipEpochSlots
     696             : #define org_solana_sealevel_v1_GossipCompressedSlots fd_exec_test_GossipCompressedSlots
     697             : #define org_solana_sealevel_v1_GossipSnapshotHashes fd_exec_test_GossipSnapshotHashes
     698             : #define org_solana_sealevel_v1_GossipIncrementalHash fd_exec_test_GossipIncrementalHash
     699             : #define org_solana_sealevel_v1_GossipDuplicateShred fd_exec_test_GossipDuplicateShred
     700             : #define ORG_SOLANA_SEALEVEL_V1_GOSSIP_FIXTURE_INIT_DEFAULT FD_EXEC_TEST_GOSSIP_FIXTURE_INIT_DEFAULT
     701             : #define ORG_SOLANA_SEALEVEL_V1_GOSSIP_EFFECTS_INIT_DEFAULT FD_EXEC_TEST_GOSSIP_EFFECTS_INIT_DEFAULT
     702             : #define ORG_SOLANA_SEALEVEL_V1_GOSSIP_MSG_INIT_DEFAULT FD_EXEC_TEST_GOSSIP_MSG_INIT_DEFAULT
     703             : #define ORG_SOLANA_SEALEVEL_V1_GOSSIP_PING_INIT_DEFAULT FD_EXEC_TEST_GOSSIP_PING_INIT_DEFAULT
     704             : #define ORG_SOLANA_SEALEVEL_V1_GOSSIP_PONG_INIT_DEFAULT FD_EXEC_TEST_GOSSIP_PONG_INIT_DEFAULT
     705             : #define ORG_SOLANA_SEALEVEL_V1_GOSSIP_PULL_REQUEST_INIT_DEFAULT FD_EXEC_TEST_GOSSIP_PULL_REQUEST_INIT_DEFAULT
     706             : #define ORG_SOLANA_SEALEVEL_V1_GOSSIP_PULL_RESPONSE_INIT_DEFAULT FD_EXEC_TEST_GOSSIP_PULL_RESPONSE_INIT_DEFAULT
     707             : #define ORG_SOLANA_SEALEVEL_V1_GOSSIP_PUSH_MESSAGE_INIT_DEFAULT FD_EXEC_TEST_GOSSIP_PUSH_MESSAGE_INIT_DEFAULT
     708             : #define ORG_SOLANA_SEALEVEL_V1_GOSSIP_PRUNE_MESSAGE_INIT_DEFAULT FD_EXEC_TEST_GOSSIP_PRUNE_MESSAGE_INIT_DEFAULT
     709             : #define ORG_SOLANA_SEALEVEL_V1_GOSSIP_PRUNE_DATA_INIT_DEFAULT FD_EXEC_TEST_GOSSIP_PRUNE_DATA_INIT_DEFAULT
     710             : #define ORG_SOLANA_SEALEVEL_V1_GOSSIP_CRDS_FILTER_INIT_DEFAULT FD_EXEC_TEST_GOSSIP_CRDS_FILTER_INIT_DEFAULT
     711             : #define ORG_SOLANA_SEALEVEL_V1_GOSSIP_BLOOM_INIT_DEFAULT FD_EXEC_TEST_GOSSIP_BLOOM_INIT_DEFAULT
     712             : #define ORG_SOLANA_SEALEVEL_V1_GOSSIP_CRDS_VALUE_INIT_DEFAULT FD_EXEC_TEST_GOSSIP_CRDS_VALUE_INIT_DEFAULT
     713             : #define ORG_SOLANA_SEALEVEL_V1_GOSSIP_CRDS_DATA_INIT_DEFAULT FD_EXEC_TEST_GOSSIP_CRDS_DATA_INIT_DEFAULT
     714             : #define ORG_SOLANA_SEALEVEL_V1_GOSSIP_CONTACT_INFO_INIT_DEFAULT FD_EXEC_TEST_GOSSIP_CONTACT_INFO_INIT_DEFAULT
     715             : #define ORG_SOLANA_SEALEVEL_V1_GOSSIP_IP_ADDR_INIT_DEFAULT FD_EXEC_TEST_GOSSIP_IP_ADDR_INIT_DEFAULT
     716             : #define ORG_SOLANA_SEALEVEL_V1_GOSSIP_IPV6_ADDR_INIT_DEFAULT FD_EXEC_TEST_GOSSIP_IPV6_ADDR_INIT_DEFAULT
     717             : #define ORG_SOLANA_SEALEVEL_V1_GOSSIP_SOCKET_ENTRY_INIT_DEFAULT FD_EXEC_TEST_GOSSIP_SOCKET_ENTRY_INIT_DEFAULT
     718             : #define ORG_SOLANA_SEALEVEL_V1_GOSSIP_VOTE_INIT_DEFAULT FD_EXEC_TEST_GOSSIP_VOTE_INIT_DEFAULT
     719             : #define ORG_SOLANA_SEALEVEL_V1_GOSSIP_LOWEST_SLOT_INIT_DEFAULT FD_EXEC_TEST_GOSSIP_LOWEST_SLOT_INIT_DEFAULT
     720             : #define ORG_SOLANA_SEALEVEL_V1_GOSSIP_EPOCH_SLOTS_INIT_DEFAULT FD_EXEC_TEST_GOSSIP_EPOCH_SLOTS_INIT_DEFAULT
     721             : #define ORG_SOLANA_SEALEVEL_V1_GOSSIP_COMPRESSED_SLOTS_INIT_DEFAULT FD_EXEC_TEST_GOSSIP_COMPRESSED_SLOTS_INIT_DEFAULT
     722             : #define ORG_SOLANA_SEALEVEL_V1_GOSSIP_SNAPSHOT_HASHES_INIT_DEFAULT FD_EXEC_TEST_GOSSIP_SNAPSHOT_HASHES_INIT_DEFAULT
     723             : #define ORG_SOLANA_SEALEVEL_V1_GOSSIP_INCREMENTAL_HASH_INIT_DEFAULT FD_EXEC_TEST_GOSSIP_INCREMENTAL_HASH_INIT_DEFAULT
     724             : #define ORG_SOLANA_SEALEVEL_V1_GOSSIP_DUPLICATE_SHRED_INIT_DEFAULT FD_EXEC_TEST_GOSSIP_DUPLICATE_SHRED_INIT_DEFAULT
     725             : #define ORG_SOLANA_SEALEVEL_V1_GOSSIP_FIXTURE_INIT_ZERO FD_EXEC_TEST_GOSSIP_FIXTURE_INIT_ZERO
     726             : #define ORG_SOLANA_SEALEVEL_V1_GOSSIP_EFFECTS_INIT_ZERO FD_EXEC_TEST_GOSSIP_EFFECTS_INIT_ZERO
     727             : #define ORG_SOLANA_SEALEVEL_V1_GOSSIP_MSG_INIT_ZERO FD_EXEC_TEST_GOSSIP_MSG_INIT_ZERO
     728             : #define ORG_SOLANA_SEALEVEL_V1_GOSSIP_PING_INIT_ZERO FD_EXEC_TEST_GOSSIP_PING_INIT_ZERO
     729             : #define ORG_SOLANA_SEALEVEL_V1_GOSSIP_PONG_INIT_ZERO FD_EXEC_TEST_GOSSIP_PONG_INIT_ZERO
     730             : #define ORG_SOLANA_SEALEVEL_V1_GOSSIP_PULL_REQUEST_INIT_ZERO FD_EXEC_TEST_GOSSIP_PULL_REQUEST_INIT_ZERO
     731             : #define ORG_SOLANA_SEALEVEL_V1_GOSSIP_PULL_RESPONSE_INIT_ZERO FD_EXEC_TEST_GOSSIP_PULL_RESPONSE_INIT_ZERO
     732             : #define ORG_SOLANA_SEALEVEL_V1_GOSSIP_PUSH_MESSAGE_INIT_ZERO FD_EXEC_TEST_GOSSIP_PUSH_MESSAGE_INIT_ZERO
     733             : #define ORG_SOLANA_SEALEVEL_V1_GOSSIP_PRUNE_MESSAGE_INIT_ZERO FD_EXEC_TEST_GOSSIP_PRUNE_MESSAGE_INIT_ZERO
     734             : #define ORG_SOLANA_SEALEVEL_V1_GOSSIP_PRUNE_DATA_INIT_ZERO FD_EXEC_TEST_GOSSIP_PRUNE_DATA_INIT_ZERO
     735             : #define ORG_SOLANA_SEALEVEL_V1_GOSSIP_CRDS_FILTER_INIT_ZERO FD_EXEC_TEST_GOSSIP_CRDS_FILTER_INIT_ZERO
     736             : #define ORG_SOLANA_SEALEVEL_V1_GOSSIP_BLOOM_INIT_ZERO FD_EXEC_TEST_GOSSIP_BLOOM_INIT_ZERO
     737             : #define ORG_SOLANA_SEALEVEL_V1_GOSSIP_CRDS_VALUE_INIT_ZERO FD_EXEC_TEST_GOSSIP_CRDS_VALUE_INIT_ZERO
     738             : #define ORG_SOLANA_SEALEVEL_V1_GOSSIP_CRDS_DATA_INIT_ZERO FD_EXEC_TEST_GOSSIP_CRDS_DATA_INIT_ZERO
     739             : #define ORG_SOLANA_SEALEVEL_V1_GOSSIP_CONTACT_INFO_INIT_ZERO FD_EXEC_TEST_GOSSIP_CONTACT_INFO_INIT_ZERO
     740             : #define ORG_SOLANA_SEALEVEL_V1_GOSSIP_IP_ADDR_INIT_ZERO FD_EXEC_TEST_GOSSIP_IP_ADDR_INIT_ZERO
     741             : #define ORG_SOLANA_SEALEVEL_V1_GOSSIP_IPV6_ADDR_INIT_ZERO FD_EXEC_TEST_GOSSIP_IPV6_ADDR_INIT_ZERO
     742             : #define ORG_SOLANA_SEALEVEL_V1_GOSSIP_SOCKET_ENTRY_INIT_ZERO FD_EXEC_TEST_GOSSIP_SOCKET_ENTRY_INIT_ZERO
     743             : #define ORG_SOLANA_SEALEVEL_V1_GOSSIP_VOTE_INIT_ZERO FD_EXEC_TEST_GOSSIP_VOTE_INIT_ZERO
     744             : #define ORG_SOLANA_SEALEVEL_V1_GOSSIP_LOWEST_SLOT_INIT_ZERO FD_EXEC_TEST_GOSSIP_LOWEST_SLOT_INIT_ZERO
     745             : #define ORG_SOLANA_SEALEVEL_V1_GOSSIP_EPOCH_SLOTS_INIT_ZERO FD_EXEC_TEST_GOSSIP_EPOCH_SLOTS_INIT_ZERO
     746             : #define ORG_SOLANA_SEALEVEL_V1_GOSSIP_COMPRESSED_SLOTS_INIT_ZERO FD_EXEC_TEST_GOSSIP_COMPRESSED_SLOTS_INIT_ZERO
     747             : #define ORG_SOLANA_SEALEVEL_V1_GOSSIP_SNAPSHOT_HASHES_INIT_ZERO FD_EXEC_TEST_GOSSIP_SNAPSHOT_HASHES_INIT_ZERO
     748             : #define ORG_SOLANA_SEALEVEL_V1_GOSSIP_INCREMENTAL_HASH_INIT_ZERO FD_EXEC_TEST_GOSSIP_INCREMENTAL_HASH_INIT_ZERO
     749             : #define ORG_SOLANA_SEALEVEL_V1_GOSSIP_DUPLICATE_SHRED_INIT_ZERO FD_EXEC_TEST_GOSSIP_DUPLICATE_SHRED_INIT_ZERO
     750             : 
     751             : #ifdef __cplusplus
     752             : } /* extern "C" */
     753             : #endif
     754             : 
     755             : #endif

Generated by: LCOV version 1.14