// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: graph_proto_v1.proto

#include "graph_proto_v1.pb.h"

#include <algorithm>

#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/extension_set.h>
#include <google/protobuf/wire_format_lite.h>
#include <google/protobuf/descriptor.h>
#include <google/protobuf/generated_message_reflection.h>
#include <google/protobuf/reflection_ops.h>
#include <google/protobuf/wire_format.h>
// @@protoc_insertion_point(includes)
#include <google/protobuf/port_def.inc>

PROTOBUF_PRAGMA_INIT_SEG

namespace _pb = ::PROTOBUF_NAMESPACE_ID;
namespace _pbi = _pb::internal;

namespace serial_v1 {
PROTOBUF_CONSTEXPR AttrValue_ListValue::AttrValue_ListValue(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.bool_value_)*/{}
  , /*decltype(_impl_.int64_value_)*/{}
  , /*decltype(_impl_._int64_value_cached_byte_size_)*/{0}
  , /*decltype(_impl_.float_value_)*/{}
  , /*decltype(_impl_.string_value_)*/{}
  , /*decltype(_impl_.bytes_value_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct AttrValue_ListValueDefaultTypeInternal {
  PROTOBUF_CONSTEXPR AttrValue_ListValueDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~AttrValue_ListValueDefaultTypeInternal() {}
  union {
    AttrValue_ListValue _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 AttrValue_ListValueDefaultTypeInternal _AttrValue_ListValue_default_instance_;
PROTOBUF_CONSTEXPR AttrValue_kv_pair::AttrValue_kv_pair(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.key_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.string_value_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.bytes_value_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.bool_value_)*/false
  , /*decltype(_impl_.float_value_)*/0
  , /*decltype(_impl_.int64_value_)*/int64_t{0}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct AttrValue_kv_pairDefaultTypeInternal {
  PROTOBUF_CONSTEXPR AttrValue_kv_pairDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~AttrValue_kv_pairDefaultTypeInternal() {}
  union {
    AttrValue_kv_pair _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 AttrValue_kv_pairDefaultTypeInternal _AttrValue_kv_pair_default_instance_;
PROTOBUF_CONSTEXPR AttrValue_kv_map::AttrValue_kv_map(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.pairs_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct AttrValue_kv_mapDefaultTypeInternal {
  PROTOBUF_CONSTEXPR AttrValue_kv_mapDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~AttrValue_kv_mapDefaultTypeInternal() {}
  union {
    AttrValue_kv_map _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 AttrValue_kv_mapDefaultTypeInternal _AttrValue_kv_map_default_instance_;
PROTOBUF_CONSTEXPR AttrValue::AttrValue(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.attr_name_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.attr_value_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_._oneof_case_)*/{}} {}
struct AttrValueDefaultTypeInternal {
  PROTOBUF_CONSTEXPR AttrValueDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~AttrValueDefaultTypeInternal() {}
  union {
    AttrValue _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 AttrValueDefaultTypeInternal _AttrValue_default_instance_;
PROTOBUF_CONSTEXPR ExpandAttrValue_BoolVec::ExpandAttrValue_BoolVec(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.value_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct ExpandAttrValue_BoolVecDefaultTypeInternal {
  PROTOBUF_CONSTEXPR ExpandAttrValue_BoolVecDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~ExpandAttrValue_BoolVecDefaultTypeInternal() {}
  union {
    ExpandAttrValue_BoolVec _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ExpandAttrValue_BoolVecDefaultTypeInternal _ExpandAttrValue_BoolVec_default_instance_;
PROTOBUF_CONSTEXPR ExpandAttrValue_Int32Vec::ExpandAttrValue_Int32Vec(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.value_)*/{}
  , /*decltype(_impl_._value_cached_byte_size_)*/{0}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct ExpandAttrValue_Int32VecDefaultTypeInternal {
  PROTOBUF_CONSTEXPR ExpandAttrValue_Int32VecDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~ExpandAttrValue_Int32VecDefaultTypeInternal() {}
  union {
    ExpandAttrValue_Int32Vec _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ExpandAttrValue_Int32VecDefaultTypeInternal _ExpandAttrValue_Int32Vec_default_instance_;
PROTOBUF_CONSTEXPR ExpandAttrValue_Int64Vec::ExpandAttrValue_Int64Vec(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.value_)*/{}
  , /*decltype(_impl_._value_cached_byte_size_)*/{0}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct ExpandAttrValue_Int64VecDefaultTypeInternal {
  PROTOBUF_CONSTEXPR ExpandAttrValue_Int64VecDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~ExpandAttrValue_Int64VecDefaultTypeInternal() {}
  union {
    ExpandAttrValue_Int64Vec _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ExpandAttrValue_Int64VecDefaultTypeInternal _ExpandAttrValue_Int64Vec_default_instance_;
PROTOBUF_CONSTEXPR ExpandAttrValue_FloatVec::ExpandAttrValue_FloatVec(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.value_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct ExpandAttrValue_FloatVecDefaultTypeInternal {
  PROTOBUF_CONSTEXPR ExpandAttrValue_FloatVecDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~ExpandAttrValue_FloatVecDefaultTypeInternal() {}
  union {
    ExpandAttrValue_FloatVec _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ExpandAttrValue_FloatVecDefaultTypeInternal _ExpandAttrValue_FloatVec_default_instance_;
PROTOBUF_CONSTEXPR ExpandAttrValue_StringVec::ExpandAttrValue_StringVec(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.value_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct ExpandAttrValue_StringVecDefaultTypeInternal {
  PROTOBUF_CONSTEXPR ExpandAttrValue_StringVecDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~ExpandAttrValue_StringVecDefaultTypeInternal() {}
  union {
    ExpandAttrValue_StringVec _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ExpandAttrValue_StringVecDefaultTypeInternal _ExpandAttrValue_StringVec_default_instance_;
PROTOBUF_CONSTEXPR ExpandAttrValue_BytesVec::ExpandAttrValue_BytesVec(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.value_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct ExpandAttrValue_BytesVecDefaultTypeInternal {
  PROTOBUF_CONSTEXPR ExpandAttrValue_BytesVecDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~ExpandAttrValue_BytesVecDefaultTypeInternal() {}
  union {
    ExpandAttrValue_BytesVec _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ExpandAttrValue_BytesVecDefaultTypeInternal _ExpandAttrValue_BytesVec_default_instance_;
PROTOBUF_CONSTEXPR ExpandAttrValue_KeyBoolPair::ExpandAttrValue_KeyBoolPair(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.key_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.value_)*/false
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct ExpandAttrValue_KeyBoolPairDefaultTypeInternal {
  PROTOBUF_CONSTEXPR ExpandAttrValue_KeyBoolPairDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~ExpandAttrValue_KeyBoolPairDefaultTypeInternal() {}
  union {
    ExpandAttrValue_KeyBoolPair _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ExpandAttrValue_KeyBoolPairDefaultTypeInternal _ExpandAttrValue_KeyBoolPair_default_instance_;
PROTOBUF_CONSTEXPR ExpandAttrValue_BoolMap::ExpandAttrValue_BoolMap(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.pairs_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct ExpandAttrValue_BoolMapDefaultTypeInternal {
  PROTOBUF_CONSTEXPR ExpandAttrValue_BoolMapDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~ExpandAttrValue_BoolMapDefaultTypeInternal() {}
  union {
    ExpandAttrValue_BoolMap _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ExpandAttrValue_BoolMapDefaultTypeInternal _ExpandAttrValue_BoolMap_default_instance_;
PROTOBUF_CONSTEXPR ExpandAttrValue_KeyInt32Pair::ExpandAttrValue_KeyInt32Pair(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.key_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.value_)*/0
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct ExpandAttrValue_KeyInt32PairDefaultTypeInternal {
  PROTOBUF_CONSTEXPR ExpandAttrValue_KeyInt32PairDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~ExpandAttrValue_KeyInt32PairDefaultTypeInternal() {}
  union {
    ExpandAttrValue_KeyInt32Pair _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ExpandAttrValue_KeyInt32PairDefaultTypeInternal _ExpandAttrValue_KeyInt32Pair_default_instance_;
PROTOBUF_CONSTEXPR ExpandAttrValue_Int32Map::ExpandAttrValue_Int32Map(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.pairs_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct ExpandAttrValue_Int32MapDefaultTypeInternal {
  PROTOBUF_CONSTEXPR ExpandAttrValue_Int32MapDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~ExpandAttrValue_Int32MapDefaultTypeInternal() {}
  union {
    ExpandAttrValue_Int32Map _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ExpandAttrValue_Int32MapDefaultTypeInternal _ExpandAttrValue_Int32Map_default_instance_;
PROTOBUF_CONSTEXPR ExpandAttrValue_KeyInt64Pair::ExpandAttrValue_KeyInt64Pair(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.key_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.value_)*/int64_t{0}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct ExpandAttrValue_KeyInt64PairDefaultTypeInternal {
  PROTOBUF_CONSTEXPR ExpandAttrValue_KeyInt64PairDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~ExpandAttrValue_KeyInt64PairDefaultTypeInternal() {}
  union {
    ExpandAttrValue_KeyInt64Pair _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ExpandAttrValue_KeyInt64PairDefaultTypeInternal _ExpandAttrValue_KeyInt64Pair_default_instance_;
PROTOBUF_CONSTEXPR ExpandAttrValue_Int64Map::ExpandAttrValue_Int64Map(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.pairs_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct ExpandAttrValue_Int64MapDefaultTypeInternal {
  PROTOBUF_CONSTEXPR ExpandAttrValue_Int64MapDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~ExpandAttrValue_Int64MapDefaultTypeInternal() {}
  union {
    ExpandAttrValue_Int64Map _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ExpandAttrValue_Int64MapDefaultTypeInternal _ExpandAttrValue_Int64Map_default_instance_;
PROTOBUF_CONSTEXPR ExpandAttrValue_KeyFloatPair::ExpandAttrValue_KeyFloatPair(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.key_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.value_)*/0
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct ExpandAttrValue_KeyFloatPairDefaultTypeInternal {
  PROTOBUF_CONSTEXPR ExpandAttrValue_KeyFloatPairDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~ExpandAttrValue_KeyFloatPairDefaultTypeInternal() {}
  union {
    ExpandAttrValue_KeyFloatPair _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ExpandAttrValue_KeyFloatPairDefaultTypeInternal _ExpandAttrValue_KeyFloatPair_default_instance_;
PROTOBUF_CONSTEXPR ExpandAttrValue_FloatMap::ExpandAttrValue_FloatMap(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.pairs_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct ExpandAttrValue_FloatMapDefaultTypeInternal {
  PROTOBUF_CONSTEXPR ExpandAttrValue_FloatMapDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~ExpandAttrValue_FloatMapDefaultTypeInternal() {}
  union {
    ExpandAttrValue_FloatMap _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ExpandAttrValue_FloatMapDefaultTypeInternal _ExpandAttrValue_FloatMap_default_instance_;
PROTOBUF_CONSTEXPR ExpandAttrValue_KeyStringPair::ExpandAttrValue_KeyStringPair(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.key_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.value_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct ExpandAttrValue_KeyStringPairDefaultTypeInternal {
  PROTOBUF_CONSTEXPR ExpandAttrValue_KeyStringPairDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~ExpandAttrValue_KeyStringPairDefaultTypeInternal() {}
  union {
    ExpandAttrValue_KeyStringPair _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ExpandAttrValue_KeyStringPairDefaultTypeInternal _ExpandAttrValue_KeyStringPair_default_instance_;
PROTOBUF_CONSTEXPR ExpandAttrValue_StringMap::ExpandAttrValue_StringMap(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.pairs_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct ExpandAttrValue_StringMapDefaultTypeInternal {
  PROTOBUF_CONSTEXPR ExpandAttrValue_StringMapDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~ExpandAttrValue_StringMapDefaultTypeInternal() {}
  union {
    ExpandAttrValue_StringMap _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ExpandAttrValue_StringMapDefaultTypeInternal _ExpandAttrValue_StringMap_default_instance_;
PROTOBUF_CONSTEXPR ExpandAttrValue_KeyBytesPair::ExpandAttrValue_KeyBytesPair(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.key_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.value_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct ExpandAttrValue_KeyBytesPairDefaultTypeInternal {
  PROTOBUF_CONSTEXPR ExpandAttrValue_KeyBytesPairDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~ExpandAttrValue_KeyBytesPairDefaultTypeInternal() {}
  union {
    ExpandAttrValue_KeyBytesPair _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ExpandAttrValue_KeyBytesPairDefaultTypeInternal _ExpandAttrValue_KeyBytesPair_default_instance_;
PROTOBUF_CONSTEXPR ExpandAttrValue_BytesMap::ExpandAttrValue_BytesMap(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.pairs_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct ExpandAttrValue_BytesMapDefaultTypeInternal {
  PROTOBUF_CONSTEXPR ExpandAttrValue_BytesMapDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~ExpandAttrValue_BytesMapDefaultTypeInternal() {}
  union {
    ExpandAttrValue_BytesMap _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ExpandAttrValue_BytesMapDefaultTypeInternal _ExpandAttrValue_BytesMap_default_instance_;
PROTOBUF_CONSTEXPR ExpandAttrValue::ExpandAttrValue(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.attr_name_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.attr_value_)*/{}
  , /*decltype(_impl_._cached_size_)*/{}
  , /*decltype(_impl_._oneof_case_)*/{}} {}
struct ExpandAttrValueDefaultTypeInternal {
  PROTOBUF_CONSTEXPR ExpandAttrValueDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~ExpandAttrValueDefaultTypeInternal() {}
  union {
    ExpandAttrValue _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ExpandAttrValueDefaultTypeInternal _ExpandAttrValue_default_instance_;
PROTOBUF_CONSTEXPR OneKindOP::OneKindOP(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.op_name_)*/{}
  , /*decltype(_impl_.op_type_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct OneKindOPDefaultTypeInternal {
  PROTOBUF_CONSTEXPR OneKindOPDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~OneKindOPDefaultTypeInternal() {}
  union {
    OneKindOP _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 OneKindOPDefaultTypeInternal _OneKindOP_default_instance_;
PROTOBUF_CONSTEXPR Tensor::Tensor(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.tensor_dim_)*/{}
  , /*decltype(_impl_._tensor_dim_cached_byte_size_)*/{0}
  , /*decltype(_impl_.tensor_attr_)*/{}
  , /*decltype(_impl_.tensor_name_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.data_type_)*/0
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct TensorDefaultTypeInternal {
  PROTOBUF_CONSTEXPR TensorDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~TensorDefaultTypeInternal() {}
  union {
    Tensor _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 TensorDefaultTypeInternal _Tensor_default_instance_;
PROTOBUF_CONSTEXPR OPNode::OPNode(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.op_attr_)*/{}
  , /*decltype(_impl_.input_op_)*/{}
  , /*decltype(_impl_.expand_op_attr_)*/{}
  , /*decltype(_impl_.op_name_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.op_type_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.output_tensor_)*/nullptr
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct OPNodeDefaultTypeInternal {
  PROTOBUF_CONSTEXPR OPNodeDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~OPNodeDefaultTypeInternal() {}
  union {
    OPNode _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 OPNodeDefaultTypeInternal _OPNode_default_instance_;
PROTOBUF_CONSTEXPR SubGraph::SubGraph(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.op_name_)*/{}
  , /*decltype(_impl_.subg_attr_)*/{}
  , /*decltype(_impl_.subg_child_)*/{}
  , /*decltype(_impl_.subgraph_name_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct SubGraphDefaultTypeInternal {
  PROTOBUF_CONSTEXPR SubGraphDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~SubGraphDefaultTypeInternal() {}
  union {
    SubGraph _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SubGraphDefaultTypeInternal _SubGraph_default_instance_;
PROTOBUF_CONSTEXPR Graph::Graph(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.op_node_)*/{}
  , /*decltype(_impl_.op_defs_)*/{}
  , /*decltype(_impl_.graph_name_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.subg_root_)*/nullptr
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct GraphDefaultTypeInternal {
  PROTOBUF_CONSTEXPR GraphDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~GraphDefaultTypeInternal() {}
  union {
    Graph _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 GraphDefaultTypeInternal _Graph_default_instance_;
PROTOBUF_CONSTEXPR AttrDef::AttrDef(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.name_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.annotation_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.default_value_)*/nullptr
  , /*decltype(_impl_.data_type_)*/0
  , /*decltype(_impl_.occur_type_)*/0
  , /*decltype(_impl_.list_length_)*/0
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct AttrDefDefaultTypeInternal {
  PROTOBUF_CONSTEXPR AttrDefDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~AttrDefDefaultTypeInternal() {}
  union {
    AttrDef _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 AttrDefDefaultTypeInternal _AttrDef_default_instance_;
PROTOBUF_CONSTEXPR OpDef::OpDef(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.input_args_)*/{}
  , /*decltype(_impl_.attrs_)*/{}
  , /*decltype(_impl_.name_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.annotation_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct OpDefDefaultTypeInternal {
  PROTOBUF_CONSTEXPR OpDefDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~OpDefDefaultTypeInternal() {}
  union {
    OpDef _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 OpDefDefaultTypeInternal _OpDef_default_instance_;
PROTOBUF_CONSTEXPR OpArgDef::OpArgDef(
    ::_pbi::ConstantInitialized): _impl_{
    /*decltype(_impl_.name_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.annotation_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
  , /*decltype(_impl_.occur_type_)*/0
  , /*decltype(_impl_.data_type_)*/0
  , /*decltype(_impl_._cached_size_)*/{}} {}
struct OpArgDefDefaultTypeInternal {
  PROTOBUF_CONSTEXPR OpArgDefDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~OpArgDefDefaultTypeInternal() {}
  union {
    OpArgDef _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 OpArgDefDefaultTypeInternal _OpArgDef_default_instance_;
}  // namespace serial_v1
static ::_pb::Metadata file_level_metadata_graph_5fproto_5fv1_2eproto[31];
static const ::_pb::EnumDescriptor* file_level_enum_descriptors_graph_5fproto_5fv1_2eproto[3];
static constexpr ::_pb::ServiceDescriptor const** file_level_service_descriptors_graph_5fproto_5fv1_2eproto = nullptr;

const uint32_t TableStruct_graph_5fproto_5fv1_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::serial_v1::AttrValue_ListValue, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v1::AttrValue_ListValue, _impl_.bool_value_),
  PROTOBUF_FIELD_OFFSET(::serial_v1::AttrValue_ListValue, _impl_.int64_value_),
  PROTOBUF_FIELD_OFFSET(::serial_v1::AttrValue_ListValue, _impl_.float_value_),
  PROTOBUF_FIELD_OFFSET(::serial_v1::AttrValue_ListValue, _impl_.string_value_),
  PROTOBUF_FIELD_OFFSET(::serial_v1::AttrValue_ListValue, _impl_.bytes_value_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::serial_v1::AttrValue_kv_pair, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v1::AttrValue_kv_pair, _impl_.key_),
  PROTOBUF_FIELD_OFFSET(::serial_v1::AttrValue_kv_pair, _impl_.bool_value_),
  PROTOBUF_FIELD_OFFSET(::serial_v1::AttrValue_kv_pair, _impl_.int64_value_),
  PROTOBUF_FIELD_OFFSET(::serial_v1::AttrValue_kv_pair, _impl_.float_value_),
  PROTOBUF_FIELD_OFFSET(::serial_v1::AttrValue_kv_pair, _impl_.string_value_),
  PROTOBUF_FIELD_OFFSET(::serial_v1::AttrValue_kv_pair, _impl_.bytes_value_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::serial_v1::AttrValue_kv_map, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v1::AttrValue_kv_map, _impl_.pairs_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::serial_v1::AttrValue, _internal_metadata_),
  ~0u,  // no _extensions_
  PROTOBUF_FIELD_OFFSET(::serial_v1::AttrValue, _impl_._oneof_case_[0]),
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v1::AttrValue, _impl_.attr_name_),
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  PROTOBUF_FIELD_OFFSET(::serial_v1::AttrValue, _impl_.attr_value_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::serial_v1::ExpandAttrValue_BoolVec, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v1::ExpandAttrValue_BoolVec, _impl_.value_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::serial_v1::ExpandAttrValue_Int32Vec, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v1::ExpandAttrValue_Int32Vec, _impl_.value_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::serial_v1::ExpandAttrValue_Int64Vec, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v1::ExpandAttrValue_Int64Vec, _impl_.value_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::serial_v1::ExpandAttrValue_FloatVec, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v1::ExpandAttrValue_FloatVec, _impl_.value_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::serial_v1::ExpandAttrValue_StringVec, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v1::ExpandAttrValue_StringVec, _impl_.value_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::serial_v1::ExpandAttrValue_BytesVec, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v1::ExpandAttrValue_BytesVec, _impl_.value_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::serial_v1::ExpandAttrValue_KeyBoolPair, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v1::ExpandAttrValue_KeyBoolPair, _impl_.key_),
  PROTOBUF_FIELD_OFFSET(::serial_v1::ExpandAttrValue_KeyBoolPair, _impl_.value_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::serial_v1::ExpandAttrValue_BoolMap, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v1::ExpandAttrValue_BoolMap, _impl_.pairs_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::serial_v1::ExpandAttrValue_KeyInt32Pair, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v1::ExpandAttrValue_KeyInt32Pair, _impl_.key_),
  PROTOBUF_FIELD_OFFSET(::serial_v1::ExpandAttrValue_KeyInt32Pair, _impl_.value_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::serial_v1::ExpandAttrValue_Int32Map, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v1::ExpandAttrValue_Int32Map, _impl_.pairs_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::serial_v1::ExpandAttrValue_KeyInt64Pair, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v1::ExpandAttrValue_KeyInt64Pair, _impl_.key_),
  PROTOBUF_FIELD_OFFSET(::serial_v1::ExpandAttrValue_KeyInt64Pair, _impl_.value_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::serial_v1::ExpandAttrValue_Int64Map, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v1::ExpandAttrValue_Int64Map, _impl_.pairs_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::serial_v1::ExpandAttrValue_KeyFloatPair, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v1::ExpandAttrValue_KeyFloatPair, _impl_.key_),
  PROTOBUF_FIELD_OFFSET(::serial_v1::ExpandAttrValue_KeyFloatPair, _impl_.value_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::serial_v1::ExpandAttrValue_FloatMap, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v1::ExpandAttrValue_FloatMap, _impl_.pairs_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::serial_v1::ExpandAttrValue_KeyStringPair, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v1::ExpandAttrValue_KeyStringPair, _impl_.key_),
  PROTOBUF_FIELD_OFFSET(::serial_v1::ExpandAttrValue_KeyStringPair, _impl_.value_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::serial_v1::ExpandAttrValue_StringMap, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v1::ExpandAttrValue_StringMap, _impl_.pairs_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::serial_v1::ExpandAttrValue_KeyBytesPair, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v1::ExpandAttrValue_KeyBytesPair, _impl_.key_),
  PROTOBUF_FIELD_OFFSET(::serial_v1::ExpandAttrValue_KeyBytesPair, _impl_.value_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::serial_v1::ExpandAttrValue_BytesMap, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v1::ExpandAttrValue_BytesMap, _impl_.pairs_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::serial_v1::ExpandAttrValue, _internal_metadata_),
  ~0u,  // no _extensions_
  PROTOBUF_FIELD_OFFSET(::serial_v1::ExpandAttrValue, _impl_._oneof_case_[0]),
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v1::ExpandAttrValue, _impl_.attr_name_),
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  ::_pbi::kInvalidFieldOffsetTag,
  PROTOBUF_FIELD_OFFSET(::serial_v1::ExpandAttrValue, _impl_.attr_value_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::serial_v1::OneKindOP, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v1::OneKindOP, _impl_.op_type_),
  PROTOBUF_FIELD_OFFSET(::serial_v1::OneKindOP, _impl_.op_name_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::serial_v1::Tensor, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v1::Tensor, _impl_.tensor_name_),
  PROTOBUF_FIELD_OFFSET(::serial_v1::Tensor, _impl_.tensor_dim_),
  PROTOBUF_FIELD_OFFSET(::serial_v1::Tensor, _impl_.data_type_),
  PROTOBUF_FIELD_OFFSET(::serial_v1::Tensor, _impl_.tensor_attr_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::serial_v1::OPNode, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v1::OPNode, _impl_.op_name_),
  PROTOBUF_FIELD_OFFSET(::serial_v1::OPNode, _impl_.op_type_),
  PROTOBUF_FIELD_OFFSET(::serial_v1::OPNode, _impl_.op_attr_),
  PROTOBUF_FIELD_OFFSET(::serial_v1::OPNode, _impl_.expand_op_attr_),
  PROTOBUF_FIELD_OFFSET(::serial_v1::OPNode, _impl_.input_op_),
  PROTOBUF_FIELD_OFFSET(::serial_v1::OPNode, _impl_.output_tensor_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::serial_v1::SubGraph, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v1::SubGraph, _impl_.subgraph_name_),
  PROTOBUF_FIELD_OFFSET(::serial_v1::SubGraph, _impl_.op_name_),
  PROTOBUF_FIELD_OFFSET(::serial_v1::SubGraph, _impl_.subg_attr_),
  PROTOBUF_FIELD_OFFSET(::serial_v1::SubGraph, _impl_.subg_child_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::serial_v1::Graph, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v1::Graph, _impl_.graph_name_),
  PROTOBUF_FIELD_OFFSET(::serial_v1::Graph, _impl_.op_node_),
  PROTOBUF_FIELD_OFFSET(::serial_v1::Graph, _impl_.subg_root_),
  PROTOBUF_FIELD_OFFSET(::serial_v1::Graph, _impl_.op_defs_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::serial_v1::AttrDef, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v1::AttrDef, _impl_.name_),
  PROTOBUF_FIELD_OFFSET(::serial_v1::AttrDef, _impl_.data_type_),
  PROTOBUF_FIELD_OFFSET(::serial_v1::AttrDef, _impl_.occur_type_),
  PROTOBUF_FIELD_OFFSET(::serial_v1::AttrDef, _impl_.default_value_),
  PROTOBUF_FIELD_OFFSET(::serial_v1::AttrDef, _impl_.list_length_),
  PROTOBUF_FIELD_OFFSET(::serial_v1::AttrDef, _impl_.annotation_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::serial_v1::OpDef, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v1::OpDef, _impl_.name_),
  PROTOBUF_FIELD_OFFSET(::serial_v1::OpDef, _impl_.input_args_),
  PROTOBUF_FIELD_OFFSET(::serial_v1::OpDef, _impl_.attrs_),
  PROTOBUF_FIELD_OFFSET(::serial_v1::OpDef, _impl_.annotation_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::serial_v1::OpArgDef, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::serial_v1::OpArgDef, _impl_.name_),
  PROTOBUF_FIELD_OFFSET(::serial_v1::OpArgDef, _impl_.occur_type_),
  PROTOBUF_FIELD_OFFSET(::serial_v1::OpArgDef, _impl_.data_type_),
  PROTOBUF_FIELD_OFFSET(::serial_v1::OpArgDef, _impl_.annotation_),
};
static const ::_pbi::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
  { 0, -1, -1, sizeof(::serial_v1::AttrValue_ListValue)},
  { 11, -1, -1, sizeof(::serial_v1::AttrValue_kv_pair)},
  { 23, -1, -1, sizeof(::serial_v1::AttrValue_kv_map)},
  { 30, -1, -1, sizeof(::serial_v1::AttrValue)},
  { 45, -1, -1, sizeof(::serial_v1::ExpandAttrValue_BoolVec)},
  { 52, -1, -1, sizeof(::serial_v1::ExpandAttrValue_Int32Vec)},
  { 59, -1, -1, sizeof(::serial_v1::ExpandAttrValue_Int64Vec)},
  { 66, -1, -1, sizeof(::serial_v1::ExpandAttrValue_FloatVec)},
  { 73, -1, -1, sizeof(::serial_v1::ExpandAttrValue_StringVec)},
  { 80, -1, -1, sizeof(::serial_v1::ExpandAttrValue_BytesVec)},
  { 87, -1, -1, sizeof(::serial_v1::ExpandAttrValue_KeyBoolPair)},
  { 95, -1, -1, sizeof(::serial_v1::ExpandAttrValue_BoolMap)},
  { 102, -1, -1, sizeof(::serial_v1::ExpandAttrValue_KeyInt32Pair)},
  { 110, -1, -1, sizeof(::serial_v1::ExpandAttrValue_Int32Map)},
  { 117, -1, -1, sizeof(::serial_v1::ExpandAttrValue_KeyInt64Pair)},
  { 125, -1, -1, sizeof(::serial_v1::ExpandAttrValue_Int64Map)},
  { 132, -1, -1, sizeof(::serial_v1::ExpandAttrValue_KeyFloatPair)},
  { 140, -1, -1, sizeof(::serial_v1::ExpandAttrValue_FloatMap)},
  { 147, -1, -1, sizeof(::serial_v1::ExpandAttrValue_KeyStringPair)},
  { 155, -1, -1, sizeof(::serial_v1::ExpandAttrValue_StringMap)},
  { 162, -1, -1, sizeof(::serial_v1::ExpandAttrValue_KeyBytesPair)},
  { 170, -1, -1, sizeof(::serial_v1::ExpandAttrValue_BytesMap)},
  { 177, -1, -1, sizeof(::serial_v1::ExpandAttrValue)},
  { 202, -1, -1, sizeof(::serial_v1::OneKindOP)},
  { 210, -1, -1, sizeof(::serial_v1::Tensor)},
  { 220, -1, -1, sizeof(::serial_v1::OPNode)},
  { 232, -1, -1, sizeof(::serial_v1::SubGraph)},
  { 242, -1, -1, sizeof(::serial_v1::Graph)},
  { 252, -1, -1, sizeof(::serial_v1::AttrDef)},
  { 264, -1, -1, sizeof(::serial_v1::OpDef)},
  { 274, -1, -1, sizeof(::serial_v1::OpArgDef)},
};

static const ::_pb::Message* const file_default_instances[] = {
  &::serial_v1::_AttrValue_ListValue_default_instance_._instance,
  &::serial_v1::_AttrValue_kv_pair_default_instance_._instance,
  &::serial_v1::_AttrValue_kv_map_default_instance_._instance,
  &::serial_v1::_AttrValue_default_instance_._instance,
  &::serial_v1::_ExpandAttrValue_BoolVec_default_instance_._instance,
  &::serial_v1::_ExpandAttrValue_Int32Vec_default_instance_._instance,
  &::serial_v1::_ExpandAttrValue_Int64Vec_default_instance_._instance,
  &::serial_v1::_ExpandAttrValue_FloatVec_default_instance_._instance,
  &::serial_v1::_ExpandAttrValue_StringVec_default_instance_._instance,
  &::serial_v1::_ExpandAttrValue_BytesVec_default_instance_._instance,
  &::serial_v1::_ExpandAttrValue_KeyBoolPair_default_instance_._instance,
  &::serial_v1::_ExpandAttrValue_BoolMap_default_instance_._instance,
  &::serial_v1::_ExpandAttrValue_KeyInt32Pair_default_instance_._instance,
  &::serial_v1::_ExpandAttrValue_Int32Map_default_instance_._instance,
  &::serial_v1::_ExpandAttrValue_KeyInt64Pair_default_instance_._instance,
  &::serial_v1::_ExpandAttrValue_Int64Map_default_instance_._instance,
  &::serial_v1::_ExpandAttrValue_KeyFloatPair_default_instance_._instance,
  &::serial_v1::_ExpandAttrValue_FloatMap_default_instance_._instance,
  &::serial_v1::_ExpandAttrValue_KeyStringPair_default_instance_._instance,
  &::serial_v1::_ExpandAttrValue_StringMap_default_instance_._instance,
  &::serial_v1::_ExpandAttrValue_KeyBytesPair_default_instance_._instance,
  &::serial_v1::_ExpandAttrValue_BytesMap_default_instance_._instance,
  &::serial_v1::_ExpandAttrValue_default_instance_._instance,
  &::serial_v1::_OneKindOP_default_instance_._instance,
  &::serial_v1::_Tensor_default_instance_._instance,
  &::serial_v1::_OPNode_default_instance_._instance,
  &::serial_v1::_SubGraph_default_instance_._instance,
  &::serial_v1::_Graph_default_instance_._instance,
  &::serial_v1::_AttrDef_default_instance_._instance,
  &::serial_v1::_OpDef_default_instance_._instance,
  &::serial_v1::_OpArgDef_default_instance_._instance,
};

const char descriptor_table_protodef_graph_5fproto_5fv1_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) =
  "\n\024graph_proto_v1.proto\022\tserial_v1\"\256\004\n\tAt"
  "trValue\022\021\n\tattr_name\030\001 \001(\t\022\024\n\nbool_value"
  "\030\002 \001(\010H\000\022\025\n\013int64_value\030\004 \001(\022H\000\022\025\n\013float"
  "_value\030\005 \001(\002H\000\022\026\n\014string_value\030\006 \001(\tH\000\022\025"
  "\n\013bytes_value\030\007 \001(\014H\000\0224\n\nlist_value\030\010 \001("
  "\0132\036.serial_v1.AttrValue.ListValueH\000\022)\n\002k"
  "v\030\n \001(\0132\033.serial_v1.AttrValue.kv_mapH\000\032t"
  "\n\tListValue\022\022\n\nbool_value\030\001 \003(\010\022\023\n\013int64"
  "_value\030\003 \003(\022\022\023\n\013float_value\030\004 \003(\002\022\024\n\014str"
  "ing_value\030\005 \003(\t\022\023\n\013bytes_value\030\006 \003(\014\032\177\n\007"
  "kv_pair\022\013\n\003key\030\001 \001(\t\022\022\n\nbool_value\030\002 \001(\010"
  "\022\023\n\013int64_value\030\004 \001(\022\022\023\n\013float_value\030\005 \001"
  "(\002\022\024\n\014string_value\030\006 \001(\t\022\023\n\013bytes_value\030"
  "\007 \001(\014\0325\n\006kv_map\022+\n\005pairs\030\001 \003(\0132\034.serial_"
  "v1.AttrValue.kv_pairB\014\n\nattr_value\"\374\014\n\017E"
  "xpandAttrValue\022\021\n\tattr_name\030d \001(\t\022\024\n\nboo"
  "l_value\030\001 \001(\010H\000\022\025\n\013int32_value\030\002 \001(\021H\000\022\025"
  "\n\013int64_value\030\003 \001(\022H\000\022\025\n\013float_value\030\004 \001"
  "(\002H\000\022\026\n\014string_value\030\005 \001(\tH\000\022\025\n\013bytes_va"
  "lue\030\006 \001(\014H\000\0226\n\010bool_vec\030\013 \001(\0132\".serial_v"
  "1.ExpandAttrValue.BoolVecH\000\0228\n\tint32_vec"
  "\030\014 \001(\0132#.serial_v1.ExpandAttrValue.Int32"
  "VecH\000\0228\n\tint64_vec\030\r \001(\0132#.serial_v1.Exp"
  "andAttrValue.Int64VecH\000\0228\n\tfloat_vec\030\016 \001"
  "(\0132#.serial_v1.ExpandAttrValue.FloatVecH"
  "\000\022:\n\nstring_vec\030\017 \001(\0132$.serial_v1.Expand"
  "AttrValue.StringVecH\000\0226\n\010bool_map\030\025 \001(\0132"
  "\".serial_v1.ExpandAttrValue.BoolMapH\000\0228\n"
  "\tint32_map\030\026 \001(\0132#.serial_v1.ExpandAttrV"
  "alue.Int32MapH\000\0228\n\tint64_map\030\027 \001(\0132#.ser"
  "ial_v1.ExpandAttrValue.Int64MapH\000\0228\n\tflo"
  "at_map\030\030 \001(\0132#.serial_v1.ExpandAttrValue"
  ".FloatMapH\000\022:\n\nstring_map\030\031 \001(\0132$.serial"
  "_v1.ExpandAttrValue.StringMapH\000\0228\n\tbytes"
  "_map\030\032 \001(\0132#.serial_v1.ExpandAttrValue.B"
  "ytesMapH\000\032\030\n\007BoolVec\022\r\n\005value\030\001 \003(\010\032\031\n\010I"
  "nt32Vec\022\r\n\005value\030\001 \003(\021\032\031\n\010Int64Vec\022\r\n\005va"
  "lue\030\001 \003(\022\032\031\n\010FloatVec\022\r\n\005value\030\001 \003(\002\032\032\n\t"
  "StringVec\022\r\n\005value\030\001 \003(\t\032\031\n\010BytesVec\022\r\n\005"
  "value\030\001 \003(\014\032)\n\013KeyBoolPair\022\013\n\003key\030\001 \001(\t\022"
  "\r\n\005value\030\002 \001(\010\032@\n\007BoolMap\0225\n\005pairs\030\001 \003(\013"
  "2&.serial_v1.ExpandAttrValue.KeyBoolPair"
  "\032*\n\014KeyInt32Pair\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002"
  " \001(\021\032B\n\010Int32Map\0226\n\005pairs\030\001 \003(\0132\'.serial"
  "_v1.ExpandAttrValue.KeyInt32Pair\032*\n\014KeyI"
  "nt64Pair\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\022\032B\n\010"
  "Int64Map\0226\n\005pairs\030\001 \003(\0132\'.serial_v1.Expa"
  "ndAttrValue.KeyInt64Pair\032*\n\014KeyFloatPair"
  "\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\002\032B\n\010FloatMap"
  "\0226\n\005pairs\030\001 \003(\0132\'.serial_v1.ExpandAttrVa"
  "lue.KeyFloatPair\032+\n\rKeyStringPair\022\013\n\003key"
  "\030\001 \001(\t\022\r\n\005value\030\002 \001(\t\032D\n\tStringMap\0227\n\005pa"
  "irs\030\001 \003(\0132(.serial_v1.ExpandAttrValue.Ke"
  "yStringPair\032*\n\014KeyBytesPair\022\013\n\003key\030\001 \001(\t"
  "\022\r\n\005value\030\002 \001(\014\032B\n\010BytesMap\0226\n\005pairs\030\001 \003"
  "(\0132\'.serial_v1.ExpandAttrValue.KeyBytesP"
  "airB\014\n\nattr_value\"-\n\tOneKindOP\022\017\n\007op_typ"
  "e\030\001 \001(\t\022\017\n\007op_name\030\002 \003(\t\"u\n\006Tensor\022\023\n\013te"
  "nsor_name\030\001 \001(\t\022\022\n\ntensor_dim\030\002 \003(\r\022\021\n\td"
  "ata_type\030\005 \001(\005\022/\n\013tensor_attr\030\n \003(\0132\032.se"
  "rial_v1.ExpandAttrValue\"\327\001\n\006OPNode\022\017\n\007op"
  "_name\030\001 \001(\t\022\017\n\007op_type\030\002 \001(\t\022%\n\007op_attr\030"
  "\003 \003(\0132\024.serial_v1.AttrValue\0222\n\016expand_op"
  "_attr\030\010 \003(\0132\032.serial_v1.ExpandAttrValue\022"
  "&\n\010input_op\030\004 \003(\0132\024.serial_v1.OneKindOP\022"
  "(\n\routput_tensor\030\005 \001(\0132\021.serial_v1.Tenso"
  "r\"\212\001\n\010SubGraph\022\025\n\rsubgraph_name\030\001 \001(\t\022\017\n"
  "\007op_name\030\003 \003(\t\022-\n\tsubg_attr\030\005 \003(\0132\032.seri"
  "al_v1.ExpandAttrValue\022\'\n\nsubg_child\030\n \003("
  "\0132\023.serial_v1.SubGraph\"\212\001\n\005Graph\022\022\n\ngrap"
  "h_name\030\001 \001(\t\022\"\n\007op_node\030\005 \003(\0132\021.serial_v"
  "1.OPNode\022&\n\tsubg_root\030\n \001(\0132\023.serial_v1."
  "SubGraph\022!\n\007op_defs\030e \003(\0132\020.serial_v1.Op"
  "Def\"\333\001\n\007AttrDef\022\014\n\004name\030\001 \001(\t\022\021\n\tdata_ty"
  "pe\030\002 \001(\005\0220\n\noccur_type\030\003 \001(\0162\034.serial_v1"
  ".AttrDef.OccurType\022+\n\rdefault_value\030\004 \001("
  "\0132\024.serial_v1.AttrValue\022\023\n\013list_length\030\006"
  " \001(\005\022\022\n\nannotation\030\007 \001(\t\"\'\n\tOccurType\022\014\n"
  "\010REQUIRED\020\000\022\014\n\010OPTIONAL\020\001\"u\n\005OpDef\022\014\n\004na"
  "me\030\001 \001(\t\022\'\n\ninput_args\030\002 \003(\0132\023.serial_v1"
  ".OpArgDef\022!\n\005attrs\030\003 \003(\0132\022.serial_v1.Att"
  "rDef\022\022\n\nannotation\030\004 \001(\t\"\225\002\n\010OpArgDef\022\014\n"
  "\004name\030\001 \001(\t\0221\n\noccur_type\030\002 \001(\0162\035.serial"
  "_v1.OpArgDef.OccurType\022/\n\tdata_type\030\003 \001("
  "\0162\034.serial_v1.OpArgDef.DataType\022\022\n\nannot"
  "ation\030\004 \001(\t\"P\n\tOccurType\022\014\n\010REQUIRED\020\000\022\014"
  "\n\010OPTIONAL\020\001\022\014\n\010REPEATED\020\002\022\031\n\025REQUIRED_A"
  "ND_REPEATED\020\003\"1\n\010DataType\022\007\n\003ALL\020\000\022\t\n\005FL"
  "OAT\020\001\022\007\n\003INT\020\002\022\010\n\004XINT\020\003b\006proto3"
  ;
static ::_pbi::once_flag descriptor_table_graph_5fproto_5fv1_2eproto_once;
const ::_pbi::DescriptorTable descriptor_table_graph_5fproto_5fv1_2eproto = {
    false, false, 3552, descriptor_table_protodef_graph_5fproto_5fv1_2eproto,
    "graph_proto_v1.proto",
    &descriptor_table_graph_5fproto_5fv1_2eproto_once, nullptr, 0, 31,
    schemas, file_default_instances, TableStruct_graph_5fproto_5fv1_2eproto::offsets,
    file_level_metadata_graph_5fproto_5fv1_2eproto, file_level_enum_descriptors_graph_5fproto_5fv1_2eproto,
    file_level_service_descriptors_graph_5fproto_5fv1_2eproto,
};
PROTOBUF_ATTRIBUTE_WEAK const ::_pbi::DescriptorTable* descriptor_table_graph_5fproto_5fv1_2eproto_getter() {
  return &descriptor_table_graph_5fproto_5fv1_2eproto;
}

// Force running AddDescriptors() at dynamic initialization time.
PROTOBUF_ATTRIBUTE_INIT_PRIORITY2 static ::_pbi::AddDescriptorsRunner dynamic_init_dummy_graph_5fproto_5fv1_2eproto(&descriptor_table_graph_5fproto_5fv1_2eproto);
namespace serial_v1 {
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* AttrDef_OccurType_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_graph_5fproto_5fv1_2eproto);
  return file_level_enum_descriptors_graph_5fproto_5fv1_2eproto[0];
}
bool AttrDef_OccurType_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
      return true;
    default:
      return false;
  }
}

#if (__cplusplus < 201703) && (!defined(_MSC_VER) || (_MSC_VER >= 1900 && _MSC_VER < 1912))
constexpr AttrDef_OccurType AttrDef::REQUIRED;
constexpr AttrDef_OccurType AttrDef::OPTIONAL;
constexpr AttrDef_OccurType AttrDef::OccurType_MIN;
constexpr AttrDef_OccurType AttrDef::OccurType_MAX;
constexpr int AttrDef::OccurType_ARRAYSIZE;
#endif  // (__cplusplus < 201703) && (!defined(_MSC_VER) || (_MSC_VER >= 1900 && _MSC_VER < 1912))
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* OpArgDef_OccurType_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_graph_5fproto_5fv1_2eproto);
  return file_level_enum_descriptors_graph_5fproto_5fv1_2eproto[1];
}
bool OpArgDef_OccurType_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
      return true;
    default:
      return false;
  }
}

#if (__cplusplus < 201703) && (!defined(_MSC_VER) || (_MSC_VER >= 1900 && _MSC_VER < 1912))
constexpr OpArgDef_OccurType OpArgDef::REQUIRED;
constexpr OpArgDef_OccurType OpArgDef::OPTIONAL;
constexpr OpArgDef_OccurType OpArgDef::REPEATED;
constexpr OpArgDef_OccurType OpArgDef::REQUIRED_AND_REPEATED;
constexpr OpArgDef_OccurType OpArgDef::OccurType_MIN;
constexpr OpArgDef_OccurType OpArgDef::OccurType_MAX;
constexpr int OpArgDef::OccurType_ARRAYSIZE;
#endif  // (__cplusplus < 201703) && (!defined(_MSC_VER) || (_MSC_VER >= 1900 && _MSC_VER < 1912))
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* OpArgDef_DataType_descriptor() {
  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_graph_5fproto_5fv1_2eproto);
  return file_level_enum_descriptors_graph_5fproto_5fv1_2eproto[2];
}
bool OpArgDef_DataType_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
      return true;
    default:
      return false;
  }
}

#if (__cplusplus < 201703) && (!defined(_MSC_VER) || (_MSC_VER >= 1900 && _MSC_VER < 1912))
constexpr OpArgDef_DataType OpArgDef::ALL;
constexpr OpArgDef_DataType OpArgDef::FLOAT;
constexpr OpArgDef_DataType OpArgDef::INT;
constexpr OpArgDef_DataType OpArgDef::XINT;
constexpr OpArgDef_DataType OpArgDef::DataType_MIN;
constexpr OpArgDef_DataType OpArgDef::DataType_MAX;
constexpr int OpArgDef::DataType_ARRAYSIZE;
#endif  // (__cplusplus < 201703) && (!defined(_MSC_VER) || (_MSC_VER >= 1900 && _MSC_VER < 1912))

// ===================================================================

class AttrValue_ListValue::_Internal {
 public:
};

AttrValue_ListValue::AttrValue_ListValue(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:serial_v1.AttrValue.ListValue)
}
AttrValue_ListValue::AttrValue_ListValue(const AttrValue_ListValue& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  AttrValue_ListValue* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.bool_value_){from._impl_.bool_value_}
    , decltype(_impl_.int64_value_){from._impl_.int64_value_}
    , /*decltype(_impl_._int64_value_cached_byte_size_)*/{0}
    , decltype(_impl_.float_value_){from._impl_.float_value_}
    , decltype(_impl_.string_value_){from._impl_.string_value_}
    , decltype(_impl_.bytes_value_){from._impl_.bytes_value_}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:serial_v1.AttrValue.ListValue)
}

inline void AttrValue_ListValue::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.bool_value_){arena}
    , decltype(_impl_.int64_value_){arena}
    , /*decltype(_impl_._int64_value_cached_byte_size_)*/{0}
    , decltype(_impl_.float_value_){arena}
    , decltype(_impl_.string_value_){arena}
    , decltype(_impl_.bytes_value_){arena}
    , /*decltype(_impl_._cached_size_)*/{}
  };
}

AttrValue_ListValue::~AttrValue_ListValue() {
  // @@protoc_insertion_point(destructor:serial_v1.AttrValue.ListValue)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void AttrValue_ListValue::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.bool_value_.~RepeatedField();
  _impl_.int64_value_.~RepeatedField();
  _impl_.float_value_.~RepeatedField();
  _impl_.string_value_.~RepeatedPtrField();
  _impl_.bytes_value_.~RepeatedPtrField();
}

void AttrValue_ListValue::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void AttrValue_ListValue::Clear() {
// @@protoc_insertion_point(message_clear_start:serial_v1.AttrValue.ListValue)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.bool_value_.Clear();
  _impl_.int64_value_.Clear();
  _impl_.float_value_.Clear();
  _impl_.string_value_.Clear();
  _impl_.bytes_value_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* AttrValue_ListValue::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated bool bool_value = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedBoolParser(_internal_mutable_bool_value(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 8) {
          _internal_add_bool_value(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // repeated sint64 int64_value = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedSInt64Parser(_internal_mutable_int64_value(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 24) {
          _internal_add_int64_value(::PROTOBUF_NAMESPACE_ID::internal::ReadVarintZigZag64(&ptr));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // repeated float float_value = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedFloatParser(_internal_mutable_float_value(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 37) {
          _internal_add_float_value(::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr));
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // repeated string string_value = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
          ptr -= 1;
          do {
            ptr += 1;
            auto str = _internal_add_string_value();
            ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
            CHK_(ptr);
            CHK_(::_pbi::VerifyUTF8(str, "serial_v1.AttrValue.ListValue.string_value"));
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<42>(ptr));
        } else
          goto handle_unusual;
        continue;
      // repeated bytes bytes_value = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 50)) {
          ptr -= 1;
          do {
            ptr += 1;
            auto str = _internal_add_bytes_value();
            ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<50>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* AttrValue_ListValue::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:serial_v1.AttrValue.ListValue)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated bool bool_value = 1;
  if (this->_internal_bool_value_size() > 0) {
    target = stream->WriteFixedPacked(1, _internal_bool_value(), target);
  }

  // repeated sint64 int64_value = 3;
  {
    int byte_size = _impl_._int64_value_cached_byte_size_.load(std::memory_order_relaxed);
    if (byte_size > 0) {
      target = stream->WriteSInt64Packed(
          3, _internal_int64_value(), byte_size, target);
    }
  }

  // repeated float float_value = 4;
  if (this->_internal_float_value_size() > 0) {
    target = stream->WriteFixedPacked(4, _internal_float_value(), target);
  }

  // repeated string string_value = 5;
  for (int i = 0, n = this->_internal_string_value_size(); i < n; i++) {
    const auto& s = this->_internal_string_value(i);
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      s.data(), static_cast<int>(s.length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "serial_v1.AttrValue.ListValue.string_value");
    target = stream->WriteString(5, s, target);
  }

  // repeated bytes bytes_value = 6;
  for (int i = 0, n = this->_internal_bytes_value_size(); i < n; i++) {
    const auto& s = this->_internal_bytes_value(i);
    target = stream->WriteBytes(6, s, target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:serial_v1.AttrValue.ListValue)
  return target;
}

size_t AttrValue_ListValue::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:serial_v1.AttrValue.ListValue)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated bool bool_value = 1;
  {
    unsigned int count = static_cast<unsigned int>(this->_internal_bool_value_size());
    size_t data_size = 1UL * count;
    if (data_size > 0) {
      total_size += 1 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    total_size += data_size;
  }

  // repeated sint64 int64_value = 3;
  {
    size_t data_size = ::_pbi::WireFormatLite::
      SInt64Size(this->_impl_.int64_value_);
    if (data_size > 0) {
      total_size += 1 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    int cached_size = ::_pbi::ToCachedSize(data_size);
    _impl_._int64_value_cached_byte_size_.store(cached_size,
                                    std::memory_order_relaxed);
    total_size += data_size;
  }

  // repeated float float_value = 4;
  {
    unsigned int count = static_cast<unsigned int>(this->_internal_float_value_size());
    size_t data_size = 4UL * count;
    if (data_size > 0) {
      total_size += 1 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    total_size += data_size;
  }

  // repeated string string_value = 5;
  total_size += 1 *
      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(_impl_.string_value_.size());
  for (int i = 0, n = _impl_.string_value_.size(); i < n; i++) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
      _impl_.string_value_.Get(i));
  }

  // repeated bytes bytes_value = 6;
  total_size += 1 *
      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(_impl_.bytes_value_.size());
  for (int i = 0, n = _impl_.bytes_value_.size(); i < n; i++) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize(
      _impl_.bytes_value_.Get(i));
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData AttrValue_ListValue::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    AttrValue_ListValue::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*AttrValue_ListValue::GetClassData() const { return &_class_data_; }


void AttrValue_ListValue::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<AttrValue_ListValue*>(&to_msg);
  auto& from = static_cast<const AttrValue_ListValue&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:serial_v1.AttrValue.ListValue)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.bool_value_.MergeFrom(from._impl_.bool_value_);
  _this->_impl_.int64_value_.MergeFrom(from._impl_.int64_value_);
  _this->_impl_.float_value_.MergeFrom(from._impl_.float_value_);
  _this->_impl_.string_value_.MergeFrom(from._impl_.string_value_);
  _this->_impl_.bytes_value_.MergeFrom(from._impl_.bytes_value_);
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void AttrValue_ListValue::CopyFrom(const AttrValue_ListValue& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:serial_v1.AttrValue.ListValue)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool AttrValue_ListValue::IsInitialized() const {
  return true;
}

void AttrValue_ListValue::InternalSwap(AttrValue_ListValue* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.bool_value_.InternalSwap(&other->_impl_.bool_value_);
  _impl_.int64_value_.InternalSwap(&other->_impl_.int64_value_);
  _impl_.float_value_.InternalSwap(&other->_impl_.float_value_);
  _impl_.string_value_.InternalSwap(&other->_impl_.string_value_);
  _impl_.bytes_value_.InternalSwap(&other->_impl_.bytes_value_);
}

::PROTOBUF_NAMESPACE_ID::Metadata AttrValue_ListValue::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv1_2eproto_getter, &descriptor_table_graph_5fproto_5fv1_2eproto_once,
      file_level_metadata_graph_5fproto_5fv1_2eproto[0]);
}

// ===================================================================

class AttrValue_kv_pair::_Internal {
 public:
};

AttrValue_kv_pair::AttrValue_kv_pair(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:serial_v1.AttrValue.kv_pair)
}
AttrValue_kv_pair::AttrValue_kv_pair(const AttrValue_kv_pair& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  AttrValue_kv_pair* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.key_){}
    , decltype(_impl_.string_value_){}
    , decltype(_impl_.bytes_value_){}
    , decltype(_impl_.bool_value_){}
    , decltype(_impl_.float_value_){}
    , decltype(_impl_.int64_value_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.key_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.key_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_key().empty()) {
    _this->_impl_.key_.Set(from._internal_key(), 
      _this->GetArenaForAllocation());
  }
  _impl_.string_value_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.string_value_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_string_value().empty()) {
    _this->_impl_.string_value_.Set(from._internal_string_value(), 
      _this->GetArenaForAllocation());
  }
  _impl_.bytes_value_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.bytes_value_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_bytes_value().empty()) {
    _this->_impl_.bytes_value_.Set(from._internal_bytes_value(), 
      _this->GetArenaForAllocation());
  }
  ::memcpy(&_impl_.bool_value_, &from._impl_.bool_value_,
    static_cast<size_t>(reinterpret_cast<char*>(&_impl_.int64_value_) -
    reinterpret_cast<char*>(&_impl_.bool_value_)) + sizeof(_impl_.int64_value_));
  // @@protoc_insertion_point(copy_constructor:serial_v1.AttrValue.kv_pair)
}

inline void AttrValue_kv_pair::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.key_){}
    , decltype(_impl_.string_value_){}
    , decltype(_impl_.bytes_value_){}
    , decltype(_impl_.bool_value_){false}
    , decltype(_impl_.float_value_){0}
    , decltype(_impl_.int64_value_){int64_t{0}}
    , /*decltype(_impl_._cached_size_)*/{}
  };
  _impl_.key_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.key_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.string_value_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.string_value_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.bytes_value_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.bytes_value_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

AttrValue_kv_pair::~AttrValue_kv_pair() {
  // @@protoc_insertion_point(destructor:serial_v1.AttrValue.kv_pair)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void AttrValue_kv_pair::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.key_.Destroy();
  _impl_.string_value_.Destroy();
  _impl_.bytes_value_.Destroy();
}

void AttrValue_kv_pair::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void AttrValue_kv_pair::Clear() {
// @@protoc_insertion_point(message_clear_start:serial_v1.AttrValue.kv_pair)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.key_.ClearToEmpty();
  _impl_.string_value_.ClearToEmpty();
  _impl_.bytes_value_.ClearToEmpty();
  ::memset(&_impl_.bool_value_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&_impl_.int64_value_) -
      reinterpret_cast<char*>(&_impl_.bool_value_)) + sizeof(_impl_.int64_value_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* AttrValue_kv_pair::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string key = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_key();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "serial_v1.AttrValue.kv_pair.key"));
        } else
          goto handle_unusual;
        continue;
      // bool bool_value = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          _impl_.bool_value_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // sint64 int64_value = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 32)) {
          _impl_.int64_value_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarintZigZag64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // float float_value = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 45)) {
          _impl_.float_value_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // string string_value = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 50)) {
          auto str = _internal_mutable_string_value();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "serial_v1.AttrValue.kv_pair.string_value"));
        } else
          goto handle_unusual;
        continue;
      // bytes bytes_value = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 58)) {
          auto str = _internal_mutable_bytes_value();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* AttrValue_kv_pair::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:serial_v1.AttrValue.kv_pair)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string key = 1;
  if (!this->_internal_key().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_key().data(), static_cast<int>(this->_internal_key().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "serial_v1.AttrValue.kv_pair.key");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_key(), target);
  }

  // bool bool_value = 2;
  if (this->_internal_bool_value() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(2, this->_internal_bool_value(), target);
  }

  // sint64 int64_value = 4;
  if (this->_internal_int64_value() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteSInt64ToArray(4, this->_internal_int64_value(), target);
  }

  // float float_value = 5;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_float_value = this->_internal_float_value();
  uint32_t raw_float_value;
  memcpy(&raw_float_value, &tmp_float_value, sizeof(tmp_float_value));
  if (raw_float_value != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(5, this->_internal_float_value(), target);
  }

  // string string_value = 6;
  if (!this->_internal_string_value().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_string_value().data(), static_cast<int>(this->_internal_string_value().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "serial_v1.AttrValue.kv_pair.string_value");
    target = stream->WriteStringMaybeAliased(
        6, this->_internal_string_value(), target);
  }

  // bytes bytes_value = 7;
  if (!this->_internal_bytes_value().empty()) {
    target = stream->WriteBytesMaybeAliased(
        7, this->_internal_bytes_value(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:serial_v1.AttrValue.kv_pair)
  return target;
}

size_t AttrValue_kv_pair::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:serial_v1.AttrValue.kv_pair)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string key = 1;
  if (!this->_internal_key().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_key());
  }

  // string string_value = 6;
  if (!this->_internal_string_value().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_string_value());
  }

  // bytes bytes_value = 7;
  if (!this->_internal_bytes_value().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize(
        this->_internal_bytes_value());
  }

  // bool bool_value = 2;
  if (this->_internal_bool_value() != 0) {
    total_size += 1 + 1;
  }

  // float float_value = 5;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_float_value = this->_internal_float_value();
  uint32_t raw_float_value;
  memcpy(&raw_float_value, &tmp_float_value, sizeof(tmp_float_value));
  if (raw_float_value != 0) {
    total_size += 1 + 4;
  }

  // sint64 int64_value = 4;
  if (this->_internal_int64_value() != 0) {
    total_size += ::_pbi::WireFormatLite::SInt64SizePlusOne(this->_internal_int64_value());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData AttrValue_kv_pair::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    AttrValue_kv_pair::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*AttrValue_kv_pair::GetClassData() const { return &_class_data_; }


void AttrValue_kv_pair::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<AttrValue_kv_pair*>(&to_msg);
  auto& from = static_cast<const AttrValue_kv_pair&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:serial_v1.AttrValue.kv_pair)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_key().empty()) {
    _this->_internal_set_key(from._internal_key());
  }
  if (!from._internal_string_value().empty()) {
    _this->_internal_set_string_value(from._internal_string_value());
  }
  if (!from._internal_bytes_value().empty()) {
    _this->_internal_set_bytes_value(from._internal_bytes_value());
  }
  if (from._internal_bool_value() != 0) {
    _this->_internal_set_bool_value(from._internal_bool_value());
  }
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_float_value = from._internal_float_value();
  uint32_t raw_float_value;
  memcpy(&raw_float_value, &tmp_float_value, sizeof(tmp_float_value));
  if (raw_float_value != 0) {
    _this->_internal_set_float_value(from._internal_float_value());
  }
  if (from._internal_int64_value() != 0) {
    _this->_internal_set_int64_value(from._internal_int64_value());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void AttrValue_kv_pair::CopyFrom(const AttrValue_kv_pair& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:serial_v1.AttrValue.kv_pair)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool AttrValue_kv_pair::IsInitialized() const {
  return true;
}

void AttrValue_kv_pair::InternalSwap(AttrValue_kv_pair* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.key_, lhs_arena,
      &other->_impl_.key_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.string_value_, lhs_arena,
      &other->_impl_.string_value_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.bytes_value_, lhs_arena,
      &other->_impl_.bytes_value_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(AttrValue_kv_pair, _impl_.int64_value_)
      + sizeof(AttrValue_kv_pair::_impl_.int64_value_)
      - PROTOBUF_FIELD_OFFSET(AttrValue_kv_pair, _impl_.bool_value_)>(
          reinterpret_cast<char*>(&_impl_.bool_value_),
          reinterpret_cast<char*>(&other->_impl_.bool_value_));
}

::PROTOBUF_NAMESPACE_ID::Metadata AttrValue_kv_pair::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv1_2eproto_getter, &descriptor_table_graph_5fproto_5fv1_2eproto_once,
      file_level_metadata_graph_5fproto_5fv1_2eproto[1]);
}

// ===================================================================

class AttrValue_kv_map::_Internal {
 public:
};

AttrValue_kv_map::AttrValue_kv_map(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:serial_v1.AttrValue.kv_map)
}
AttrValue_kv_map::AttrValue_kv_map(const AttrValue_kv_map& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  AttrValue_kv_map* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.pairs_){from._impl_.pairs_}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:serial_v1.AttrValue.kv_map)
}

inline void AttrValue_kv_map::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.pairs_){arena}
    , /*decltype(_impl_._cached_size_)*/{}
  };
}

AttrValue_kv_map::~AttrValue_kv_map() {
  // @@protoc_insertion_point(destructor:serial_v1.AttrValue.kv_map)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void AttrValue_kv_map::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.pairs_.~RepeatedPtrField();
}

void AttrValue_kv_map::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void AttrValue_kv_map::Clear() {
// @@protoc_insertion_point(message_clear_start:serial_v1.AttrValue.kv_map)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.pairs_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* AttrValue_kv_map::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated .serial_v1.AttrValue.kv_pair pairs = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_pairs(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* AttrValue_kv_map::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:serial_v1.AttrValue.kv_map)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .serial_v1.AttrValue.kv_pair pairs = 1;
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_pairs_size()); i < n; i++) {
    const auto& repfield = this->_internal_pairs(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(1, repfield, repfield.GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:serial_v1.AttrValue.kv_map)
  return target;
}

size_t AttrValue_kv_map::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:serial_v1.AttrValue.kv_map)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .serial_v1.AttrValue.kv_pair pairs = 1;
  total_size += 1UL * this->_internal_pairs_size();
  for (const auto& msg : this->_impl_.pairs_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData AttrValue_kv_map::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    AttrValue_kv_map::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*AttrValue_kv_map::GetClassData() const { return &_class_data_; }


void AttrValue_kv_map::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<AttrValue_kv_map*>(&to_msg);
  auto& from = static_cast<const AttrValue_kv_map&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:serial_v1.AttrValue.kv_map)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.pairs_.MergeFrom(from._impl_.pairs_);
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void AttrValue_kv_map::CopyFrom(const AttrValue_kv_map& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:serial_v1.AttrValue.kv_map)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool AttrValue_kv_map::IsInitialized() const {
  return true;
}

void AttrValue_kv_map::InternalSwap(AttrValue_kv_map* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.pairs_.InternalSwap(&other->_impl_.pairs_);
}

::PROTOBUF_NAMESPACE_ID::Metadata AttrValue_kv_map::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv1_2eproto_getter, &descriptor_table_graph_5fproto_5fv1_2eproto_once,
      file_level_metadata_graph_5fproto_5fv1_2eproto[2]);
}

// ===================================================================

class AttrValue::_Internal {
 public:
  static const ::serial_v1::AttrValue_ListValue& list_value(const AttrValue* msg);
  static const ::serial_v1::AttrValue_kv_map& kv(const AttrValue* msg);
};

const ::serial_v1::AttrValue_ListValue&
AttrValue::_Internal::list_value(const AttrValue* msg) {
  return *msg->_impl_.attr_value_.list_value_;
}
const ::serial_v1::AttrValue_kv_map&
AttrValue::_Internal::kv(const AttrValue* msg) {
  return *msg->_impl_.attr_value_.kv_;
}
void AttrValue::set_allocated_list_value(::serial_v1::AttrValue_ListValue* list_value) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_attr_value();
  if (list_value) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(list_value);
    if (message_arena != submessage_arena) {
      list_value = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, list_value, submessage_arena);
    }
    set_has_list_value();
    _impl_.attr_value_.list_value_ = list_value;
  }
  // @@protoc_insertion_point(field_set_allocated:serial_v1.AttrValue.list_value)
}
void AttrValue::set_allocated_kv(::serial_v1::AttrValue_kv_map* kv) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_attr_value();
  if (kv) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(kv);
    if (message_arena != submessage_arena) {
      kv = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, kv, submessage_arena);
    }
    set_has_kv();
    _impl_.attr_value_.kv_ = kv;
  }
  // @@protoc_insertion_point(field_set_allocated:serial_v1.AttrValue.kv)
}
AttrValue::AttrValue(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:serial_v1.AttrValue)
}
AttrValue::AttrValue(const AttrValue& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  AttrValue* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.attr_name_){}
    , decltype(_impl_.attr_value_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , /*decltype(_impl_._oneof_case_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.attr_name_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.attr_name_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_attr_name().empty()) {
    _this->_impl_.attr_name_.Set(from._internal_attr_name(), 
      _this->GetArenaForAllocation());
  }
  clear_has_attr_value();
  switch (from.attr_value_case()) {
    case kBoolValue: {
      _this->_internal_set_bool_value(from._internal_bool_value());
      break;
    }
    case kInt64Value: {
      _this->_internal_set_int64_value(from._internal_int64_value());
      break;
    }
    case kFloatValue: {
      _this->_internal_set_float_value(from._internal_float_value());
      break;
    }
    case kStringValue: {
      _this->_internal_set_string_value(from._internal_string_value());
      break;
    }
    case kBytesValue: {
      _this->_internal_set_bytes_value(from._internal_bytes_value());
      break;
    }
    case kListValue: {
      _this->_internal_mutable_list_value()->::serial_v1::AttrValue_ListValue::MergeFrom(
          from._internal_list_value());
      break;
    }
    case kKv: {
      _this->_internal_mutable_kv()->::serial_v1::AttrValue_kv_map::MergeFrom(
          from._internal_kv());
      break;
    }
    case ATTR_VALUE_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:serial_v1.AttrValue)
}

inline void AttrValue::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.attr_name_){}
    , decltype(_impl_.attr_value_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , /*decltype(_impl_._oneof_case_)*/{}
  };
  _impl_.attr_name_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.attr_name_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  clear_has_attr_value();
}

AttrValue::~AttrValue() {
  // @@protoc_insertion_point(destructor:serial_v1.AttrValue)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void AttrValue::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.attr_name_.Destroy();
  if (has_attr_value()) {
    clear_attr_value();
  }
}

void AttrValue::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void AttrValue::clear_attr_value() {
// @@protoc_insertion_point(one_of_clear_start:serial_v1.AttrValue)
  switch (attr_value_case()) {
    case kBoolValue: {
      // No need to clear
      break;
    }
    case kInt64Value: {
      // No need to clear
      break;
    }
    case kFloatValue: {
      // No need to clear
      break;
    }
    case kStringValue: {
      _impl_.attr_value_.string_value_.Destroy();
      break;
    }
    case kBytesValue: {
      _impl_.attr_value_.bytes_value_.Destroy();
      break;
    }
    case kListValue: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.attr_value_.list_value_;
      }
      break;
    }
    case kKv: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.attr_value_.kv_;
      }
      break;
    }
    case ATTR_VALUE_NOT_SET: {
      break;
    }
  }
  _impl_._oneof_case_[0] = ATTR_VALUE_NOT_SET;
}


void AttrValue::Clear() {
// @@protoc_insertion_point(message_clear_start:serial_v1.AttrValue)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.attr_name_.ClearToEmpty();
  clear_attr_value();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* AttrValue::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string attr_name = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_attr_name();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "serial_v1.AttrValue.attr_name"));
        } else
          goto handle_unusual;
        continue;
      // bool bool_value = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          _internal_set_bool_value(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // sint64 int64_value = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 32)) {
          _internal_set_int64_value(::PROTOBUF_NAMESPACE_ID::internal::ReadVarintZigZag64(&ptr));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // float float_value = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 45)) {
          _internal_set_float_value(::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr));
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // string string_value = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 50)) {
          auto str = _internal_mutable_string_value();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "serial_v1.AttrValue.string_value"));
        } else
          goto handle_unusual;
        continue;
      // bytes bytes_value = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 58)) {
          auto str = _internal_mutable_bytes_value();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .serial_v1.AttrValue.ListValue list_value = 8;
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 66)) {
          ptr = ctx->ParseMessage(_internal_mutable_list_value(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .serial_v1.AttrValue.kv_map kv = 10;
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 82)) {
          ptr = ctx->ParseMessage(_internal_mutable_kv(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* AttrValue::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:serial_v1.AttrValue)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string attr_name = 1;
  if (!this->_internal_attr_name().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_attr_name().data(), static_cast<int>(this->_internal_attr_name().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "serial_v1.AttrValue.attr_name");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_attr_name(), target);
  }

  // bool bool_value = 2;
  if (_internal_has_bool_value()) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(2, this->_internal_bool_value(), target);
  }

  // sint64 int64_value = 4;
  if (_internal_has_int64_value()) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteSInt64ToArray(4, this->_internal_int64_value(), target);
  }

  // float float_value = 5;
  if (_internal_has_float_value()) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(5, this->_internal_float_value(), target);
  }

  // string string_value = 6;
  if (_internal_has_string_value()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_string_value().data(), static_cast<int>(this->_internal_string_value().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "serial_v1.AttrValue.string_value");
    target = stream->WriteStringMaybeAliased(
        6, this->_internal_string_value(), target);
  }

  // bytes bytes_value = 7;
  if (_internal_has_bytes_value()) {
    target = stream->WriteBytesMaybeAliased(
        7, this->_internal_bytes_value(), target);
  }

  // .serial_v1.AttrValue.ListValue list_value = 8;
  if (_internal_has_list_value()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(8, _Internal::list_value(this),
        _Internal::list_value(this).GetCachedSize(), target, stream);
  }

  // .serial_v1.AttrValue.kv_map kv = 10;
  if (_internal_has_kv()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(10, _Internal::kv(this),
        _Internal::kv(this).GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:serial_v1.AttrValue)
  return target;
}

