// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: tensorflow/core/framework/op_def.proto

#ifndef PROTOBUF_tensorflow_2fcore_2fframework_2fop_5fdef_2eproto__INCLUDED
#define PROTOBUF_tensorflow_2fcore_2fframework_2fop_5fdef_2eproto__INCLUDED

#include <string>

#include <google/protobuf/stubs/common.h>

#if GOOGLE_PROTOBUF_VERSION < 3001000
#error This file was generated by a newer version of protoc which is
#error incompatible with your Protocol Buffer headers.  Please update
#error your headers.
#endif
#if 3001000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
#error This file was generated by an older version of protoc which is
#error incompatible with your Protocol Buffer headers.  Please
#error regenerate this file with a newer version of protoc.
#endif

#include <google/protobuf/arena.h>
#include <google/protobuf/arenastring.h>
#include <google/protobuf/generated_message_util.h>
#include <google/protobuf/metadata.h>
#include <google/protobuf/message.h>
#include <google/protobuf/repeated_field.h>
#include <google/protobuf/extension_set.h>
#include <google/protobuf/unknown_field_set.h>
#include "tensorflow/core/framework/attr_value.pb.h"
#include "tensorflow/core/framework/types.pb.h"
// @@protoc_insertion_point(includes)

namespace tensorflow {

// Internal implementation detail -- do not call these.
void protobuf_AddDesc_tensorflow_2fcore_2fframework_2fop_5fdef_2eproto();
void protobuf_InitDefaults_tensorflow_2fcore_2fframework_2fop_5fdef_2eproto();
void protobuf_AssignDesc_tensorflow_2fcore_2fframework_2fop_5fdef_2eproto();
void protobuf_ShutdownFile_tensorflow_2fcore_2fframework_2fop_5fdef_2eproto();

class OpDef;
class OpDef_ArgDef;
class OpDef_AttrDef;
class OpDeprecation;
class OpList;

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

class OpDef_ArgDef : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:tensorflow.OpDef.ArgDef) */ {
 public:
  OpDef_ArgDef();
  virtual ~OpDef_ArgDef();

  OpDef_ArgDef(const OpDef_ArgDef& from);

  inline OpDef_ArgDef& operator=(const OpDef_ArgDef& from) {
    CopyFrom(from);
    return *this;
  }

  inline ::google::protobuf::Arena* GetArena() const { return GetArenaNoVirtual(); }
  inline void* GetMaybeArenaPointer() const {
    return MaybeArenaPtr();
  }
  static const ::google::protobuf::Descriptor* descriptor();
  static const OpDef_ArgDef& default_instance();

  static const OpDef_ArgDef* internal_default_instance();

  void UnsafeArenaSwap(OpDef_ArgDef* other);
  void Swap(OpDef_ArgDef* other);

  // implements Message ----------------------------------------------

  inline OpDef_ArgDef* New() const { return New(NULL); }

  OpDef_ArgDef* New(::google::protobuf::Arena* arena) const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const OpDef_ArgDef& from);
  void MergeFrom(const OpDef_ArgDef& from);
  void Clear();
  bool IsInitialized() const;

  size_t ByteSizeLong() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const {
    return InternalSerializeWithCachedSizesToArray(false, output);
  }
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(OpDef_ArgDef* other);
  void UnsafeMergeFrom(const OpDef_ArgDef& from);
  protected:
  explicit OpDef_ArgDef(::google::protobuf::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::google::protobuf::Arena* arena);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return _internal_metadata_.arena();
  }
  inline void* MaybeArenaPtr() const {
    return _internal_metadata_.raw_arena_ptr();
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional string name = 1;
  void clear_name();
  static const int kNameFieldNumber = 1;
  const ::std::string& name() const;
  void set_name(const ::std::string& value);
  void set_name(const char* value);
  void set_name(const char* value, size_t size);
  ::std::string* mutable_name();
  ::std::string* release_name();
  void set_allocated_name(::std::string* name);
  ::std::string* unsafe_arena_release_name();
  void unsafe_arena_set_allocated_name(
      ::std::string* name);

  // optional string description = 2;
  void clear_description();
  static const int kDescriptionFieldNumber = 2;
  const ::std::string& description() const;
  void set_description(const ::std::string& value);
  void set_description(const char* value);
  void set_description(const char* value, size_t size);
  ::std::string* mutable_description();
  ::std::string* release_description();
  void set_allocated_description(::std::string* description);
  ::std::string* unsafe_arena_release_description();
  void unsafe_arena_set_allocated_description(
      ::std::string* description);

  // optional .tensorflow.DataType type = 3;
  void clear_type();
  static const int kTypeFieldNumber = 3;
  ::tensorflow::DataType type() const;
  void set_type(::tensorflow::DataType value);

  // optional string type_attr = 4;
  void clear_type_attr();
  static const int kTypeAttrFieldNumber = 4;
  const ::std::string& type_attr() const;
  void set_type_attr(const ::std::string& value);
  void set_type_attr(const char* value);
  void set_type_attr(const char* value, size_t size);
  ::std::string* mutable_type_attr();
  ::std::string* release_type_attr();
  void set_allocated_type_attr(::std::string* type_attr);
  ::std::string* unsafe_arena_release_type_attr();
  void unsafe_arena_set_allocated_type_attr(
      ::std::string* type_attr);

  // optional string number_attr = 5;
  void clear_number_attr();
  static const int kNumberAttrFieldNumber = 5;
  const ::std::string& number_attr() const;
  void set_number_attr(const ::std::string& value);
  void set_number_attr(const char* value);
  void set_number_attr(const char* value, size_t size);
  ::std::string* mutable_number_attr();
  ::std::string* release_number_attr();
  void set_allocated_number_attr(::std::string* number_attr);
  ::std::string* unsafe_arena_release_number_attr();
  void unsafe_arena_set_allocated_number_attr(
      ::std::string* number_attr);

  // optional string type_list_attr = 6;
  void clear_type_list_attr();
  static const int kTypeListAttrFieldNumber = 6;
  const ::std::string& type_list_attr() const;
  void set_type_list_attr(const ::std::string& value);
  void set_type_list_attr(const char* value);
  void set_type_list_attr(const char* value, size_t size);
  ::std::string* mutable_type_list_attr();
  ::std::string* release_type_list_attr();
  void set_allocated_type_list_attr(::std::string* type_list_attr);
  ::std::string* unsafe_arena_release_type_list_attr();
  void unsafe_arena_set_allocated_type_list_attr(
      ::std::string* type_list_attr);

  // optional bool is_ref = 16;
  void clear_is_ref();
  static const int kIsRefFieldNumber = 16;
  bool is_ref() const;
  void set_is_ref(bool value);

  // @@protoc_insertion_point(class_scope:tensorflow.OpDef.ArgDef)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  friend class ::google::protobuf::Arena;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::google::protobuf::internal::ArenaStringPtr name_;
  ::google::protobuf::internal::ArenaStringPtr description_;
  ::google::protobuf::internal::ArenaStringPtr type_attr_;
  ::google::protobuf::internal::ArenaStringPtr number_attr_;
  ::google::protobuf::internal::ArenaStringPtr type_list_attr_;
  int type_;
  bool is_ref_;
  mutable int _cached_size_;
  friend void  protobuf_InitDefaults_tensorflow_2fcore_2fframework_2fop_5fdef_2eproto_impl();
  friend void  protobuf_AddDesc_tensorflow_2fcore_2fframework_2fop_5fdef_2eproto_impl();
  friend void protobuf_AssignDesc_tensorflow_2fcore_2fframework_2fop_5fdef_2eproto();
  friend void protobuf_ShutdownFile_tensorflow_2fcore_2fframework_2fop_5fdef_2eproto();

  void InitAsDefaultInstance();
};
extern ::google::protobuf::internal::ExplicitlyConstructed<OpDef_ArgDef> OpDef_ArgDef_default_instance_;

// -------------------------------------------------------------------

class OpDef_AttrDef : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:tensorflow.OpDef.AttrDef) */ {
 public:
  OpDef_AttrDef();
  virtual ~OpDef_AttrDef();

  OpDef_AttrDef(const OpDef_AttrDef& from);

  inline OpDef_AttrDef& operator=(const OpDef_AttrDef& from) {
    CopyFrom(from);
    return *this;
  }

  inline ::google::protobuf::Arena* GetArena() const { return GetArenaNoVirtual(); }
  inline void* GetMaybeArenaPointer() const {
    return MaybeArenaPtr();
  }
  static const ::google::protobuf::Descriptor* descriptor();
  static const OpDef_AttrDef& default_instance();

  static const OpDef_AttrDef* internal_default_instance();

  void UnsafeArenaSwap(OpDef_AttrDef* other);
  void Swap(OpDef_AttrDef* other);

  // implements Message ----------------------------------------------

  inline OpDef_AttrDef* New() const { return New(NULL); }

