/* Generated by the protocol buffer compiler.  DO NOT EDIT! */
/* Generated from: onnx.proto3 */

/* Do not generate deprecated warnings for self */
#ifndef PROTOBUF_C__NO_DEPRECATED
#define PROTOBUF_C__NO_DEPRECATED
#endif

#include "onnx.proto3.pb-c.h"
void   onnx__attribute_proto__init
                     (Onnx__AttributeProto         *message)
{
  static const Onnx__AttributeProto init_value = ONNX__ATTRIBUTE_PROTO__INIT;
  *message = init_value;
}
size_t onnx__attribute_proto__get_packed_size
                     (const Onnx__AttributeProto *message)
{
  assert(message->base.descriptor == &onnx__attribute_proto__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t onnx__attribute_proto__pack
                     (const Onnx__AttributeProto *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &onnx__attribute_proto__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t onnx__attribute_proto__pack_to_buffer
                     (const Onnx__AttributeProto *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &onnx__attribute_proto__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Onnx__AttributeProto *
       onnx__attribute_proto__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Onnx__AttributeProto *)
     protobuf_c_message_unpack (&onnx__attribute_proto__descriptor,
                                allocator, len, data);
}
void   onnx__attribute_proto__free_unpacked
                     (Onnx__AttributeProto *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &onnx__attribute_proto__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   onnx__value_info_proto__init
                     (Onnx__ValueInfoProto         *message)
{
  static const Onnx__ValueInfoProto init_value = ONNX__VALUE_INFO_PROTO__INIT;
  *message = init_value;
}
size_t onnx__value_info_proto__get_packed_size
                     (const Onnx__ValueInfoProto *message)
{
  assert(message->base.descriptor == &onnx__value_info_proto__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t onnx__value_info_proto__pack
                     (const Onnx__ValueInfoProto *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &onnx__value_info_proto__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t onnx__value_info_proto__pack_to_buffer
                     (const Onnx__ValueInfoProto *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &onnx__value_info_proto__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Onnx__ValueInfoProto *
       onnx__value_info_proto__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Onnx__ValueInfoProto *)
     protobuf_c_message_unpack (&onnx__value_info_proto__descriptor,
                                allocator, len, data);
}
void   onnx__value_info_proto__free_unpacked
                     (Onnx__ValueInfoProto *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &onnx__value_info_proto__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   onnx__node_proto__init
                     (Onnx__NodeProto         *message)
{
  static const Onnx__NodeProto init_value = ONNX__NODE_PROTO__INIT;
  *message = init_value;
}
size_t onnx__node_proto__get_packed_size
                     (const Onnx__NodeProto *message)
{
  assert(message->base.descriptor == &onnx__node_proto__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t onnx__node_proto__pack
                     (const Onnx__NodeProto *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &onnx__node_proto__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t onnx__node_proto__pack_to_buffer
                     (const Onnx__NodeProto *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &onnx__node_proto__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Onnx__NodeProto *
       onnx__node_proto__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Onnx__NodeProto *)
     protobuf_c_message_unpack (&onnx__node_proto__descriptor,
                                allocator, len, data);
}
void   onnx__node_proto__free_unpacked
                     (Onnx__NodeProto *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &onnx__node_proto__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   onnx__training_info_proto__init
                     (Onnx__TrainingInfoProto         *message)
{
  static const Onnx__TrainingInfoProto init_value = ONNX__TRAINING_INFO_PROTO__INIT;
  *message = init_value;
}
size_t onnx__training_info_proto__get_packed_size
                     (const Onnx__TrainingInfoProto *message)
{
  assert(message->base.descriptor == &onnx__training_info_proto__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t onnx__training_info_proto__pack
                     (const Onnx__TrainingInfoProto *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &onnx__training_info_proto__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t onnx__training_info_proto__pack_to_buffer
                     (const Onnx__TrainingInfoProto *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &onnx__training_info_proto__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Onnx__TrainingInfoProto *
       onnx__training_info_proto__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Onnx__TrainingInfoProto *)
     protobuf_c_message_unpack (&onnx__training_info_proto__descriptor,
                                allocator, len, data);
}
void   onnx__training_info_proto__free_unpacked
                     (Onnx__TrainingInfoProto *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &onnx__training_info_proto__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   onnx__model_proto__init
                     (Onnx__ModelProto         *message)
{
  static const Onnx__ModelProto init_value = ONNX__MODEL_PROTO__INIT;
  *message = init_value;
}
size_t onnx__model_proto__get_packed_size
                     (const Onnx__ModelProto *message)
{
  assert(message->base.descriptor == &onnx__model_proto__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t onnx__model_proto__pack
                     (const Onnx__ModelProto *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &onnx__model_proto__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t onnx__model_proto__pack_to_buffer
                     (const Onnx__ModelProto *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &onnx__model_proto__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Onnx__ModelProto *
       onnx__model_proto__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Onnx__ModelProto *)
     protobuf_c_message_unpack (&onnx__model_proto__descriptor,
                                allocator, len, data);
}
void   onnx__model_proto__free_unpacked
                     (Onnx__ModelProto *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &onnx__model_proto__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   onnx__string_string_entry_proto__init
                     (Onnx__StringStringEntryProto         *message)
{
  static const Onnx__StringStringEntryProto init_value = ONNX__STRING_STRING_ENTRY_PROTO__INIT;
  *message = init_value;
}
size_t onnx__string_string_entry_proto__get_packed_size
                     (const Onnx__StringStringEntryProto *message)
{
  assert(message->base.descriptor == &onnx__string_string_entry_proto__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t onnx__string_string_entry_proto__pack
                     (const Onnx__StringStringEntryProto *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &onnx__string_string_entry_proto__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t onnx__string_string_entry_proto__pack_to_buffer
                     (const Onnx__StringStringEntryProto *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &onnx__string_string_entry_proto__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Onnx__StringStringEntryProto *
       onnx__string_string_entry_proto__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Onnx__StringStringEntryProto *)
     protobuf_c_message_unpack (&onnx__string_string_entry_proto__descriptor,
                                allocator, len, data);
}
void   onnx__string_string_entry_proto__free_unpacked
                     (Onnx__StringStringEntryProto *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &onnx__string_string_entry_proto__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   onnx__tensor_annotation__init
                     (Onnx__TensorAnnotation         *message)
{
  static const Onnx__TensorAnnotation init_value = ONNX__TENSOR_ANNOTATION__INIT;
  *message = init_value;
}
size_t onnx__tensor_annotation__get_packed_size
                     (const Onnx__TensorAnnotation *message)
{
  assert(message->base.descriptor == &onnx__tensor_annotation__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t onnx__tensor_annotation__pack
                     (const Onnx__TensorAnnotation *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &onnx__tensor_annotation__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t onnx__tensor_annotation__pack_to_buffer
                     (const Onnx__TensorAnnotation *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &onnx__tensor_annotation__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Onnx__TensorAnnotation *
       onnx__tensor_annotation__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Onnx__TensorAnnotation *)
     protobuf_c_message_unpack (&onnx__tensor_annotation__descriptor,
                                allocator, len, data);
}
void   onnx__tensor_annotation__free_unpacked
                     (Onnx__TensorAnnotation *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &onnx__tensor_annotation__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   onnx__graph_proto__init
                     (Onnx__GraphProto         *message)
{
  static const Onnx__GraphProto init_value = ONNX__GRAPH_PROTO__INIT;
  *message = init_value;
}
size_t onnx__graph_proto__get_packed_size
                     (const Onnx__GraphProto *message)
{
  assert(message->base.descriptor == &onnx__graph_proto__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t onnx__graph_proto__pack
                     (const Onnx__GraphProto *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &onnx__graph_proto__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t onnx__graph_proto__pack_to_buffer
                     (const Onnx__GraphProto *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &onnx__graph_proto__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Onnx__GraphProto *
       onnx__graph_proto__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Onnx__GraphProto *)
     protobuf_c_message_unpack (&onnx__graph_proto__descriptor,
                                allocator, len, data);
}
void   onnx__graph_proto__free_unpacked
                     (Onnx__GraphProto *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &onnx__graph_proto__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   onnx__tensor_proto__segment__init
                     (Onnx__TensorProto__Segment         *message)
{
  static const Onnx__TensorProto__Segment init_value = ONNX__TENSOR_PROTO__SEGMENT__INIT;
  *message = init_value;
}
void   onnx__tensor_proto__init
                     (Onnx__TensorProto         *message)
{
  static const Onnx__TensorProto init_value = ONNX__TENSOR_PROTO__INIT;
  *message = init_value;
}
size_t onnx__tensor_proto__get_packed_size
                     (const Onnx__TensorProto *message)
{
  assert(message->base.descriptor == &onnx__tensor_proto__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t onnx__tensor_proto__pack
                     (const Onnx__TensorProto *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &onnx__tensor_proto__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t onnx__tensor_proto__pack_to_buffer
                     (const Onnx__TensorProto *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &onnx__tensor_proto__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Onnx__TensorProto *
       onnx__tensor_proto__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Onnx__TensorProto *)
     protobuf_c_message_unpack (&onnx__tensor_proto__descriptor,
                                allocator, len, data);
}
void   onnx__tensor_proto__free_unpacked
                     (Onnx__TensorProto *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &onnx__tensor_proto__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   onnx__sparse_tensor_proto__init
                     (Onnx__SparseTensorProto         *message)
{
  static const Onnx__SparseTensorProto init_value = ONNX__SPARSE_TENSOR_PROTO__INIT;
  *message = init_value;
}
size_t onnx__sparse_tensor_proto__get_packed_size
                     (const Onnx__SparseTensorProto *message)
{
  assert(message->base.descriptor == &onnx__sparse_tensor_proto__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t onnx__sparse_tensor_proto__pack
                     (const Onnx__SparseTensorProto *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &onnx__sparse_tensor_proto__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t onnx__sparse_tensor_proto__pack_to_buffer
                     (const Onnx__SparseTensorProto *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &onnx__sparse_tensor_proto__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Onnx__SparseTensorProto *
       onnx__sparse_tensor_proto__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Onnx__SparseTensorProto *)
     protobuf_c_message_unpack (&onnx__sparse_tensor_proto__descriptor,
                                allocator, len, data);
}
void   onnx__sparse_tensor_proto__free_unpacked
                     (Onnx__SparseTensorProto *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &onnx__sparse_tensor_proto__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   onnx__tensor_shape_proto__dimension__init
                     (Onnx__TensorShapeProto__Dimension         *message)
{
  static const Onnx__TensorShapeProto__Dimension init_value = ONNX__TENSOR_SHAPE_PROTO__DIMENSION__INIT;
  *message = init_value;
}
void   onnx__tensor_shape_proto__init
                     (Onnx__TensorShapeProto         *message)
{
  static const Onnx__TensorShapeProto init_value = ONNX__TENSOR_SHAPE_PROTO__INIT;
  *message = init_value;
}
size_t onnx__tensor_shape_proto__get_packed_size
                     (const Onnx__TensorShapeProto *message)
{
  assert(message->base.descriptor == &onnx__tensor_shape_proto__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t onnx__tensor_shape_proto__pack
                     (const Onnx__TensorShapeProto *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &onnx__tensor_shape_proto__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t onnx__tensor_shape_proto__pack_to_buffer
                     (const Onnx__TensorShapeProto *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &onnx__tensor_shape_proto__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Onnx__TensorShapeProto *
       onnx__tensor_shape_proto__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Onnx__TensorShapeProto *)
     protobuf_c_message_unpack (&onnx__tensor_shape_proto__descriptor,
                                allocator, len, data);
}
void   onnx__tensor_shape_proto__free_unpacked
                     (Onnx__TensorShapeProto *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &onnx__tensor_shape_proto__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   onnx__type_proto__tensor__init
                     (Onnx__TypeProto__Tensor         *message)
{
  static const Onnx__TypeProto__Tensor init_value = ONNX__TYPE_PROTO__TENSOR__INIT;
  *message = init_value;
}
void   onnx__type_proto__sequence__init
                     (Onnx__TypeProto__Sequence         *message)
{
  static const Onnx__TypeProto__Sequence init_value = ONNX__TYPE_PROTO__SEQUENCE__INIT;
  *message = init_value;
}
void   onnx__type_proto__map__init
                     (Onnx__TypeProto__Map         *message)
{
  static const Onnx__TypeProto__Map init_value = ONNX__TYPE_PROTO__MAP__INIT;
  *message = init_value;
}
void   onnx__type_proto__init
                     (Onnx__TypeProto         *message)
{
  static const Onnx__TypeProto init_value = ONNX__TYPE_PROTO__INIT;
  *message = init_value;
}
size_t onnx__type_proto__get_packed_size
                     (const Onnx__TypeProto *message)
{
  assert(message->base.descriptor == &onnx__type_proto__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t onnx__type_proto__pack
                     (const Onnx__TypeProto *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &onnx__type_proto__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t onnx__type_proto__pack_to_buffer
                     (const Onnx__TypeProto *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &onnx__type_proto__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Onnx__TypeProto *
       onnx__type_proto__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Onnx__TypeProto *)
     protobuf_c_message_unpack (&onnx__type_proto__descriptor,
                                allocator, len, data);
}
void   onnx__type_proto__free_unpacked
                     (Onnx__TypeProto *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &onnx__type_proto__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   onnx__operator_set_id_proto__init
                     (Onnx__OperatorSetIdProto         *message)
{
  static const Onnx__OperatorSetIdProto init_value = ONNX__OPERATOR_SET_ID_PROTO__INIT;
  *message = init_value;
}
size_t onnx__operator_set_id_proto__get_packed_size
                     (const Onnx__OperatorSetIdProto *message)
{
  assert(message->base.descriptor == &onnx__operator_set_id_proto__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t onnx__operator_set_id_proto__pack
                     (const Onnx__OperatorSetIdProto *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &onnx__operator_set_id_proto__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t onnx__operator_set_id_proto__pack_to_buffer
                     (const Onnx__OperatorSetIdProto *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &onnx__operator_set_id_proto__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Onnx__OperatorSetIdProto *
       onnx__operator_set_id_proto__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Onnx__OperatorSetIdProto *)
     protobuf_c_message_unpack (&onnx__operator_set_id_proto__descriptor,
                                allocator, len, data);
}
void   onnx__operator_set_id_proto__free_unpacked
                     (Onnx__OperatorSetIdProto *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &onnx__operator_set_id_proto__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
static const ProtobufCEnumValue onnx__attribute_proto__attribute_type__enum_values_by_number[13] =
{
  { "UNDEFINED", "ONNX__ATTRIBUTE_PROTO__ATTRIBUTE_TYPE__UNDEFINED", 0 },
  { "FLOAT", "ONNX__ATTRIBUTE_PROTO__ATTRIBUTE_TYPE__FLOAT", 1 },
  { "INT", "ONNX__ATTRIBUTE_PROTO__ATTRIBUTE_TYPE__INT", 2 },
  { "STRING", "ONNX__ATTRIBUTE_PROTO__ATTRIBUTE_TYPE__STRING", 3 },
  { "TENSOR", "ONNX__ATTRIBUTE_PROTO__ATTRIBUTE_TYPE__TENSOR", 4 },
  { "GRAPH", "ONNX__ATTRIBUTE_PROTO__ATTRIBUTE_TYPE__GRAPH", 5 },
  { "FLOATS", "ONNX__ATTRIBUTE_PROTO__ATTRIBUTE_TYPE__FLOATS", 6 },
  { "INTS", "ONNX__ATTRIBUTE_PROTO__ATTRIBUTE_TYPE__INTS", 7 },
  { "STRINGS", "ONNX__ATTRIBUTE_PROTO__ATTRIBUTE_TYPE__STRINGS", 8 },
  { "TENSORS", "ONNX__ATTRIBUTE_PROTO__ATTRIBUTE_TYPE__TENSORS", 9 },
  { "GRAPHS", "ONNX__ATTRIBUTE_PROTO__ATTRIBUTE_TYPE__GRAPHS", 10 },
  { "SPARSE_TENSOR", "ONNX__ATTRIBUTE_PROTO__ATTRIBUTE_TYPE__SPARSE_TENSOR", 11 },
  { "SPARSE_TENSORS", "ONNX__ATTRIBUTE_PROTO__ATTRIBUTE_TYPE__SPARSE_TENSORS", 12 },
};
static const ProtobufCIntRange onnx__attribute_proto__attribute_type__value_ranges[] = {
{0, 0},{0, 13}
};
static const ProtobufCEnumValueIndex onnx__attribute_proto__attribute_type__enum_values_by_name[13] =
{
  { "FLOAT", 1 },
  { "FLOATS", 6 },
  { "GRAPH", 5 },
  { "GRAPHS", 10 },
  { "INT", 2 },
  { "INTS", 7 },
  { "SPARSE_TENSOR", 11 },
  { "SPARSE_TENSORS", 12 },
  { "STRING", 3 },
  { "STRINGS", 8 },
  { "TENSOR", 4 },
  { "TENSORS", 9 },
  { "UNDEFINED", 0 },
};
const ProtobufCEnumDescriptor onnx__attribute_proto__attribute_type__descriptor =
{
  PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC,
  "onnx.AttributeProto.AttributeType",
  "AttributeType",
  "Onnx__AttributeProto__AttributeType",
  "onnx",
  13,
  onnx__attribute_proto__attribute_type__enum_values_by_number,
  13,
  onnx__attribute_proto__attribute_type__enum_values_by_name,
  1,
  onnx__attribute_proto__attribute_type__value_ranges,
  NULL,NULL,NULL,NULL   /* reserved[1234] */
};
static const ProtobufCFieldDescriptor onnx__attribute_proto__field_descriptors[16] =
{
  {
    "name",
    1,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(Onnx__AttributeProto, name),
    NULL,
    &protobuf_c_empty_string,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "f",
    2,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_FLOAT,
    0,   /* quantifier_offset */
    offsetof(Onnx__AttributeProto, f),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "i",
    3,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_INT64,
    0,   /* quantifier_offset */
    offsetof(Onnx__AttributeProto, i),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "s",
    4,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_BYTES,
    0,   /* quantifier_offset */
    offsetof(Onnx__AttributeProto, s),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "t",
    5,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(Onnx__AttributeProto, t),
    &onnx__tensor_proto__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "g",
    6,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(Onnx__AttributeProto, g),
    &onnx__graph_proto__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "floats",
    7,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_FLOAT,
    offsetof(Onnx__AttributeProto, n_floats),
    offsetof(Onnx__AttributeProto, floats),
    NULL,
    NULL,
    0 | PROTOBUF_C_FIELD_FLAG_PACKED,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "ints",
    8,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_INT64,
    offsetof(Onnx__AttributeProto, n_ints),
    offsetof(Onnx__AttributeProto, ints),
    NULL,
    NULL,
    0 | PROTOBUF_C_FIELD_FLAG_PACKED,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "strings",
    9,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Onnx__AttributeProto, n_strings),
    offsetof(Onnx__AttributeProto, strings),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "tensors",
    10,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Onnx__AttributeProto, n_tensors),
    offsetof(Onnx__AttributeProto, tensors),
    &onnx__tensor_proto__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "graphs",
    11,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Onnx__AttributeProto, n_graphs),
    offsetof(Onnx__AttributeProto, graphs),
    &onnx__graph_proto__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "doc_string",
    13,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(Onnx__AttributeProto, doc_string),
    NULL,
    &protobuf_c_empty_string,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "type",
    20,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_ENUM,
    0,   /* quantifier_offset */
    offsetof(Onnx__AttributeProto, type),
    &onnx__attribute_proto__attribute_type__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "ref_attr_name",
    21,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(Onnx__AttributeProto, ref_attr_name),
    NULL,
    &protobuf_c_empty_string,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "sparse_tensor",
    22,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(Onnx__AttributeProto, sparse_tensor),
    &onnx__sparse_tensor_proto__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "sparse_tensors",
    23,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Onnx__AttributeProto, n_sparse_tensors),
    offsetof(Onnx__AttributeProto, sparse_tensors),
    &onnx__sparse_tensor_proto__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned onnx__attribute_proto__field_indices_by_name[] = {
  11,   /* field[11] = doc_string */
  1,   /* field[1] = f */
  6,   /* field[6] = floats */
  5,   /* field[5] = g */
  10,   /* field[10] = graphs */
  2,   /* field[2] = i */
  7,   /* field[7] = ints */
  0,   /* field[0] = name */
  13,   /* field[13] = ref_attr_name */
  3,   /* field[3] = s */
  14,   /* field[14] = sparse_tensor */
  15,   /* field[15] = sparse_tensors */
  8,   /* field[8] = strings */
  4,   /* field[4] = t */
  9,   /* field[9] = tensors */
  12,   /* field[12] = type */
};
static const ProtobufCIntRange onnx__attribute_proto__number_ranges[3 + 1] =
{
  { 1, 0 },
  { 13, 11 },
  { 20, 12 },
  { 0, 16 }
};
const ProtobufCMessageDescriptor onnx__attribute_proto__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "onnx.AttributeProto",
  "AttributeProto",
  "Onnx__AttributeProto",
  "onnx",
  sizeof(Onnx__AttributeProto),
  16,
  onnx__attribute_proto__field_descriptors,
  onnx__attribute_proto__field_indices_by_name,
  3,  onnx__attribute_proto__number_ranges,
  (ProtobufCMessageInit) onnx__attribute_proto__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor onnx__value_info_proto__field_descriptors[3] =
{
  {
    "name",
    1,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(Onnx__ValueInfoProto, name),
    NULL,
    &protobuf_c_empty_string,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "type",
    2,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(Onnx__ValueInfoProto, type),
    &onnx__type_proto__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "doc_string",
    3,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(Onnx__ValueInfoProto, doc_string),
    NULL,
    &protobuf_c_empty_string,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned onnx__value_info_proto__field_indices_by_name[] = {
  2,   /* field[2] = doc_string */
  0,   /* field[0] = name */
  1,   /* field[1] = type */
};
static const ProtobufCIntRange onnx__value_info_proto__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 3 }
};
const ProtobufCMessageDescriptor onnx__value_info_proto__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "onnx.ValueInfoProto",
  "ValueInfoProto",
  "Onnx__ValueInfoProto",
  "onnx",
  sizeof(Onnx__ValueInfoProto),
  3,
  onnx__value_info_proto__field_descriptors,
  onnx__value_info_proto__field_indices_by_name,
  1,  onnx__value_info_proto__number_ranges,
  (ProtobufCMessageInit) onnx__value_info_proto__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor onnx__node_proto__field_descriptors[7] =
{
  {
    "input",
    1,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_STRING,
    offsetof(Onnx__NodeProto, n_input),
    offsetof(Onnx__NodeProto, input),
    NULL,
    &protobuf_c_empty_string,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "output",
    2,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_STRING,
    offsetof(Onnx__NodeProto, n_output),
    offsetof(Onnx__NodeProto, output),
    NULL,
    &protobuf_c_empty_string,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "name",
    3,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(Onnx__NodeProto, name),
    NULL,
    &protobuf_c_empty_string,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "op_type",
    4,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(Onnx__NodeProto, op_type),
    NULL,
    &protobuf_c_empty_string,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "attribute",
    5,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Onnx__NodeProto, n_attribute),
    offsetof(Onnx__NodeProto, attribute),
    &onnx__attribute_proto__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "doc_string",
    6,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(Onnx__NodeProto, doc_string),
    NULL,
    &protobuf_c_empty_string,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "domain",
    7,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(Onnx__NodeProto, domain),
    NULL,
    &protobuf_c_empty_string,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned onnx__node_proto__field_indices_by_name[] = {
  4,   /* field[4] = attribute */
  5,   /* field[5] = doc_string */
  6,   /* field[6] = domain */
  0,   /* field[0] = input */
  2,   /* field[2] = name */
  3,   /* field[3] = op_type */
  1,   /* field[1] = output */
};
static const ProtobufCIntRange onnx__node_proto__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 7 }
};
const ProtobufCMessageDescriptor onnx__node_proto__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "onnx.NodeProto",
  "NodeProto",
  "Onnx__NodeProto",
  "onnx",
  sizeof(Onnx__NodeProto),
  7,
  onnx__node_proto__field_descriptors,
  onnx__node_proto__field_indices_by_name,
  1,  onnx__node_proto__number_ranges,
  (ProtobufCMessageInit) onnx__node_proto__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor onnx__training_info_proto__field_descriptors[4] =
{
  {
    "initialization",
    1,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(Onnx__TrainingInfoProto, initialization),
    &onnx__graph_proto__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "algorithm",
    2,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(Onnx__TrainingInfoProto, algorithm),
    &onnx__graph_proto__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "initialization_binding",
    3,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Onnx__TrainingInfoProto, n_initialization_binding),
    offsetof(Onnx__TrainingInfoProto, initialization_binding),
    &onnx__string_string_entry_proto__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "update_binding",
    4,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Onnx__TrainingInfoProto, n_update_binding),
    offsetof(Onnx__TrainingInfoProto, update_binding),
    &onnx__string_string_entry_proto__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned onnx__training_info_proto__field_indices_by_name[] = {
  1,   /* field[1] = algorithm */
  0,   /* field[0] = initialization */
  2,   /* field[2] = initialization_binding */
  3,   /* field[3] = update_binding */
};
static const ProtobufCIntRange onnx__training_info_proto__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 4 }
};
const ProtobufCMessageDescriptor onnx__training_info_proto__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "onnx.TrainingInfoProto",
  "TrainingInfoProto",
  "Onnx__TrainingInfoProto",
  "onnx",
  sizeof(Onnx__TrainingInfoProto),
  4,
  onnx__training_info_proto__field_descriptors,
  onnx__training_info_proto__field_indices_by_name,
  1,  onnx__training_info_proto__number_ranges,
  (ProtobufCMessageInit) onnx__training_info_proto__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor onnx__model_proto__field_descriptors[10] =
{
  {
    "ir_version",
    1,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_INT64,
    0,   /* quantifier_offset */
    offsetof(Onnx__ModelProto, ir_version),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "producer_name",
    2,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(Onnx__ModelProto, producer_name),
    NULL,
    &protobuf_c_empty_string,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "producer_version",
    3,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(Onnx__ModelProto, producer_version),
    NULL,
    &protobuf_c_empty_string,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "domain",
    4,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(Onnx__ModelProto, domain),
    NULL,
    &protobuf_c_empty_string,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "model_version",
    5,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_INT64,
    0,   /* quantifier_offset */
    offsetof(Onnx__ModelProto, model_version),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "doc_string",
    6,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(Onnx__ModelProto, doc_string),
    NULL,
    &protobuf_c_empty_string,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "graph",
    7,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(Onnx__ModelProto, graph),
    &onnx__graph_proto__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "opset_import",
    8,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Onnx__ModelProto, n_opset_import),
    offsetof(Onnx__ModelProto, opset_import),
    &onnx__operator_set_id_proto__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "metadata_props",
    14,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Onnx__ModelProto, n_metadata_props),
    offsetof(Onnx__ModelProto, metadata_props),
    &onnx__string_string_entry_proto__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "training_info",
    20,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Onnx__ModelProto, n_training_info),
    offsetof(Onnx__ModelProto, training_info),
    &onnx__training_info_proto__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned onnx__model_proto__field_indices_by_name[] = {
  5,   /* field[5] = doc_string */
  3,   /* field[3] = domain */
  6,   /* field[6] = graph */
  0,   /* field[0] = ir_version */
  8,   /* field[8] = metadata_props */
  4,   /* field[4] = model_version */
  7,   /* field[7] = opset_import */
  1,   /* field[1] = producer_name */
  2,   /* field[2] = producer_version */
  9,   /* field[9] = training_info */
};
static const ProtobufCIntRange onnx__model_proto__number_ranges[3 + 1] =
{
  { 1, 0 },
  { 14, 8 },
  { 20, 9 },
  { 0, 10 }
};
const ProtobufCMessageDescriptor onnx__model_proto__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "onnx.ModelProto",
  "ModelProto",
  "Onnx__ModelProto",
  "onnx",
  sizeof(Onnx__ModelProto),
  10,
  onnx__model_proto__field_descriptors,
  onnx__model_proto__field_indices_by_name,
  3,  onnx__model_proto__number_ranges,
  (ProtobufCMessageInit) onnx__model_proto__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor onnx__string_string_entry_proto__field_descriptors[2] =
{
  {
    "key",
    1,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(Onnx__StringStringEntryProto, key),
    NULL,
    &protobuf_c_empty_string,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "value",
    2,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(Onnx__StringStringEntryProto, value),
    NULL,
    &protobuf_c_empty_string,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned onnx__string_string_entry_proto__field_indices_by_name[] = {
  0,   /* field[0] = key */
  1,   /* field[1] = value */
};
static const ProtobufCIntRange onnx__string_string_entry_proto__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 2 }
};
const ProtobufCMessageDescriptor onnx__string_string_entry_proto__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "onnx.StringStringEntryProto",
  "StringStringEntryProto",
  "Onnx__StringStringEntryProto",
  "onnx",
  sizeof(Onnx__StringStringEntryProto),
  2,
  onnx__string_string_entry_proto__field_descriptors,
  onnx__string_string_entry_proto__field_indices_by_name,
  1,  onnx__string_string_entry_proto__number_ranges,
  (ProtobufCMessageInit) onnx__string_string_entry_proto__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor onnx__tensor_annotation__field_descriptors[2] =
{
  {
    "tensor_name",
    1,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(Onnx__TensorAnnotation, tensor_name),
    NULL,
    &protobuf_c_empty_string,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "quant_parameter_tensor_names",
    2,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Onnx__TensorAnnotation, n_quant_parameter_tensor_names),
    offsetof(Onnx__TensorAnnotation, quant_parameter_tensor_names),
    &onnx__string_string_entry_proto__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned onnx__tensor_annotation__field_indices_by_name[] = {
  1,   /* field[1] = quant_parameter_tensor_names */
  0,   /* field[0] = tensor_name */
};
static const ProtobufCIntRange onnx__tensor_annotation__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 2 }
};
const ProtobufCMessageDescriptor onnx__tensor_annotation__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "onnx.TensorAnnotation",
  "TensorAnnotation",
  "Onnx__TensorAnnotation",
  "onnx",
  sizeof(Onnx__TensorAnnotation),
  2,
  onnx__tensor_annotation__field_descriptors,
  onnx__tensor_annotation__field_indices_by_name,
  1,  onnx__tensor_annotation__number_ranges,
  (ProtobufCMessageInit) onnx__tensor_annotation__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor onnx__graph_proto__field_descriptors[9] =
{
  {
    "node",
    1,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Onnx__GraphProto, n_node),
    offsetof(Onnx__GraphProto, node),
    &onnx__node_proto__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "name",
    2,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(Onnx__GraphProto, name),
    NULL,
    &protobuf_c_empty_string,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "initializer",
    5,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Onnx__GraphProto, n_initializer),
    offsetof(Onnx__GraphProto, initializer),
    &onnx__tensor_proto__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "doc_string",
    10,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(Onnx__GraphProto, doc_string),
    NULL,
    &protobuf_c_empty_string,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "input",
    11,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Onnx__GraphProto, n_input),
    offsetof(Onnx__GraphProto, input),
    &onnx__value_info_proto__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "output",
    12,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Onnx__GraphProto, n_output),
    offsetof(Onnx__GraphProto, output),
    &onnx__value_info_proto__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "value_info",
    13,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Onnx__GraphProto, n_value_info),
    offsetof(Onnx__GraphProto, value_info),
    &onnx__value_info_proto__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "quantization_annotation",
    14,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Onnx__GraphProto, n_quantization_annotation),
    offsetof(Onnx__GraphProto, quantization_annotation),
    &onnx__tensor_annotation__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "sparse_initializer",
    15,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Onnx__GraphProto, n_sparse_initializer),
    offsetof(Onnx__GraphProto, sparse_initializer),
    &onnx__sparse_tensor_proto__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned onnx__graph_proto__field_indices_by_name[] = {
  3,   /* field[3] = doc_string */
  2,   /* field[2] = initializer */
  4,   /* field[4] = input */
  1,   /* field[1] = name */
  0,   /* field[0] = node */
  5,   /* field[5] = output */
  7,   /* field[7] = quantization_annotation */
  8,   /* field[8] = sparse_initializer */
  6,   /* field[6] = value_info */
};
static const ProtobufCIntRange onnx__graph_proto__number_ranges[3 + 1] =
{
  { 1, 0 },
  { 5, 2 },
  { 10, 3 },
  { 0, 9 }
};
const ProtobufCMessageDescriptor onnx__graph_proto__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "onnx.GraphProto",
  "GraphProto",
  "Onnx__GraphProto",
  "onnx",
  sizeof(Onnx__GraphProto),
  9,
  onnx__graph_proto__field_descriptors,
  onnx__graph_proto__field_indices_by_name,
  3,  onnx__graph_proto__number_ranges,
  (ProtobufCMessageInit) onnx__graph_proto__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor onnx__tensor_proto__segment__field_descriptors[2] =
{
  {
    "begin",
    1,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_INT64,
    0,   /* quantifier_offset */
    offsetof(Onnx__TensorProto__Segment, begin),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "end",
    2,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_INT64,
    0,   /* quantifier_offset */
    offsetof(Onnx__TensorProto__Segment, end),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned onnx__tensor_proto__segment__field_indices_by_name[] = {
  0,   /* field[0] = begin */
  1,   /* field[1] = end */
};
static const ProtobufCIntRange onnx__tensor_proto__segment__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 2 }
};
const ProtobufCMessageDescriptor onnx__tensor_proto__segment__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "onnx.TensorProto.Segment",
  "Segment",
  "Onnx__TensorProto__Segment",
  "onnx",
  sizeof(Onnx__TensorProto__Segment),
  2,
  onnx__tensor_proto__segment__field_descriptors,
  onnx__tensor_proto__segment__field_indices_by_name,
  1,  onnx__tensor_proto__segment__number_ranges,
  (ProtobufCMessageInit) onnx__tensor_proto__segment__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCEnumValue onnx__tensor_proto__data_type__enum_values_by_number[17] =
{
  { "UNDEFINED", "ONNX__TENSOR_PROTO__DATA_TYPE__UNDEFINED", 0 },
  { "FLOAT", "ONNX__TENSOR_PROTO__DATA_TYPE__FLOAT", 1 },
  { "UINT8", "ONNX__TENSOR_PROTO__DATA_TYPE__UINT8", 2 },
  { "INT8", "ONNX__TENSOR_PROTO__DATA_TYPE__INT8", 3 },
  { "UINT16", "ONNX__TENSOR_PROTO__DATA_TYPE__UINT16", 4 },
  { "INT16", "ONNX__TENSOR_PROTO__DATA_TYPE__INT16", 5 },
  { "INT32", "ONNX__TENSOR_PROTO__DATA_TYPE__INT32", 6 },
  { "INT64", "ONNX__TENSOR_PROTO__DATA_TYPE__INT64", 7 },
  { "STRING", "ONNX__TENSOR_PROTO__DATA_TYPE__STRING", 8 },
  { "BOOL", "ONNX__TENSOR_PROTO__DATA_TYPE__BOOL", 9 },
  { "FLOAT16", "ONNX__TENSOR_PROTO__DATA_TYPE__FLOAT16", 10 },
  { "DOUBLE", "ONNX__TENSOR_PROTO__DATA_TYPE__DOUBLE", 11 },
  { "UINT32", "ONNX__TENSOR_PROTO__DATA_TYPE__UINT32", 12 },
  { "UINT64", "ONNX__TENSOR_PROTO__DATA_TYPE__UINT64", 13 },
  { "COMPLEX64", "ONNX__TENSOR_PROTO__DATA_TYPE__COMPLEX64", 14 },
  { "COMPLEX128", "ONNX__TENSOR_PROTO__DATA_TYPE__COMPLEX128", 15 },
  { "BFLOAT16", "ONNX__TENSOR_PROTO__DATA_TYPE__BFLOAT16", 16 },
};
static const ProtobufCIntRange onnx__tensor_proto__data_type__value_ranges[] = {
{0, 0},{0, 17}
};
static const ProtobufCEnumValueIndex onnx__tensor_proto__data_type__enum_values_by_name[17] =
{
  { "BFLOAT16", 16 },
  { "BOOL", 9 },
  { "COMPLEX128", 15 },
  { "COMPLEX64", 14 },
  { "DOUBLE", 11 },
  { "FLOAT", 1 },
  { "FLOAT16", 10 },
  { "INT16", 5 },
  { "INT32", 6 },
  { "INT64", 7 },
  { "INT8", 3 },
  { "STRING", 8 },
  { "UINT16", 4 },
  { "UINT32", 12 },
  { "UINT64", 13 },
  { "UINT8", 2 },
  { "UNDEFINED", 0 },
};
const ProtobufCEnumDescriptor onnx__tensor_proto__data_type__descriptor =
{
  PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC,
  "onnx.TensorProto.DataType",
  "DataType",
  "Onnx__TensorProto__DataType",
  "onnx",
  17,
  onnx__tensor_proto__data_type__enum_values_by_number,
  17,
  onnx__tensor_proto__data_type__enum_values_by_name,
  1,
  onnx__tensor_proto__data_type__value_ranges,
  NULL,NULL,NULL,NULL   /* reserved[1234] */
};
static const ProtobufCEnumValue onnx__tensor_proto__data_location__enum_values_by_number[2] =
{
  { "DEFAULT", "ONNX__TENSOR_PROTO__DATA_LOCATION__DEFAULT", 0 },
  { "EXTERNAL", "ONNX__TENSOR_PROTO__DATA_LOCATION__EXTERNAL", 1 },
};
static const ProtobufCIntRange onnx__tensor_proto__data_location__value_ranges[] = {
{0, 0},{0, 2}
};
static const ProtobufCEnumValueIndex onnx__tensor_proto__data_location__enum_values_by_name[2] =
{
  { "DEFAULT", 0 },
  { "EXTERNAL", 1 },
};
const ProtobufCEnumDescriptor onnx__tensor_proto__data_location__descriptor =
{
  PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC,
  "onnx.TensorProto.DataLocation",
  "DataLocation",
  "Onnx__TensorProto__DataLocation",
  "onnx",
  2,
  onnx__tensor_proto__data_location__enum_values_by_number,
  2,
  onnx__tensor_proto__data_location__enum_values_by_name,
  1,
  onnx__tensor_proto__data_location__value_ranges,
  NULL,NULL,NULL,NULL   /* reserved[1234] */
};
static const ProtobufCFieldDescriptor onnx__tensor_proto__field_descriptors[14] =
{
  {
    "dims",
    1,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_INT64,
    offsetof(Onnx__TensorProto, n_dims),
    offsetof(Onnx__TensorProto, dims),
    NULL,
    NULL,
    0 | PROTOBUF_C_FIELD_FLAG_PACKED,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "data_type",
    2,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_INT32,
    0,   /* quantifier_offset */
    offsetof(Onnx__TensorProto, data_type),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "segment",
    3,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(Onnx__TensorProto, segment),
    &onnx__tensor_proto__segment__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "float_data",
    4,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_FLOAT,
    offsetof(Onnx__TensorProto, n_float_data),
    offsetof(Onnx__TensorProto, float_data),
    NULL,
    NULL,
    0 | PROTOBUF_C_FIELD_FLAG_PACKED,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "int32_data",
    5,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_INT32,
    offsetof(Onnx__TensorProto, n_int32_data),
    offsetof(Onnx__TensorProto, int32_data),
    NULL,
    NULL,
    0 | PROTOBUF_C_FIELD_FLAG_PACKED,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "string_data",
    6,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Onnx__TensorProto, n_string_data),
    offsetof(Onnx__TensorProto, string_data),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "int64_data",
    7,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_INT64,
    offsetof(Onnx__TensorProto, n_int64_data),
    offsetof(Onnx__TensorProto, int64_data),
    NULL,
    NULL,
    0 | PROTOBUF_C_FIELD_FLAG_PACKED,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "name",
    8,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(Onnx__TensorProto, name),
    NULL,
    &protobuf_c_empty_string,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "raw_data",
    9,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_BYTES,
    0,   /* quantifier_offset */
    offsetof(Onnx__TensorProto, raw_data),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "double_data",
    10,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_DOUBLE,
    offsetof(Onnx__TensorProto, n_double_data),
    offsetof(Onnx__TensorProto, double_data),
    NULL,
    NULL,
    0 | PROTOBUF_C_FIELD_FLAG_PACKED,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "uint64_data",
    11,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_UINT64,
    offsetof(Onnx__TensorProto, n_uint64_data),
    offsetof(Onnx__TensorProto, uint64_data),
    NULL,
    NULL,
    0 | PROTOBUF_C_FIELD_FLAG_PACKED,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "doc_string",
    12,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(Onnx__TensorProto, doc_string),
    NULL,
    &protobuf_c_empty_string,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "external_data",
    13,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Onnx__TensorProto, n_external_data),
    offsetof(Onnx__TensorProto, external_data),
    &onnx__string_string_entry_proto__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "data_location",
    14,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_ENUM,
    0,   /* quantifier_offset */
    offsetof(Onnx__TensorProto, data_location),
    &onnx__tensor_proto__data_location__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned onnx__tensor_proto__field_indices_by_name[] = {
  13,   /* field[13] = data_location */
  1,   /* field[1] = data_type */
  0,   /* field[0] = dims */
  11,   /* field[11] = doc_string */
  9,   /* field[9] = double_data */
  12,   /* field[12] = external_data */
  3,   /* field[3] = float_data */
  4,   /* field[4] = int32_data */
  6,   /* field[6] = int64_data */
  7,   /* field[7] = name */
  8,   /* field[8] = raw_data */
  2,   /* field[2] = segment */
  5,   /* field[5] = string_data */
  10,   /* field[10] = uint64_data */
};
static const ProtobufCIntRange onnx__tensor_proto__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 14 }
};
const ProtobufCMessageDescriptor onnx__tensor_proto__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "onnx.TensorProto",
  "TensorProto",
  "Onnx__TensorProto",
  "onnx",
  sizeof(Onnx__TensorProto),
  14,
  onnx__tensor_proto__field_descriptors,
  onnx__tensor_proto__field_indices_by_name,
  1,  onnx__tensor_proto__number_ranges,
  (ProtobufCMessageInit) onnx__tensor_proto__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor onnx__sparse_tensor_proto__field_descriptors[3] =
{
  {
    "values",
    1,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(Onnx__SparseTensorProto, values),
    &onnx__tensor_proto__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "indices",
    2,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(Onnx__SparseTensorProto, indices),
    &onnx__tensor_proto__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "dims",
    3,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_INT64,
    offsetof(Onnx__SparseTensorProto, n_dims),
    offsetof(Onnx__SparseTensorProto, dims),
    NULL,
    NULL,
    0 | PROTOBUF_C_FIELD_FLAG_PACKED,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned onnx__sparse_tensor_proto__field_indices_by_name[] = {
  2,   /* field[2] = dims */
  1,   /* field[1] = indices */
  0,   /* field[0] = values */
};
static const ProtobufCIntRange onnx__sparse_tensor_proto__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 3 }
};
const ProtobufCMessageDescriptor onnx__sparse_tensor_proto__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "onnx.SparseTensorProto",
  "SparseTensorProto",
  "Onnx__SparseTensorProto",
  "onnx",
  sizeof(Onnx__SparseTensorProto),
  3,
  onnx__sparse_tensor_proto__field_descriptors,
  onnx__sparse_tensor_proto__field_indices_by_name,
  1,  onnx__sparse_tensor_proto__number_ranges,
  (ProtobufCMessageInit) onnx__sparse_tensor_proto__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor onnx__tensor_shape_proto__dimension__field_descriptors[3] =
{
  {
    "dim_value",
    1,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_INT64,
    offsetof(Onnx__TensorShapeProto__Dimension, value_case),
    offsetof(Onnx__TensorShapeProto__Dimension, dim_value),
    NULL,
    NULL,
    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "dim_param",
    2,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_STRING,
    offsetof(Onnx__TensorShapeProto__Dimension, value_case),
    offsetof(Onnx__TensorShapeProto__Dimension, dim_param),
    NULL,
    &protobuf_c_empty_string,
    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "denotation",
    3,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(Onnx__TensorShapeProto__Dimension, denotation),
    NULL,
    &protobuf_c_empty_string,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned onnx__tensor_shape_proto__dimension__field_indices_by_name[] = {
  2,   /* field[2] = denotation */
  1,   /* field[1] = dim_param */
  0,   /* field[0] = dim_value */
};
static const ProtobufCIntRange onnx__tensor_shape_proto__dimension__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 3 }
};
const ProtobufCMessageDescriptor onnx__tensor_shape_proto__dimension__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "onnx.TensorShapeProto.Dimension",
  "Dimension",
  "Onnx__TensorShapeProto__Dimension",
  "onnx",
  sizeof(Onnx__TensorShapeProto__Dimension),
  3,
  onnx__tensor_shape_proto__dimension__field_descriptors,
  onnx__tensor_shape_proto__dimension__field_indices_by_name,
  1,  onnx__tensor_shape_proto__dimension__number_ranges,
  (ProtobufCMessageInit) onnx__tensor_shape_proto__dimension__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor onnx__tensor_shape_proto__field_descriptors[1] =
{
  {
    "dim",
    1,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Onnx__TensorShapeProto, n_dim),
    offsetof(Onnx__TensorShapeProto, dim),
    &onnx__tensor_shape_proto__dimension__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned onnx__tensor_shape_proto__field_indices_by_name[] = {
  0,   /* field[0] = dim */
};
static const ProtobufCIntRange onnx__tensor_shape_proto__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 1 }
};
const ProtobufCMessageDescriptor onnx__tensor_shape_proto__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "onnx.TensorShapeProto",
  "TensorShapeProto",
  "Onnx__TensorShapeProto",
  "onnx",
  sizeof(Onnx__TensorShapeProto),
  1,
  onnx__tensor_shape_proto__field_descriptors,
  onnx__tensor_shape_proto__field_indices_by_name,
  1,  onnx__tensor_shape_proto__number_ranges,
  (ProtobufCMessageInit) onnx__tensor_shape_proto__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor onnx__type_proto__tensor__field_descriptors[2] =
{
  {
    "elem_type",
    1,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_INT32,
    0,   /* quantifier_offset */
    offsetof(Onnx__TypeProto__Tensor, elem_type),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "shape",
    2,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(Onnx__TypeProto__Tensor, shape),
    &onnx__tensor_shape_proto__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned onnx__type_proto__tensor__field_indices_by_name[] = {
  0,   /* field[0] = elem_type */
  1,   /* field[1] = shape */
};
static const ProtobufCIntRange onnx__type_proto__tensor__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 2 }
};
const ProtobufCMessageDescriptor onnx__type_proto__tensor__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "onnx.TypeProto.Tensor",
  "Tensor",
  "Onnx__TypeProto__Tensor",
  "onnx",
  sizeof(Onnx__TypeProto__Tensor),
  2,
  onnx__type_proto__tensor__field_descriptors,
  onnx__type_proto__tensor__field_indices_by_name,
  1,  onnx__type_proto__tensor__number_ranges,
  (ProtobufCMessageInit) onnx__type_proto__tensor__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor onnx__type_proto__sequence__field_descriptors[1] =
{
  {
    "elem_type",
    1,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(Onnx__TypeProto__Sequence, elem_type),
    &onnx__type_proto__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned onnx__type_proto__sequence__field_indices_by_name[] = {
  0,   /* field[0] = elem_type */
};
static const ProtobufCIntRange onnx__type_proto__sequence__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 1 }
};
const ProtobufCMessageDescriptor onnx__type_proto__sequence__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "onnx.TypeProto.Sequence",
  "Sequence",
  "Onnx__TypeProto__Sequence",
  "onnx",
  sizeof(Onnx__TypeProto__Sequence),
  1,
  onnx__type_proto__sequence__field_descriptors,
  onnx__type_proto__sequence__field_indices_by_name,
  1,  onnx__type_proto__sequence__number_ranges,
  (ProtobufCMessageInit) onnx__type_proto__sequence__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor onnx__type_proto__map__field_descriptors[2] =
{
  {
    "key_type",
    1,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_INT32,
    0,   /* quantifier_offset */
    offsetof(Onnx__TypeProto__Map, key_type),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "value_type",
    2,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(Onnx__TypeProto__Map, value_type),
    &onnx__type_proto__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned onnx__type_proto__map__field_indices_by_name[] = {
  0,   /* field[0] = key_type */
  1,   /* field[1] = value_type */
};
static const ProtobufCIntRange onnx__type_proto__map__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 2 }
};
const ProtobufCMessageDescriptor onnx__type_proto__map__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "onnx.TypeProto.Map",
  "Map",
  "Onnx__TypeProto__Map",
  "onnx",
  sizeof(Onnx__TypeProto__Map),
  2,
  onnx__type_proto__map__field_descriptors,
  onnx__type_proto__map__field_indices_by_name,
  1,  onnx__type_proto__map__number_ranges,
  (ProtobufCMessageInit) onnx__type_proto__map__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor onnx__type_proto__field_descriptors[4] =
{
  {
    "tensor_type",
    1,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Onnx__TypeProto, value_case),
    offsetof(Onnx__TypeProto, tensor_type),
    &onnx__type_proto__tensor__descriptor,
    NULL,
    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "sequence_type",
    4,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Onnx__TypeProto, value_case),
    offsetof(Onnx__TypeProto, sequence_type),
    &onnx__type_proto__sequence__descriptor,
    NULL,
    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "map_type",
    5,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Onnx__TypeProto, value_case),
    offsetof(Onnx__TypeProto, map_type),
    &onnx__type_proto__map__descriptor,
    NULL,
    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "denotation",
    6,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(Onnx__TypeProto, denotation),
    NULL,
    &protobuf_c_empty_string,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned onnx__type_proto__field_indices_by_name[] = {
  3,   /* field[3] = denotation */
  2,   /* field[2] = map_type */
  1,   /* field[1] = sequence_type */
  0,   /* field[0] = tensor_type */
};
static const ProtobufCIntRange onnx__type_proto__number_ranges[2 + 1] =
{
  { 1, 0 },
  { 4, 1 },
  { 0, 4 }
};
const ProtobufCMessageDescriptor onnx__type_proto__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "onnx.TypeProto",
  "TypeProto",
  "Onnx__TypeProto",
  "onnx",
  sizeof(Onnx__TypeProto),
  4,
  onnx__type_proto__field_descriptors,
  onnx__type_proto__field_indices_by_name,
  2,  onnx__type_proto__number_ranges,
  (ProtobufCMessageInit) onnx__type_proto__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor onnx__operator_set_id_proto__field_descriptors[2] =
{
  {
    "domain",
    1,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(Onnx__OperatorSetIdProto, domain),
    NULL,
    &protobuf_c_empty_string,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "version",
    2,
    PROTOBUF_C_LABEL_NONE,
    PROTOBUF_C_TYPE_INT64,
    0,   /* quantifier_offset */
    offsetof(Onnx__OperatorSetIdProto, version),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned onnx__operator_set_id_proto__field_indices_by_name[] = {
  0,   /* field[0] = domain */
  1,   /* field[1] = version */
};
static const ProtobufCIntRange onnx__operator_set_id_proto__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 2 }
};
const ProtobufCMessageDescriptor onnx__operator_set_id_proto__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "onnx.OperatorSetIdProto",
  "OperatorSetIdProto",
  "Onnx__OperatorSetIdProto",
  "onnx",
  sizeof(Onnx__OperatorSetIdProto),
  2,
  onnx__operator_set_id_proto__field_descriptors,
  onnx__operator_set_id_proto__field_indices_by_name,
  1,  onnx__operator_set_id_proto__number_ranges,
  (ProtobufCMessageInit) onnx__operator_set_id_proto__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCEnumValue onnx__version__enum_values_by_number[8] =
{
  { "_START_VERSION", "ONNX__VERSION___START_VERSION", 0 },
  { "IR_VERSION_2017_10_10", "ONNX__VERSION__IR_VERSION_2017_10_10", 1 },
  { "IR_VERSION_2017_10_30", "ONNX__VERSION__IR_VERSION_2017_10_30", 2 },
  { "IR_VERSION_2017_11_3", "ONNX__VERSION__IR_VERSION_2017_11_3", 3 },
  { "IR_VERSION_2019_1_22", "ONNX__VERSION__IR_VERSION_2019_1_22", 4 },
  { "IR_VERSION_2019_3_18", "ONNX__VERSION__IR_VERSION_2019_3_18", 5 },
  { "IR_VERSION_2019_9_19", "ONNX__VERSION__IR_VERSION_2019_9_19", 6 },
  { "IR_VERSION", "ONNX__VERSION__IR_VERSION", 7 },
};
static const ProtobufCIntRange onnx__version__value_ranges[] = {
{0, 0},{0, 8}
};
static const ProtobufCEnumValueIndex onnx__version__enum_values_by_name[8] =
{
  { "IR_VERSION", 7 },
  { "IR_VERSION_2017_10_10", 1 },
  { "IR_VERSION_2017_10_30", 2 },
  { "IR_VERSION_2017_11_3", 3 },
  { "IR_VERSION_2019_1_22", 4 },
  { "IR_VERSION_2019_3_18", 5 },
  { "IR_VERSION_2019_9_19", 6 },
  { "_START_VERSION", 0 },
};
const ProtobufCEnumDescriptor onnx__version__descriptor =
{
  PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC,
  "onnx.Version",
  "Version",
  "Onnx__Version",
  "onnx",
  8,
  onnx__version__enum_values_by_number,
  8,
  onnx__version__enum_values_by_name,
  1,
  onnx__version__value_ranges,
  NULL,NULL,NULL,NULL   /* reserved[1234] */
};