size_t AttrValue::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:serial_v1.AttrValue)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string attr_name = 1;
  if (!this->_internal_attr_name().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_attr_name());
  }

  switch (attr_value_case()) {
    // bool bool_value = 2;
    case kBoolValue: {
      total_size += 1 + 1;
      break;
    }
    // sint64 int64_value = 4;
    case kInt64Value: {
      total_size += ::_pbi::WireFormatLite::SInt64SizePlusOne(this->_internal_int64_value());
      break;
    }
    // float float_value = 5;
    case kFloatValue: {
      total_size += 1 + 4;
      break;
    }
    // string string_value = 6;
    case kStringValue: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
          this->_internal_string_value());
      break;
    }
    // bytes bytes_value = 7;
    case kBytesValue: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize(
          this->_internal_bytes_value());
      break;
    }
    // .serial_v1.AttrValue.ListValue list_value = 8;
    case kListValue: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.attr_value_.list_value_);
      break;
    }
    // .serial_v1.AttrValue.kv_map kv = 10;
    case kKv: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.attr_value_.kv_);
      break;
    }
    case ATTR_VALUE_NOT_SET: {
      break;
    }
  }
  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData AttrValue::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    AttrValue::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*AttrValue::GetClassData() const { return &_class_data_; }


void AttrValue::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<AttrValue*>(&to_msg);
  auto& from = static_cast<const AttrValue&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:serial_v1.AttrValue)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_attr_name().empty()) {
    _this->_internal_set_attr_name(from._internal_attr_name());
  }
  switch (from.attr_value_case()) {
    case kBoolValue: {
      _this->_internal_set_bool_value(from._internal_bool_value());
      break;
    }
    case kInt64Value: {
      _this->_internal_set_int64_value(from._internal_int64_value());
      break;
    }
    case kFloatValue: {
      _this->_internal_set_float_value(from._internal_float_value());
      break;
    }
    case kStringValue: {
      _this->_internal_set_string_value(from._internal_string_value());
      break;
    }
    case kBytesValue: {
      _this->_internal_set_bytes_value(from._internal_bytes_value());
      break;
    }
    case kListValue: {
      _this->_internal_mutable_list_value()->::serial_v1::AttrValue_ListValue::MergeFrom(
          from._internal_list_value());
      break;
    }
    case kKv: {
      _this->_internal_mutable_kv()->::serial_v1::AttrValue_kv_map::MergeFrom(
          from._internal_kv());
      break;
    }
    case ATTR_VALUE_NOT_SET: {
      break;
    }
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void AttrValue::CopyFrom(const AttrValue& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:serial_v1.AttrValue)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool AttrValue::IsInitialized() const {
  return true;
}

void AttrValue::InternalSwap(AttrValue* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.attr_name_, lhs_arena,
      &other->_impl_.attr_name_, rhs_arena
  );
  swap(_impl_.attr_value_, other->_impl_.attr_value_);
  swap(_impl_._oneof_case_[0], other->_impl_._oneof_case_[0]);
}