  OpDef_AttrDef* New(::google::protobuf::Arena* arena) const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const OpDef_AttrDef& from);
  void MergeFrom(const OpDef_AttrDef& from);
  void Clear();
  bool IsInitialized() const;

  size_t ByteSizeLong() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const {
    return InternalSerializeWithCachedSizesToArray(false, output);
  }
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(OpDef_AttrDef* other);
  void UnsafeMergeFrom(const OpDef_AttrDef& from);
  protected:
  explicit OpDef_AttrDef(::google::protobuf::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::google::protobuf::Arena* arena);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return _internal_metadata_.arena();
  }
  inline void* MaybeArenaPtr() const {
    return _internal_metadata_.raw_arena_ptr();
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional string name = 1;
  void clear_name();
  static const int kNameFieldNumber = 1;
  const ::std::string& name() const;
  void set_name(const ::std::string& value);
  void set_name(const char* value);
  void set_name(const char* value, size_t size);
  ::std::string* mutable_name();
  ::std::string* release_name();
  void set_allocated_name(::std::string* name);
  ::std::string* unsafe_arena_release_name();
  void unsafe_arena_set_allocated_name(
      ::std::string* name);

  // optional string type = 2;
  void clear_type();
  static const int kTypeFieldNumber = 2;
  const ::std::string& type() const;
  void set_type(const ::std::string& value);
  void set_type(const char* value);
  void set_type(const char* value, size_t size);
  ::std::string* mutable_type();
  ::std::string* release_type();
  void set_allocated_type(::std::string* type);
  ::std::string* unsafe_arena_release_type();
  void unsafe_arena_set_allocated_type(
      ::std::string* type);

  // optional .tensorflow.AttrValue default_value = 3;
  bool has_default_value() const;
  void clear_default_value();
  static const int kDefaultValueFieldNumber = 3;
  private:
  void _slow_mutable_default_value();
  void _slow_set_allocated_default_value(
      ::google::protobuf::Arena* message_arena, ::tensorflow::AttrValue** default_value);
  ::tensorflow::AttrValue* _slow_release_default_value();
  public:
  const ::tensorflow::AttrValue& default_value() const;
  ::tensorflow::AttrValue* mutable_default_value();
  ::tensorflow::AttrValue* release_default_value();
  void set_allocated_default_value(::tensorflow::AttrValue* default_value);
  ::tensorflow::AttrValue* unsafe_arena_release_default_value();
  void unsafe_arena_set_allocated_default_value(
      ::tensorflow::AttrValue* default_value);

  // optional string description = 4;
  void clear_description();
  static const int kDescriptionFieldNumber = 4;
  const ::std::string& description() const;
  void set_description(const ::std::string& value);
  void set_description(const char* value);
  void set_description(const char* value, size_t size);
  ::std::string* mutable_description();
  ::std::string* release_description();
  void set_allocated_description(::std::string* description);
  ::std::string* unsafe_arena_release_description();
  void unsafe_arena_set_allocated_description(
      ::std::string* description);

  // optional bool has_minimum = 5;
  void clear_has_minimum();
  static const int kHasMinimumFieldNumber = 5;
  bool has_minimum() const;
  void set_has_minimum(bool value);

  // optional int64 minimum = 6;
  void clear_minimum();
  static const int kMinimumFieldNumber = 6;
  ::google::protobuf::int64 minimum() const;
  void set_minimum(::google::protobuf::int64 value);

  // optional .tensorflow.AttrValue allowed_values = 7;
  bool has_allowed_values() const;
  void clear_allowed_values();
  static const int kAllowedValuesFieldNumber = 7;
  private:
  void _slow_mutable_allowed_values();
  void _slow_set_allocated_allowed_values(
      ::google::protobuf::Arena* message_arena, ::tensorflow::AttrValue** allowed_values);
  ::tensorflow::AttrValue* _slow_release_allowed_values();
  public:
  const ::tensorflow::AttrValue& allowed_values() const;
  ::tensorflow::AttrValue* mutable_allowed_values();
  ::tensorflow::AttrValue* release_allowed_values();
  void set_allocated_allowed_values(::tensorflow::AttrValue* allowed_values);
  ::tensorflow::AttrValue* unsafe_arena_release_allowed_values();
  void unsafe_arena_set_allocated_allowed_values(
      ::tensorflow::AttrValue* allowed_values);

  // @@protoc_insertion_point(class_scope:tensorflow.OpDef.AttrDef)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  friend class ::google::protobuf::Arena;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::google::protobuf::internal::ArenaStringPtr name_;
  ::google::protobuf::internal::ArenaStringPtr type_;
  ::google::protobuf::internal::ArenaStringPtr description_;
  ::tensorflow::AttrValue* default_value_;
  ::tensorflow::AttrValue* allowed_values_;
  ::google::protobuf::int64 minimum_;
  bool has_minimum_;
  mutable int _cached_size_;
  friend void  protobuf_InitDefaults_tensorflow_2fcore_2fframework_2fop_5fdef_2eproto_impl();
  friend void  protobuf_AddDesc_tensorflow_2fcore_2fframework_2fop_5fdef_2eproto_impl();
  friend void protobuf_AssignDesc_tensorflow_2fcore_2fframework_2fop_5fdef_2eproto();
  friend void protobuf_ShutdownFile_tensorflow_2fcore_2fframework_2fop_5fdef_2eproto();

  void InitAsDefaultInstance();
};
extern ::google::protobuf::internal::ExplicitlyConstructed<OpDef_AttrDef> OpDef_AttrDef_default_instance_;

// -------------------------------------------------------------------

class OpDef : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:tensorflow.OpDef) */ {
 public:
  OpDef();
  virtual ~OpDef();

  OpDef(const OpDef& from);

  inline OpDef& operator=(const OpDef& from) {
    CopyFrom(from);
    return *this;
  }

  inline ::google::protobuf::Arena* GetArena() const { return GetArenaNoVirtual(); }
  inline void* GetMaybeArenaPointer() const {
    return MaybeArenaPtr();
  }
  static const ::google::protobuf::Descriptor* descriptor();
  static const OpDef& default_instance();

  static const OpDef* internal_default_instance();

  void UnsafeArenaSwap(OpDef* other);
  void Swap(OpDef* other);

  // implements Message ----------------------------------------------

  inline OpDef* New() const { return New(NULL); }