::PROTOBUF_NAMESPACE_ID::Metadata AttrValue::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv1_2eproto_getter, &descriptor_table_graph_5fproto_5fv1_2eproto_once,
      file_level_metadata_graph_5fproto_5fv1_2eproto[3]);
}

// ===================================================================

class ExpandAttrValue_BoolVec::_Internal {
 public:
};

ExpandAttrValue_BoolVec::ExpandAttrValue_BoolVec(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:serial_v1.ExpandAttrValue.BoolVec)
}
ExpandAttrValue_BoolVec::ExpandAttrValue_BoolVec(const ExpandAttrValue_BoolVec& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  ExpandAttrValue_BoolVec* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.value_){from._impl_.value_}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:serial_v1.ExpandAttrValue.BoolVec)
}

inline void ExpandAttrValue_BoolVec::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.value_){arena}
    , /*decltype(_impl_._cached_size_)*/{}
  };
}

ExpandAttrValue_BoolVec::~ExpandAttrValue_BoolVec() {
  // @@protoc_insertion_point(destructor:serial_v1.ExpandAttrValue.BoolVec)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void ExpandAttrValue_BoolVec::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.value_.~RepeatedField();
}

void ExpandAttrValue_BoolVec::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void ExpandAttrValue_BoolVec::Clear() {
// @@protoc_insertion_point(message_clear_start:serial_v1.ExpandAttrValue.BoolVec)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.value_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* ExpandAttrValue_BoolVec::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated bool value = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedBoolParser(_internal_mutable_value(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 8) {
          _internal_add_value(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* ExpandAttrValue_BoolVec::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:serial_v1.ExpandAttrValue.BoolVec)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated bool value = 1;
  if (this->_internal_value_size() > 0) {
    target = stream->WriteFixedPacked(1, _internal_value(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:serial_v1.ExpandAttrValue.BoolVec)
  return target;
}

size_t ExpandAttrValue_BoolVec::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:serial_v1.ExpandAttrValue.BoolVec)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated bool value = 1;
  {
    unsigned int count = static_cast<unsigned int>(this->_internal_value_size());
    size_t data_size = 1UL * count;
    if (data_size > 0) {
      total_size += 1 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    total_size += data_size;
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData ExpandAttrValue_BoolVec::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    ExpandAttrValue_BoolVec::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ExpandAttrValue_BoolVec::GetClassData() const { return &_class_data_; }


void ExpandAttrValue_BoolVec::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<ExpandAttrValue_BoolVec*>(&to_msg);
  auto& from = static_cast<const ExpandAttrValue_BoolVec&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:serial_v1.ExpandAttrValue.BoolVec)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.value_.MergeFrom(from._impl_.value_);
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void ExpandAttrValue_BoolVec::CopyFrom(const ExpandAttrValue_BoolVec& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:serial_v1.ExpandAttrValue.BoolVec)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ExpandAttrValue_BoolVec::IsInitialized() const {
  return true;
}

void ExpandAttrValue_BoolVec::InternalSwap(ExpandAttrValue_BoolVec* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.value_.InternalSwap(&other->_impl_.value_);
}

::PROTOBUF_NAMESPACE_ID::Metadata ExpandAttrValue_BoolVec::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv1_2eproto_getter, &descriptor_table_graph_5fproto_5fv1_2eproto_once,
      file_level_metadata_graph_5fproto_5fv1_2eproto[4]);
}

// ===================================================================

class ExpandAttrValue_Int32Vec::_Internal {
 public:
};

ExpandAttrValue_Int32Vec::ExpandAttrValue_Int32Vec(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:serial_v1.ExpandAttrValue.Int32Vec)
}
ExpandAttrValue_Int32Vec::ExpandAttrValue_Int32Vec(const ExpandAttrValue_Int32Vec& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  ExpandAttrValue_Int32Vec* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.value_){from._impl_.value_}
    , /*decltype(_impl_._value_cached_byte_size_)*/{0}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:serial_v1.ExpandAttrValue.Int32Vec)
}

inline void ExpandAttrValue_Int32Vec::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.value_){arena}
    , /*decltype(_impl_._value_cached_byte_size_)*/{0}
    , /*decltype(_impl_._cached_size_)*/{}
  };
}

ExpandAttrValue_Int32Vec::~ExpandAttrValue_Int32Vec() {
  // @@protoc_insertion_point(destructor:serial_v1.ExpandAttrValue.Int32Vec)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void ExpandAttrValue_Int32Vec::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.value_.~RepeatedField();
}

void ExpandAttrValue_Int32Vec::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void ExpandAttrValue_Int32Vec::Clear() {
// @@protoc_insertion_point(message_clear_start:serial_v1.ExpandAttrValue.Int32Vec)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.value_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* ExpandAttrValue_Int32Vec::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated sint32 value = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedSInt32Parser(_internal_mutable_value(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 8) {
          _internal_add_value(::PROTOBUF_NAMESPACE_ID::internal::ReadVarintZigZag32(&ptr));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* ExpandAttrValue_Int32Vec::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:serial_v1.ExpandAttrValue.Int32Vec)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated sint32 value = 1;
  {
    int byte_size = _impl_._value_cached_byte_size_.load(std::memory_order_relaxed);
    if (byte_size > 0) {
      target = stream->WriteSInt32Packed(
          1, _internal_value(), byte_size, target);
    }
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:serial_v1.ExpandAttrValue.Int32Vec)
  return target;
}

size_t ExpandAttrValue_Int32Vec::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:serial_v1.ExpandAttrValue.Int32Vec)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated sint32 value = 1;
  {
    size_t data_size = ::_pbi::WireFormatLite::
      SInt32Size(this->_impl_.value_);
    if (data_size > 0) {
      total_size += 1 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    int cached_size = ::_pbi::ToCachedSize(data_size);
    _impl_._value_cached_byte_size_.store(cached_size,
                                    std::memory_order_relaxed);
    total_size += data_size;
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData ExpandAttrValue_Int32Vec::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    ExpandAttrValue_Int32Vec::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ExpandAttrValue_Int32Vec::GetClassData() const { return &_class_data_; }


void ExpandAttrValue_Int32Vec::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<ExpandAttrValue_Int32Vec*>(&to_msg);
  auto& from = static_cast<const ExpandAttrValue_Int32Vec&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:serial_v1.ExpandAttrValue.Int32Vec)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.value_.MergeFrom(from._impl_.value_);
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void ExpandAttrValue_Int32Vec::CopyFrom(const ExpandAttrValue_Int32Vec& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:serial_v1.ExpandAttrValue.Int32Vec)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ExpandAttrValue_Int32Vec::IsInitialized() const {
  return true;
}

void ExpandAttrValue_Int32Vec::InternalSwap(ExpandAttrValue_Int32Vec* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.value_.InternalSwap(&other->_impl_.value_);
}

::PROTOBUF_NAMESPACE_ID::Metadata ExpandAttrValue_Int32Vec::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv1_2eproto_getter, &descriptor_table_graph_5fproto_5fv1_2eproto_once,
      file_level_metadata_graph_5fproto_5fv1_2eproto[5]);
}

// ===================================================================

class ExpandAttrValue_Int64Vec::_Internal {
 public:
};

ExpandAttrValue_Int64Vec::ExpandAttrValue_Int64Vec(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:serial_v1.ExpandAttrValue.Int64Vec)
}
ExpandAttrValue_Int64Vec::ExpandAttrValue_Int64Vec(const ExpandAttrValue_Int64Vec& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  ExpandAttrValue_Int64Vec* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.value_){from._impl_.value_}
    , /*decltype(_impl_._value_cached_byte_size_)*/{0}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:serial_v1.ExpandAttrValue.Int64Vec)
}

inline void ExpandAttrValue_Int64Vec::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.value_){arena}
    , /*decltype(_impl_._value_cached_byte_size_)*/{0}
    , /*decltype(_impl_._cached_size_)*/{}
  };
}

ExpandAttrValue_Int64Vec::~ExpandAttrValue_Int64Vec() {
  // @@protoc_insertion_point(destructor:serial_v1.ExpandAttrValue.Int64Vec)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void ExpandAttrValue_Int64Vec::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.value_.~RepeatedField();
}

void ExpandAttrValue_Int64Vec::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void ExpandAttrValue_Int64Vec::Clear() {
// @@protoc_insertion_point(message_clear_start:serial_v1.ExpandAttrValue.Int64Vec)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.value_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* ExpandAttrValue_Int64Vec::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated sint64 value = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedSInt64Parser(_internal_mutable_value(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 8) {
          _internal_add_value(::PROTOBUF_NAMESPACE_ID::internal::ReadVarintZigZag64(&ptr));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* ExpandAttrValue_Int64Vec::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:serial_v1.ExpandAttrValue.Int64Vec)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated sint64 value = 1;
  {
    int byte_size = _impl_._value_cached_byte_size_.load(std::memory_order_relaxed);
    if (byte_size > 0) {
      target = stream->WriteSInt64Packed(
          1, _internal_value(), byte_size, target);
    }
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:serial_v1.ExpandAttrValue.Int64Vec)
  return target;
}