  OpDef* New(::google::protobuf::Arena* arena) const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const OpDef& from);
  void MergeFrom(const OpDef& from);
  void Clear();
  bool IsInitialized() const;

  size_t ByteSizeLong() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const {
    return InternalSerializeWithCachedSizesToArray(false, output);
  }
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(OpDef* other);
  void UnsafeMergeFrom(const OpDef& from);
  protected:
  explicit OpDef(::google::protobuf::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::google::protobuf::Arena* arena);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return _internal_metadata_.arena();
  }
  inline void* MaybeArenaPtr() const {
    return _internal_metadata_.raw_arena_ptr();
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  typedef OpDef_ArgDef ArgDef;
  typedef OpDef_AttrDef AttrDef;

  // accessors -------------------------------------------------------

  // optional string name = 1;
  void clear_name();
  static const int kNameFieldNumber = 1;
  const ::std::string& name() const;
  void set_name(const ::std::string& value);
  void set_name(const char* value);
  void set_name(const char* value, size_t size);
  ::std::string* mutable_name();
  ::std::string* release_name();
  void set_allocated_name(::std::string* name);
  ::std::string* unsafe_arena_release_name();
  void unsafe_arena_set_allocated_name(
      ::std::string* name);

  // repeated .tensorflow.OpDef.ArgDef input_arg = 2;
  int input_arg_size() const;
  void clear_input_arg();
  static const int kInputArgFieldNumber = 2;
  const ::tensorflow::OpDef_ArgDef& input_arg(int index) const;
  ::tensorflow::OpDef_ArgDef* mutable_input_arg(int index);
  ::tensorflow::OpDef_ArgDef* add_input_arg();
  ::google::protobuf::RepeatedPtrField< ::tensorflow::OpDef_ArgDef >*
      mutable_input_arg();
  const ::google::protobuf::RepeatedPtrField< ::tensorflow::OpDef_ArgDef >&
      input_arg() const;

  // repeated .tensorflow.OpDef.ArgDef output_arg = 3;
  int output_arg_size() const;
  void clear_output_arg();
  static const int kOutputArgFieldNumber = 3;
  const ::tensorflow::OpDef_ArgDef& output_arg(int index) const;
  ::tensorflow::OpDef_ArgDef* mutable_output_arg(int index);
  ::tensorflow::OpDef_ArgDef* add_output_arg();
  ::google::protobuf::RepeatedPtrField< ::tensorflow::OpDef_ArgDef >*
      mutable_output_arg();
  const ::google::protobuf::RepeatedPtrField< ::tensorflow::OpDef_ArgDef >&
      output_arg() const;

  // repeated .tensorflow.OpDef.AttrDef attr = 4;
  int attr_size() const;
  void clear_attr();
  static const int kAttrFieldNumber = 4;
  const ::tensorflow::OpDef_AttrDef& attr(int index) const;
  ::tensorflow::OpDef_AttrDef* mutable_attr(int index);
  ::tensorflow::OpDef_AttrDef* add_attr();
  ::google::protobuf::RepeatedPtrField< ::tensorflow::OpDef_AttrDef >*
      mutable_attr();
  const ::google::protobuf::RepeatedPtrField< ::tensorflow::OpDef_AttrDef >&
      attr() const;

  // optional .tensorflow.OpDeprecation deprecation = 8;
  bool has_deprecation() const;
  void clear_deprecation();
  static const int kDeprecationFieldNumber = 8;
  private:
  void _slow_mutable_deprecation();
  void _slow_set_allocated_deprecation(
      ::google::protobuf::Arena* message_arena, ::tensorflow::OpDeprecation** deprecation);
  ::tensorflow::OpDeprecation* _slow_release_deprecation();
  public:
  const ::tensorflow::OpDeprecation& deprecation() const;
  ::tensorflow::OpDeprecation* mutable_deprecation();
  ::tensorflow::OpDeprecation* release_deprecation();
  void set_allocated_deprecation(::tensorflow::OpDeprecation* deprecation);
  ::tensorflow::OpDeprecation* unsafe_arena_release_deprecation();
  void unsafe_arena_set_allocated_deprecation(
      ::tensorflow::OpDeprecation* deprecation);

  // optional string summary = 5;
  void clear_summary();
  static const int kSummaryFieldNumber = 5;
  const ::std::string& summary() const;
  void set_summary(const ::std::string& value);
  void set_summary(const char* value);
  void set_summary(const char* value, size_t size);
  ::std::string* mutable_summary();
  ::std::string* release_summary();
  void set_allocated_summary(::std::string* summary);
  ::std::string* unsafe_arena_release_summary();
  void unsafe_arena_set_allocated_summary(
      ::std::string* summary);

  // optional string description = 6;
  void clear_description();
  static const int kDescriptionFieldNumber = 6;
  const ::std::string& description() const;
  void set_description(const ::std::string& value);
  void set_description(const char* value);
  void set_description(const char* value, size_t size);
  ::std::string* mutable_description();
  ::std::string* release_description();
  void set_allocated_description(::std::string* description);
  ::std::string* unsafe_arena_release_description();
  void unsafe_arena_set_allocated_description(
      ::std::string* description);

  // optional bool is_commutative = 18;
  void clear_is_commutative();
  static const int kIsCommutativeFieldNumber = 18;
  bool is_commutative() const;
  void set_is_commutative(bool value);

  // optional bool is_aggregate = 16;
  void clear_is_aggregate();
  static const int kIsAggregateFieldNumber = 16;
  bool is_aggregate() const;
  void set_is_aggregate(bool value);

  // optional bool is_stateful = 17;
  void clear_is_stateful();
  static const int kIsStatefulFieldNumber = 17;
  bool is_stateful() const;
  void set_is_stateful(bool value);

  // optional bool allows_uninitialized_input = 19;
  void clear_allows_uninitialized_input();
  static const int kAllowsUninitializedInputFieldNumber = 19;
  bool allows_uninitialized_input() const;
  void set_allows_uninitialized_input(bool value);

  // @@protoc_insertion_point(class_scope:tensorflow.OpDef)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  friend class ::google::protobuf::Arena;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::google::protobuf::RepeatedPtrField< ::tensorflow::OpDef_ArgDef > input_arg_;
  ::google::protobuf::RepeatedPtrField< ::tensorflow::OpDef_ArgDef > output_arg_;
  ::google::protobuf::RepeatedPtrField< ::tensorflow::OpDef_AttrDef > attr_;
  ::google::protobuf::internal::ArenaStringPtr name_;
  ::google::protobuf::internal::ArenaStringPtr summary_;
  ::google::protobuf::internal::ArenaStringPtr description_;
  ::tensorflow::OpDeprecation* deprecation_;
  bool is_commutative_;
  bool is_aggregate_;
  bool is_stateful_;
  bool allows_uninitialized_input_;
  mutable int _cached_size_;
  friend void  protobuf_InitDefaults_tensorflow_2fcore_2fframework_2fop_5fdef_2eproto_impl();
  friend void  protobuf_AddDesc_tensorflow_2fcore_2fframework_2fop_5fdef_2eproto_impl();
  friend void protobuf_AssignDesc_tensorflow_2fcore_2fframework_2fop_5fdef_2eproto();
  friend void protobuf_ShutdownFile_tensorflow_2fcore_2fframework_2fop_5fdef_2eproto();

  void InitAsDefaultInstance();
};
extern ::google::protobuf::internal::ExplicitlyConstructed<OpDef> OpDef_default_instance_;

// -------------------------------------------------------------------

class OpDeprecation : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:tensorflow.OpDeprecation) */ {
 public:
  OpDeprecation();
  virtual ~OpDeprecation();

  OpDeprecation(const OpDeprecation& from);

  inline OpDeprecation& operator=(const OpDeprecation& from) {
    CopyFrom(from);
    return *this;
  }

  inline ::google::protobuf::Arena* GetArena() const { return GetArenaNoVirtual(); }
  inline void* GetMaybeArenaPointer() const {
    return MaybeArenaPtr();
  }
  static const ::google::protobuf::Descriptor* descriptor();
  static const OpDeprecation& default_instance();

  static const OpDeprecation* internal_default_instance();

  void UnsafeArenaSwap(OpDeprecation* other);
  void Swap(OpDeprecation* other);

  // implements Message ----------------------------------------------

  inline OpDeprecation* New() const { return New(NULL); }

  OpDeprecation* New(::google::protobuf::Arena* arena) const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const OpDeprecation& from);
  void MergeFrom(const OpDeprecation& from);
  void Clear();
  bool IsInitialized() const;

  size_t ByteSizeLong() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const {
    return InternalSerializeWithCachedSizesToArray(false, output);
  }
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(OpDeprecation* other);
  void UnsafeMergeFrom(const OpDeprecation& from);
  protected:
  explicit OpDeprecation(::google::protobuf::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::google::protobuf::Arena* arena);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return _internal_metadata_.arena();
  }
  inline void* MaybeArenaPtr() const {
    return _internal_metadata_.raw_arena_ptr();
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional int32 version = 1;
  void clear_version();
  static const int kVersionFieldNumber = 1;
  ::google::protobuf::int32 version() const;
  void set_version(::google::protobuf::int32 value);

  // optional string explanation = 2;
  void clear_explanation();
  static const int kExplanationFieldNumber = 2;
  const ::std::string& explanation() const;
  void set_explanation(const ::std::string& value);
  void set_explanation(const char* value);
  void set_explanation(const char* value, size_t size);
  ::std::string* mutable_explanation();
  ::std::string* release_explanation();
  void set_allocated_explanation(::std::string* explanation);
  ::std::string* unsafe_arena_release_explanation();
  void unsafe_arena_set_allocated_explanation(
      ::std::string* explanation);

  // @@protoc_insertion_point(class_scope:tensorflow.OpDeprecation)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  friend class ::google::protobuf::Arena;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::google::protobuf::internal::ArenaStringPtr explanation_;
  ::google::protobuf::int32 version_;
  mutable int _cached_size_;
  friend void  protobuf_InitDefaults_tensorflow_2fcore_2fframework_2fop_5fdef_2eproto_impl();
  friend void  protobuf_AddDesc_tensorflow_2fcore_2fframework_2fop_5fdef_2eproto_impl();
  friend void protobuf_AssignDesc_tensorflow_2fcore_2fframework_2fop_5fdef_2eproto();
  friend void protobuf_ShutdownFile_tensorflow_2fcore_2fframework_2fop_5fdef_2eproto();

  void InitAsDefaultInstance();
};
extern ::google::protobuf::internal::ExplicitlyConstructed<OpDeprecation> OpDeprecation_default_instance_;

// -------------------------------------------------------------------

class OpList : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:tensorflow.OpList) */ {
 public:
  OpList();
  virtual ~OpList();

  OpList(const OpList& from);

  inline OpList& operator=(const OpList& from) {
    CopyFrom(from);
    return *this;
  }

  inline ::google::protobuf::Arena* GetArena() const { return GetArenaNoVirtual(); }
  inline void* GetMaybeArenaPointer() const {
    return MaybeArenaPtr();
  }
  static const ::google::protobuf::Descriptor* descriptor();
  static const OpList& default_instance();

  static const OpList* internal_default_instance();

  void UnsafeArenaSwap(OpList* other);
  void Swap(OpList* other);

  // implements Message ----------------------------------------------

  inline OpList* New() const { return New(NULL); }