size_t ExpandAttrValue_Int64Vec::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:serial_v1.ExpandAttrValue.Int64Vec)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated sint64 value = 1;
  {
    size_t data_size = ::_pbi::WireFormatLite::
      SInt64Size(this->_impl_.value_);
    if (data_size > 0) {
      total_size += 1 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    int cached_size = ::_pbi::ToCachedSize(data_size);
    _impl_._value_cached_byte_size_.store(cached_size,
                                    std::memory_order_relaxed);
    total_size += data_size;
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData ExpandAttrValue_Int64Vec::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    ExpandAttrValue_Int64Vec::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ExpandAttrValue_Int64Vec::GetClassData() const { return &_class_data_; }


void ExpandAttrValue_Int64Vec::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<ExpandAttrValue_Int64Vec*>(&to_msg);
  auto& from = static_cast<const ExpandAttrValue_Int64Vec&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:serial_v1.ExpandAttrValue.Int64Vec)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.value_.MergeFrom(from._impl_.value_);
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void ExpandAttrValue_Int64Vec::CopyFrom(const ExpandAttrValue_Int64Vec& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:serial_v1.ExpandAttrValue.Int64Vec)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ExpandAttrValue_Int64Vec::IsInitialized() const {
  return true;
}

void ExpandAttrValue_Int64Vec::InternalSwap(ExpandAttrValue_Int64Vec* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.value_.InternalSwap(&other->_impl_.value_);
}

::PROTOBUF_NAMESPACE_ID::Metadata ExpandAttrValue_Int64Vec::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv1_2eproto_getter, &descriptor_table_graph_5fproto_5fv1_2eproto_once,
      file_level_metadata_graph_5fproto_5fv1_2eproto[6]);
}

// ===================================================================

class ExpandAttrValue_FloatVec::_Internal {
 public:
};

ExpandAttrValue_FloatVec::ExpandAttrValue_FloatVec(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:serial_v1.ExpandAttrValue.FloatVec)
}
ExpandAttrValue_FloatVec::ExpandAttrValue_FloatVec(const ExpandAttrValue_FloatVec& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  ExpandAttrValue_FloatVec* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.value_){from._impl_.value_}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:serial_v1.ExpandAttrValue.FloatVec)
}

inline void ExpandAttrValue_FloatVec::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.value_){arena}
    , /*decltype(_impl_._cached_size_)*/{}
  };
}

ExpandAttrValue_FloatVec::~ExpandAttrValue_FloatVec() {
  // @@protoc_insertion_point(destructor:serial_v1.ExpandAttrValue.FloatVec)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void ExpandAttrValue_FloatVec::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.value_.~RepeatedField();
}

void ExpandAttrValue_FloatVec::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void ExpandAttrValue_FloatVec::Clear() {
// @@protoc_insertion_point(message_clear_start:serial_v1.ExpandAttrValue.FloatVec)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.value_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* ExpandAttrValue_FloatVec::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated float value = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedFloatParser(_internal_mutable_value(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 13) {
          _internal_add_value(::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr));
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* ExpandAttrValue_FloatVec::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:serial_v1.ExpandAttrValue.FloatVec)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated float value = 1;
  if (this->_internal_value_size() > 0) {
    target = stream->WriteFixedPacked(1, _internal_value(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:serial_v1.ExpandAttrValue.FloatVec)
  return target;
}

size_t ExpandAttrValue_FloatVec::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:serial_v1.ExpandAttrValue.FloatVec)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated float value = 1;
  {
    unsigned int count = static_cast<unsigned int>(this->_internal_value_size());
    size_t data_size = 4UL * count;
    if (data_size > 0) {
      total_size += 1 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    total_size += data_size;
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData ExpandAttrValue_FloatVec::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    ExpandAttrValue_FloatVec::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ExpandAttrValue_FloatVec::GetClassData() const { return &_class_data_; }


void ExpandAttrValue_FloatVec::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<ExpandAttrValue_FloatVec*>(&to_msg);
  auto& from = static_cast<const ExpandAttrValue_FloatVec&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:serial_v1.ExpandAttrValue.FloatVec)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.value_.MergeFrom(from._impl_.value_);
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void ExpandAttrValue_FloatVec::CopyFrom(const ExpandAttrValue_FloatVec& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:serial_v1.ExpandAttrValue.FloatVec)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ExpandAttrValue_FloatVec::IsInitialized() const {
  return true;
}

void ExpandAttrValue_FloatVec::InternalSwap(ExpandAttrValue_FloatVec* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.value_.InternalSwap(&other->_impl_.value_);
}

::PROTOBUF_NAMESPACE_ID::Metadata ExpandAttrValue_FloatVec::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv1_2eproto_getter, &descriptor_table_graph_5fproto_5fv1_2eproto_once,
      file_level_metadata_graph_5fproto_5fv1_2eproto[7]);
}

// ===================================================================

class ExpandAttrValue_StringVec::_Internal {
 public:
};

ExpandAttrValue_StringVec::ExpandAttrValue_StringVec(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:serial_v1.ExpandAttrValue.StringVec)
}
ExpandAttrValue_StringVec::ExpandAttrValue_StringVec(const ExpandAttrValue_StringVec& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  ExpandAttrValue_StringVec* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.value_){from._impl_.value_}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:serial_v1.ExpandAttrValue.StringVec)
}

inline void ExpandAttrValue_StringVec::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.value_){arena}
    , /*decltype(_impl_._cached_size_)*/{}
  };
}

ExpandAttrValue_StringVec::~ExpandAttrValue_StringVec() {
  // @@protoc_insertion_point(destructor:serial_v1.ExpandAttrValue.StringVec)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void ExpandAttrValue_StringVec::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.value_.~RepeatedPtrField();
}

void ExpandAttrValue_StringVec::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void ExpandAttrValue_StringVec::Clear() {
// @@protoc_insertion_point(message_clear_start:serial_v1.ExpandAttrValue.StringVec)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.value_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* ExpandAttrValue_StringVec::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated string value = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            auto str = _internal_add_value();
            ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
            CHK_(ptr);
            CHK_(::_pbi::VerifyUTF8(str, "serial_v1.ExpandAttrValue.StringVec.value"));
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* ExpandAttrValue_StringVec::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:serial_v1.ExpandAttrValue.StringVec)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated string value = 1;
  for (int i = 0, n = this->_internal_value_size(); i < n; i++) {
    const auto& s = this->_internal_value(i);
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      s.data(), static_cast<int>(s.length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "serial_v1.ExpandAttrValue.StringVec.value");
    target = stream->WriteString(1, s, target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:serial_v1.ExpandAttrValue.StringVec)
  return target;
}

size_t ExpandAttrValue_StringVec::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:serial_v1.ExpandAttrValue.StringVec)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated string value = 1;
  total_size += 1 *
      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(_impl_.value_.size());
  for (int i = 0, n = _impl_.value_.size(); i < n; i++) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
      _impl_.value_.Get(i));
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData ExpandAttrValue_StringVec::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    ExpandAttrValue_StringVec::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ExpandAttrValue_StringVec::GetClassData() const { return &_class_data_; }


void ExpandAttrValue_StringVec::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<ExpandAttrValue_StringVec*>(&to_msg);
  auto& from = static_cast<const ExpandAttrValue_StringVec&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:serial_v1.ExpandAttrValue.StringVec)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.value_.MergeFrom(from._impl_.value_);
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void ExpandAttrValue_StringVec::CopyFrom(const ExpandAttrValue_StringVec& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:serial_v1.ExpandAttrValue.StringVec)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ExpandAttrValue_StringVec::IsInitialized() const {
  return true;
}

void ExpandAttrValue_StringVec::InternalSwap(ExpandAttrValue_StringVec* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.value_.InternalSwap(&other->_impl_.value_);
}

::PROTOBUF_NAMESPACE_ID::Metadata ExpandAttrValue_StringVec::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv1_2eproto_getter, &descriptor_table_graph_5fproto_5fv1_2eproto_once,
      file_level_metadata_graph_5fproto_5fv1_2eproto[8]);
}

// ===================================================================

class ExpandAttrValue_BytesVec::_Internal {
 public:
};

ExpandAttrValue_BytesVec::ExpandAttrValue_BytesVec(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:serial_v1.ExpandAttrValue.BytesVec)
}
ExpandAttrValue_BytesVec::ExpandAttrValue_BytesVec(const ExpandAttrValue_BytesVec& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  ExpandAttrValue_BytesVec* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.value_){from._impl_.value_}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:serial_v1.ExpandAttrValue.BytesVec)
}

inline void ExpandAttrValue_BytesVec::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.value_){arena}
    , /*decltype(_impl_._cached_size_)*/{}
  };
}

ExpandAttrValue_BytesVec::~ExpandAttrValue_BytesVec() {
  // @@protoc_insertion_point(destructor:serial_v1.ExpandAttrValue.BytesVec)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void ExpandAttrValue_BytesVec::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.value_.~RepeatedPtrField();
}

void ExpandAttrValue_BytesVec::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void ExpandAttrValue_BytesVec::Clear() {
// @@protoc_insertion_point(message_clear_start:serial_v1.ExpandAttrValue.BytesVec)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.value_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* ExpandAttrValue_BytesVec::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated bytes value = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            auto str = _internal_add_value();
            ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* ExpandAttrValue_BytesVec::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:serial_v1.ExpandAttrValue.BytesVec)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated bytes value = 1;
  for (int i = 0, n = this->_internal_value_size(); i < n; i++) {
    const auto& s = this->_internal_value(i);
    target = stream->WriteBytes(1, s, target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:serial_v1.ExpandAttrValue.BytesVec)
  return target;
}

size_t ExpandAttrValue_BytesVec::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:serial_v1.ExpandAttrValue.BytesVec)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated bytes value = 1;
  total_size += 1 *
      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(_impl_.value_.size());
  for (int i = 0, n = _impl_.value_.size(); i < n; i++) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize(
      _impl_.value_.Get(i));
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData ExpandAttrValue_BytesVec::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    ExpandAttrValue_BytesVec::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ExpandAttrValue_BytesVec::GetClassData() const { return &_class_data_; }


void ExpandAttrValue_BytesVec::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<ExpandAttrValue_BytesVec*>(&to_msg);
  auto& from = static_cast<const ExpandAttrValue_BytesVec&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:serial_v1.ExpandAttrValue.BytesVec)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.value_.MergeFrom(from._impl_.value_);
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void ExpandAttrValue_BytesVec::CopyFrom(const ExpandAttrValue_BytesVec& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:serial_v1.ExpandAttrValue.BytesVec)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ExpandAttrValue_BytesVec::IsInitialized() const {
  return true;
}

void ExpandAttrValue_BytesVec::InternalSwap(ExpandAttrValue_BytesVec* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.value_.InternalSwap(&other->_impl_.value_);
}

::PROTOBUF_NAMESPACE_ID::Metadata ExpandAttrValue_BytesVec::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv1_2eproto_getter, &descriptor_table_graph_5fproto_5fv1_2eproto_once,
      file_level_metadata_graph_5fproto_5fv1_2eproto[9]);
}

// ===================================================================

class ExpandAttrValue_KeyBoolPair::_Internal {
 public:
};

ExpandAttrValue_KeyBoolPair::ExpandAttrValue_KeyBoolPair(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:serial_v1.ExpandAttrValue.KeyBoolPair)
}
ExpandAttrValue_KeyBoolPair::ExpandAttrValue_KeyBoolPair(const ExpandAttrValue_KeyBoolPair& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  ExpandAttrValue_KeyBoolPair* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.key_){}
    , decltype(_impl_.value_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.key_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.key_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_key().empty()) {
    _this->_impl_.key_.Set(from._internal_key(), 
      _this->GetArenaForAllocation());
  }
  _this->_impl_.value_ = from._impl_.value_;
  // @@protoc_insertion_point(copy_constructor:serial_v1.ExpandAttrValue.KeyBoolPair)
}

inline void ExpandAttrValue_KeyBoolPair::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.key_){}
    , decltype(_impl_.value_){false}
    , /*decltype(_impl_._cached_size_)*/{}
  };
  _impl_.key_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.key_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

ExpandAttrValue_KeyBoolPair::~ExpandAttrValue_KeyBoolPair() {
  // @@protoc_insertion_point(destructor:serial_v1.ExpandAttrValue.KeyBoolPair)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void ExpandAttrValue_KeyBoolPair::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.key_.Destroy();
}

void ExpandAttrValue_KeyBoolPair::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void ExpandAttrValue_KeyBoolPair::Clear() {
// @@protoc_insertion_point(message_clear_start:serial_v1.ExpandAttrValue.KeyBoolPair)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.key_.ClearToEmpty();
  _impl_.value_ = false;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* ExpandAttrValue_KeyBoolPair::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string key = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_key();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "serial_v1.ExpandAttrValue.KeyBoolPair.key"));
        } else
          goto handle_unusual;
        continue;
      // bool value = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          _impl_.value_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* ExpandAttrValue_KeyBoolPair::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:serial_v1.ExpandAttrValue.KeyBoolPair)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string key = 1;
  if (!this->_internal_key().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_key().data(), static_cast<int>(this->_internal_key().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "serial_v1.ExpandAttrValue.KeyBoolPair.key");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_key(), target);
  }

  // bool value = 2;
  if (this->_internal_value() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(2, this->_internal_value(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:serial_v1.ExpandAttrValue.KeyBoolPair)
  return target;
}

size_t ExpandAttrValue_KeyBoolPair::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:serial_v1.ExpandAttrValue.KeyBoolPair)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string key = 1;
  if (!this->_internal_key().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_key());
  }

  // bool value = 2;
  if (this->_internal_value() != 0) {
    total_size += 1 + 1;
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData ExpandAttrValue_KeyBoolPair::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    ExpandAttrValue_KeyBoolPair::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ExpandAttrValue_KeyBoolPair::GetClassData() const { return &_class_data_; }


void ExpandAttrValue_KeyBoolPair::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<ExpandAttrValue_KeyBoolPair*>(&to_msg);
  auto& from = static_cast<const ExpandAttrValue_KeyBoolPair&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:serial_v1.ExpandAttrValue.KeyBoolPair)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_key().empty()) {
    _this->_internal_set_key(from._internal_key());
  }
  if (from._internal_value() != 0) {
    _this->_internal_set_value(from._internal_value());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void ExpandAttrValue_KeyBoolPair::CopyFrom(const ExpandAttrValue_KeyBoolPair& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:serial_v1.ExpandAttrValue.KeyBoolPair)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ExpandAttrValue_KeyBoolPair::IsInitialized() const {
  return true;
}

void ExpandAttrValue_KeyBoolPair::InternalSwap(ExpandAttrValue_KeyBoolPair* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.key_, lhs_arena,
      &other->_impl_.key_, rhs_arena
  );
  swap(_impl_.value_, other->_impl_.value_);
}

::PROTOBUF_NAMESPACE_ID::Metadata ExpandAttrValue_KeyBoolPair::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv1_2eproto_getter, &descriptor_table_graph_5fproto_5fv1_2eproto_once,
      file_level_metadata_graph_5fproto_5fv1_2eproto[10]);
}

// ===================================================================

class ExpandAttrValue_BoolMap::_Internal {
 public:
};

ExpandAttrValue_BoolMap::ExpandAttrValue_BoolMap(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:serial_v1.ExpandAttrValue.BoolMap)
}
ExpandAttrValue_BoolMap::ExpandAttrValue_BoolMap(const ExpandAttrValue_BoolMap& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  ExpandAttrValue_BoolMap* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.pairs_){from._impl_.pairs_}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:serial_v1.ExpandAttrValue.BoolMap)
}

inline void ExpandAttrValue_BoolMap::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.pairs_){arena}
    , /*decltype(_impl_._cached_size_)*/{}
  };
}

ExpandAttrValue_BoolMap::~ExpandAttrValue_BoolMap() {
  // @@protoc_insertion_point(destructor:serial_v1.ExpandAttrValue.BoolMap)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void ExpandAttrValue_BoolMap::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.pairs_.~RepeatedPtrField();
}

void ExpandAttrValue_BoolMap::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void ExpandAttrValue_BoolMap::Clear() {
// @@protoc_insertion_point(message_clear_start:serial_v1.ExpandAttrValue.BoolMap)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.pairs_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* ExpandAttrValue_BoolMap::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated .serial_v1.ExpandAttrValue.KeyBoolPair pairs = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_pairs(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* ExpandAttrValue_BoolMap::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:serial_v1.ExpandAttrValue.BoolMap)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .serial_v1.ExpandAttrValue.KeyBoolPair pairs = 1;
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_pairs_size()); i < n; i++) {
    const auto& repfield = this->_internal_pairs(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(1, repfield, repfield.GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:serial_v1.ExpandAttrValue.BoolMap)
  return target;
}

size_t ExpandAttrValue_BoolMap::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:serial_v1.ExpandAttrValue.BoolMap)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .serial_v1.ExpandAttrValue.KeyBoolPair pairs = 1;
  total_size += 1UL * this->_internal_pairs_size();
  for (const auto& msg : this->_impl_.pairs_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData ExpandAttrValue_BoolMap::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    ExpandAttrValue_BoolMap::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ExpandAttrValue_BoolMap::GetClassData() const { return &_class_data_; }


void ExpandAttrValue_BoolMap::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<ExpandAttrValue_BoolMap*>(&to_msg);
  auto& from = static_cast<const ExpandAttrValue_BoolMap&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:serial_v1.ExpandAttrValue.BoolMap)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.pairs_.MergeFrom(from._impl_.pairs_);
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void ExpandAttrValue_BoolMap::CopyFrom(const ExpandAttrValue_BoolMap& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:serial_v1.ExpandAttrValue.BoolMap)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ExpandAttrValue_BoolMap::IsInitialized() const {
  return true;
}

void ExpandAttrValue_BoolMap::InternalSwap(ExpandAttrValue_BoolMap* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.pairs_.InternalSwap(&other->_impl_.pairs_);
}

::PROTOBUF_NAMESPACE_ID::Metadata ExpandAttrValue_BoolMap::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv1_2eproto_getter, &descriptor_table_graph_5fproto_5fv1_2eproto_once,
      file_level_metadata_graph_5fproto_5fv1_2eproto[11]);
}

// ===================================================================

class ExpandAttrValue_KeyInt32Pair::_Internal {
 public:
};

ExpandAttrValue_KeyInt32Pair::ExpandAttrValue_KeyInt32Pair(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:serial_v1.ExpandAttrValue.KeyInt32Pair)
}
ExpandAttrValue_KeyInt32Pair::ExpandAttrValue_KeyInt32Pair(const ExpandAttrValue_KeyInt32Pair& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  ExpandAttrValue_KeyInt32Pair* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.key_){}
    , decltype(_impl_.value_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.key_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.key_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_key().empty()) {
    _this->_impl_.key_.Set(from._internal_key(), 
      _this->GetArenaForAllocation());
  }
  _this->_impl_.value_ = from._impl_.value_;
  // @@protoc_insertion_point(copy_constructor:serial_v1.ExpandAttrValue.KeyInt32Pair)
}

inline void ExpandAttrValue_KeyInt32Pair::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.key_){}
    , decltype(_impl_.value_){0}
    , /*decltype(_impl_._cached_size_)*/{}
  };
  _impl_.key_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.key_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

ExpandAttrValue_KeyInt32Pair::~ExpandAttrValue_KeyInt32Pair() {
  // @@protoc_insertion_point(destructor:serial_v1.ExpandAttrValue.KeyInt32Pair)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void ExpandAttrValue_KeyInt32Pair::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.key_.Destroy();
}

void ExpandAttrValue_KeyInt32Pair::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void ExpandAttrValue_KeyInt32Pair::Clear() {
// @@protoc_insertion_point(message_clear_start:serial_v1.ExpandAttrValue.KeyInt32Pair)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.key_.ClearToEmpty();
  _impl_.value_ = 0;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* ExpandAttrValue_KeyInt32Pair::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string key = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_key();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "serial_v1.ExpandAttrValue.KeyInt32Pair.key"));
        } else
          goto handle_unusual;
        continue;
      // sint32 value = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          _impl_.value_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarintZigZag32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* ExpandAttrValue_KeyInt32Pair::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:serial_v1.ExpandAttrValue.KeyInt32Pair)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string key = 1;
  if (!this->_internal_key().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_key().data(), static_cast<int>(this->_internal_key().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "serial_v1.ExpandAttrValue.KeyInt32Pair.key");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_key(), target);
  }

  // sint32 value = 2;
  if (this->_internal_value() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteSInt32ToArray(2, this->_internal_value(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:serial_v1.ExpandAttrValue.KeyInt32Pair)
  return target;
}

size_t ExpandAttrValue_KeyInt32Pair::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:serial_v1.ExpandAttrValue.KeyInt32Pair)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string key = 1;
  if (!this->_internal_key().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_key());
  }

  // sint32 value = 2;
  if (this->_internal_value() != 0) {
    total_size += ::_pbi::WireFormatLite::SInt32SizePlusOne(this->_internal_value());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData ExpandAttrValue_KeyInt32Pair::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    ExpandAttrValue_KeyInt32Pair::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ExpandAttrValue_KeyInt32Pair::GetClassData() const { return &_class_data_; }


void ExpandAttrValue_KeyInt32Pair::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<ExpandAttrValue_KeyInt32Pair*>(&to_msg);
  auto& from = static_cast<const ExpandAttrValue_KeyInt32Pair&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:serial_v1.ExpandAttrValue.KeyInt32Pair)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_key().empty()) {
    _this->_internal_set_key(from._internal_key());
  }
  if (from._internal_value() != 0) {
    _this->_internal_set_value(from._internal_value());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void ExpandAttrValue_KeyInt32Pair::CopyFrom(const ExpandAttrValue_KeyInt32Pair& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:serial_v1.ExpandAttrValue.KeyInt32Pair)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ExpandAttrValue_KeyInt32Pair::IsInitialized() const {
  return true;
}

void ExpandAttrValue_KeyInt32Pair::InternalSwap(ExpandAttrValue_KeyInt32Pair* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.key_, lhs_arena,
      &other->_impl_.key_, rhs_arena
  );
  swap(_impl_.value_, other->_impl_.value_);
}

::PROTOBUF_NAMESPACE_ID::Metadata ExpandAttrValue_KeyInt32Pair::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv1_2eproto_getter, &descriptor_table_graph_5fproto_5fv1_2eproto_once,
      file_level_metadata_graph_5fproto_5fv1_2eproto[12]);
}

// ===================================================================

class ExpandAttrValue_Int32Map::_Internal {
 public:
};

ExpandAttrValue_Int32Map::ExpandAttrValue_Int32Map(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:serial_v1.ExpandAttrValue.Int32Map)
}
ExpandAttrValue_Int32Map::ExpandAttrValue_Int32Map(const ExpandAttrValue_Int32Map& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  ExpandAttrValue_Int32Map* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.pairs_){from._impl_.pairs_}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:serial_v1.ExpandAttrValue.Int32Map)
}

inline void ExpandAttrValue_Int32Map::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.pairs_){arena}
    , /*decltype(_impl_._cached_size_)*/{}
  };
}

ExpandAttrValue_Int32Map::~ExpandAttrValue_Int32Map() {
  // @@protoc_insertion_point(destructor:serial_v1.ExpandAttrValue.Int32Map)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void ExpandAttrValue_Int32Map::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.pairs_.~RepeatedPtrField();
}

void ExpandAttrValue_Int32Map::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void ExpandAttrValue_Int32Map::Clear() {
// @@protoc_insertion_point(message_clear_start:serial_v1.ExpandAttrValue.Int32Map)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.pairs_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* ExpandAttrValue_Int32Map::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated .serial_v1.ExpandAttrValue.KeyInt32Pair pairs = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_pairs(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* ExpandAttrValue_Int32Map::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:serial_v1.ExpandAttrValue.Int32Map)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .serial_v1.ExpandAttrValue.KeyInt32Pair pairs = 1;
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_pairs_size()); i < n; i++) {
    const auto& repfield = this->_internal_pairs(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(1, repfield, repfield.GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:serial_v1.ExpandAttrValue.Int32Map)
  return target;
}

size_t ExpandAttrValue_Int32Map::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:serial_v1.ExpandAttrValue.Int32Map)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .serial_v1.ExpandAttrValue.KeyInt32Pair pairs = 1;
  total_size += 1UL * this->_internal_pairs_size();
  for (const auto& msg : this->_impl_.pairs_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData ExpandAttrValue_Int32Map::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    ExpandAttrValue_Int32Map::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ExpandAttrValue_Int32Map::GetClassData() const { return &_class_data_; }


void ExpandAttrValue_Int32Map::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<ExpandAttrValue_Int32Map*>(&to_msg);
  auto& from = static_cast<const ExpandAttrValue_Int32Map&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:serial_v1.ExpandAttrValue.Int32Map)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.pairs_.MergeFrom(from._impl_.pairs_);
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void ExpandAttrValue_Int32Map::CopyFrom(const ExpandAttrValue_Int32Map& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:serial_v1.ExpandAttrValue.Int32Map)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ExpandAttrValue_Int32Map::IsInitialized() const {
  return true;
}

void ExpandAttrValue_Int32Map::InternalSwap(ExpandAttrValue_Int32Map* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.pairs_.InternalSwap(&other->_impl_.pairs_);
}

::PROTOBUF_NAMESPACE_ID::Metadata ExpandAttrValue_Int32Map::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv1_2eproto_getter, &descriptor_table_graph_5fproto_5fv1_2eproto_once,
      file_level_metadata_graph_5fproto_5fv1_2eproto[13]);
}

// ===================================================================

class ExpandAttrValue_KeyInt64Pair::_Internal {
 public:
};

ExpandAttrValue_KeyInt64Pair::ExpandAttrValue_KeyInt64Pair(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:serial_v1.ExpandAttrValue.KeyInt64Pair)
}
ExpandAttrValue_KeyInt64Pair::ExpandAttrValue_KeyInt64Pair(const ExpandAttrValue_KeyInt64Pair& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  ExpandAttrValue_KeyInt64Pair* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.key_){}
    , decltype(_impl_.value_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.key_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.key_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_key().empty()) {
    _this->_impl_.key_.Set(from._internal_key(), 
      _this->GetArenaForAllocation());
  }
  _this->_impl_.value_ = from._impl_.value_;
  // @@protoc_insertion_point(copy_constructor:serial_v1.ExpandAttrValue.KeyInt64Pair)
}

inline void ExpandAttrValue_KeyInt64Pair::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.key_){}
    , decltype(_impl_.value_){int64_t{0}}
    , /*decltype(_impl_._cached_size_)*/{}
  };
  _impl_.key_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.key_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

ExpandAttrValue_KeyInt64Pair::~ExpandAttrValue_KeyInt64Pair() {
  // @@protoc_insertion_point(destructor:serial_v1.ExpandAttrValue.KeyInt64Pair)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void ExpandAttrValue_KeyInt64Pair::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.key_.Destroy();
}