  OpList* New(::google::protobuf::Arena* arena) const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const OpList& from);
  void MergeFrom(const OpList& from);
  void Clear();
  bool IsInitialized() const;

  size_t ByteSizeLong() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const {
    return InternalSerializeWithCachedSizesToArray(false, output);
  }
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(OpList* other);
  void UnsafeMergeFrom(const OpList& from);
  protected:
  explicit OpList(::google::protobuf::Arena* arena);
  private:
  static void ArenaDtor(void* object);
  inline void RegisterArenaDtor(::google::protobuf::Arena* arena);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return _internal_metadata_.arena();
  }
  inline void* MaybeArenaPtr() const {
    return _internal_metadata_.raw_arena_ptr();
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // repeated .tensorflow.OpDef op = 1;
  int op_size() const;
  void clear_op();
  static const int kOpFieldNumber = 1;
  const ::tensorflow::OpDef& op(int index) const;
  ::tensorflow::OpDef* mutable_op(int index);
  ::tensorflow::OpDef* add_op();
  ::google::protobuf::RepeatedPtrField< ::tensorflow::OpDef >*
      mutable_op();
  const ::google::protobuf::RepeatedPtrField< ::tensorflow::OpDef >&
      op() const;

  // @@protoc_insertion_point(class_scope:tensorflow.OpList)
 private:

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  friend class ::google::protobuf::Arena;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  ::google::protobuf::RepeatedPtrField< ::tensorflow::OpDef > op_;
  mutable int _cached_size_;
  friend void  protobuf_InitDefaults_tensorflow_2fcore_2fframework_2fop_5fdef_2eproto_impl();
  friend void  protobuf_AddDesc_tensorflow_2fcore_2fframework_2fop_5fdef_2eproto_impl();
  friend void protobuf_AssignDesc_tensorflow_2fcore_2fframework_2fop_5fdef_2eproto();
  friend void protobuf_ShutdownFile_tensorflow_2fcore_2fframework_2fop_5fdef_2eproto();

  void InitAsDefaultInstance();
};
extern ::google::protobuf::internal::ExplicitlyConstructed<OpList> OpList_default_instance_;

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


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

#if !PROTOBUF_INLINE_NOT_IN_HEADERS
// OpDef_ArgDef

// optional string name = 1;
inline void OpDef_ArgDef::clear_name() {
  name_.ClearToEmpty(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual());
}
inline const ::std::string& OpDef_ArgDef::name() const {
  // @@protoc_insertion_point(field_get:tensorflow.OpDef.ArgDef.name)
  return name_.Get(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void OpDef_ArgDef::set_name(const ::std::string& value) {
  
  name_.Set(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value, GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set:tensorflow.OpDef.ArgDef.name)
}
inline void OpDef_ArgDef::set_name(const char* value) {
  
  name_.Set(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_char:tensorflow.OpDef.ArgDef.name)
}
inline void OpDef_ArgDef::set_name(const char* value,
    size_t size) {
  
  name_.Set(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size), GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_pointer:tensorflow.OpDef.ArgDef.name)
}
inline ::std::string* OpDef_ArgDef::mutable_name() {
  
  // @@protoc_insertion_point(field_mutable:tensorflow.OpDef.ArgDef.name)
  return name_.Mutable(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual());
}
inline ::std::string* OpDef_ArgDef::release_name() {
  // @@protoc_insertion_point(field_release:tensorflow.OpDef.ArgDef.name)
  
  return name_.Release(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual());
}
inline ::std::string* OpDef_ArgDef::unsafe_arena_release_name() {
  // @@protoc_insertion_point(field_unsafe_arena_release:tensorflow.OpDef.ArgDef.name)
  GOOGLE_DCHECK(GetArenaNoVirtual() != NULL);
  
  return name_.UnsafeArenaRelease(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      GetArenaNoVirtual());
}
inline void OpDef_ArgDef::set_allocated_name(::std::string* name) {
  if (name != NULL) {
    
  } else {
    
  }
  name_.SetAllocated(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), name,
      GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_allocated:tensorflow.OpDef.ArgDef.name)
}
inline void OpDef_ArgDef::unsafe_arena_set_allocated_name(
    ::std::string* name) {
  GOOGLE_DCHECK(GetArenaNoVirtual() != NULL);
  if (name != NULL) {
    
  } else {
    
  }
  name_.UnsafeArenaSetAllocated(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      name, GetArenaNoVirtual());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:tensorflow.OpDef.ArgDef.name)
}

// optional string description = 2;
inline void OpDef_ArgDef::clear_description() {
  description_.ClearToEmpty(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual());
}
inline const ::std::string& OpDef_ArgDef::description() const {
  // @@protoc_insertion_point(field_get:tensorflow.OpDef.ArgDef.description)
  return description_.Get(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void OpDef_ArgDef::set_description(const ::std::string& value) {
  
  description_.Set(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value, GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set:tensorflow.OpDef.ArgDef.description)
}
inline void OpDef_ArgDef::set_description(const char* value) {
  
  description_.Set(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_char:tensorflow.OpDef.ArgDef.description)
}
inline void OpDef_ArgDef::set_description(const char* value,
    size_t size) {
  
  description_.Set(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size), GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_pointer:tensorflow.OpDef.ArgDef.description)
}
inline ::std::string* OpDef_ArgDef::mutable_description() {
  
  // @@protoc_insertion_point(field_mutable:tensorflow.OpDef.ArgDef.description)
  return description_.Mutable(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual());
}
inline ::std::string* OpDef_ArgDef::release_description() {
  // @@protoc_insertion_point(field_release:tensorflow.OpDef.ArgDef.description)
  
  return description_.Release(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual());
}
inline ::std::string* OpDef_ArgDef::unsafe_arena_release_description() {
  // @@protoc_insertion_point(field_unsafe_arena_release:tensorflow.OpDef.ArgDef.description)
  GOOGLE_DCHECK(GetArenaNoVirtual() != NULL);
  
  return description_.UnsafeArenaRelease(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      GetArenaNoVirtual());
}
inline void OpDef_ArgDef::set_allocated_description(::std::string* description) {
  if (description != NULL) {
    
  } else {
    
  }
  description_.SetAllocated(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), description,
      GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_allocated:tensorflow.OpDef.ArgDef.description)
}
inline void OpDef_ArgDef::unsafe_arena_set_allocated_description(
    ::std::string* description) {
  GOOGLE_DCHECK(GetArenaNoVirtual() != NULL);
  if (description != NULL) {
    
  } else {
    
  }
  description_.UnsafeArenaSetAllocated(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      description, GetArenaNoVirtual());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:tensorflow.OpDef.ArgDef.description)
}

// optional .tensorflow.DataType type = 3;
inline void OpDef_ArgDef::clear_type() {
  type_ = 0;
}
inline ::tensorflow::DataType OpDef_ArgDef::type() const {
  // @@protoc_insertion_point(field_get:tensorflow.OpDef.ArgDef.type)
  return static_cast< ::tensorflow::DataType >(type_);
}
inline void OpDef_ArgDef::set_type(::tensorflow::DataType value) {
  
  type_ = value;
  // @@protoc_insertion_point(field_set:tensorflow.OpDef.ArgDef.type)
}

// optional string type_attr = 4;
inline void OpDef_ArgDef::clear_type_attr() {
  type_attr_.ClearToEmpty(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual());
}
inline const ::std::string& OpDef_ArgDef::type_attr() const {
  // @@protoc_insertion_point(field_get:tensorflow.OpDef.ArgDef.type_attr)
  return type_attr_.Get(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void OpDef_ArgDef::set_type_attr(const ::std::string& value) {
  
  type_attr_.Set(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value, GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set:tensorflow.OpDef.ArgDef.type_attr)
}
inline void OpDef_ArgDef::set_type_attr(const char* value) {
  
  type_attr_.Set(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_char:tensorflow.OpDef.ArgDef.type_attr)
}
inline void OpDef_ArgDef::set_type_attr(const char* value,
    size_t size) {
  
  type_attr_.Set(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size), GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_pointer:tensorflow.OpDef.ArgDef.type_attr)
}
inline ::std::string* OpDef_ArgDef::mutable_type_attr() {
  
  // @@protoc_insertion_point(field_mutable:tensorflow.OpDef.ArgDef.type_attr)
  return type_attr_.Mutable(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual());
}
inline ::std::string* OpDef_ArgDef::release_type_attr() {
  // @@protoc_insertion_point(field_release:tensorflow.OpDef.ArgDef.type_attr)
  
  return type_attr_.Release(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual());
}
inline ::std::string* OpDef_ArgDef::unsafe_arena_release_type_attr() {
  // @@protoc_insertion_point(field_unsafe_arena_release:tensorflow.OpDef.ArgDef.type_attr)
  GOOGLE_DCHECK(GetArenaNoVirtual() != NULL);
  
  return type_attr_.UnsafeArenaRelease(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      GetArenaNoVirtual());
}
inline void OpDef_ArgDef::set_allocated_type_attr(::std::string* type_attr) {
  if (type_attr != NULL) {
    
  } else {
    
  }
  type_attr_.SetAllocated(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), type_attr,
      GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_allocated:tensorflow.OpDef.ArgDef.type_attr)
}
inline void OpDef_ArgDef::unsafe_arena_set_allocated_type_attr(
    ::std::string* type_attr) {
  GOOGLE_DCHECK(GetArenaNoVirtual() != NULL);
  if (type_attr != NULL) {
    
  } else {
    
  }
  type_attr_.UnsafeArenaSetAllocated(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      type_attr, GetArenaNoVirtual());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:tensorflow.OpDef.ArgDef.type_attr)
}