void ExpandAttrValue_KeyInt64Pair::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void ExpandAttrValue_KeyInt64Pair::Clear() {
// @@protoc_insertion_point(message_clear_start:serial_v1.ExpandAttrValue.KeyInt64Pair)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.key_.ClearToEmpty();
  _impl_.value_ = int64_t{0};
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* ExpandAttrValue_KeyInt64Pair::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string key = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_key();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "serial_v1.ExpandAttrValue.KeyInt64Pair.key"));
        } else
          goto handle_unusual;
        continue;
      // sint64 value = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          _impl_.value_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarintZigZag64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* ExpandAttrValue_KeyInt64Pair::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:serial_v1.ExpandAttrValue.KeyInt64Pair)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string key = 1;
  if (!this->_internal_key().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_key().data(), static_cast<int>(this->_internal_key().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "serial_v1.ExpandAttrValue.KeyInt64Pair.key");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_key(), target);
  }

  // sint64 value = 2;
  if (this->_internal_value() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteSInt64ToArray(2, this->_internal_value(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:serial_v1.ExpandAttrValue.KeyInt64Pair)
  return target;
}

size_t ExpandAttrValue_KeyInt64Pair::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:serial_v1.ExpandAttrValue.KeyInt64Pair)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string key = 1;
  if (!this->_internal_key().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_key());
  }

  // sint64 value = 2;
  if (this->_internal_value() != 0) {
    total_size += ::_pbi::WireFormatLite::SInt64SizePlusOne(this->_internal_value());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData ExpandAttrValue_KeyInt64Pair::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    ExpandAttrValue_KeyInt64Pair::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ExpandAttrValue_KeyInt64Pair::GetClassData() const { return &_class_data_; }


void ExpandAttrValue_KeyInt64Pair::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<ExpandAttrValue_KeyInt64Pair*>(&to_msg);
  auto& from = static_cast<const ExpandAttrValue_KeyInt64Pair&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:serial_v1.ExpandAttrValue.KeyInt64Pair)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_key().empty()) {
    _this->_internal_set_key(from._internal_key());
  }
  if (from._internal_value() != 0) {
    _this->_internal_set_value(from._internal_value());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void ExpandAttrValue_KeyInt64Pair::CopyFrom(const ExpandAttrValue_KeyInt64Pair& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:serial_v1.ExpandAttrValue.KeyInt64Pair)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ExpandAttrValue_KeyInt64Pair::IsInitialized() const {
  return true;
}

void ExpandAttrValue_KeyInt64Pair::InternalSwap(ExpandAttrValue_KeyInt64Pair* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.key_, lhs_arena,
      &other->_impl_.key_, rhs_arena
  );
  swap(_impl_.value_, other->_impl_.value_);
}

::PROTOBUF_NAMESPACE_ID::Metadata ExpandAttrValue_KeyInt64Pair::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv1_2eproto_getter, &descriptor_table_graph_5fproto_5fv1_2eproto_once,
      file_level_metadata_graph_5fproto_5fv1_2eproto[14]);
}

// ===================================================================

class ExpandAttrValue_Int64Map::_Internal {
 public:
};

ExpandAttrValue_Int64Map::ExpandAttrValue_Int64Map(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:serial_v1.ExpandAttrValue.Int64Map)
}
ExpandAttrValue_Int64Map::ExpandAttrValue_Int64Map(const ExpandAttrValue_Int64Map& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  ExpandAttrValue_Int64Map* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.pairs_){from._impl_.pairs_}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:serial_v1.ExpandAttrValue.Int64Map)
}

inline void ExpandAttrValue_Int64Map::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.pairs_){arena}
    , /*decltype(_impl_._cached_size_)*/{}
  };
}

ExpandAttrValue_Int64Map::~ExpandAttrValue_Int64Map() {
  // @@protoc_insertion_point(destructor:serial_v1.ExpandAttrValue.Int64Map)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void ExpandAttrValue_Int64Map::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.pairs_.~RepeatedPtrField();
}

void ExpandAttrValue_Int64Map::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void ExpandAttrValue_Int64Map::Clear() {
// @@protoc_insertion_point(message_clear_start:serial_v1.ExpandAttrValue.Int64Map)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.pairs_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* ExpandAttrValue_Int64Map::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated .serial_v1.ExpandAttrValue.KeyInt64Pair pairs = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_pairs(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* ExpandAttrValue_Int64Map::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:serial_v1.ExpandAttrValue.Int64Map)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .serial_v1.ExpandAttrValue.KeyInt64Pair pairs = 1;
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_pairs_size()); i < n; i++) {
    const auto& repfield = this->_internal_pairs(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(1, repfield, repfield.GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:serial_v1.ExpandAttrValue.Int64Map)
  return target;
}

size_t ExpandAttrValue_Int64Map::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:serial_v1.ExpandAttrValue.Int64Map)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .serial_v1.ExpandAttrValue.KeyInt64Pair pairs = 1;
  total_size += 1UL * this->_internal_pairs_size();
  for (const auto& msg : this->_impl_.pairs_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData ExpandAttrValue_Int64Map::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    ExpandAttrValue_Int64Map::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ExpandAttrValue_Int64Map::GetClassData() const { return &_class_data_; }


void ExpandAttrValue_Int64Map::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<ExpandAttrValue_Int64Map*>(&to_msg);
  auto& from = static_cast<const ExpandAttrValue_Int64Map&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:serial_v1.ExpandAttrValue.Int64Map)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.pairs_.MergeFrom(from._impl_.pairs_);
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void ExpandAttrValue_Int64Map::CopyFrom(const ExpandAttrValue_Int64Map& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:serial_v1.ExpandAttrValue.Int64Map)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ExpandAttrValue_Int64Map::IsInitialized() const {
  return true;
}

void ExpandAttrValue_Int64Map::InternalSwap(ExpandAttrValue_Int64Map* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.pairs_.InternalSwap(&other->_impl_.pairs_);
}

::PROTOBUF_NAMESPACE_ID::Metadata ExpandAttrValue_Int64Map::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv1_2eproto_getter, &descriptor_table_graph_5fproto_5fv1_2eproto_once,
      file_level_metadata_graph_5fproto_5fv1_2eproto[15]);
}

// ===================================================================

class ExpandAttrValue_KeyFloatPair::_Internal {
 public:
};

ExpandAttrValue_KeyFloatPair::ExpandAttrValue_KeyFloatPair(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:serial_v1.ExpandAttrValue.KeyFloatPair)
}
ExpandAttrValue_KeyFloatPair::ExpandAttrValue_KeyFloatPair(const ExpandAttrValue_KeyFloatPair& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  ExpandAttrValue_KeyFloatPair* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.key_){}
    , decltype(_impl_.value_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.key_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.key_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_key().empty()) {
    _this->_impl_.key_.Set(from._internal_key(), 
      _this->GetArenaForAllocation());
  }
  _this->_impl_.value_ = from._impl_.value_;
  // @@protoc_insertion_point(copy_constructor:serial_v1.ExpandAttrValue.KeyFloatPair)
}

inline void ExpandAttrValue_KeyFloatPair::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.key_){}
    , decltype(_impl_.value_){0}
    , /*decltype(_impl_._cached_size_)*/{}
  };
  _impl_.key_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.key_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

ExpandAttrValue_KeyFloatPair::~ExpandAttrValue_KeyFloatPair() {
  // @@protoc_insertion_point(destructor:serial_v1.ExpandAttrValue.KeyFloatPair)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void ExpandAttrValue_KeyFloatPair::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.key_.Destroy();
}

void ExpandAttrValue_KeyFloatPair::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void ExpandAttrValue_KeyFloatPair::Clear() {
// @@protoc_insertion_point(message_clear_start:serial_v1.ExpandAttrValue.KeyFloatPair)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.key_.ClearToEmpty();
  _impl_.value_ = 0;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* ExpandAttrValue_KeyFloatPair::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string key = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_key();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "serial_v1.ExpandAttrValue.KeyFloatPair.key"));
        } else
          goto handle_unusual;
        continue;
      // float value = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 21)) {
          _impl_.value_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* ExpandAttrValue_KeyFloatPair::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:serial_v1.ExpandAttrValue.KeyFloatPair)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string key = 1;
  if (!this->_internal_key().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_key().data(), static_cast<int>(this->_internal_key().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "serial_v1.ExpandAttrValue.KeyFloatPair.key");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_key(), target);
  }

  // float value = 2;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_value = this->_internal_value();
  uint32_t raw_value;
  memcpy(&raw_value, &tmp_value, sizeof(tmp_value));
  if (raw_value != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(2, this->_internal_value(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:serial_v1.ExpandAttrValue.KeyFloatPair)
  return target;
}

size_t ExpandAttrValue_KeyFloatPair::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:serial_v1.ExpandAttrValue.KeyFloatPair)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string key = 1;
  if (!this->_internal_key().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_key());
  }

  // float value = 2;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_value = this->_internal_value();
  uint32_t raw_value;
  memcpy(&raw_value, &tmp_value, sizeof(tmp_value));
  if (raw_value != 0) {
    total_size += 1 + 4;
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData ExpandAttrValue_KeyFloatPair::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    ExpandAttrValue_KeyFloatPair::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ExpandAttrValue_KeyFloatPair::GetClassData() const { return &_class_data_; }


void ExpandAttrValue_KeyFloatPair::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<ExpandAttrValue_KeyFloatPair*>(&to_msg);
  auto& from = static_cast<const ExpandAttrValue_KeyFloatPair&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:serial_v1.ExpandAttrValue.KeyFloatPair)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_key().empty()) {
    _this->_internal_set_key(from._internal_key());
  }
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_value = from._internal_value();
  uint32_t raw_value;
  memcpy(&raw_value, &tmp_value, sizeof(tmp_value));
  if (raw_value != 0) {
    _this->_internal_set_value(from._internal_value());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void ExpandAttrValue_KeyFloatPair::CopyFrom(const ExpandAttrValue_KeyFloatPair& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:serial_v1.ExpandAttrValue.KeyFloatPair)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ExpandAttrValue_KeyFloatPair::IsInitialized() const {
  return true;
}

void ExpandAttrValue_KeyFloatPair::InternalSwap(ExpandAttrValue_KeyFloatPair* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.key_, lhs_arena,
      &other->_impl_.key_, rhs_arena
  );
  swap(_impl_.value_, other->_impl_.value_);
}

::PROTOBUF_NAMESPACE_ID::Metadata ExpandAttrValue_KeyFloatPair::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv1_2eproto_getter, &descriptor_table_graph_5fproto_5fv1_2eproto_once,
      file_level_metadata_graph_5fproto_5fv1_2eproto[16]);
}

// ===================================================================

class ExpandAttrValue_FloatMap::_Internal {
 public:
};

ExpandAttrValue_FloatMap::ExpandAttrValue_FloatMap(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:serial_v1.ExpandAttrValue.FloatMap)
}
ExpandAttrValue_FloatMap::ExpandAttrValue_FloatMap(const ExpandAttrValue_FloatMap& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  ExpandAttrValue_FloatMap* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.pairs_){from._impl_.pairs_}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:serial_v1.ExpandAttrValue.FloatMap)
}

inline void ExpandAttrValue_FloatMap::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.pairs_){arena}
    , /*decltype(_impl_._cached_size_)*/{}
  };
}

ExpandAttrValue_FloatMap::~ExpandAttrValue_FloatMap() {
  // @@protoc_insertion_point(destructor:serial_v1.ExpandAttrValue.FloatMap)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void ExpandAttrValue_FloatMap::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.pairs_.~RepeatedPtrField();
}

void ExpandAttrValue_FloatMap::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void ExpandAttrValue_FloatMap::Clear() {
// @@protoc_insertion_point(message_clear_start:serial_v1.ExpandAttrValue.FloatMap)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.pairs_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* ExpandAttrValue_FloatMap::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated .serial_v1.ExpandAttrValue.KeyFloatPair pairs = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_pairs(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* ExpandAttrValue_FloatMap::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:serial_v1.ExpandAttrValue.FloatMap)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .serial_v1.ExpandAttrValue.KeyFloatPair pairs = 1;
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_pairs_size()); i < n; i++) {
    const auto& repfield = this->_internal_pairs(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(1, repfield, repfield.GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:serial_v1.ExpandAttrValue.FloatMap)
  return target;
}

size_t ExpandAttrValue_FloatMap::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:serial_v1.ExpandAttrValue.FloatMap)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .serial_v1.ExpandAttrValue.KeyFloatPair pairs = 1;
  total_size += 1UL * this->_internal_pairs_size();
  for (const auto& msg : this->_impl_.pairs_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData ExpandAttrValue_FloatMap::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    ExpandAttrValue_FloatMap::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ExpandAttrValue_FloatMap::GetClassData() const { return &_class_data_; }


void ExpandAttrValue_FloatMap::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<ExpandAttrValue_FloatMap*>(&to_msg);
  auto& from = static_cast<const ExpandAttrValue_FloatMap&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:serial_v1.ExpandAttrValue.FloatMap)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.pairs_.MergeFrom(from._impl_.pairs_);
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void ExpandAttrValue_FloatMap::CopyFrom(const ExpandAttrValue_FloatMap& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:serial_v1.ExpandAttrValue.FloatMap)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ExpandAttrValue_FloatMap::IsInitialized() const {
  return true;
}

void ExpandAttrValue_FloatMap::InternalSwap(ExpandAttrValue_FloatMap* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.pairs_.InternalSwap(&other->_impl_.pairs_);
}

::PROTOBUF_NAMESPACE_ID::Metadata ExpandAttrValue_FloatMap::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv1_2eproto_getter, &descriptor_table_graph_5fproto_5fv1_2eproto_once,
      file_level_metadata_graph_5fproto_5fv1_2eproto[17]);
}

// ===================================================================

class ExpandAttrValue_KeyStringPair::_Internal {
 public:
};

ExpandAttrValue_KeyStringPair::ExpandAttrValue_KeyStringPair(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:serial_v1.ExpandAttrValue.KeyStringPair)
}
ExpandAttrValue_KeyStringPair::ExpandAttrValue_KeyStringPair(const ExpandAttrValue_KeyStringPair& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  ExpandAttrValue_KeyStringPair* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.key_){}
    , decltype(_impl_.value_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.key_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.key_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_key().empty()) {
    _this->_impl_.key_.Set(from._internal_key(), 
      _this->GetArenaForAllocation());
  }
  _impl_.value_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.value_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_value().empty()) {
    _this->_impl_.value_.Set(from._internal_value(), 
      _this->GetArenaForAllocation());
  }
  // @@protoc_insertion_point(copy_constructor:serial_v1.ExpandAttrValue.KeyStringPair)
}

inline void ExpandAttrValue_KeyStringPair::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.key_){}
    , decltype(_impl_.value_){}
    , /*decltype(_impl_._cached_size_)*/{}
  };
  _impl_.key_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.key_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.value_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.value_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

ExpandAttrValue_KeyStringPair::~ExpandAttrValue_KeyStringPair() {
  // @@protoc_insertion_point(destructor:serial_v1.ExpandAttrValue.KeyStringPair)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void ExpandAttrValue_KeyStringPair::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.key_.Destroy();
  _impl_.value_.Destroy();
}

void ExpandAttrValue_KeyStringPair::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void ExpandAttrValue_KeyStringPair::Clear() {
// @@protoc_insertion_point(message_clear_start:serial_v1.ExpandAttrValue.KeyStringPair)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.key_.ClearToEmpty();
  _impl_.value_.ClearToEmpty();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* ExpandAttrValue_KeyStringPair::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string key = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_key();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "serial_v1.ExpandAttrValue.KeyStringPair.key"));
        } else
          goto handle_unusual;
        continue;
      // string value = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_value();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "serial_v1.ExpandAttrValue.KeyStringPair.value"));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* ExpandAttrValue_KeyStringPair::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:serial_v1.ExpandAttrValue.KeyStringPair)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string key = 1;
  if (!this->_internal_key().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_key().data(), static_cast<int>(this->_internal_key().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "serial_v1.ExpandAttrValue.KeyStringPair.key");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_key(), target);
  }

  // string value = 2;
  if (!this->_internal_value().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_value().data(), static_cast<int>(this->_internal_value().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "serial_v1.ExpandAttrValue.KeyStringPair.value");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_value(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:serial_v1.ExpandAttrValue.KeyStringPair)
  return target;
}

size_t ExpandAttrValue_KeyStringPair::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:serial_v1.ExpandAttrValue.KeyStringPair)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string key = 1;
  if (!this->_internal_key().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_key());
  }

  // string value = 2;
  if (!this->_internal_value().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_value());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData ExpandAttrValue_KeyStringPair::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    ExpandAttrValue_KeyStringPair::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ExpandAttrValue_KeyStringPair::GetClassData() const { return &_class_data_; }


void ExpandAttrValue_KeyStringPair::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<ExpandAttrValue_KeyStringPair*>(&to_msg);
  auto& from = static_cast<const ExpandAttrValue_KeyStringPair&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:serial_v1.ExpandAttrValue.KeyStringPair)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_key().empty()) {
    _this->_internal_set_key(from._internal_key());
  }
  if (!from._internal_value().empty()) {
    _this->_internal_set_value(from._internal_value());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void ExpandAttrValue_KeyStringPair::CopyFrom(const ExpandAttrValue_KeyStringPair& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:serial_v1.ExpandAttrValue.KeyStringPair)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ExpandAttrValue_KeyStringPair::IsInitialized() const {
  return true;
}

void ExpandAttrValue_KeyStringPair::InternalSwap(ExpandAttrValue_KeyStringPair* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.key_, lhs_arena,
      &other->_impl_.key_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.value_, lhs_arena,
      &other->_impl_.value_, rhs_arena
  );
}

::PROTOBUF_NAMESPACE_ID::Metadata ExpandAttrValue_KeyStringPair::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv1_2eproto_getter, &descriptor_table_graph_5fproto_5fv1_2eproto_once,
      file_level_metadata_graph_5fproto_5fv1_2eproto[18]);
}

// ===================================================================

class ExpandAttrValue_StringMap::_Internal {
 public:
};

ExpandAttrValue_StringMap::ExpandAttrValue_StringMap(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:serial_v1.ExpandAttrValue.StringMap)
}
ExpandAttrValue_StringMap::ExpandAttrValue_StringMap(const ExpandAttrValue_StringMap& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  ExpandAttrValue_StringMap* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.pairs_){from._impl_.pairs_}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:serial_v1.ExpandAttrValue.StringMap)
}

inline void ExpandAttrValue_StringMap::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.pairs_){arena}
    , /*decltype(_impl_._cached_size_)*/{}
  };
}

ExpandAttrValue_StringMap::~ExpandAttrValue_StringMap() {
  // @@protoc_insertion_point(destructor:serial_v1.ExpandAttrValue.StringMap)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void ExpandAttrValue_StringMap::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.pairs_.~RepeatedPtrField();
}

void ExpandAttrValue_StringMap::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void ExpandAttrValue_StringMap::Clear() {
// @@protoc_insertion_point(message_clear_start:serial_v1.ExpandAttrValue.StringMap)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.pairs_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* ExpandAttrValue_StringMap::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated .serial_v1.ExpandAttrValue.KeyStringPair pairs = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_pairs(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* ExpandAttrValue_StringMap::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:serial_v1.ExpandAttrValue.StringMap)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .serial_v1.ExpandAttrValue.KeyStringPair pairs = 1;
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_pairs_size()); i < n; i++) {
    const auto& repfield = this->_internal_pairs(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(1, repfield, repfield.GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:serial_v1.ExpandAttrValue.StringMap)
  return target;
}

size_t ExpandAttrValue_StringMap::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:serial_v1.ExpandAttrValue.StringMap)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .serial_v1.ExpandAttrValue.KeyStringPair pairs = 1;
  total_size += 1UL * this->_internal_pairs_size();
  for (const auto& msg : this->_impl_.pairs_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData ExpandAttrValue_StringMap::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    ExpandAttrValue_StringMap::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ExpandAttrValue_StringMap::GetClassData() const { return &_class_data_; }


void ExpandAttrValue_StringMap::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<ExpandAttrValue_StringMap*>(&to_msg);
  auto& from = static_cast<const ExpandAttrValue_StringMap&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:serial_v1.ExpandAttrValue.StringMap)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.pairs_.MergeFrom(from._impl_.pairs_);
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void ExpandAttrValue_StringMap::CopyFrom(const ExpandAttrValue_StringMap& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:serial_v1.ExpandAttrValue.StringMap)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ExpandAttrValue_StringMap::IsInitialized() const {
  return true;
}

void ExpandAttrValue_StringMap::InternalSwap(ExpandAttrValue_StringMap* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.pairs_.InternalSwap(&other->_impl_.pairs_);
}

::PROTOBUF_NAMESPACE_ID::Metadata ExpandAttrValue_StringMap::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv1_2eproto_getter, &descriptor_table_graph_5fproto_5fv1_2eproto_once,
      file_level_metadata_graph_5fproto_5fv1_2eproto[19]);
}

// ===================================================================

class ExpandAttrValue_KeyBytesPair::_Internal {
 public:
};

ExpandAttrValue_KeyBytesPair::ExpandAttrValue_KeyBytesPair(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:serial_v1.ExpandAttrValue.KeyBytesPair)
}
ExpandAttrValue_KeyBytesPair::ExpandAttrValue_KeyBytesPair(const ExpandAttrValue_KeyBytesPair& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  ExpandAttrValue_KeyBytesPair* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.key_){}
    , decltype(_impl_.value_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.key_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.key_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_key().empty()) {
    _this->_impl_.key_.Set(from._internal_key(), 
      _this->GetArenaForAllocation());
  }
  _impl_.value_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.value_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_value().empty()) {
    _this->_impl_.value_.Set(from._internal_value(), 
      _this->GetArenaForAllocation());
  }
  // @@protoc_insertion_point(copy_constructor:serial_v1.ExpandAttrValue.KeyBytesPair)
}

inline void ExpandAttrValue_KeyBytesPair::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.key_){}
    , decltype(_impl_.value_){}
    , /*decltype(_impl_._cached_size_)*/{}
  };
  _impl_.key_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.key_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.value_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.value_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

ExpandAttrValue_KeyBytesPair::~ExpandAttrValue_KeyBytesPair() {
  // @@protoc_insertion_point(destructor:serial_v1.ExpandAttrValue.KeyBytesPair)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void ExpandAttrValue_KeyBytesPair::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.key_.Destroy();
  _impl_.value_.Destroy();
}

void ExpandAttrValue_KeyBytesPair::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void ExpandAttrValue_KeyBytesPair::Clear() {
// @@protoc_insertion_point(message_clear_start:serial_v1.ExpandAttrValue.KeyBytesPair)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.key_.ClearToEmpty();
  _impl_.value_.ClearToEmpty();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* ExpandAttrValue_KeyBytesPair::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string key = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_key();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "serial_v1.ExpandAttrValue.KeyBytesPair.key"));
        } else
          goto handle_unusual;
        continue;
      // bytes value = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_value();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* ExpandAttrValue_KeyBytesPair::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:serial_v1.ExpandAttrValue.KeyBytesPair)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string key = 1;
  if (!this->_internal_key().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_key().data(), static_cast<int>(this->_internal_key().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "serial_v1.ExpandAttrValue.KeyBytesPair.key");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_key(), target);
  }

  // bytes value = 2;
  if (!this->_internal_value().empty()) {
    target = stream->WriteBytesMaybeAliased(
        2, this->_internal_value(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:serial_v1.ExpandAttrValue.KeyBytesPair)
  return target;
}

size_t ExpandAttrValue_KeyBytesPair::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:serial_v1.ExpandAttrValue.KeyBytesPair)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string key = 1;
  if (!this->_internal_key().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_key());
  }

  // bytes value = 2;
  if (!this->_internal_value().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize(
        this->_internal_value());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData ExpandAttrValue_KeyBytesPair::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    ExpandAttrValue_KeyBytesPair::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ExpandAttrValue_KeyBytesPair::GetClassData() const { return &_class_data_; }


void ExpandAttrValue_KeyBytesPair::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<ExpandAttrValue_KeyBytesPair*>(&to_msg);
  auto& from = static_cast<const ExpandAttrValue_KeyBytesPair&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:serial_v1.ExpandAttrValue.KeyBytesPair)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_key().empty()) {
    _this->_internal_set_key(from._internal_key());
  }
  if (!from._internal_value().empty()) {
    _this->_internal_set_value(from._internal_value());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void ExpandAttrValue_KeyBytesPair::CopyFrom(const ExpandAttrValue_KeyBytesPair& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:serial_v1.ExpandAttrValue.KeyBytesPair)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ExpandAttrValue_KeyBytesPair::IsInitialized() const {
  return true;
}

void ExpandAttrValue_KeyBytesPair::InternalSwap(ExpandAttrValue_KeyBytesPair* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.key_, lhs_arena,
      &other->_impl_.key_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.value_, lhs_arena,
      &other->_impl_.value_, rhs_arena
  );
}

::PROTOBUF_NAMESPACE_ID::Metadata ExpandAttrValue_KeyBytesPair::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv1_2eproto_getter, &descriptor_table_graph_5fproto_5fv1_2eproto_once,
      file_level_metadata_graph_5fproto_5fv1_2eproto[20]);
}

// ===================================================================

class ExpandAttrValue_BytesMap::_Internal {
 public:
};

ExpandAttrValue_BytesMap::ExpandAttrValue_BytesMap(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:serial_v1.ExpandAttrValue.BytesMap)
}
ExpandAttrValue_BytesMap::ExpandAttrValue_BytesMap(const ExpandAttrValue_BytesMap& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  ExpandAttrValue_BytesMap* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.pairs_){from._impl_.pairs_}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:serial_v1.ExpandAttrValue.BytesMap)
}

inline void ExpandAttrValue_BytesMap::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.pairs_){arena}
    , /*decltype(_impl_._cached_size_)*/{}
  };
}

ExpandAttrValue_BytesMap::~ExpandAttrValue_BytesMap() {
  // @@protoc_insertion_point(destructor:serial_v1.ExpandAttrValue.BytesMap)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void ExpandAttrValue_BytesMap::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.pairs_.~RepeatedPtrField();
}

void ExpandAttrValue_BytesMap::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void ExpandAttrValue_BytesMap::Clear() {
// @@protoc_insertion_point(message_clear_start:serial_v1.ExpandAttrValue.BytesMap)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.pairs_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* ExpandAttrValue_BytesMap::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated .serial_v1.ExpandAttrValue.KeyBytesPair pairs = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_pairs(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* ExpandAttrValue_BytesMap::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:serial_v1.ExpandAttrValue.BytesMap)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .serial_v1.ExpandAttrValue.KeyBytesPair pairs = 1;
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_pairs_size()); i < n; i++) {
    const auto& repfield = this->_internal_pairs(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(1, repfield, repfield.GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:serial_v1.ExpandAttrValue.BytesMap)
  return target;
}

size_t ExpandAttrValue_BytesMap::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:serial_v1.ExpandAttrValue.BytesMap)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .serial_v1.ExpandAttrValue.KeyBytesPair pairs = 1;
  total_size += 1UL * this->_internal_pairs_size();
  for (const auto& msg : this->_impl_.pairs_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData ExpandAttrValue_BytesMap::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    ExpandAttrValue_BytesMap::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ExpandAttrValue_BytesMap::GetClassData() const { return &_class_data_; }


void ExpandAttrValue_BytesMap::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<ExpandAttrValue_BytesMap*>(&to_msg);
  auto& from = static_cast<const ExpandAttrValue_BytesMap&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:serial_v1.ExpandAttrValue.BytesMap)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.pairs_.MergeFrom(from._impl_.pairs_);
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void ExpandAttrValue_BytesMap::CopyFrom(const ExpandAttrValue_BytesMap& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:serial_v1.ExpandAttrValue.BytesMap)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ExpandAttrValue_BytesMap::IsInitialized() const {
  return true;
}