// optional string number_attr = 5;
inline void OpDef_ArgDef::clear_number_attr() {
  number_attr_.ClearToEmpty(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual());
}
inline const ::std::string& OpDef_ArgDef::number_attr() const {
  // @@protoc_insertion_point(field_get:tensorflow.OpDef.ArgDef.number_attr)
  return number_attr_.Get(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void OpDef_ArgDef::set_number_attr(const ::std::string& value) {
  
  number_attr_.Set(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value, GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set:tensorflow.OpDef.ArgDef.number_attr)
}
inline void OpDef_ArgDef::set_number_attr(const char* value) {
  
  number_attr_.Set(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_char:tensorflow.OpDef.ArgDef.number_attr)
}
inline void OpDef_ArgDef::set_number_attr(const char* value,
    size_t size) {
  
  number_attr_.Set(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size), GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_pointer:tensorflow.OpDef.ArgDef.number_attr)
}
inline ::std::string* OpDef_ArgDef::mutable_number_attr() {
  
  // @@protoc_insertion_point(field_mutable:tensorflow.OpDef.ArgDef.number_attr)
  return number_attr_.Mutable(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual());
}
inline ::std::string* OpDef_ArgDef::release_number_attr() {
  // @@protoc_insertion_point(field_release:tensorflow.OpDef.ArgDef.number_attr)
  
  return number_attr_.Release(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual());
}
inline ::std::string* OpDef_ArgDef::unsafe_arena_release_number_attr() {
  // @@protoc_insertion_point(field_unsafe_arena_release:tensorflow.OpDef.ArgDef.number_attr)
  GOOGLE_DCHECK(GetArenaNoVirtual() != NULL);
  
  return number_attr_.UnsafeArenaRelease(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      GetArenaNoVirtual());
}
inline void OpDef_ArgDef::set_allocated_number_attr(::std::string* number_attr) {
  if (number_attr != NULL) {
    
  } else {
    
  }
  number_attr_.SetAllocated(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), number_attr,
      GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_allocated:tensorflow.OpDef.ArgDef.number_attr)
}
inline void OpDef_ArgDef::unsafe_arena_set_allocated_number_attr(
    ::std::string* number_attr) {
  GOOGLE_DCHECK(GetArenaNoVirtual() != NULL);
  if (number_attr != NULL) {
    
  } else {
    
  }
  number_attr_.UnsafeArenaSetAllocated(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      number_attr, GetArenaNoVirtual());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:tensorflow.OpDef.ArgDef.number_attr)
}

// optional string type_list_attr = 6;
inline void OpDef_ArgDef::clear_type_list_attr() {
  type_list_attr_.ClearToEmpty(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual());
}
inline const ::std::string& OpDef_ArgDef::type_list_attr() const {
  // @@protoc_insertion_point(field_get:tensorflow.OpDef.ArgDef.type_list_attr)
  return type_list_attr_.Get(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void OpDef_ArgDef::set_type_list_attr(const ::std::string& value) {
  
  type_list_attr_.Set(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value, GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set:tensorflow.OpDef.ArgDef.type_list_attr)
}
inline void OpDef_ArgDef::set_type_list_attr(const char* value) {
  
  type_list_attr_.Set(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_char:tensorflow.OpDef.ArgDef.type_list_attr)
}
inline void OpDef_ArgDef::set_type_list_attr(const char* value,
    size_t size) {
  
  type_list_attr_.Set(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size), GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_pointer:tensorflow.OpDef.ArgDef.type_list_attr)
}
inline ::std::string* OpDef_ArgDef::mutable_type_list_attr() {
  
  // @@protoc_insertion_point(field_mutable:tensorflow.OpDef.ArgDef.type_list_attr)
  return type_list_attr_.Mutable(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual());
}
inline ::std::string* OpDef_ArgDef::release_type_list_attr() {
  // @@protoc_insertion_point(field_release:tensorflow.OpDef.ArgDef.type_list_attr)
  
  return type_list_attr_.Release(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual());
}
inline ::std::string* OpDef_ArgDef::unsafe_arena_release_type_list_attr() {
  // @@protoc_insertion_point(field_unsafe_arena_release:tensorflow.OpDef.ArgDef.type_list_attr)
  GOOGLE_DCHECK(GetArenaNoVirtual() != NULL);
  
  return type_list_attr_.UnsafeArenaRelease(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      GetArenaNoVirtual());
}
inline void OpDef_ArgDef::set_allocated_type_list_attr(::std::string* type_list_attr) {
  if (type_list_attr != NULL) {
    
  } else {
    
  }
  type_list_attr_.SetAllocated(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), type_list_attr,
      GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_allocated:tensorflow.OpDef.ArgDef.type_list_attr)
}
inline void OpDef_ArgDef::unsafe_arena_set_allocated_type_list_attr(
    ::std::string* type_list_attr) {
  GOOGLE_DCHECK(GetArenaNoVirtual() != NULL);
  if (type_list_attr != NULL) {
    
  } else {
    
  }
  type_list_attr_.UnsafeArenaSetAllocated(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      type_list_attr, GetArenaNoVirtual());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:tensorflow.OpDef.ArgDef.type_list_attr)
}

// optional bool is_ref = 16;
inline void OpDef_ArgDef::clear_is_ref() {
  is_ref_ = false;
}
inline bool OpDef_ArgDef::is_ref() const {
  // @@protoc_insertion_point(field_get:tensorflow.OpDef.ArgDef.is_ref)
  return is_ref_;
}
inline void OpDef_ArgDef::set_is_ref(bool value) {
  
  is_ref_ = value;
  // @@protoc_insertion_point(field_set:tensorflow.OpDef.ArgDef.is_ref)
}

inline const OpDef_ArgDef* OpDef_ArgDef::internal_default_instance() {
  return &OpDef_ArgDef_default_instance_.get();
}
// -------------------------------------------------------------------

// OpDef_AttrDef

// optional string name = 1;
inline void OpDef_AttrDef::clear_name() {
  name_.ClearToEmpty(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual());
}
inline const ::std::string& OpDef_AttrDef::name() const {
  // @@protoc_insertion_point(field_get:tensorflow.OpDef.AttrDef.name)
  return name_.Get(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void OpDef_AttrDef::set_name(const ::std::string& value) {
  
  name_.Set(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value, GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set:tensorflow.OpDef.AttrDef.name)
}
inline void OpDef_AttrDef::set_name(const char* value) {
  
  name_.Set(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_char:tensorflow.OpDef.AttrDef.name)
}
inline void OpDef_AttrDef::set_name(const char* value,
    size_t size) {
  
  name_.Set(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size), GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_pointer:tensorflow.OpDef.AttrDef.name)
}
inline ::std::string* OpDef_AttrDef::mutable_name() {
  
  // @@protoc_insertion_point(field_mutable:tensorflow.OpDef.AttrDef.name)
  return name_.Mutable(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual());
}
inline ::std::string* OpDef_AttrDef::release_name() {
  // @@protoc_insertion_point(field_release:tensorflow.OpDef.AttrDef.name)
  
  return name_.Release(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual());
}
inline ::std::string* OpDef_AttrDef::unsafe_arena_release_name() {
  // @@protoc_insertion_point(field_unsafe_arena_release:tensorflow.OpDef.AttrDef.name)
  GOOGLE_DCHECK(GetArenaNoVirtual() != NULL);
  
  return name_.UnsafeArenaRelease(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      GetArenaNoVirtual());
}
inline void OpDef_AttrDef::set_allocated_name(::std::string* name) {
  if (name != NULL) {
    
  } else {
    
  }
  name_.SetAllocated(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), name,
      GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_allocated:tensorflow.OpDef.AttrDef.name)
}
inline void OpDef_AttrDef::unsafe_arena_set_allocated_name(
    ::std::string* name) {
  GOOGLE_DCHECK(GetArenaNoVirtual() != NULL);
  if (name != NULL) {
    
  } else {
    
  }
  name_.UnsafeArenaSetAllocated(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      name, GetArenaNoVirtual());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:tensorflow.OpDef.AttrDef.name)
}