void ExpandAttrValue_BytesMap::InternalSwap(ExpandAttrValue_BytesMap* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.pairs_.InternalSwap(&other->_impl_.pairs_);
}

::PROTOBUF_NAMESPACE_ID::Metadata ExpandAttrValue_BytesMap::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv1_2eproto_getter, &descriptor_table_graph_5fproto_5fv1_2eproto_once,
      file_level_metadata_graph_5fproto_5fv1_2eproto[21]);
}

// ===================================================================

class ExpandAttrValue::_Internal {
 public:
  static const ::serial_v1::ExpandAttrValue_BoolVec& bool_vec(const ExpandAttrValue* msg);
  static const ::serial_v1::ExpandAttrValue_Int32Vec& int32_vec(const ExpandAttrValue* msg);
  static const ::serial_v1::ExpandAttrValue_Int64Vec& int64_vec(const ExpandAttrValue* msg);
  static const ::serial_v1::ExpandAttrValue_FloatVec& float_vec(const ExpandAttrValue* msg);
  static const ::serial_v1::ExpandAttrValue_StringVec& string_vec(const ExpandAttrValue* msg);
  static const ::serial_v1::ExpandAttrValue_BoolMap& bool_map(const ExpandAttrValue* msg);
  static const ::serial_v1::ExpandAttrValue_Int32Map& int32_map(const ExpandAttrValue* msg);
  static const ::serial_v1::ExpandAttrValue_Int64Map& int64_map(const ExpandAttrValue* msg);
  static const ::serial_v1::ExpandAttrValue_FloatMap& float_map(const ExpandAttrValue* msg);
  static const ::serial_v1::ExpandAttrValue_StringMap& string_map(const ExpandAttrValue* msg);
  static const ::serial_v1::ExpandAttrValue_BytesMap& bytes_map(const ExpandAttrValue* msg);
};

const ::serial_v1::ExpandAttrValue_BoolVec&
ExpandAttrValue::_Internal::bool_vec(const ExpandAttrValue* msg) {
  return *msg->_impl_.attr_value_.bool_vec_;
}
const ::serial_v1::ExpandAttrValue_Int32Vec&
ExpandAttrValue::_Internal::int32_vec(const ExpandAttrValue* msg) {
  return *msg->_impl_.attr_value_.int32_vec_;
}
const ::serial_v1::ExpandAttrValue_Int64Vec&
ExpandAttrValue::_Internal::int64_vec(const ExpandAttrValue* msg) {
  return *msg->_impl_.attr_value_.int64_vec_;
}
const ::serial_v1::ExpandAttrValue_FloatVec&
ExpandAttrValue::_Internal::float_vec(const ExpandAttrValue* msg) {
  return *msg->_impl_.attr_value_.float_vec_;
}
const ::serial_v1::ExpandAttrValue_StringVec&
ExpandAttrValue::_Internal::string_vec(const ExpandAttrValue* msg) {
  return *msg->_impl_.attr_value_.string_vec_;
}
const ::serial_v1::ExpandAttrValue_BoolMap&
ExpandAttrValue::_Internal::bool_map(const ExpandAttrValue* msg) {
  return *msg->_impl_.attr_value_.bool_map_;
}
const ::serial_v1::ExpandAttrValue_Int32Map&
ExpandAttrValue::_Internal::int32_map(const ExpandAttrValue* msg) {
  return *msg->_impl_.attr_value_.int32_map_;
}
const ::serial_v1::ExpandAttrValue_Int64Map&
ExpandAttrValue::_Internal::int64_map(const ExpandAttrValue* msg) {
  return *msg->_impl_.attr_value_.int64_map_;
}
const ::serial_v1::ExpandAttrValue_FloatMap&
ExpandAttrValue::_Internal::float_map(const ExpandAttrValue* msg) {
  return *msg->_impl_.attr_value_.float_map_;
}
const ::serial_v1::ExpandAttrValue_StringMap&
ExpandAttrValue::_Internal::string_map(const ExpandAttrValue* msg) {
  return *msg->_impl_.attr_value_.string_map_;
}
const ::serial_v1::ExpandAttrValue_BytesMap&
ExpandAttrValue::_Internal::bytes_map(const ExpandAttrValue* msg) {
  return *msg->_impl_.attr_value_.bytes_map_;
}
void ExpandAttrValue::set_allocated_bool_vec(::serial_v1::ExpandAttrValue_BoolVec* bool_vec) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_attr_value();
  if (bool_vec) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(bool_vec);
    if (message_arena != submessage_arena) {
      bool_vec = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, bool_vec, submessage_arena);
    }
    set_has_bool_vec();
    _impl_.attr_value_.bool_vec_ = bool_vec;
  }
  // @@protoc_insertion_point(field_set_allocated:serial_v1.ExpandAttrValue.bool_vec)
}
void ExpandAttrValue::set_allocated_int32_vec(::serial_v1::ExpandAttrValue_Int32Vec* int32_vec) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_attr_value();
  if (int32_vec) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(int32_vec);
    if (message_arena != submessage_arena) {
      int32_vec = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, int32_vec, submessage_arena);
    }
    set_has_int32_vec();
    _impl_.attr_value_.int32_vec_ = int32_vec;
  }
  // @@protoc_insertion_point(field_set_allocated:serial_v1.ExpandAttrValue.int32_vec)
}
void ExpandAttrValue::set_allocated_int64_vec(::serial_v1::ExpandAttrValue_Int64Vec* int64_vec) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_attr_value();
  if (int64_vec) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(int64_vec);
    if (message_arena != submessage_arena) {
      int64_vec = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, int64_vec, submessage_arena);
    }
    set_has_int64_vec();
    _impl_.attr_value_.int64_vec_ = int64_vec;
  }
  // @@protoc_insertion_point(field_set_allocated:serial_v1.ExpandAttrValue.int64_vec)
}
void ExpandAttrValue::set_allocated_float_vec(::serial_v1::ExpandAttrValue_FloatVec* float_vec) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_attr_value();
  if (float_vec) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(float_vec);
    if (message_arena != submessage_arena) {
      float_vec = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, float_vec, submessage_arena);
    }
    set_has_float_vec();
    _impl_.attr_value_.float_vec_ = float_vec;
  }
  // @@protoc_insertion_point(field_set_allocated:serial_v1.ExpandAttrValue.float_vec)
}
void ExpandAttrValue::set_allocated_string_vec(::serial_v1::ExpandAttrValue_StringVec* string_vec) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_attr_value();
  if (string_vec) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(string_vec);
    if (message_arena != submessage_arena) {
      string_vec = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, string_vec, submessage_arena);
    }
    set_has_string_vec();
    _impl_.attr_value_.string_vec_ = string_vec;
  }
  // @@protoc_insertion_point(field_set_allocated:serial_v1.ExpandAttrValue.string_vec)
}
void ExpandAttrValue::set_allocated_bool_map(::serial_v1::ExpandAttrValue_BoolMap* bool_map) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_attr_value();
  if (bool_map) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(bool_map);
    if (message_arena != submessage_arena) {
      bool_map = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, bool_map, submessage_arena);
    }
    set_has_bool_map();
    _impl_.attr_value_.bool_map_ = bool_map;
  }
  // @@protoc_insertion_point(field_set_allocated:serial_v1.ExpandAttrValue.bool_map)
}
void ExpandAttrValue::set_allocated_int32_map(::serial_v1::ExpandAttrValue_Int32Map* int32_map) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_attr_value();
  if (int32_map) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(int32_map);
    if (message_arena != submessage_arena) {
      int32_map = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, int32_map, submessage_arena);
    }
    set_has_int32_map();
    _impl_.attr_value_.int32_map_ = int32_map;
  }
  // @@protoc_insertion_point(field_set_allocated:serial_v1.ExpandAttrValue.int32_map)
}
void ExpandAttrValue::set_allocated_int64_map(::serial_v1::ExpandAttrValue_Int64Map* int64_map) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_attr_value();
  if (int64_map) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(int64_map);
    if (message_arena != submessage_arena) {
      int64_map = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, int64_map, submessage_arena);
    }
    set_has_int64_map();
    _impl_.attr_value_.int64_map_ = int64_map;
  }
  // @@protoc_insertion_point(field_set_allocated:serial_v1.ExpandAttrValue.int64_map)
}
void ExpandAttrValue::set_allocated_float_map(::serial_v1::ExpandAttrValue_FloatMap* float_map) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_attr_value();
  if (float_map) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(float_map);
    if (message_arena != submessage_arena) {
      float_map = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, float_map, submessage_arena);
    }
    set_has_float_map();
    _impl_.attr_value_.float_map_ = float_map;
  }
  // @@protoc_insertion_point(field_set_allocated:serial_v1.ExpandAttrValue.float_map)
}
void ExpandAttrValue::set_allocated_string_map(::serial_v1::ExpandAttrValue_StringMap* string_map) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_attr_value();
  if (string_map) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(string_map);
    if (message_arena != submessage_arena) {
      string_map = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, string_map, submessage_arena);
    }
    set_has_string_map();
    _impl_.attr_value_.string_map_ = string_map;
  }
  // @@protoc_insertion_point(field_set_allocated:serial_v1.ExpandAttrValue.string_map)
}
void ExpandAttrValue::set_allocated_bytes_map(::serial_v1::ExpandAttrValue_BytesMap* bytes_map) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  clear_attr_value();
  if (bytes_map) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
      ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(bytes_map);
    if (message_arena != submessage_arena) {
      bytes_map = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, bytes_map, submessage_arena);
    }
    set_has_bytes_map();
    _impl_.attr_value_.bytes_map_ = bytes_map;
  }
  // @@protoc_insertion_point(field_set_allocated:serial_v1.ExpandAttrValue.bytes_map)
}
ExpandAttrValue::ExpandAttrValue(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:serial_v1.ExpandAttrValue)
}
ExpandAttrValue::ExpandAttrValue(const ExpandAttrValue& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  ExpandAttrValue* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.attr_name_){}
    , decltype(_impl_.attr_value_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , /*decltype(_impl_._oneof_case_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.attr_name_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.attr_name_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_attr_name().empty()) {
    _this->_impl_.attr_name_.Set(from._internal_attr_name(), 
      _this->GetArenaForAllocation());
  }
  clear_has_attr_value();
  switch (from.attr_value_case()) {
    case kBoolValue: {
      _this->_internal_set_bool_value(from._internal_bool_value());
      break;
    }
    case kInt32Value: {
      _this->_internal_set_int32_value(from._internal_int32_value());
      break;
    }
    case kInt64Value: {
      _this->_internal_set_int64_value(from._internal_int64_value());
      break;
    }
    case kFloatValue: {
      _this->_internal_set_float_value(from._internal_float_value());
      break;
    }
    case kStringValue: {
      _this->_internal_set_string_value(from._internal_string_value());
      break;
    }
    case kBytesValue: {
      _this->_internal_set_bytes_value(from._internal_bytes_value());
      break;
    }
    case kBoolVec: {
      _this->_internal_mutable_bool_vec()->::serial_v1::ExpandAttrValue_BoolVec::MergeFrom(
          from._internal_bool_vec());
      break;
    }
    case kInt32Vec: {
      _this->_internal_mutable_int32_vec()->::serial_v1::ExpandAttrValue_Int32Vec::MergeFrom(
          from._internal_int32_vec());
      break;
    }
    case kInt64Vec: {
      _this->_internal_mutable_int64_vec()->::serial_v1::ExpandAttrValue_Int64Vec::MergeFrom(
          from._internal_int64_vec());
      break;
    }
    case kFloatVec: {
      _this->_internal_mutable_float_vec()->::serial_v1::ExpandAttrValue_FloatVec::MergeFrom(
          from._internal_float_vec());
      break;
    }
    case kStringVec: {
      _this->_internal_mutable_string_vec()->::serial_v1::ExpandAttrValue_StringVec::MergeFrom(
          from._internal_string_vec());
      break;
    }
    case kBoolMap: {
      _this->_internal_mutable_bool_map()->::serial_v1::ExpandAttrValue_BoolMap::MergeFrom(
          from._internal_bool_map());
      break;
    }
    case kInt32Map: {
      _this->_internal_mutable_int32_map()->::serial_v1::ExpandAttrValue_Int32Map::MergeFrom(
          from._internal_int32_map());
      break;
    }
    case kInt64Map: {
      _this->_internal_mutable_int64_map()->::serial_v1::ExpandAttrValue_Int64Map::MergeFrom(
          from._internal_int64_map());
      break;
    }
    case kFloatMap: {
      _this->_internal_mutable_float_map()->::serial_v1::ExpandAttrValue_FloatMap::MergeFrom(
          from._internal_float_map());
      break;
    }
    case kStringMap: {
      _this->_internal_mutable_string_map()->::serial_v1::ExpandAttrValue_StringMap::MergeFrom(
          from._internal_string_map());
      break;
    }
    case kBytesMap: {
      _this->_internal_mutable_bytes_map()->::serial_v1::ExpandAttrValue_BytesMap::MergeFrom(
          from._internal_bytes_map());
      break;
    }
    case ATTR_VALUE_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:serial_v1.ExpandAttrValue)
}

inline void ExpandAttrValue::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.attr_name_){}
    , decltype(_impl_.attr_value_){}
    , /*decltype(_impl_._cached_size_)*/{}
    , /*decltype(_impl_._oneof_case_)*/{}
  };
  _impl_.attr_name_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.attr_name_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  clear_has_attr_value();
}

ExpandAttrValue::~ExpandAttrValue() {
  // @@protoc_insertion_point(destructor:serial_v1.ExpandAttrValue)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void ExpandAttrValue::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.attr_name_.Destroy();
  if (has_attr_value()) {
    clear_attr_value();
  }
}

void ExpandAttrValue::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void ExpandAttrValue::clear_attr_value() {
// @@protoc_insertion_point(one_of_clear_start:serial_v1.ExpandAttrValue)
  switch (attr_value_case()) {
    case kBoolValue: {
      // No need to clear
      break;
    }
    case kInt32Value: {
      // No need to clear
      break;
    }
    case kInt64Value: {
      // No need to clear
      break;
    }
    case kFloatValue: {
      // No need to clear
      break;
    }
    case kStringValue: {
      _impl_.attr_value_.string_value_.Destroy();
      break;
    }
    case kBytesValue: {
      _impl_.attr_value_.bytes_value_.Destroy();
      break;
    }
    case kBoolVec: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.attr_value_.bool_vec_;
      }
      break;
    }
    case kInt32Vec: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.attr_value_.int32_vec_;
      }
      break;
    }
    case kInt64Vec: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.attr_value_.int64_vec_;
      }
      break;
    }
    case kFloatVec: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.attr_value_.float_vec_;
      }
      break;
    }
    case kStringVec: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.attr_value_.string_vec_;
      }
      break;
    }
    case kBoolMap: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.attr_value_.bool_map_;
      }
      break;
    }
    case kInt32Map: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.attr_value_.int32_map_;
      }
      break;
    }
    case kInt64Map: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.attr_value_.int64_map_;
      }
      break;
    }
    case kFloatMap: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.attr_value_.float_map_;
      }
      break;
    }
    case kStringMap: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.attr_value_.string_map_;
      }
      break;
    }
    case kBytesMap: {
      if (GetArenaForAllocation() == nullptr) {
        delete _impl_.attr_value_.bytes_map_;
      }
      break;
    }
    case ATTR_VALUE_NOT_SET: {
      break;
    }
  }
  _impl_._oneof_case_[0] = ATTR_VALUE_NOT_SET;
}


void ExpandAttrValue::Clear() {
// @@protoc_insertion_point(message_clear_start:serial_v1.ExpandAttrValue)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.attr_name_.ClearToEmpty();
  clear_attr_value();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* ExpandAttrValue::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // bool bool_value = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          _internal_set_bool_value(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // sint32 int32_value = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          _internal_set_int32_value(::PROTOBUF_NAMESPACE_ID::internal::ReadVarintZigZag32(&ptr));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // sint64 int64_value = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          _internal_set_int64_value(::PROTOBUF_NAMESPACE_ID::internal::ReadVarintZigZag64(&ptr));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // float float_value = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 37)) {
          _internal_set_float_value(::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr));
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // string string_value = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
          auto str = _internal_mutable_string_value();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "serial_v1.ExpandAttrValue.string_value"));
        } else
          goto handle_unusual;
        continue;
      // bytes bytes_value = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 50)) {
          auto str = _internal_mutable_bytes_value();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .serial_v1.ExpandAttrValue.BoolVec bool_vec = 11;
      case 11:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 90)) {
          ptr = ctx->ParseMessage(_internal_mutable_bool_vec(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .serial_v1.ExpandAttrValue.Int32Vec int32_vec = 12;
      case 12:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 98)) {
          ptr = ctx->ParseMessage(_internal_mutable_int32_vec(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .serial_v1.ExpandAttrValue.Int64Vec int64_vec = 13;
      case 13:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 106)) {
          ptr = ctx->ParseMessage(_internal_mutable_int64_vec(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .serial_v1.ExpandAttrValue.FloatVec float_vec = 14;
      case 14:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 114)) {
          ptr = ctx->ParseMessage(_internal_mutable_float_vec(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .serial_v1.ExpandAttrValue.StringVec string_vec = 15;
      case 15:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 122)) {
          ptr = ctx->ParseMessage(_internal_mutable_string_vec(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .serial_v1.ExpandAttrValue.BoolMap bool_map = 21;
      case 21:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 170)) {
          ptr = ctx->ParseMessage(_internal_mutable_bool_map(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .serial_v1.ExpandAttrValue.Int32Map int32_map = 22;
      case 22:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 178)) {
          ptr = ctx->ParseMessage(_internal_mutable_int32_map(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .serial_v1.ExpandAttrValue.Int64Map int64_map = 23;
      case 23:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 186)) {
          ptr = ctx->ParseMessage(_internal_mutable_int64_map(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .serial_v1.ExpandAttrValue.FloatMap float_map = 24;
      case 24:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 194)) {
          ptr = ctx->ParseMessage(_internal_mutable_float_map(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .serial_v1.ExpandAttrValue.StringMap string_map = 25;
      case 25:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 202)) {
          ptr = ctx->ParseMessage(_internal_mutable_string_map(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .serial_v1.ExpandAttrValue.BytesMap bytes_map = 26;
      case 26:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 210)) {
          ptr = ctx->ParseMessage(_internal_mutable_bytes_map(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string attr_name = 100;
      case 100:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          auto str = _internal_mutable_attr_name();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "serial_v1.ExpandAttrValue.attr_name"));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* ExpandAttrValue::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:serial_v1.ExpandAttrValue)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // bool bool_value = 1;
  if (_internal_has_bool_value()) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(1, this->_internal_bool_value(), target);
  }

  // sint32 int32_value = 2;
  if (_internal_has_int32_value()) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteSInt32ToArray(2, this->_internal_int32_value(), target);
  }

  // sint64 int64_value = 3;
  if (_internal_has_int64_value()) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteSInt64ToArray(3, this->_internal_int64_value(), target);
  }

  // float float_value = 4;
  if (_internal_has_float_value()) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(4, this->_internal_float_value(), target);
  }

  // string string_value = 5;
  if (_internal_has_string_value()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_string_value().data(), static_cast<int>(this->_internal_string_value().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "serial_v1.ExpandAttrValue.string_value");
    target = stream->WriteStringMaybeAliased(
        5, this->_internal_string_value(), target);
  }

  // bytes bytes_value = 6;
  if (_internal_has_bytes_value()) {
    target = stream->WriteBytesMaybeAliased(
        6, this->_internal_bytes_value(), target);
  }

  // .serial_v1.ExpandAttrValue.BoolVec bool_vec = 11;
  if (_internal_has_bool_vec()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(11, _Internal::bool_vec(this),
        _Internal::bool_vec(this).GetCachedSize(), target, stream);
  }

  // .serial_v1.ExpandAttrValue.Int32Vec int32_vec = 12;
  if (_internal_has_int32_vec()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(12, _Internal::int32_vec(this),
        _Internal::int32_vec(this).GetCachedSize(), target, stream);
  }

  // .serial_v1.ExpandAttrValue.Int64Vec int64_vec = 13;
  if (_internal_has_int64_vec()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(13, _Internal::int64_vec(this),
        _Internal::int64_vec(this).GetCachedSize(), target, stream);
  }

  // .serial_v1.ExpandAttrValue.FloatVec float_vec = 14;
  if (_internal_has_float_vec()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(14, _Internal::float_vec(this),
        _Internal::float_vec(this).GetCachedSize(), target, stream);
  }

  // .serial_v1.ExpandAttrValue.StringVec string_vec = 15;
  if (_internal_has_string_vec()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(15, _Internal::string_vec(this),
        _Internal::string_vec(this).GetCachedSize(), target, stream);
  }

  // .serial_v1.ExpandAttrValue.BoolMap bool_map = 21;
  if (_internal_has_bool_map()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(21, _Internal::bool_map(this),
        _Internal::bool_map(this).GetCachedSize(), target, stream);
  }

  // .serial_v1.ExpandAttrValue.Int32Map int32_map = 22;
  if (_internal_has_int32_map()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(22, _Internal::int32_map(this),
        _Internal::int32_map(this).GetCachedSize(), target, stream);
  }

  // .serial_v1.ExpandAttrValue.Int64Map int64_map = 23;
  if (_internal_has_int64_map()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(23, _Internal::int64_map(this),
        _Internal::int64_map(this).GetCachedSize(), target, stream);
  }

  // .serial_v1.ExpandAttrValue.FloatMap float_map = 24;
  if (_internal_has_float_map()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(24, _Internal::float_map(this),
        _Internal::float_map(this).GetCachedSize(), target, stream);
  }

  // .serial_v1.ExpandAttrValue.StringMap string_map = 25;
  if (_internal_has_string_map()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(25, _Internal::string_map(this),
        _Internal::string_map(this).GetCachedSize(), target, stream);
  }

  // .serial_v1.ExpandAttrValue.BytesMap bytes_map = 26;
  if (_internal_has_bytes_map()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(26, _Internal::bytes_map(this),
        _Internal::bytes_map(this).GetCachedSize(), target, stream);
  }

  // string attr_name = 100;
  if (!this->_internal_attr_name().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_attr_name().data(), static_cast<int>(this->_internal_attr_name().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "serial_v1.ExpandAttrValue.attr_name");
    target = stream->WriteStringMaybeAliased(
        100, this->_internal_attr_name(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:serial_v1.ExpandAttrValue)
  return target;
}

size_t ExpandAttrValue::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:serial_v1.ExpandAttrValue)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string attr_name = 100;
  if (!this->_internal_attr_name().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_attr_name());
  }

  switch (attr_value_case()) {
    // bool bool_value = 1;
    case kBoolValue: {
      total_size += 1 + 1;
      break;
    }
    // sint32 int32_value = 2;
    case kInt32Value: {
      total_size += ::_pbi::WireFormatLite::SInt32SizePlusOne(this->_internal_int32_value());
      break;
    }
    // sint64 int64_value = 3;
    case kInt64Value: {
      total_size += ::_pbi::WireFormatLite::SInt64SizePlusOne(this->_internal_int64_value());
      break;
    }
    // float float_value = 4;
    case kFloatValue: {
      total_size += 1 + 4;
      break;
    }
    // string string_value = 5;
    case kStringValue: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
          this->_internal_string_value());
      break;
    }
    // bytes bytes_value = 6;
    case kBytesValue: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize(
          this->_internal_bytes_value());
      break;
    }
    // .serial_v1.ExpandAttrValue.BoolVec bool_vec = 11;
    case kBoolVec: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.attr_value_.bool_vec_);
      break;
    }
    // .serial_v1.ExpandAttrValue.Int32Vec int32_vec = 12;
    case kInt32Vec: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.attr_value_.int32_vec_);
      break;
    }
    // .serial_v1.ExpandAttrValue.Int64Vec int64_vec = 13;
    case kInt64Vec: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.attr_value_.int64_vec_);
      break;
    }
    // .serial_v1.ExpandAttrValue.FloatVec float_vec = 14;
    case kFloatVec: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.attr_value_.float_vec_);
      break;
    }
    // .serial_v1.ExpandAttrValue.StringVec string_vec = 15;
    case kStringVec: {
      total_size += 1 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.attr_value_.string_vec_);
      break;
    }
    // .serial_v1.ExpandAttrValue.BoolMap bool_map = 21;
    case kBoolMap: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.attr_value_.bool_map_);
      break;
    }
    // .serial_v1.ExpandAttrValue.Int32Map int32_map = 22;
    case kInt32Map: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.attr_value_.int32_map_);
      break;
    }
    // .serial_v1.ExpandAttrValue.Int64Map int64_map = 23;
    case kInt64Map: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.attr_value_.int64_map_);
      break;
    }
    // .serial_v1.ExpandAttrValue.FloatMap float_map = 24;
    case kFloatMap: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.attr_value_.float_map_);
      break;
    }
    // .serial_v1.ExpandAttrValue.StringMap string_map = 25;
    case kStringMap: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.attr_value_.string_map_);
      break;
    }
    // .serial_v1.ExpandAttrValue.BytesMap bytes_map = 26;
    case kBytesMap: {
      total_size += 2 +
        ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
          *_impl_.attr_value_.bytes_map_);
      break;
    }
    case ATTR_VALUE_NOT_SET: {
      break;
    }
  }
  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData ExpandAttrValue::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    ExpandAttrValue::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ExpandAttrValue::GetClassData() const { return &_class_data_; }


void ExpandAttrValue::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<ExpandAttrValue*>(&to_msg);
  auto& from = static_cast<const ExpandAttrValue&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:serial_v1.ExpandAttrValue)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_attr_name().empty()) {
    _this->_internal_set_attr_name(from._internal_attr_name());
  }
  switch (from.attr_value_case()) {
    case kBoolValue: {
      _this->_internal_set_bool_value(from._internal_bool_value());
      break;
    }
    case kInt32Value: {
      _this->_internal_set_int32_value(from._internal_int32_value());
      break;
    }
    case kInt64Value: {
      _this->_internal_set_int64_value(from._internal_int64_value());
      break;
    }
    case kFloatValue: {
      _this->_internal_set_float_value(from._internal_float_value());
      break;
    }
    case kStringValue: {
      _this->_internal_set_string_value(from._internal_string_value());
      break;
    }
    case kBytesValue: {
      _this->_internal_set_bytes_value(from._internal_bytes_value());
      break;
    }
    case kBoolVec: {
      _this->_internal_mutable_bool_vec()->::serial_v1::ExpandAttrValue_BoolVec::MergeFrom(
          from._internal_bool_vec());
      break;
    }
    case kInt32Vec: {
      _this->_internal_mutable_int32_vec()->::serial_v1::ExpandAttrValue_Int32Vec::MergeFrom(
          from._internal_int32_vec());
      break;
    }
    case kInt64Vec: {
      _this->_internal_mutable_int64_vec()->::serial_v1::ExpandAttrValue_Int64Vec::MergeFrom(
          from._internal_int64_vec());
      break;
    }
    case kFloatVec: {
      _this->_internal_mutable_float_vec()->::serial_v1::ExpandAttrValue_FloatVec::MergeFrom(
          from._internal_float_vec());
      break;
    }
    case kStringVec: {
      _this->_internal_mutable_string_vec()->::serial_v1::ExpandAttrValue_StringVec::MergeFrom(
          from._internal_string_vec());
      break;
    }
    case kBoolMap: {
      _this->_internal_mutable_bool_map()->::serial_v1::ExpandAttrValue_BoolMap::MergeFrom(
          from._internal_bool_map());
      break;
    }
    case kInt32Map: {
      _this->_internal_mutable_int32_map()->::serial_v1::ExpandAttrValue_Int32Map::MergeFrom(
          from._internal_int32_map());
      break;
    }
    case kInt64Map: {
      _this->_internal_mutable_int64_map()->::serial_v1::ExpandAttrValue_Int64Map::MergeFrom(
          from._internal_int64_map());
      break;
    }
    case kFloatMap: {
      _this->_internal_mutable_float_map()->::serial_v1::ExpandAttrValue_FloatMap::MergeFrom(
          from._internal_float_map());
      break;
    }
    case kStringMap: {
      _this->_internal_mutable_string_map()->::serial_v1::ExpandAttrValue_StringMap::MergeFrom(
          from._internal_string_map());
      break;
    }
    case kBytesMap: {
      _this->_internal_mutable_bytes_map()->::serial_v1::ExpandAttrValue_BytesMap::MergeFrom(
          from._internal_bytes_map());
      break;
    }
    case ATTR_VALUE_NOT_SET: {
      break;
    }
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void ExpandAttrValue::CopyFrom(const ExpandAttrValue& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:serial_v1.ExpandAttrValue)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool ExpandAttrValue::IsInitialized() const {
  return true;
}

void ExpandAttrValue::InternalSwap(ExpandAttrValue* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.attr_name_, lhs_arena,
      &other->_impl_.attr_name_, rhs_arena
  );
  swap(_impl_.attr_value_, other->_impl_.attr_value_);
  swap(_impl_._oneof_case_[0], other->_impl_._oneof_case_[0]);
}