// optional string type = 2;
inline void OpDef_AttrDef::clear_type() {
  type_.ClearToEmpty(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual());
}
inline const ::std::string& OpDef_AttrDef::type() const {
  // @@protoc_insertion_point(field_get:tensorflow.OpDef.AttrDef.type)
  return type_.Get(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void OpDef_AttrDef::set_type(const ::std::string& value) {
  
  type_.Set(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value, GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set:tensorflow.OpDef.AttrDef.type)
}
inline void OpDef_AttrDef::set_type(const char* value) {
  
  type_.Set(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_char:tensorflow.OpDef.AttrDef.type)
}
inline void OpDef_AttrDef::set_type(const char* value,
    size_t size) {
  
  type_.Set(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size), GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_pointer:tensorflow.OpDef.AttrDef.type)
}
inline ::std::string* OpDef_AttrDef::mutable_type() {
  
  // @@protoc_insertion_point(field_mutable:tensorflow.OpDef.AttrDef.type)
  return type_.Mutable(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual());
}
inline ::std::string* OpDef_AttrDef::release_type() {
  // @@protoc_insertion_point(field_release:tensorflow.OpDef.AttrDef.type)
  
  return type_.Release(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual());
}
inline ::std::string* OpDef_AttrDef::unsafe_arena_release_type() {
  // @@protoc_insertion_point(field_unsafe_arena_release:tensorflow.OpDef.AttrDef.type)
  GOOGLE_DCHECK(GetArenaNoVirtual() != NULL);
  
  return type_.UnsafeArenaRelease(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      GetArenaNoVirtual());
}
inline void OpDef_AttrDef::set_allocated_type(::std::string* type) {
  if (type != NULL) {
    
  } else {
    
  }
  type_.SetAllocated(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), type,
      GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_allocated:tensorflow.OpDef.AttrDef.type)
}
inline void OpDef_AttrDef::unsafe_arena_set_allocated_type(
    ::std::string* type) {
  GOOGLE_DCHECK(GetArenaNoVirtual() != NULL);
  if (type != NULL) {
    
  } else {
    
  }
  type_.UnsafeArenaSetAllocated(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      type, GetArenaNoVirtual());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:tensorflow.OpDef.AttrDef.type)
}

// optional .tensorflow.AttrValue default_value = 3;
inline bool OpDef_AttrDef::has_default_value() const {
  return this != internal_default_instance() && default_value_ != NULL;
}
inline void OpDef_AttrDef::clear_default_value() {
  if (GetArenaNoVirtual() == NULL && default_value_ != NULL) delete default_value_;
  default_value_ = NULL;
}
inline const ::tensorflow::AttrValue& OpDef_AttrDef::default_value() const {
  // @@protoc_insertion_point(field_get:tensorflow.OpDef.AttrDef.default_value)
  return default_value_ != NULL ? *default_value_
                         : *::tensorflow::AttrValue::internal_default_instance();
}
inline ::tensorflow::AttrValue* OpDef_AttrDef::mutable_default_value() {
  
  if (default_value_ == NULL) {
    _slow_mutable_default_value();
  }
  // @@protoc_insertion_point(field_mutable:tensorflow.OpDef.AttrDef.default_value)
  return default_value_;
}
inline ::tensorflow::AttrValue* OpDef_AttrDef::release_default_value() {
  // @@protoc_insertion_point(field_release:tensorflow.OpDef.AttrDef.default_value)
  
  if (GetArenaNoVirtual() != NULL) {
    return _slow_release_default_value();
  } else {
    ::tensorflow::AttrValue* temp = default_value_;
    default_value_ = NULL;
    return temp;
  }
}
inline  void OpDef_AttrDef::set_allocated_default_value(::tensorflow::AttrValue* default_value) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete default_value_;
  }
  if (default_value != NULL) {
    _slow_set_allocated_default_value(message_arena, &default_value);
  }
  default_value_ = default_value;
  if (default_value) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_set_allocated:tensorflow.OpDef.AttrDef.default_value)
}

// optional string description = 4;
inline void OpDef_AttrDef::clear_description() {
  description_.ClearToEmpty(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual());
}
inline const ::std::string& OpDef_AttrDef::description() const {
  // @@protoc_insertion_point(field_get:tensorflow.OpDef.AttrDef.description)
  return description_.Get(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void OpDef_AttrDef::set_description(const ::std::string& value) {
  
  description_.Set(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value, GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set:tensorflow.OpDef.AttrDef.description)
}
inline void OpDef_AttrDef::set_description(const char* value) {
  
  description_.Set(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_char:tensorflow.OpDef.AttrDef.description)
}
inline void OpDef_AttrDef::set_description(const char* value,
    size_t size) {
  
  description_.Set(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size), GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_pointer:tensorflow.OpDef.AttrDef.description)
}
inline ::std::string* OpDef_AttrDef::mutable_description() {
  
  // @@protoc_insertion_point(field_mutable:tensorflow.OpDef.AttrDef.description)
  return description_.Mutable(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual());
}
inline ::std::string* OpDef_AttrDef::release_description() {
  // @@protoc_insertion_point(field_release:tensorflow.OpDef.AttrDef.description)
  
  return description_.Release(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual());
}
inline ::std::string* OpDef_AttrDef::unsafe_arena_release_description() {
  // @@protoc_insertion_point(field_unsafe_arena_release:tensorflow.OpDef.AttrDef.description)
  GOOGLE_DCHECK(GetArenaNoVirtual() != NULL);
  
  return description_.UnsafeArenaRelease(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      GetArenaNoVirtual());
}
inline void OpDef_AttrDef::set_allocated_description(::std::string* description) {
  if (description != NULL) {
    
  } else {
    
  }
  description_.SetAllocated(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), description,
      GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_allocated:tensorflow.OpDef.AttrDef.description)
}
inline void OpDef_AttrDef::unsafe_arena_set_allocated_description(
    ::std::string* description) {
  GOOGLE_DCHECK(GetArenaNoVirtual() != NULL);
  if (description != NULL) {
    
  } else {
    
  }
  description_.UnsafeArenaSetAllocated(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      description, GetArenaNoVirtual());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:tensorflow.OpDef.AttrDef.description)
}

// optional bool has_minimum = 5;
inline void OpDef_AttrDef::clear_has_minimum() {
  has_minimum_ = false;
}
inline bool OpDef_AttrDef::has_minimum() const {
  // @@protoc_insertion_point(field_get:tensorflow.OpDef.AttrDef.has_minimum)
  return has_minimum_;
}
inline void OpDef_AttrDef::set_has_minimum(bool value) {
  
  has_minimum_ = value;
  // @@protoc_insertion_point(field_set:tensorflow.OpDef.AttrDef.has_minimum)
}

// optional int64 minimum = 6;
inline void OpDef_AttrDef::clear_minimum() {
  minimum_ = GOOGLE_LONGLONG(0);
}
inline ::google::protobuf::int64 OpDef_AttrDef::minimum() const {
  // @@protoc_insertion_point(field_get:tensorflow.OpDef.AttrDef.minimum)
  return minimum_;
}
inline void OpDef_AttrDef::set_minimum(::google::protobuf::int64 value) {
  
  minimum_ = value;
  // @@protoc_insertion_point(field_set:tensorflow.OpDef.AttrDef.minimum)
}

// optional .tensorflow.AttrValue allowed_values = 7;
inline bool OpDef_AttrDef::has_allowed_values() const {
  return this != internal_default_instance() && allowed_values_ != NULL;
}
inline void OpDef_AttrDef::clear_allowed_values() {
  if (GetArenaNoVirtual() == NULL && allowed_values_ != NULL) delete allowed_values_;
  allowed_values_ = NULL;
}
inline const ::tensorflow::AttrValue& OpDef_AttrDef::allowed_values() const {
  // @@protoc_insertion_point(field_get:tensorflow.OpDef.AttrDef.allowed_values)
  return allowed_values_ != NULL ? *allowed_values_
                         : *::tensorflow::AttrValue::internal_default_instance();
}
inline ::tensorflow::AttrValue* OpDef_AttrDef::mutable_allowed_values() {
  
  if (allowed_values_ == NULL) {
    _slow_mutable_allowed_values();
  }
  // @@protoc_insertion_point(field_mutable:tensorflow.OpDef.AttrDef.allowed_values)
  return allowed_values_;
}
inline ::tensorflow::AttrValue* OpDef_AttrDef::release_allowed_values() {
  // @@protoc_insertion_point(field_release:tensorflow.OpDef.AttrDef.allowed_values)
  
  if (GetArenaNoVirtual() != NULL) {
    return _slow_release_allowed_values();
  } else {
    ::tensorflow::AttrValue* temp = allowed_values_;
    allowed_values_ = NULL;
    return temp;
  }
}
inline  void OpDef_AttrDef::set_allocated_allowed_values(::tensorflow::AttrValue* allowed_values) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete allowed_values_;
  }
  if (allowed_values != NULL) {
    _slow_set_allocated_allowed_values(message_arena, &allowed_values);
  }
  allowed_values_ = allowed_values;
  if (allowed_values) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_set_allocated:tensorflow.OpDef.AttrDef.allowed_values)
}

inline const OpDef_AttrDef* OpDef_AttrDef::internal_default_instance() {
  return &OpDef_AttrDef_default_instance_.get();
}
// -------------------------------------------------------------------

// OpDef