::PROTOBUF_NAMESPACE_ID::Metadata ExpandAttrValue::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv1_2eproto_getter, &descriptor_table_graph_5fproto_5fv1_2eproto_once,
      file_level_metadata_graph_5fproto_5fv1_2eproto[22]);
}

// ===================================================================

class OneKindOP::_Internal {
 public:
};

OneKindOP::OneKindOP(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:serial_v1.OneKindOP)
}
OneKindOP::OneKindOP(const OneKindOP& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  OneKindOP* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.op_name_){from._impl_.op_name_}
    , decltype(_impl_.op_type_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.op_type_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.op_type_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_op_type().empty()) {
    _this->_impl_.op_type_.Set(from._internal_op_type(), 
      _this->GetArenaForAllocation());
  }
  // @@protoc_insertion_point(copy_constructor:serial_v1.OneKindOP)
}

inline void OneKindOP::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.op_name_){arena}
    , decltype(_impl_.op_type_){}
    , /*decltype(_impl_._cached_size_)*/{}
  };
  _impl_.op_type_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.op_type_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

OneKindOP::~OneKindOP() {
  // @@protoc_insertion_point(destructor:serial_v1.OneKindOP)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void OneKindOP::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.op_name_.~RepeatedPtrField();
  _impl_.op_type_.Destroy();
}

void OneKindOP::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void OneKindOP::Clear() {
// @@protoc_insertion_point(message_clear_start:serial_v1.OneKindOP)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.op_name_.Clear();
  _impl_.op_type_.ClearToEmpty();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* OneKindOP::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string op_type = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_op_type();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "serial_v1.OneKindOP.op_type"));
        } else
          goto handle_unusual;
        continue;
      // repeated string op_name = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          ptr -= 1;
          do {
            ptr += 1;
            auto str = _internal_add_op_name();
            ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
            CHK_(ptr);
            CHK_(::_pbi::VerifyUTF8(str, "serial_v1.OneKindOP.op_name"));
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* OneKindOP::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:serial_v1.OneKindOP)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string op_type = 1;
  if (!this->_internal_op_type().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_op_type().data(), static_cast<int>(this->_internal_op_type().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "serial_v1.OneKindOP.op_type");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_op_type(), target);
  }

  // repeated string op_name = 2;
  for (int i = 0, n = this->_internal_op_name_size(); i < n; i++) {
    const auto& s = this->_internal_op_name(i);
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      s.data(), static_cast<int>(s.length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "serial_v1.OneKindOP.op_name");
    target = stream->WriteString(2, s, target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:serial_v1.OneKindOP)
  return target;
}

size_t OneKindOP::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:serial_v1.OneKindOP)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated string op_name = 2;
  total_size += 1 *
      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(_impl_.op_name_.size());
  for (int i = 0, n = _impl_.op_name_.size(); i < n; i++) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
      _impl_.op_name_.Get(i));
  }

  // string op_type = 1;
  if (!this->_internal_op_type().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_op_type());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData OneKindOP::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    OneKindOP::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*OneKindOP::GetClassData() const { return &_class_data_; }


void OneKindOP::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<OneKindOP*>(&to_msg);
  auto& from = static_cast<const OneKindOP&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:serial_v1.OneKindOP)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.op_name_.MergeFrom(from._impl_.op_name_);
  if (!from._internal_op_type().empty()) {
    _this->_internal_set_op_type(from._internal_op_type());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void OneKindOP::CopyFrom(const OneKindOP& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:serial_v1.OneKindOP)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool OneKindOP::IsInitialized() const {
  return true;
}

void OneKindOP::InternalSwap(OneKindOP* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.op_name_.InternalSwap(&other->_impl_.op_name_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.op_type_, lhs_arena,
      &other->_impl_.op_type_, rhs_arena
  );
}

::PROTOBUF_NAMESPACE_ID::Metadata OneKindOP::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv1_2eproto_getter, &descriptor_table_graph_5fproto_5fv1_2eproto_once,
      file_level_metadata_graph_5fproto_5fv1_2eproto[23]);
}

// ===================================================================

class Tensor::_Internal {
 public:
};

Tensor::Tensor(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:serial_v1.Tensor)
}
Tensor::Tensor(const Tensor& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  Tensor* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.tensor_dim_){from._impl_.tensor_dim_}
    , /*decltype(_impl_._tensor_dim_cached_byte_size_)*/{0}
    , decltype(_impl_.tensor_attr_){from._impl_.tensor_attr_}
    , decltype(_impl_.tensor_name_){}
    , decltype(_impl_.data_type_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.tensor_name_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.tensor_name_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_tensor_name().empty()) {
    _this->_impl_.tensor_name_.Set(from._internal_tensor_name(), 
      _this->GetArenaForAllocation());
  }
  _this->_impl_.data_type_ = from._impl_.data_type_;
  // @@protoc_insertion_point(copy_constructor:serial_v1.Tensor)
}

inline void Tensor::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.tensor_dim_){arena}
    , /*decltype(_impl_._tensor_dim_cached_byte_size_)*/{0}
    , decltype(_impl_.tensor_attr_){arena}
    , decltype(_impl_.tensor_name_){}
    , decltype(_impl_.data_type_){0}
    , /*decltype(_impl_._cached_size_)*/{}
  };
  _impl_.tensor_name_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.tensor_name_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

Tensor::~Tensor() {
  // @@protoc_insertion_point(destructor:serial_v1.Tensor)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void Tensor::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.tensor_dim_.~RepeatedField();
  _impl_.tensor_attr_.~RepeatedPtrField();
  _impl_.tensor_name_.Destroy();
}

void Tensor::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void Tensor::Clear() {
// @@protoc_insertion_point(message_clear_start:serial_v1.Tensor)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.tensor_dim_.Clear();
  _impl_.tensor_attr_.Clear();
  _impl_.tensor_name_.ClearToEmpty();
  _impl_.data_type_ = 0;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* Tensor::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string tensor_name = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_tensor_name();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "serial_v1.Tensor.tensor_name"));
        } else
          goto handle_unusual;
        continue;
      // repeated uint32 tensor_dim = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedUInt32Parser(_internal_mutable_tensor_dim(), ptr, ctx);
          CHK_(ptr);
        } else if (static_cast<uint8_t>(tag) == 16) {
          _internal_add_tensor_dim(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 data_type = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 40)) {
          _impl_.data_type_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // repeated .serial_v1.ExpandAttrValue tensor_attr = 10;
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 82)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_tensor_attr(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<82>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* Tensor::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:serial_v1.Tensor)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string tensor_name = 1;
  if (!this->_internal_tensor_name().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_tensor_name().data(), static_cast<int>(this->_internal_tensor_name().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "serial_v1.Tensor.tensor_name");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_tensor_name(), target);
  }

  // repeated uint32 tensor_dim = 2;
  {
    int byte_size = _impl_._tensor_dim_cached_byte_size_.load(std::memory_order_relaxed);
    if (byte_size > 0) {
      target = stream->WriteUInt32Packed(
          2, _internal_tensor_dim(), byte_size, target);
    }
  }

  // int32 data_type = 5;
  if (this->_internal_data_type() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(5, this->_internal_data_type(), target);
  }

  // repeated .serial_v1.ExpandAttrValue tensor_attr = 10;
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_tensor_attr_size()); i < n; i++) {
    const auto& repfield = this->_internal_tensor_attr(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(10, repfield, repfield.GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:serial_v1.Tensor)
  return target;
}

size_t Tensor::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:serial_v1.Tensor)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated uint32 tensor_dim = 2;
  {
    size_t data_size = ::_pbi::WireFormatLite::
      UInt32Size(this->_impl_.tensor_dim_);
    if (data_size > 0) {
      total_size += 1 +
        ::_pbi::WireFormatLite::Int32Size(static_cast<int32_t>(data_size));
    }
    int cached_size = ::_pbi::ToCachedSize(data_size);
    _impl_._tensor_dim_cached_byte_size_.store(cached_size,
                                    std::memory_order_relaxed);
    total_size += data_size;
  }

  // repeated .serial_v1.ExpandAttrValue tensor_attr = 10;
  total_size += 1UL * this->_internal_tensor_attr_size();
  for (const auto& msg : this->_impl_.tensor_attr_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // string tensor_name = 1;
  if (!this->_internal_tensor_name().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_tensor_name());
  }

  // int32 data_type = 5;
  if (this->_internal_data_type() != 0) {
    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_data_type());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData Tensor::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    Tensor::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*Tensor::GetClassData() const { return &_class_data_; }


void Tensor::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<Tensor*>(&to_msg);
  auto& from = static_cast<const Tensor&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:serial_v1.Tensor)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.tensor_dim_.MergeFrom(from._impl_.tensor_dim_);
  _this->_impl_.tensor_attr_.MergeFrom(from._impl_.tensor_attr_);
  if (!from._internal_tensor_name().empty()) {
    _this->_internal_set_tensor_name(from._internal_tensor_name());
  }
  if (from._internal_data_type() != 0) {
    _this->_internal_set_data_type(from._internal_data_type());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void Tensor::CopyFrom(const Tensor& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:serial_v1.Tensor)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Tensor::IsInitialized() const {
  return true;
}

void Tensor::InternalSwap(Tensor* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.tensor_dim_.InternalSwap(&other->_impl_.tensor_dim_);
  _impl_.tensor_attr_.InternalSwap(&other->_impl_.tensor_attr_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.tensor_name_, lhs_arena,
      &other->_impl_.tensor_name_, rhs_arena
  );
  swap(_impl_.data_type_, other->_impl_.data_type_);
}

::PROTOBUF_NAMESPACE_ID::Metadata Tensor::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv1_2eproto_getter, &descriptor_table_graph_5fproto_5fv1_2eproto_once,
      file_level_metadata_graph_5fproto_5fv1_2eproto[24]);
}

// ===================================================================

class OPNode::_Internal {
 public:
  static const ::serial_v1::Tensor& output_tensor(const OPNode* msg);
};

const ::serial_v1::Tensor&
OPNode::_Internal::output_tensor(const OPNode* msg) {
  return *msg->_impl_.output_tensor_;
}
OPNode::OPNode(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:serial_v1.OPNode)
}
OPNode::OPNode(const OPNode& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  OPNode* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.op_attr_){from._impl_.op_attr_}
    , decltype(_impl_.input_op_){from._impl_.input_op_}
    , decltype(_impl_.expand_op_attr_){from._impl_.expand_op_attr_}
    , decltype(_impl_.op_name_){}
    , decltype(_impl_.op_type_){}
    , decltype(_impl_.output_tensor_){nullptr}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.op_name_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.op_name_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_op_name().empty()) {
    _this->_impl_.op_name_.Set(from._internal_op_name(), 
      _this->GetArenaForAllocation());
  }
  _impl_.op_type_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.op_type_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_op_type().empty()) {
    _this->_impl_.op_type_.Set(from._internal_op_type(), 
      _this->GetArenaForAllocation());
  }
  if (from._internal_has_output_tensor()) {
    _this->_impl_.output_tensor_ = new ::serial_v1::Tensor(*from._impl_.output_tensor_);
  }
  // @@protoc_insertion_point(copy_constructor:serial_v1.OPNode)
}

inline void OPNode::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.op_attr_){arena}
    , decltype(_impl_.input_op_){arena}
    , decltype(_impl_.expand_op_attr_){arena}
    , decltype(_impl_.op_name_){}
    , decltype(_impl_.op_type_){}
    , decltype(_impl_.output_tensor_){nullptr}
    , /*decltype(_impl_._cached_size_)*/{}
  };
  _impl_.op_name_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.op_name_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.op_type_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.op_type_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

OPNode::~OPNode() {
  // @@protoc_insertion_point(destructor:serial_v1.OPNode)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void OPNode::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.op_attr_.~RepeatedPtrField();
  _impl_.input_op_.~RepeatedPtrField();
  _impl_.expand_op_attr_.~RepeatedPtrField();
  _impl_.op_name_.Destroy();
  _impl_.op_type_.Destroy();
  if (this != internal_default_instance()) delete _impl_.output_tensor_;
}

void OPNode::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void OPNode::Clear() {
// @@protoc_insertion_point(message_clear_start:serial_v1.OPNode)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.op_attr_.Clear();
  _impl_.input_op_.Clear();
  _impl_.expand_op_attr_.Clear();
  _impl_.op_name_.ClearToEmpty();
  _impl_.op_type_.ClearToEmpty();
  if (GetArenaForAllocation() == nullptr && _impl_.output_tensor_ != nullptr) {
    delete _impl_.output_tensor_;
  }
  _impl_.output_tensor_ = nullptr;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* OPNode::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string op_name = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_op_name();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "serial_v1.OPNode.op_name"));
        } else
          goto handle_unusual;
        continue;
      // string op_type = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_op_type();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "serial_v1.OPNode.op_type"));
        } else
          goto handle_unusual;
        continue;
      // repeated .serial_v1.AttrValue op_attr = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_op_attr(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<26>(ptr));
        } else
          goto handle_unusual;
        continue;
      // repeated .serial_v1.OneKindOP input_op = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_input_op(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<34>(ptr));
        } else
          goto handle_unusual;
        continue;
      // .serial_v1.Tensor output_tensor = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
          ptr = ctx->ParseMessage(_internal_mutable_output_tensor(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // repeated .serial_v1.ExpandAttrValue expand_op_attr = 8;
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 66)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_expand_op_attr(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<66>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* OPNode::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:serial_v1.OPNode)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string op_name = 1;
  if (!this->_internal_op_name().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_op_name().data(), static_cast<int>(this->_internal_op_name().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "serial_v1.OPNode.op_name");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_op_name(), target);
  }

  // string op_type = 2;
  if (!this->_internal_op_type().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_op_type().data(), static_cast<int>(this->_internal_op_type().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "serial_v1.OPNode.op_type");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_op_type(), target);
  }

  // repeated .serial_v1.AttrValue op_attr = 3;
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_op_attr_size()); i < n; i++) {
    const auto& repfield = this->_internal_op_attr(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(3, repfield, repfield.GetCachedSize(), target, stream);
  }

  // repeated .serial_v1.OneKindOP input_op = 4;
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_input_op_size()); i < n; i++) {
    const auto& repfield = this->_internal_input_op(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(4, repfield, repfield.GetCachedSize(), target, stream);
  }

  // .serial_v1.Tensor output_tensor = 5;
  if (this->_internal_has_output_tensor()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(5, _Internal::output_tensor(this),
        _Internal::output_tensor(this).GetCachedSize(), target, stream);
  }

  // repeated .serial_v1.ExpandAttrValue expand_op_attr = 8;
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_expand_op_attr_size()); i < n; i++) {
    const auto& repfield = this->_internal_expand_op_attr(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(8, repfield, repfield.GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:serial_v1.OPNode)
  return target;
}

size_t OPNode::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:serial_v1.OPNode)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .serial_v1.AttrValue op_attr = 3;
  total_size += 1UL * this->_internal_op_attr_size();
  for (const auto& msg : this->_impl_.op_attr_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // repeated .serial_v1.OneKindOP input_op = 4;
  total_size += 1UL * this->_internal_input_op_size();
  for (const auto& msg : this->_impl_.input_op_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // repeated .serial_v1.ExpandAttrValue expand_op_attr = 8;
  total_size += 1UL * this->_internal_expand_op_attr_size();
  for (const auto& msg : this->_impl_.expand_op_attr_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // string op_name = 1;
  if (!this->_internal_op_name().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_op_name());
  }

  // string op_type = 2;
  if (!this->_internal_op_type().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_op_type());
  }

  // .serial_v1.Tensor output_tensor = 5;
  if (this->_internal_has_output_tensor()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *_impl_.output_tensor_);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData OPNode::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    OPNode::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*OPNode::GetClassData() const { return &_class_data_; }


void OPNode::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<OPNode*>(&to_msg);
  auto& from = static_cast<const OPNode&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:serial_v1.OPNode)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.op_attr_.MergeFrom(from._impl_.op_attr_);
  _this->_impl_.input_op_.MergeFrom(from._impl_.input_op_);
  _this->_impl_.expand_op_attr_.MergeFrom(from._impl_.expand_op_attr_);
  if (!from._internal_op_name().empty()) {
    _this->_internal_set_op_name(from._internal_op_name());
  }
  if (!from._internal_op_type().empty()) {
    _this->_internal_set_op_type(from._internal_op_type());
  }
  if (from._internal_has_output_tensor()) {
    _this->_internal_mutable_output_tensor()->::serial_v1::Tensor::MergeFrom(
        from._internal_output_tensor());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void OPNode::CopyFrom(const OPNode& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:serial_v1.OPNode)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool OPNode::IsInitialized() const {
  return true;
}

void OPNode::InternalSwap(OPNode* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.op_attr_.InternalSwap(&other->_impl_.op_attr_);
  _impl_.input_op_.InternalSwap(&other->_impl_.input_op_);
  _impl_.expand_op_attr_.InternalSwap(&other->_impl_.expand_op_attr_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.op_name_, lhs_arena,
      &other->_impl_.op_name_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.op_type_, lhs_arena,
      &other->_impl_.op_type_, rhs_arena
  );
  swap(_impl_.output_tensor_, other->_impl_.output_tensor_);
}

::PROTOBUF_NAMESPACE_ID::Metadata OPNode::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv1_2eproto_getter, &descriptor_table_graph_5fproto_5fv1_2eproto_once,
      file_level_metadata_graph_5fproto_5fv1_2eproto[25]);
}

// ===================================================================

class SubGraph::_Internal {
 public:
};

SubGraph::SubGraph(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:serial_v1.SubGraph)
}
SubGraph::SubGraph(const SubGraph& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  SubGraph* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.op_name_){from._impl_.op_name_}
    , decltype(_impl_.subg_attr_){from._impl_.subg_attr_}
    , decltype(_impl_.subg_child_){from._impl_.subg_child_}
    , decltype(_impl_.subgraph_name_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.subgraph_name_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.subgraph_name_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_subgraph_name().empty()) {
    _this->_impl_.subgraph_name_.Set(from._internal_subgraph_name(), 
      _this->GetArenaForAllocation());
  }
  // @@protoc_insertion_point(copy_constructor:serial_v1.SubGraph)
}

inline void SubGraph::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.op_name_){arena}
    , decltype(_impl_.subg_attr_){arena}
    , decltype(_impl_.subg_child_){arena}
    , decltype(_impl_.subgraph_name_){}
    , /*decltype(_impl_._cached_size_)*/{}
  };
  _impl_.subgraph_name_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.subgraph_name_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

SubGraph::~SubGraph() {
  // @@protoc_insertion_point(destructor:serial_v1.SubGraph)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void SubGraph::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.op_name_.~RepeatedPtrField();
  _impl_.subg_attr_.~RepeatedPtrField();
  _impl_.subg_child_.~RepeatedPtrField();
  _impl_.subgraph_name_.Destroy();
}

void SubGraph::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void SubGraph::Clear() {
// @@protoc_insertion_point(message_clear_start:serial_v1.SubGraph)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.op_name_.Clear();
  _impl_.subg_attr_.Clear();
  _impl_.subg_child_.Clear();
  _impl_.subgraph_name_.ClearToEmpty();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* SubGraph::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string subgraph_name = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_subgraph_name();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "serial_v1.SubGraph.subgraph_name"));
        } else
          goto handle_unusual;
        continue;
      // repeated string op_name = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          ptr -= 1;
          do {
            ptr += 1;
            auto str = _internal_add_op_name();
            ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
            CHK_(ptr);
            CHK_(::_pbi::VerifyUTF8(str, "serial_v1.SubGraph.op_name"));
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<26>(ptr));
        } else
          goto handle_unusual;
        continue;
      // repeated .serial_v1.ExpandAttrValue subg_attr = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_subg_attr(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<42>(ptr));
        } else
          goto handle_unusual;
        continue;
      // repeated .serial_v1.SubGraph subg_child = 10;
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 82)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_subg_child(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<82>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* SubGraph::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:serial_v1.SubGraph)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string subgraph_name = 1;
  if (!this->_internal_subgraph_name().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_subgraph_name().data(), static_cast<int>(this->_internal_subgraph_name().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "serial_v1.SubGraph.subgraph_name");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_subgraph_name(), target);
  }

  // repeated string op_name = 3;
  for (int i = 0, n = this->_internal_op_name_size(); i < n; i++) {
    const auto& s = this->_internal_op_name(i);
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      s.data(), static_cast<int>(s.length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "serial_v1.SubGraph.op_name");
    target = stream->WriteString(3, s, target);
  }

  // repeated .serial_v1.ExpandAttrValue subg_attr = 5;
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_subg_attr_size()); i < n; i++) {
    const auto& repfield = this->_internal_subg_attr(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(5, repfield, repfield.GetCachedSize(), target, stream);
  }

  // repeated .serial_v1.SubGraph subg_child = 10;
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_subg_child_size()); i < n; i++) {
    const auto& repfield = this->_internal_subg_child(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(10, repfield, repfield.GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:serial_v1.SubGraph)
  return target;
}

size_t SubGraph::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:serial_v1.SubGraph)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated string op_name = 3;
  total_size += 1 *
      ::PROTOBUF_NAMESPACE_ID::internal::FromIntSize(_impl_.op_name_.size());
  for (int i = 0, n = _impl_.op_name_.size(); i < n; i++) {
    total_size += ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
      _impl_.op_name_.Get(i));
  }

  // repeated .serial_v1.ExpandAttrValue subg_attr = 5;
  total_size += 1UL * this->_internal_subg_attr_size();
  for (const auto& msg : this->_impl_.subg_attr_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // repeated .serial_v1.SubGraph subg_child = 10;
  total_size += 1UL * this->_internal_subg_child_size();
  for (const auto& msg : this->_impl_.subg_child_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // string subgraph_name = 1;
  if (!this->_internal_subgraph_name().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_subgraph_name());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SubGraph::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    SubGraph::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SubGraph::GetClassData() const { return &_class_data_; }


void SubGraph::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<SubGraph*>(&to_msg);
  auto& from = static_cast<const SubGraph&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:serial_v1.SubGraph)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.op_name_.MergeFrom(from._impl_.op_name_);
  _this->_impl_.subg_attr_.MergeFrom(from._impl_.subg_attr_);
  _this->_impl_.subg_child_.MergeFrom(from._impl_.subg_child_);
  if (!from._internal_subgraph_name().empty()) {
    _this->_internal_set_subgraph_name(from._internal_subgraph_name());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void SubGraph::CopyFrom(const SubGraph& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:serial_v1.SubGraph)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SubGraph::IsInitialized() const {
  return true;
}

void SubGraph::InternalSwap(SubGraph* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.op_name_.InternalSwap(&other->_impl_.op_name_);
  _impl_.subg_attr_.InternalSwap(&other->_impl_.subg_attr_);
  _impl_.subg_child_.InternalSwap(&other->_impl_.subg_child_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.subgraph_name_, lhs_arena,
      &other->_impl_.subgraph_name_, rhs_arena
  );
}

::PROTOBUF_NAMESPACE_ID::Metadata SubGraph::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv1_2eproto_getter, &descriptor_table_graph_5fproto_5fv1_2eproto_once,
      file_level_metadata_graph_5fproto_5fv1_2eproto[26]);
}

// ===================================================================

class Graph::_Internal {
 public:
  static const ::serial_v1::SubGraph& subg_root(const Graph* msg);
};

const ::serial_v1::SubGraph&
Graph::_Internal::subg_root(const Graph* msg) {
  return *msg->_impl_.subg_root_;
}
Graph::Graph(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:serial_v1.Graph)
}
Graph::Graph(const Graph& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  Graph* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.op_node_){from._impl_.op_node_}
    , decltype(_impl_.op_defs_){from._impl_.op_defs_}
    , decltype(_impl_.graph_name_){}
    , decltype(_impl_.subg_root_){nullptr}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.graph_name_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.graph_name_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_graph_name().empty()) {
    _this->_impl_.graph_name_.Set(from._internal_graph_name(), 
      _this->GetArenaForAllocation());
  }
  if (from._internal_has_subg_root()) {
    _this->_impl_.subg_root_ = new ::serial_v1::SubGraph(*from._impl_.subg_root_);
  }
  // @@protoc_insertion_point(copy_constructor:serial_v1.Graph)
}

inline void Graph::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.op_node_){arena}
    , decltype(_impl_.op_defs_){arena}
    , decltype(_impl_.graph_name_){}
    , decltype(_impl_.subg_root_){nullptr}
    , /*decltype(_impl_._cached_size_)*/{}
  };
  _impl_.graph_name_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.graph_name_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

Graph::~Graph() {
  // @@protoc_insertion_point(destructor:serial_v1.Graph)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void Graph::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.op_node_.~RepeatedPtrField();
  _impl_.op_defs_.~RepeatedPtrField();
  _impl_.graph_name_.Destroy();
  if (this != internal_default_instance()) delete _impl_.subg_root_;
}