// optional string name = 1;
inline void OpDef::clear_name() {
  name_.ClearToEmpty(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual());
}
inline const ::std::string& OpDef::name() const {
  // @@protoc_insertion_point(field_get:tensorflow.OpDef.name)
  return name_.Get(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void OpDef::set_name(const ::std::string& value) {
  
  name_.Set(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value, GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set:tensorflow.OpDef.name)
}
inline void OpDef::set_name(const char* value) {
  
  name_.Set(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_char:tensorflow.OpDef.name)
}
inline void OpDef::set_name(const char* value,
    size_t size) {
  
  name_.Set(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size), GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_pointer:tensorflow.OpDef.name)
}
inline ::std::string* OpDef::mutable_name() {
  
  // @@protoc_insertion_point(field_mutable:tensorflow.OpDef.name)
  return name_.Mutable(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual());
}
inline ::std::string* OpDef::release_name() {
  // @@protoc_insertion_point(field_release:tensorflow.OpDef.name)
  
  return name_.Release(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual());
}
inline ::std::string* OpDef::unsafe_arena_release_name() {
  // @@protoc_insertion_point(field_unsafe_arena_release:tensorflow.OpDef.name)
  GOOGLE_DCHECK(GetArenaNoVirtual() != NULL);
  
  return name_.UnsafeArenaRelease(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      GetArenaNoVirtual());
}
inline void OpDef::set_allocated_name(::std::string* name) {
  if (name != NULL) {
    
  } else {
    
  }
  name_.SetAllocated(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), name,
      GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_allocated:tensorflow.OpDef.name)
}
inline void OpDef::unsafe_arena_set_allocated_name(
    ::std::string* name) {
  GOOGLE_DCHECK(GetArenaNoVirtual() != NULL);
  if (name != NULL) {
    
  } else {
    
  }
  name_.UnsafeArenaSetAllocated(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      name, GetArenaNoVirtual());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:tensorflow.OpDef.name)
}

// repeated .tensorflow.OpDef.ArgDef input_arg = 2;
inline int OpDef::input_arg_size() const {
  return input_arg_.size();
}
inline void OpDef::clear_input_arg() {
  input_arg_.Clear();
}
inline const ::tensorflow::OpDef_ArgDef& OpDef::input_arg(int index) const {
  // @@protoc_insertion_point(field_get:tensorflow.OpDef.input_arg)
  return input_arg_.Get(index);
}
inline ::tensorflow::OpDef_ArgDef* OpDef::mutable_input_arg(int index) {
  // @@protoc_insertion_point(field_mutable:tensorflow.OpDef.input_arg)
  return input_arg_.Mutable(index);
}
inline ::tensorflow::OpDef_ArgDef* OpDef::add_input_arg() {
  // @@protoc_insertion_point(field_add:tensorflow.OpDef.input_arg)
  return input_arg_.Add();
}
inline ::google::protobuf::RepeatedPtrField< ::tensorflow::OpDef_ArgDef >*
OpDef::mutable_input_arg() {
  // @@protoc_insertion_point(field_mutable_list:tensorflow.OpDef.input_arg)
  return &input_arg_;
}
inline const ::google::protobuf::RepeatedPtrField< ::tensorflow::OpDef_ArgDef >&
OpDef::input_arg() const {
  // @@protoc_insertion_point(field_list:tensorflow.OpDef.input_arg)
  return input_arg_;
}

// repeated .tensorflow.OpDef.ArgDef output_arg = 3;
inline int OpDef::output_arg_size() const {
  return output_arg_.size();
}
inline void OpDef::clear_output_arg() {
  output_arg_.Clear();
}
inline const ::tensorflow::OpDef_ArgDef& OpDef::output_arg(int index) const {
  // @@protoc_insertion_point(field_get:tensorflow.OpDef.output_arg)
  return output_arg_.Get(index);
}
inline ::tensorflow::OpDef_ArgDef* OpDef::mutable_output_arg(int index) {
  // @@protoc_insertion_point(field_mutable:tensorflow.OpDef.output_arg)
  return output_arg_.Mutable(index);
}
inline ::tensorflow::OpDef_ArgDef* OpDef::add_output_arg() {
  // @@protoc_insertion_point(field_add:tensorflow.OpDef.output_arg)
  return output_arg_.Add();
}
inline ::google::protobuf::RepeatedPtrField< ::tensorflow::OpDef_ArgDef >*
OpDef::mutable_output_arg() {
  // @@protoc_insertion_point(field_mutable_list:tensorflow.OpDef.output_arg)
  return &output_arg_;
}
inline const ::google::protobuf::RepeatedPtrField< ::tensorflow::OpDef_ArgDef >&
OpDef::output_arg() const {
  // @@protoc_insertion_point(field_list:tensorflow.OpDef.output_arg)
  return output_arg_;
}

// repeated .tensorflow.OpDef.AttrDef attr = 4;
inline int OpDef::attr_size() const {
  return attr_.size();
}
inline void OpDef::clear_attr() {
  attr_.Clear();
}
inline const ::tensorflow::OpDef_AttrDef& OpDef::attr(int index) const {
  // @@protoc_insertion_point(field_get:tensorflow.OpDef.attr)
  return attr_.Get(index);
}
inline ::tensorflow::OpDef_AttrDef* OpDef::mutable_attr(int index) {
  // @@protoc_insertion_point(field_mutable:tensorflow.OpDef.attr)
  return attr_.Mutable(index);
}
inline ::tensorflow::OpDef_AttrDef* OpDef::add_attr() {
  // @@protoc_insertion_point(field_add:tensorflow.OpDef.attr)
  return attr_.Add();
}
inline ::google::protobuf::RepeatedPtrField< ::tensorflow::OpDef_AttrDef >*
OpDef::mutable_attr() {
  // @@protoc_insertion_point(field_mutable_list:tensorflow.OpDef.attr)
  return &attr_;
}
inline const ::google::protobuf::RepeatedPtrField< ::tensorflow::OpDef_AttrDef >&
OpDef::attr() const {
  // @@protoc_insertion_point(field_list:tensorflow.OpDef.attr)
  return attr_;
}

// optional .tensorflow.OpDeprecation deprecation = 8;
inline bool OpDef::has_deprecation() const {
  return this != internal_default_instance() && deprecation_ != NULL;
}
inline void OpDef::clear_deprecation() {
  if (GetArenaNoVirtual() == NULL && deprecation_ != NULL) delete deprecation_;
  deprecation_ = NULL;
}
inline const ::tensorflow::OpDeprecation& OpDef::deprecation() const {
  // @@protoc_insertion_point(field_get:tensorflow.OpDef.deprecation)
  return deprecation_ != NULL ? *deprecation_
                         : *::tensorflow::OpDeprecation::internal_default_instance();
}
inline ::tensorflow::OpDeprecation* OpDef::mutable_deprecation() {
  
  if (deprecation_ == NULL) {
    _slow_mutable_deprecation();
  }
  // @@protoc_insertion_point(field_mutable:tensorflow.OpDef.deprecation)
  return deprecation_;
}
inline ::tensorflow::OpDeprecation* OpDef::release_deprecation() {
  // @@protoc_insertion_point(field_release:tensorflow.OpDef.deprecation)
  
  if (GetArenaNoVirtual() != NULL) {
    return _slow_release_deprecation();
  } else {
    ::tensorflow::OpDeprecation* temp = deprecation_;
    deprecation_ = NULL;
    return temp;
  }
}
inline  void OpDef::set_allocated_deprecation(::tensorflow::OpDeprecation* deprecation) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete deprecation_;
  }
  if (deprecation != NULL) {
    _slow_set_allocated_deprecation(message_arena, &deprecation);
  }
  deprecation_ = deprecation;
  if (deprecation) {
    
  } else {
    
  }
  // @@protoc_insertion_point(field_set_allocated:tensorflow.OpDef.deprecation)
}

// optional string summary = 5;
inline void OpDef::clear_summary() {
  summary_.ClearToEmpty(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual());
}
inline const ::std::string& OpDef::summary() const {
  // @@protoc_insertion_point(field_get:tensorflow.OpDef.summary)
  return summary_.Get(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void OpDef::set_summary(const ::std::string& value) {
  
  summary_.Set(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value, GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set:tensorflow.OpDef.summary)
}
inline void OpDef::set_summary(const char* value) {
  
  summary_.Set(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_char:tensorflow.OpDef.summary)
}
inline void OpDef::set_summary(const char* value,
    size_t size) {
  
  summary_.Set(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size), GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_pointer:tensorflow.OpDef.summary)
}
inline ::std::string* OpDef::mutable_summary() {
  
  // @@protoc_insertion_point(field_mutable:tensorflow.OpDef.summary)
  return summary_.Mutable(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual());
}
inline ::std::string* OpDef::release_summary() {
  // @@protoc_insertion_point(field_release:tensorflow.OpDef.summary)
  
  return summary_.Release(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual());
}
inline ::std::string* OpDef::unsafe_arena_release_summary() {
  // @@protoc_insertion_point(field_unsafe_arena_release:tensorflow.OpDef.summary)
  GOOGLE_DCHECK(GetArenaNoVirtual() != NULL);
  
  return summary_.UnsafeArenaRelease(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      GetArenaNoVirtual());
}
inline void OpDef::set_allocated_summary(::std::string* summary) {
  if (summary != NULL) {
    
  } else {
    
  }
  summary_.SetAllocated(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), summary,
      GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_allocated:tensorflow.OpDef.summary)
}
inline void OpDef::unsafe_arena_set_allocated_summary(
    ::std::string* summary) {
  GOOGLE_DCHECK(GetArenaNoVirtual() != NULL);
  if (summary != NULL) {
    
  } else {
    
  }
  summary_.UnsafeArenaSetAllocated(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      summary, GetArenaNoVirtual());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:tensorflow.OpDef.summary)
}