void Graph::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void Graph::Clear() {
// @@protoc_insertion_point(message_clear_start:serial_v1.Graph)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.op_node_.Clear();
  _impl_.op_defs_.Clear();
  _impl_.graph_name_.ClearToEmpty();
  if (GetArenaForAllocation() == nullptr && _impl_.subg_root_ != nullptr) {
    delete _impl_.subg_root_;
  }
  _impl_.subg_root_ = nullptr;
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* Graph::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string graph_name = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_graph_name();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "serial_v1.Graph.graph_name"));
        } else
          goto handle_unusual;
        continue;
      // repeated .serial_v1.OPNode op_node = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_op_node(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<42>(ptr));
        } else
          goto handle_unusual;
        continue;
      // .serial_v1.SubGraph subg_root = 10;
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 82)) {
          ptr = ctx->ParseMessage(_internal_mutable_subg_root(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // repeated .serial_v1.OpDef op_defs = 101;
      case 101:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 42)) {
          ptr -= 2;
          do {
            ptr += 2;
            ptr = ctx->ParseMessage(_internal_add_op_defs(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<810>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* Graph::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:serial_v1.Graph)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string graph_name = 1;
  if (!this->_internal_graph_name().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_graph_name().data(), static_cast<int>(this->_internal_graph_name().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "serial_v1.Graph.graph_name");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_graph_name(), target);
  }

  // repeated .serial_v1.OPNode op_node = 5;
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_op_node_size()); i < n; i++) {
    const auto& repfield = this->_internal_op_node(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(5, repfield, repfield.GetCachedSize(), target, stream);
  }

  // .serial_v1.SubGraph subg_root = 10;
  if (this->_internal_has_subg_root()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(10, _Internal::subg_root(this),
        _Internal::subg_root(this).GetCachedSize(), target, stream);
  }

  // repeated .serial_v1.OpDef op_defs = 101;
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_op_defs_size()); i < n; i++) {
    const auto& repfield = this->_internal_op_defs(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(101, repfield, repfield.GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:serial_v1.Graph)
  return target;
}

size_t Graph::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:serial_v1.Graph)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .serial_v1.OPNode op_node = 5;
  total_size += 1UL * this->_internal_op_node_size();
  for (const auto& msg : this->_impl_.op_node_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // repeated .serial_v1.OpDef op_defs = 101;
  total_size += 2UL * this->_internal_op_defs_size();
  for (const auto& msg : this->_impl_.op_defs_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // string graph_name = 1;
  if (!this->_internal_graph_name().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_graph_name());
  }

  // .serial_v1.SubGraph subg_root = 10;
  if (this->_internal_has_subg_root()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *_impl_.subg_root_);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData Graph::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    Graph::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*Graph::GetClassData() const { return &_class_data_; }


void Graph::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<Graph*>(&to_msg);
  auto& from = static_cast<const Graph&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:serial_v1.Graph)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.op_node_.MergeFrom(from._impl_.op_node_);
  _this->_impl_.op_defs_.MergeFrom(from._impl_.op_defs_);
  if (!from._internal_graph_name().empty()) {
    _this->_internal_set_graph_name(from._internal_graph_name());
  }
  if (from._internal_has_subg_root()) {
    _this->_internal_mutable_subg_root()->::serial_v1::SubGraph::MergeFrom(
        from._internal_subg_root());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void Graph::CopyFrom(const Graph& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:serial_v1.Graph)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Graph::IsInitialized() const {
  return true;
}

void Graph::InternalSwap(Graph* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.op_node_.InternalSwap(&other->_impl_.op_node_);
  _impl_.op_defs_.InternalSwap(&other->_impl_.op_defs_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.graph_name_, lhs_arena,
      &other->_impl_.graph_name_, rhs_arena
  );
  swap(_impl_.subg_root_, other->_impl_.subg_root_);
}

::PROTOBUF_NAMESPACE_ID::Metadata Graph::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv1_2eproto_getter, &descriptor_table_graph_5fproto_5fv1_2eproto_once,
      file_level_metadata_graph_5fproto_5fv1_2eproto[27]);
}

// ===================================================================

class AttrDef::_Internal {
 public:
  static const ::serial_v1::AttrValue& default_value(const AttrDef* msg);
};

const ::serial_v1::AttrValue&
AttrDef::_Internal::default_value(const AttrDef* msg) {
  return *msg->_impl_.default_value_;
}
AttrDef::AttrDef(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:serial_v1.AttrDef)
}
AttrDef::AttrDef(const AttrDef& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  AttrDef* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.name_){}
    , decltype(_impl_.annotation_){}
    , decltype(_impl_.default_value_){nullptr}
    , decltype(_impl_.data_type_){}
    , decltype(_impl_.occur_type_){}
    , decltype(_impl_.list_length_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.name_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.name_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_name().empty()) {
    _this->_impl_.name_.Set(from._internal_name(), 
      _this->GetArenaForAllocation());
  }
  _impl_.annotation_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.annotation_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_annotation().empty()) {
    _this->_impl_.annotation_.Set(from._internal_annotation(), 
      _this->GetArenaForAllocation());
  }
  if (from._internal_has_default_value()) {
    _this->_impl_.default_value_ = new ::serial_v1::AttrValue(*from._impl_.default_value_);
  }
  ::memcpy(&_impl_.data_type_, &from._impl_.data_type_,
    static_cast<size_t>(reinterpret_cast<char*>(&_impl_.list_length_) -
    reinterpret_cast<char*>(&_impl_.data_type_)) + sizeof(_impl_.list_length_));
  // @@protoc_insertion_point(copy_constructor:serial_v1.AttrDef)
}

inline void AttrDef::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.name_){}
    , decltype(_impl_.annotation_){}
    , decltype(_impl_.default_value_){nullptr}
    , decltype(_impl_.data_type_){0}
    , decltype(_impl_.occur_type_){0}
    , decltype(_impl_.list_length_){0}
    , /*decltype(_impl_._cached_size_)*/{}
  };
  _impl_.name_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.name_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.annotation_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.annotation_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

AttrDef::~AttrDef() {
  // @@protoc_insertion_point(destructor:serial_v1.AttrDef)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void AttrDef::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.name_.Destroy();
  _impl_.annotation_.Destroy();
  if (this != internal_default_instance()) delete _impl_.default_value_;
}

void AttrDef::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void AttrDef::Clear() {
// @@protoc_insertion_point(message_clear_start:serial_v1.AttrDef)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.name_.ClearToEmpty();
  _impl_.annotation_.ClearToEmpty();
  if (GetArenaForAllocation() == nullptr && _impl_.default_value_ != nullptr) {
    delete _impl_.default_value_;
  }
  _impl_.default_value_ = nullptr;
  ::memset(&_impl_.data_type_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&_impl_.list_length_) -
      reinterpret_cast<char*>(&_impl_.data_type_)) + sizeof(_impl_.list_length_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* AttrDef::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string name = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_name();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "serial_v1.AttrDef.name"));
        } else
          goto handle_unusual;
        continue;
      // int32 data_type = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          _impl_.data_type_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .serial_v1.AttrDef.OccurType occur_type = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_occur_type(static_cast<::serial_v1::AttrDef_OccurType>(val));
        } else
          goto handle_unusual;
        continue;
      // .serial_v1.AttrValue default_value = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          ptr = ctx->ParseMessage(_internal_mutable_default_value(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 list_length = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 48)) {
          _impl_.list_length_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string annotation = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 58)) {
          auto str = _internal_mutable_annotation();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "serial_v1.AttrDef.annotation"));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* AttrDef::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:serial_v1.AttrDef)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string name = 1;
  if (!this->_internal_name().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_name().data(), static_cast<int>(this->_internal_name().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "serial_v1.AttrDef.name");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_name(), target);
  }

  // int32 data_type = 2;
  if (this->_internal_data_type() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(2, this->_internal_data_type(), target);
  }

  // .serial_v1.AttrDef.OccurType occur_type = 3;
  if (this->_internal_occur_type() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
      3, this->_internal_occur_type(), target);
  }

  // .serial_v1.AttrValue default_value = 4;
  if (this->_internal_has_default_value()) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessage(4, _Internal::default_value(this),
        _Internal::default_value(this).GetCachedSize(), target, stream);
  }

  // int32 list_length = 6;
  if (this->_internal_list_length() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(6, this->_internal_list_length(), target);
  }

  // string annotation = 7;
  if (!this->_internal_annotation().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_annotation().data(), static_cast<int>(this->_internal_annotation().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "serial_v1.AttrDef.annotation");
    target = stream->WriteStringMaybeAliased(
        7, this->_internal_annotation(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:serial_v1.AttrDef)
  return target;
}

size_t AttrDef::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:serial_v1.AttrDef)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string name = 1;
  if (!this->_internal_name().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_name());
  }

  // string annotation = 7;
  if (!this->_internal_annotation().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_annotation());
  }

  // .serial_v1.AttrValue default_value = 4;
  if (this->_internal_has_default_value()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
        *_impl_.default_value_);
  }

  // int32 data_type = 2;
  if (this->_internal_data_type() != 0) {
    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_data_type());
  }

  // .serial_v1.AttrDef.OccurType occur_type = 3;
  if (this->_internal_occur_type() != 0) {
    total_size += 1 +
      ::_pbi::WireFormatLite::EnumSize(this->_internal_occur_type());
  }

  // int32 list_length = 6;
  if (this->_internal_list_length() != 0) {
    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_list_length());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData AttrDef::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    AttrDef::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*AttrDef::GetClassData() const { return &_class_data_; }


void AttrDef::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<AttrDef*>(&to_msg);
  auto& from = static_cast<const AttrDef&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:serial_v1.AttrDef)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_name().empty()) {
    _this->_internal_set_name(from._internal_name());
  }
  if (!from._internal_annotation().empty()) {
    _this->_internal_set_annotation(from._internal_annotation());
  }
  if (from._internal_has_default_value()) {
    _this->_internal_mutable_default_value()->::serial_v1::AttrValue::MergeFrom(
        from._internal_default_value());
  }
  if (from._internal_data_type() != 0) {
    _this->_internal_set_data_type(from._internal_data_type());
  }
  if (from._internal_occur_type() != 0) {
    _this->_internal_set_occur_type(from._internal_occur_type());
  }
  if (from._internal_list_length() != 0) {
    _this->_internal_set_list_length(from._internal_list_length());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void AttrDef::CopyFrom(const AttrDef& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:serial_v1.AttrDef)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool AttrDef::IsInitialized() const {
  return true;
}

void AttrDef::InternalSwap(AttrDef* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.name_, lhs_arena,
      &other->_impl_.name_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.annotation_, lhs_arena,
      &other->_impl_.annotation_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(AttrDef, _impl_.list_length_)
      + sizeof(AttrDef::_impl_.list_length_)
      - PROTOBUF_FIELD_OFFSET(AttrDef, _impl_.default_value_)>(
          reinterpret_cast<char*>(&_impl_.default_value_),
          reinterpret_cast<char*>(&other->_impl_.default_value_));
}

::PROTOBUF_NAMESPACE_ID::Metadata AttrDef::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv1_2eproto_getter, &descriptor_table_graph_5fproto_5fv1_2eproto_once,
      file_level_metadata_graph_5fproto_5fv1_2eproto[28]);
}

// ===================================================================

class OpDef::_Internal {
 public:
};

OpDef::OpDef(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:serial_v1.OpDef)
}
OpDef::OpDef(const OpDef& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  OpDef* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.input_args_){from._impl_.input_args_}
    , decltype(_impl_.attrs_){from._impl_.attrs_}
    , decltype(_impl_.name_){}
    , decltype(_impl_.annotation_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.name_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.name_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_name().empty()) {
    _this->_impl_.name_.Set(from._internal_name(), 
      _this->GetArenaForAllocation());
  }
  _impl_.annotation_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.annotation_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_annotation().empty()) {
    _this->_impl_.annotation_.Set(from._internal_annotation(), 
      _this->GetArenaForAllocation());
  }
  // @@protoc_insertion_point(copy_constructor:serial_v1.OpDef)
}

inline void OpDef::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.input_args_){arena}
    , decltype(_impl_.attrs_){arena}
    , decltype(_impl_.name_){}
    , decltype(_impl_.annotation_){}
    , /*decltype(_impl_._cached_size_)*/{}
  };
  _impl_.name_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.name_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.annotation_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.annotation_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

OpDef::~OpDef() {
  // @@protoc_insertion_point(destructor:serial_v1.OpDef)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void OpDef::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.input_args_.~RepeatedPtrField();
  _impl_.attrs_.~RepeatedPtrField();
  _impl_.name_.Destroy();
  _impl_.annotation_.Destroy();
}

void OpDef::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void OpDef::Clear() {
// @@protoc_insertion_point(message_clear_start:serial_v1.OpDef)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.input_args_.Clear();
  _impl_.attrs_.Clear();
  _impl_.name_.ClearToEmpty();
  _impl_.annotation_.ClearToEmpty();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* OpDef::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string name = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_name();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "serial_v1.OpDef.name"));
        } else
          goto handle_unusual;
        continue;
      // repeated .serial_v1.OpArgDef input_args = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_input_args(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
        } else
          goto handle_unusual;
        continue;
      // repeated .serial_v1.AttrDef attrs = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_attrs(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<26>(ptr));
        } else
          goto handle_unusual;
        continue;
      // string annotation = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          auto str = _internal_mutable_annotation();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "serial_v1.OpDef.annotation"));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* OpDef::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:serial_v1.OpDef)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string name = 1;
  if (!this->_internal_name().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_name().data(), static_cast<int>(this->_internal_name().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "serial_v1.OpDef.name");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_name(), target);
  }

  // repeated .serial_v1.OpArgDef input_args = 2;
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_input_args_size()); i < n; i++) {
    const auto& repfield = this->_internal_input_args(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(2, repfield, repfield.GetCachedSize(), target, stream);
  }

  // repeated .serial_v1.AttrDef attrs = 3;
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_attrs_size()); i < n; i++) {
    const auto& repfield = this->_internal_attrs(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(3, repfield, repfield.GetCachedSize(), target, stream);
  }

  // string annotation = 4;
  if (!this->_internal_annotation().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_annotation().data(), static_cast<int>(this->_internal_annotation().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "serial_v1.OpDef.annotation");
    target = stream->WriteStringMaybeAliased(
        4, this->_internal_annotation(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:serial_v1.OpDef)
  return target;
}

size_t OpDef::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:serial_v1.OpDef)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .serial_v1.OpArgDef input_args = 2;
  total_size += 1UL * this->_internal_input_args_size();
  for (const auto& msg : this->_impl_.input_args_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // repeated .serial_v1.AttrDef attrs = 3;
  total_size += 1UL * this->_internal_attrs_size();
  for (const auto& msg : this->_impl_.attrs_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // string name = 1;
  if (!this->_internal_name().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_name());
  }

  // string annotation = 4;
  if (!this->_internal_annotation().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_annotation());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData OpDef::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    OpDef::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*OpDef::GetClassData() const { return &_class_data_; }


void OpDef::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<OpDef*>(&to_msg);
  auto& from = static_cast<const OpDef&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:serial_v1.OpDef)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_impl_.input_args_.MergeFrom(from._impl_.input_args_);
  _this->_impl_.attrs_.MergeFrom(from._impl_.attrs_);
  if (!from._internal_name().empty()) {
    _this->_internal_set_name(from._internal_name());
  }
  if (!from._internal_annotation().empty()) {
    _this->_internal_set_annotation(from._internal_annotation());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void OpDef::CopyFrom(const OpDef& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:serial_v1.OpDef)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool OpDef::IsInitialized() const {
  return true;
}

void OpDef::InternalSwap(OpDef* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.input_args_.InternalSwap(&other->_impl_.input_args_);
  _impl_.attrs_.InternalSwap(&other->_impl_.attrs_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.name_, lhs_arena,
      &other->_impl_.name_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.annotation_, lhs_arena,
      &other->_impl_.annotation_, rhs_arena
  );
}

::PROTOBUF_NAMESPACE_ID::Metadata OpDef::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv1_2eproto_getter, &descriptor_table_graph_5fproto_5fv1_2eproto_once,
      file_level_metadata_graph_5fproto_5fv1_2eproto[29]);
}

// ===================================================================

class OpArgDef::_Internal {
 public:
};

OpArgDef::OpArgDef(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor(arena, is_message_owned);
  // @@protoc_insertion_point(arena_constructor:serial_v1.OpArgDef)
}
OpArgDef::OpArgDef(const OpArgDef& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  OpArgDef* const _this = this; (void)_this;
  new (&_impl_) Impl_{
      decltype(_impl_.name_){}
    , decltype(_impl_.annotation_){}
    , decltype(_impl_.occur_type_){}
    , decltype(_impl_.data_type_){}
    , /*decltype(_impl_._cached_size_)*/{}};

  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  _impl_.name_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.name_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_name().empty()) {
    _this->_impl_.name_.Set(from._internal_name(), 
      _this->GetArenaForAllocation());
  }
  _impl_.annotation_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.annotation_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_annotation().empty()) {
    _this->_impl_.annotation_.Set(from._internal_annotation(), 
      _this->GetArenaForAllocation());
  }
  ::memcpy(&_impl_.occur_type_, &from._impl_.occur_type_,
    static_cast<size_t>(reinterpret_cast<char*>(&_impl_.data_type_) -
    reinterpret_cast<char*>(&_impl_.occur_type_)) + sizeof(_impl_.data_type_));
  // @@protoc_insertion_point(copy_constructor:serial_v1.OpArgDef)
}

inline void OpArgDef::SharedCtor(
    ::_pb::Arena* arena, bool is_message_owned) {
  (void)arena;
  (void)is_message_owned;
  new (&_impl_) Impl_{
      decltype(_impl_.name_){}
    , decltype(_impl_.annotation_){}
    , decltype(_impl_.occur_type_){0}
    , decltype(_impl_.data_type_){0}
    , /*decltype(_impl_._cached_size_)*/{}
  };
  _impl_.name_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.name_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  _impl_.annotation_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    _impl_.annotation_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

OpArgDef::~OpArgDef() {
  // @@protoc_insertion_point(destructor:serial_v1.OpArgDef)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void OpArgDef::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  _impl_.name_.Destroy();
  _impl_.annotation_.Destroy();
}

void OpArgDef::SetCachedSize(int size) const {
  _impl_._cached_size_.Set(size);
}

void OpArgDef::Clear() {
// @@protoc_insertion_point(message_clear_start:serial_v1.OpArgDef)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.name_.ClearToEmpty();
  _impl_.annotation_.ClearToEmpty();
  ::memset(&_impl_.occur_type_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&_impl_.data_type_) -
      reinterpret_cast<char*>(&_impl_.occur_type_)) + sizeof(_impl_.data_type_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* OpArgDef::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string name = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_name();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "serial_v1.OpArgDef.name"));
        } else
          goto handle_unusual;
        continue;
      // .serial_v1.OpArgDef.OccurType occur_type = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 16)) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_occur_type(static_cast<::serial_v1::OpArgDef_OccurType>(val));
        } else
          goto handle_unusual;
        continue;
      // .serial_v1.OpArgDef.DataType data_type = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
          _internal_set_data_type(static_cast<::serial_v1::OpArgDef_DataType>(val));
        } else
          goto handle_unusual;
        continue;
      // string annotation = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 34)) {
          auto str = _internal_mutable_annotation();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "serial_v1.OpArgDef.annotation"));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* OpArgDef::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:serial_v1.OpArgDef)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string name = 1;
  if (!this->_internal_name().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_name().data(), static_cast<int>(this->_internal_name().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "serial_v1.OpArgDef.name");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_name(), target);
  }

  // .serial_v1.OpArgDef.OccurType occur_type = 2;
  if (this->_internal_occur_type() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
      2, this->_internal_occur_type(), target);
  }

  // .serial_v1.OpArgDef.DataType data_type = 3;
  if (this->_internal_data_type() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
      3, this->_internal_data_type(), target);
  }

  // string annotation = 4;
  if (!this->_internal_annotation().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_annotation().data(), static_cast<int>(this->_internal_annotation().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "serial_v1.OpArgDef.annotation");
    target = stream->WriteStringMaybeAliased(
        4, this->_internal_annotation(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:serial_v1.OpArgDef)
  return target;
}

size_t OpArgDef::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:serial_v1.OpArgDef)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string name = 1;
  if (!this->_internal_name().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_name());
  }

  // string annotation = 4;
  if (!this->_internal_annotation().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_annotation());
  }

  // .serial_v1.OpArgDef.OccurType occur_type = 2;
  if (this->_internal_occur_type() != 0) {
    total_size += 1 +
      ::_pbi::WireFormatLite::EnumSize(this->_internal_occur_type());
  }

  // .serial_v1.OpArgDef.DataType data_type = 3;
  if (this->_internal_data_type() != 0) {
    total_size += 1 +
      ::_pbi::WireFormatLite::EnumSize(this->_internal_data_type());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData OpArgDef::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
    OpArgDef::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*OpArgDef::GetClassData() const { return &_class_data_; }


void OpArgDef::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) {
  auto* const _this = static_cast<OpArgDef*>(&to_msg);
  auto& from = static_cast<const OpArgDef&>(from_msg);
  // @@protoc_insertion_point(class_specific_merge_from_start:serial_v1.OpArgDef)
  GOOGLE_DCHECK_NE(&from, _this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_name().empty()) {
    _this->_internal_set_name(from._internal_name());
  }
  if (!from._internal_annotation().empty()) {
    _this->_internal_set_annotation(from._internal_annotation());
  }
  if (from._internal_occur_type() != 0) {
    _this->_internal_set_occur_type(from._internal_occur_type());
  }
  if (from._internal_data_type() != 0) {
    _this->_internal_set_data_type(from._internal_data_type());
  }
  _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void OpArgDef::CopyFrom(const OpArgDef& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:serial_v1.OpArgDef)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool OpArgDef::IsInitialized() const {
  return true;
}

void OpArgDef::InternalSwap(OpArgDef* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.name_, lhs_arena,
      &other->_impl_.name_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &_impl_.annotation_, lhs_arena,
      &other->_impl_.annotation_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(OpArgDef, _impl_.data_type_)
      + sizeof(OpArgDef::_impl_.data_type_)
      - PROTOBUF_FIELD_OFFSET(OpArgDef, _impl_.occur_type_)>(
          reinterpret_cast<char*>(&_impl_.occur_type_),
          reinterpret_cast<char*>(&other->_impl_.occur_type_));
}

::PROTOBUF_NAMESPACE_ID::Metadata OpArgDef::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_graph_5fproto_5fv1_2eproto_getter, &descriptor_table_graph_5fproto_5fv1_2eproto_once,
      file_level_metadata_graph_5fproto_5fv1_2eproto[30]);
}

// @@protoc_insertion_point(namespace_scope)
}  // namespace serial_v1
PROTOBUF_NAMESPACE_OPEN
template<> PROTOBUF_NOINLINE ::serial_v1::AttrValue_ListValue*
Arena::CreateMaybeMessage< ::serial_v1::AttrValue_ListValue >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v1::AttrValue_ListValue >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v1::AttrValue_kv_pair*
Arena::CreateMaybeMessage< ::serial_v1::AttrValue_kv_pair >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v1::AttrValue_kv_pair >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v1::AttrValue_kv_map*
Arena::CreateMaybeMessage< ::serial_v1::AttrValue_kv_map >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v1::AttrValue_kv_map >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v1::AttrValue*
Arena::CreateMaybeMessage< ::serial_v1::AttrValue >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v1::AttrValue >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v1::ExpandAttrValue_BoolVec*
Arena::CreateMaybeMessage< ::serial_v1::ExpandAttrValue_BoolVec >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v1::ExpandAttrValue_BoolVec >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v1::ExpandAttrValue_Int32Vec*
Arena::CreateMaybeMessage< ::serial_v1::ExpandAttrValue_Int32Vec >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v1::ExpandAttrValue_Int32Vec >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v1::ExpandAttrValue_Int64Vec*
Arena::CreateMaybeMessage< ::serial_v1::ExpandAttrValue_Int64Vec >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v1::ExpandAttrValue_Int64Vec >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v1::ExpandAttrValue_FloatVec*
Arena::CreateMaybeMessage< ::serial_v1::ExpandAttrValue_FloatVec >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v1::ExpandAttrValue_FloatVec >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v1::ExpandAttrValue_StringVec*
Arena::CreateMaybeMessage< ::serial_v1::ExpandAttrValue_StringVec >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v1::ExpandAttrValue_StringVec >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v1::ExpandAttrValue_BytesVec*
Arena::CreateMaybeMessage< ::serial_v1::ExpandAttrValue_BytesVec >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v1::ExpandAttrValue_BytesVec >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v1::ExpandAttrValue_KeyBoolPair*
Arena::CreateMaybeMessage< ::serial_v1::ExpandAttrValue_KeyBoolPair >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v1::ExpandAttrValue_KeyBoolPair >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v1::ExpandAttrValue_BoolMap*
Arena::CreateMaybeMessage< ::serial_v1::ExpandAttrValue_BoolMap >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v1::ExpandAttrValue_BoolMap >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v1::ExpandAttrValue_KeyInt32Pair*
Arena::CreateMaybeMessage< ::serial_v1::ExpandAttrValue_KeyInt32Pair >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v1::ExpandAttrValue_KeyInt32Pair >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v1::ExpandAttrValue_Int32Map*
Arena::CreateMaybeMessage< ::serial_v1::ExpandAttrValue_Int32Map >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v1::ExpandAttrValue_Int32Map >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v1::ExpandAttrValue_KeyInt64Pair*
Arena::CreateMaybeMessage< ::serial_v1::ExpandAttrValue_KeyInt64Pair >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v1::ExpandAttrValue_KeyInt64Pair >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v1::ExpandAttrValue_Int64Map*
Arena::CreateMaybeMessage< ::serial_v1::ExpandAttrValue_Int64Map >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v1::ExpandAttrValue_Int64Map >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v1::ExpandAttrValue_KeyFloatPair*
Arena::CreateMaybeMessage< ::serial_v1::ExpandAttrValue_KeyFloatPair >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v1::ExpandAttrValue_KeyFloatPair >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v1::ExpandAttrValue_FloatMap*
Arena::CreateMaybeMessage< ::serial_v1::ExpandAttrValue_FloatMap >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v1::ExpandAttrValue_FloatMap >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v1::ExpandAttrValue_KeyStringPair*
Arena::CreateMaybeMessage< ::serial_v1::ExpandAttrValue_KeyStringPair >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v1::ExpandAttrValue_KeyStringPair >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v1::ExpandAttrValue_StringMap*
Arena::CreateMaybeMessage< ::serial_v1::ExpandAttrValue_StringMap >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v1::ExpandAttrValue_StringMap >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v1::ExpandAttrValue_KeyBytesPair*
Arena::CreateMaybeMessage< ::serial_v1::ExpandAttrValue_KeyBytesPair >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v1::ExpandAttrValue_KeyBytesPair >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v1::ExpandAttrValue_BytesMap*
Arena::CreateMaybeMessage< ::serial_v1::ExpandAttrValue_BytesMap >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v1::ExpandAttrValue_BytesMap >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v1::ExpandAttrValue*
Arena::CreateMaybeMessage< ::serial_v1::ExpandAttrValue >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v1::ExpandAttrValue >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v1::OneKindOP*
Arena::CreateMaybeMessage< ::serial_v1::OneKindOP >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v1::OneKindOP >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v1::Tensor*
Arena::CreateMaybeMessage< ::serial_v1::Tensor >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v1::Tensor >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v1::OPNode*
Arena::CreateMaybeMessage< ::serial_v1::OPNode >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v1::OPNode >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v1::SubGraph*
Arena::CreateMaybeMessage< ::serial_v1::SubGraph >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v1::SubGraph >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v1::Graph*
Arena::CreateMaybeMessage< ::serial_v1::Graph >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v1::Graph >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v1::AttrDef*
Arena::CreateMaybeMessage< ::serial_v1::AttrDef >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v1::AttrDef >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v1::OpDef*
Arena::CreateMaybeMessage< ::serial_v1::OpDef >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v1::OpDef >(arena);
}
template<> PROTOBUF_NOINLINE ::serial_v1::OpArgDef*
Arena::CreateMaybeMessage< ::serial_v1::OpArgDef >(Arena* arena) {
  return Arena::CreateMessageInternal< ::serial_v1::OpArgDef >(arena);
}
PROTOBUF_NAMESPACE_CLOSE

// @@protoc_insertion_point(global_scope)
#include <google/protobuf/port_undef.inc>