// optional string description = 6;
inline void OpDef::clear_description() {
  description_.ClearToEmpty(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual());
}
inline const ::std::string& OpDef::description() const {
  // @@protoc_insertion_point(field_get:tensorflow.OpDef.description)
  return description_.Get(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void OpDef::set_description(const ::std::string& value) {
  
  description_.Set(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value, GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set:tensorflow.OpDef.description)
}
inline void OpDef::set_description(const char* value) {
  
  description_.Set(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_char:tensorflow.OpDef.description)
}
inline void OpDef::set_description(const char* value,
    size_t size) {
  
  description_.Set(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size), GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_pointer:tensorflow.OpDef.description)
}
inline ::std::string* OpDef::mutable_description() {
  
  // @@protoc_insertion_point(field_mutable:tensorflow.OpDef.description)
  return description_.Mutable(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual());
}
inline ::std::string* OpDef::release_description() {
  // @@protoc_insertion_point(field_release:tensorflow.OpDef.description)
  
  return description_.Release(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual());
}
inline ::std::string* OpDef::unsafe_arena_release_description() {
  // @@protoc_insertion_point(field_unsafe_arena_release:tensorflow.OpDef.description)
  GOOGLE_DCHECK(GetArenaNoVirtual() != NULL);
  
  return description_.UnsafeArenaRelease(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      GetArenaNoVirtual());
}
inline void OpDef::set_allocated_description(::std::string* description) {
  if (description != NULL) {
    
  } else {
    
  }
  description_.SetAllocated(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), description,
      GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_allocated:tensorflow.OpDef.description)
}
inline void OpDef::unsafe_arena_set_allocated_description(
    ::std::string* description) {
  GOOGLE_DCHECK(GetArenaNoVirtual() != NULL);
  if (description != NULL) {
    
  } else {
    
  }
  description_.UnsafeArenaSetAllocated(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      description, GetArenaNoVirtual());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:tensorflow.OpDef.description)
}

// optional bool is_commutative = 18;
inline void OpDef::clear_is_commutative() {
  is_commutative_ = false;
}
inline bool OpDef::is_commutative() const {
  // @@protoc_insertion_point(field_get:tensorflow.OpDef.is_commutative)
  return is_commutative_;
}
inline void OpDef::set_is_commutative(bool value) {
  
  is_commutative_ = value;
  // @@protoc_insertion_point(field_set:tensorflow.OpDef.is_commutative)
}

// optional bool is_aggregate = 16;
inline void OpDef::clear_is_aggregate() {
  is_aggregate_ = false;
}
inline bool OpDef::is_aggregate() const {
  // @@protoc_insertion_point(field_get:tensorflow.OpDef.is_aggregate)
  return is_aggregate_;
}
inline void OpDef::set_is_aggregate(bool value) {
  
  is_aggregate_ = value;
  // @@protoc_insertion_point(field_set:tensorflow.OpDef.is_aggregate)
}

// optional bool is_stateful = 17;
inline void OpDef::clear_is_stateful() {
  is_stateful_ = false;
}
inline bool OpDef::is_stateful() const {
  // @@protoc_insertion_point(field_get:tensorflow.OpDef.is_stateful)
  return is_stateful_;
}
inline void OpDef::set_is_stateful(bool value) {
  
  is_stateful_ = value;
  // @@protoc_insertion_point(field_set:tensorflow.OpDef.is_stateful)
}

// optional bool allows_uninitialized_input = 19;
inline void OpDef::clear_allows_uninitialized_input() {
  allows_uninitialized_input_ = false;
}
inline bool OpDef::allows_uninitialized_input() const {
  // @@protoc_insertion_point(field_get:tensorflow.OpDef.allows_uninitialized_input)
  return allows_uninitialized_input_;
}
inline void OpDef::set_allows_uninitialized_input(bool value) {
  
  allows_uninitialized_input_ = value;
  // @@protoc_insertion_point(field_set:tensorflow.OpDef.allows_uninitialized_input)
}

inline const OpDef* OpDef::internal_default_instance() {
  return &OpDef_default_instance_.get();
}
// -------------------------------------------------------------------

// OpDeprecation

// optional int32 version = 1;
inline void OpDeprecation::clear_version() {
  version_ = 0;
}
inline ::google::protobuf::int32 OpDeprecation::version() const {
  // @@protoc_insertion_point(field_get:tensorflow.OpDeprecation.version)
  return version_;
}
inline void OpDeprecation::set_version(::google::protobuf::int32 value) {
  
  version_ = value;
  // @@protoc_insertion_point(field_set:tensorflow.OpDeprecation.version)
}

// optional string explanation = 2;
inline void OpDeprecation::clear_explanation() {
  explanation_.ClearToEmpty(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual());
}
inline const ::std::string& OpDeprecation::explanation() const {
  // @@protoc_insertion_point(field_get:tensorflow.OpDeprecation.explanation)
  return explanation_.Get(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void OpDeprecation::set_explanation(const ::std::string& value) {
  
  explanation_.Set(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value, GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set:tensorflow.OpDeprecation.explanation)
}
inline void OpDeprecation::set_explanation(const char* value) {
  
  explanation_.Set(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
              GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_char:tensorflow.OpDeprecation.explanation)
}
inline void OpDeprecation::set_explanation(const char* value,
    size_t size) {
  
  explanation_.Set(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size), GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_pointer:tensorflow.OpDeprecation.explanation)
}
inline ::std::string* OpDeprecation::mutable_explanation() {
  
  // @@protoc_insertion_point(field_mutable:tensorflow.OpDeprecation.explanation)
  return explanation_.Mutable(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual());
}
inline ::std::string* OpDeprecation::release_explanation() {
  // @@protoc_insertion_point(field_release:tensorflow.OpDeprecation.explanation)
  
  return explanation_.Release(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), GetArenaNoVirtual());
}
inline ::std::string* OpDeprecation::unsafe_arena_release_explanation() {
  // @@protoc_insertion_point(field_unsafe_arena_release:tensorflow.OpDeprecation.explanation)
  GOOGLE_DCHECK(GetArenaNoVirtual() != NULL);
  
  return explanation_.UnsafeArenaRelease(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      GetArenaNoVirtual());
}
inline void OpDeprecation::set_allocated_explanation(::std::string* explanation) {
  if (explanation != NULL) {
    
  } else {
    
  }
  explanation_.SetAllocated(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), explanation,
      GetArenaNoVirtual());
  // @@protoc_insertion_point(field_set_allocated:tensorflow.OpDeprecation.explanation)
}
inline void OpDeprecation::unsafe_arena_set_allocated_explanation(
    ::std::string* explanation) {
  GOOGLE_DCHECK(GetArenaNoVirtual() != NULL);
  if (explanation != NULL) {
    
  } else {
    
  }
  explanation_.UnsafeArenaSetAllocated(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      explanation, GetArenaNoVirtual());
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:tensorflow.OpDeprecation.explanation)
}

inline const OpDeprecation* OpDeprecation::internal_default_instance() {
  return &OpDeprecation_default_instance_.get();
}
// -------------------------------------------------------------------

// OpList

// repeated .tensorflow.OpDef op = 1;
inline int OpList::op_size() const {
  return op_.size();
}
inline void OpList::clear_op() {
  op_.Clear();
}
inline const ::tensorflow::OpDef& OpList::op(int index) const {
  // @@protoc_insertion_point(field_get:tensorflow.OpList.op)
  return op_.Get(index);
}
inline ::tensorflow::OpDef* OpList::mutable_op(int index) {
  // @@protoc_insertion_point(field_mutable:tensorflow.OpList.op)
  return op_.Mutable(index);
}
inline ::tensorflow::OpDef* OpList::add_op() {
  // @@protoc_insertion_point(field_add:tensorflow.OpList.op)
  return op_.Add();
}
inline ::google::protobuf::RepeatedPtrField< ::tensorflow::OpDef >*
OpList::mutable_op() {
  // @@protoc_insertion_point(field_mutable_list:tensorflow.OpList.op)
  return &op_;
}
inline const ::google::protobuf::RepeatedPtrField< ::tensorflow::OpDef >&
OpList::op() const {
  // @@protoc_insertion_point(field_list:tensorflow.OpList.op)
  return op_;
}

inline const OpList* OpList::internal_default_instance() {
  return &OpList_default_instance_.get();
}
#endif  // !PROTOBUF_INLINE_NOT_IN_HEADERS
// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------


// @@protoc_insertion_point(namespace_scope)

}  // namespace tensorflow

// @@protoc_insertion_point(global_scope)

#endif  // PROTOBUF_tensorflow_2fcore_2fframework_2fop_5fdef_2eproto__INCLUDED
