// <auto-generated>
//     Generated by the protocol buffer compiler.  DO NOT EDIT!
//     source: vector.proto
// </auto-generated>
#pragma warning disable 1591, 0612, 3021
#region Designer generated code

using pb = global::Google.Protobuf;
using pbc = global::Google.Protobuf.Collections;
using pbr = global::Google.Protobuf.Reflection;
using scg = global::System.Collections.Generic;
namespace Messages {

  /// <summary>Holder for reflection information generated from vector.proto</summary>
  public static partial class VectorReflection {

    #region Descriptor
    /// <summary>File descriptor for vector.proto</summary>
    public static pbr::FileDescriptor Descriptor {
      get { return descriptor; }
    }
    private static pbr::FileDescriptor descriptor;

    static VectorReflection() {
      byte[] descriptorData = global::System.Convert.FromBase64String(
          string.Concat(
            "Cgx2ZWN0b3IucHJvdG8SCE1lc3NhZ2VzInkKBEZpbGUSDAoEbmFtZRgBIAEo",
            "CRIPCgdwYXlsb2FkGAIgASgMEhAKCGlzX2xvY2FsGAMgASgIEhMKC2lzX2V4",
            "cG9ydGVkGAQgASgIEhQKDHRpbWVfY3JlYXRlZBgKIAEoBBIVCg10aW1lX21v",
            "ZGlmaWVkGAsgASgEIlMKCkRpcmVudE5vZGUSDwoHZGlybmFtZRgBIAEoCRIN",
            "CgVmaWxlcxgCIAMoCRIlCgdzdWJkaXJzGAMgAygLMhQuTWVzc2FnZXMuRGly",
            "ZW50Tm9kZSIwCghSZXZpc2lvbhIRCgltYWpvcl9yZXYYASABKAQSEQoJbWlu",
            "b3JfcmV2GAIgASgEIkkKB0V4dHJlbWESDAoEZGltcxgBIAEoDRIPCgNtaW4Y",
            "AiADKAFCAhABEg8KA21heBgDIAMoAUICEAESDgoGaXNfc2V0GAQgASgIIsIB",
            "CghWZWN0b3IzMhIMCgRuYW1lGAEgASgJEhIKCmNvbXBvbmVudHMYAiABKA0S",
            "EwoLaW50ZXJsZWF2ZWQYAyABKAgSJAoIcmV2aXNpb24YBCABKAsyEi5NZXNz",
            "YWdlcy5SZXZpc2lvbhINCgV1bml0cxgFIAEoCRIPCgdjb21tZW50GAYgASgJ",
            "Eg4KBm9mZnNldBgJIAEoBBISCgZ2YWx1ZXMYCiADKAJCAhABEhUKCXNpemVf",
            "aGludBgLIAMoDUICEAEiwgEKCFZlY3RvcjY0EgwKBG5hbWUYASABKAkSEgoK",
            "Y29tcG9uZW50cxgCIAEoDRITCgtpbnRlcmxlYXZlZBgDIAEoCBIkCghyZXZp",
            "c2lvbhgEIAEoCzISLk1lc3NhZ2VzLlJldmlzaW9uEg0KBXVuaXRzGAUgASgJ",
            "Eg8KB2NvbW1lbnQYBiABKAkSDgoGb2Zmc2V0GAkgASgEEhIKBnZhbHVlcxgK",
            "IAMoAUICEAESFQoJc2l6ZV9oaW50GAsgAygNQgIQASJ/CgxTcGFyc2VNYXRy",
            "aXgSDAoEbmFtZRgBIAEoCRIVCglzaXplX2hpbnQYAiADKA1CAhABEhMKB2lu",
            "ZGljZXMYAyADKA1CAhABEhIKBnZhbHVlcxgEIAMoAUICEAESIQoGYm91bmRz",
            "GAUgASgLMhEuTWVzc2FnZXMuRXh0cmVtYSJ2CgRSdWxlEgoKAnBrGAEgASgJ",
            "EgoKAm9wGAIgASgNEg0KBXZhbHVlGAMgASgBEhIKCmFsZ29yaXRobXMYBCAD",
            "KAkSGAoMZmFpbGVkX25vZGVzGAUgAygNQgIQARIZCg1mYWlsZWRfdmFsdWVz",
            "GAYgAygBQgIQASLTAQoIUmVjb3JkNjQSDAoEbmFtZRgBIAEoCRINCgVvd25l",
            "chgCIAEoCRIkCghyZXZpc2lvbhgDIAEoCzISLk1lc3NhZ2VzLlJldmlzaW9u",
            "EhQKDGxlbmd0aF91bml0cxgIIAEoDRIkCgxyZXF1aXJlbWVudHMYCSADKAsy",
            "Di5NZXNzYWdlcy5SdWxlEiAKBGRhdGEYCiADKAsyEi5NZXNzYWdlcy5WZWN0",
            "b3I2NBImCgZtYXRyaXgYCyADKAsyFi5NZXNzYWdlcy5TcGFyc2VNYXRyaXgi",
            "iwEKCFVJbmRpY2VzEgwKBG5hbWUYASABKAkSEgoKY29tcG9uZW50cxgCIAEo",
            "DRITCgtpbnRlcmxlYXZlZBgDIAEoCBIkCghyZXZpc2lvbhgEIAEoCzISLk1l",
            "c3NhZ2VzLlJldmlzaW9uEg4KBm9mZnNldBgJIAEoBBISCgZ2YWx1ZXMYCiAD",
            "KA1CAhABIrABCghFbGVtZW50cxIbCg9lbGVtZW50X2luZGljZXMYASADKA1C",
            "AhABEhkKDWVsZW1lbnRfdHlwZXMYAiADKA1CAhABEhcKC2VsZW1lbnRfaWRz",
            "GAMgAygFQgIQARIYCgxub2RlX2luZGljZXMYBCADKA1CAhABEhsKD2VsZW1l",
            "bnRfY2VudGVycxgKIAMoAUICEAESHAoQZWxlbWVudF9tZWFzdXJlcxgLIAMo",
            "AUICEAFCA/gBAWIGcHJvdG8z"));
      descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
          new pbr::FileDescriptor[] { },
          new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {
            new pbr::GeneratedClrTypeInfo(typeof(global::Messages.File), global::Messages.File.Parser, new[]{ "Name", "Payload", "IsLocal", "IsExported", "TimeCreated", "TimeModified" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Messages.DirentNode), global::Messages.DirentNode.Parser, new[]{ "Dirname", "Files", "Subdirs" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Messages.Revision), global::Messages.Revision.Parser, new[]{ "MajorRev", "MinorRev" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Messages.Extrema), global::Messages.Extrema.Parser, new[]{ "Dims", "Min", "Max", "IsSet" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Messages.Vector32), global::Messages.Vector32.Parser, new[]{ "Name", "Components", "Interleaved", "Revision", "Units", "Comment", "Offset", "Values", "SizeHint" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Messages.Vector64), global::Messages.Vector64.Parser, new[]{ "Name", "Components", "Interleaved", "Revision", "Units", "Comment", "Offset", "Values", "SizeHint" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Messages.SparseMatrix), global::Messages.SparseMatrix.Parser, new[]{ "Name", "SizeHint", "Indices", "Values", "Bounds" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Messages.Rule), global::Messages.Rule.Parser, new[]{ "Pk", "Op", "Value", "Algorithms", "FailedNodes", "FailedValues" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Messages.Record64), global::Messages.Record64.Parser, new[]{ "Name", "Owner", "Revision", "LengthUnits", "Requirements", "Data", "Matrix" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Messages.UIndices), global::Messages.UIndices.Parser, new[]{ "Name", "Components", "Interleaved", "Revision", "Offset", "Values" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Messages.Elements), global::Messages.Elements.Parser, new[]{ "ElementIndices", "ElementTypes", "ElementIds", "NodeIndices", "ElementCenters", "ElementMeasures" }, null, null, null, null)
          }));
    }
    #endregion

  }
  #region Messages
  public sealed partial class File : pb::IMessage<File>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<File> _parser = new pb::MessageParser<File>(() => new File());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<File> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Messages.VectorReflection.Descriptor.MessageTypes[0]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public File() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public File(File other) : this() {
      name_ = other.name_;
      payload_ = other.payload_;
      isLocal_ = other.isLocal_;
      isExported_ = other.isExported_;
      timeCreated_ = other.timeCreated_;
      timeModified_ = other.timeModified_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public File Clone() {
      return new File(this);
    }

    /// <summary>Field number for the "name" field.</summary>
    public const int NameFieldNumber = 1;
    private string name_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string Name {
      get { return name_; }
      set {
        name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "payload" field.</summary>
    public const int PayloadFieldNumber = 2;
    private pb::ByteString payload_ = pb::ByteString.Empty;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pb::ByteString Payload {
      get { return payload_; }
      set {
        payload_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "is_local" field.</summary>
    public const int IsLocalFieldNumber = 3;
    private bool isLocal_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool IsLocal {
      get { return isLocal_; }
      set {
        isLocal_ = value;
      }
    }

    /// <summary>Field number for the "is_exported" field.</summary>
    public const int IsExportedFieldNumber = 4;
    private bool isExported_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool IsExported {
      get { return isExported_; }
      set {
        isExported_ = value;
      }
    }

    /// <summary>Field number for the "time_created" field.</summary>
    public const int TimeCreatedFieldNumber = 10;
    private ulong timeCreated_;
    /// <summary>
    ///reserved
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ulong TimeCreated {
      get { return timeCreated_; }
      set {
        timeCreated_ = value;
      }
    }

    /// <summary>Field number for the "time_modified" field.</summary>
    public const int TimeModifiedFieldNumber = 11;
    private ulong timeModified_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ulong TimeModified {
      get { return timeModified_; }
      set {
        timeModified_ = value;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as File);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(File other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Name != other.Name) return false;
      if (Payload != other.Payload) return false;
      if (IsLocal != other.IsLocal) return false;
      if (IsExported != other.IsExported) return false;
      if (TimeCreated != other.TimeCreated) return false;
      if (TimeModified != other.TimeModified) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (Name.Length != 0) hash ^= Name.GetHashCode();
      if (Payload.Length != 0) hash ^= Payload.GetHashCode();
      if (IsLocal != false) hash ^= IsLocal.GetHashCode();
      if (IsExported != false) hash ^= IsExported.GetHashCode();
      if (TimeCreated != 0UL) hash ^= TimeCreated.GetHashCode();
      if (TimeModified != 0UL) hash ^= TimeModified.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (Name.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Name);
      }
      if (Payload.Length != 0) {
        output.WriteRawTag(18);
        output.WriteBytes(Payload);
      }
      if (IsLocal != false) {
        output.WriteRawTag(24);
        output.WriteBool(IsLocal);
      }
      if (IsExported != false) {
        output.WriteRawTag(32);
        output.WriteBool(IsExported);
      }
      if (TimeCreated != 0UL) {
        output.WriteRawTag(80);
        output.WriteUInt64(TimeCreated);
      }
      if (TimeModified != 0UL) {
        output.WriteRawTag(88);
        output.WriteUInt64(TimeModified);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (Name.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Name);
      }
      if (Payload.Length != 0) {
        output.WriteRawTag(18);
        output.WriteBytes(Payload);
      }
      if (IsLocal != false) {
        output.WriteRawTag(24);
        output.WriteBool(IsLocal);
      }
      if (IsExported != false) {
        output.WriteRawTag(32);
        output.WriteBool(IsExported);
      }
      if (TimeCreated != 0UL) {
        output.WriteRawTag(80);
        output.WriteUInt64(TimeCreated);
      }
      if (TimeModified != 0UL) {
        output.WriteRawTag(88);
        output.WriteUInt64(TimeModified);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (Name.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
      }
      if (Payload.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeBytesSize(Payload);
      }
      if (IsLocal != false) {
        size += 1 + 1;
      }
      if (IsExported != false) {
        size += 1 + 1;
      }
      if (TimeCreated != 0UL) {
        size += 1 + pb::CodedOutputStream.ComputeUInt64Size(TimeCreated);
      }
      if (TimeModified != 0UL) {
        size += 1 + pb::CodedOutputStream.ComputeUInt64Size(TimeModified);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(File other) {
      if (other == null) {
        return;
      }
      if (other.Name.Length != 0) {
        Name = other.Name;
      }
      if (other.Payload.Length != 0) {
        Payload = other.Payload;
      }
      if (other.IsLocal != false) {
        IsLocal = other.IsLocal;
      }
      if (other.IsExported != false) {
        IsExported = other.IsExported;
      }
      if (other.TimeCreated != 0UL) {
        TimeCreated = other.TimeCreated;
      }
      if (other.TimeModified != 0UL) {
        TimeModified = other.TimeModified;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            Name = input.ReadString();
            break;
          }
          case 18: {
            Payload = input.ReadBytes();
            break;
          }
          case 24: {
            IsLocal = input.ReadBool();
            break;
          }
          case 32: {
            IsExported = input.ReadBool();
            break;
          }
          case 80: {
            TimeCreated = input.ReadUInt64();
            break;
          }
          case 88: {
            TimeModified = input.ReadUInt64();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            Name = input.ReadString();
            break;
          }
          case 18: {
            Payload = input.ReadBytes();
            break;
          }
          case 24: {
            IsLocal = input.ReadBool();
            break;
          }
          case 32: {
            IsExported = input.ReadBool();
            break;
          }
          case 80: {
            TimeCreated = input.ReadUInt64();
            break;
          }
          case 88: {
            TimeModified = input.ReadUInt64();
            break;
          }
        }
      }
    }
    #endif

  }

  public sealed partial class DirentNode : pb::IMessage<DirentNode>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<DirentNode> _parser = new pb::MessageParser<DirentNode>(() => new DirentNode());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<DirentNode> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Messages.VectorReflection.Descriptor.MessageTypes[1]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public DirentNode() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public DirentNode(DirentNode other) : this() {
      dirname_ = other.dirname_;
      files_ = other.files_.Clone();
      subdirs_ = other.subdirs_.Clone();
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public DirentNode Clone() {
      return new DirentNode(this);
    }

    /// <summary>Field number for the "dirname" field.</summary>
    public const int DirnameFieldNumber = 1;
    private string dirname_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string Dirname {
      get { return dirname_; }
      set {
        dirname_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "files" field.</summary>
    public const int FilesFieldNumber = 2;
    private static readonly pb::FieldCodec<string> _repeated_files_codec
        = pb::FieldCodec.ForString(18);
    private readonly pbc::RepeatedField<string> files_ = new pbc::RepeatedField<string>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<string> Files {
      get { return files_; }
    }

    /// <summary>Field number for the "subdirs" field.</summary>
    public const int SubdirsFieldNumber = 3;
    private static readonly pb::FieldCodec<global::Messages.DirentNode> _repeated_subdirs_codec
        = pb::FieldCodec.ForMessage(26, global::Messages.DirentNode.Parser);
    private readonly pbc::RepeatedField<global::Messages.DirentNode> subdirs_ = new pbc::RepeatedField<global::Messages.DirentNode>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<global::Messages.DirentNode> Subdirs {
      get { return subdirs_; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as DirentNode);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(DirentNode other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Dirname != other.Dirname) return false;
      if(!files_.Equals(other.files_)) return false;
      if(!subdirs_.Equals(other.subdirs_)) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (Dirname.Length != 0) hash ^= Dirname.GetHashCode();
      hash ^= files_.GetHashCode();
      hash ^= subdirs_.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (Dirname.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Dirname);
      }
      files_.WriteTo(output, _repeated_files_codec);
      subdirs_.WriteTo(output, _repeated_subdirs_codec);
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (Dirname.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Dirname);
      }
      files_.WriteTo(ref output, _repeated_files_codec);
      subdirs_.WriteTo(ref output, _repeated_subdirs_codec);
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (Dirname.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Dirname);
      }
      size += files_.CalculateSize(_repeated_files_codec);
      size += subdirs_.CalculateSize(_repeated_subdirs_codec);
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(DirentNode other) {
      if (other == null) {
        return;
      }
      if (other.Dirname.Length != 0) {
        Dirname = other.Dirname;
      }
      files_.Add(other.files_);
      subdirs_.Add(other.subdirs_);
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            Dirname = input.ReadString();
            break;
          }
          case 18: {
            files_.AddEntriesFrom(input, _repeated_files_codec);
            break;
          }
          case 26: {
            subdirs_.AddEntriesFrom(input, _repeated_subdirs_codec);
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            Dirname = input.ReadString();
            break;
          }
          case 18: {
            files_.AddEntriesFrom(ref input, _repeated_files_codec);
            break;
          }
          case 26: {
            subdirs_.AddEntriesFrom(ref input, _repeated_subdirs_codec);
            break;
          }
        }
      }
    }
    #endif

  }

  public sealed partial class Revision : pb::IMessage<Revision>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<Revision> _parser = new pb::MessageParser<Revision>(() => new Revision());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<Revision> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Messages.VectorReflection.Descriptor.MessageTypes[2]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Revision() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Revision(Revision other) : this() {
      majorRev_ = other.majorRev_;
      minorRev_ = other.minorRev_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Revision Clone() {
      return new Revision(this);
    }

    /// <summary>Field number for the "major_rev" field.</summary>
    public const int MajorRevFieldNumber = 1;
    private ulong majorRev_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ulong MajorRev {
      get { return majorRev_; }
      set {
        majorRev_ = value;
      }
    }

    /// <summary>Field number for the "minor_rev" field.</summary>
    public const int MinorRevFieldNumber = 2;
    private ulong minorRev_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ulong MinorRev {
      get { return minorRev_; }
      set {
        minorRev_ = value;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as Revision);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(Revision other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (MajorRev != other.MajorRev) return false;
      if (MinorRev != other.MinorRev) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (MajorRev != 0UL) hash ^= MajorRev.GetHashCode();
      if (MinorRev != 0UL) hash ^= MinorRev.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (MajorRev != 0UL) {
        output.WriteRawTag(8);
        output.WriteUInt64(MajorRev);
      }
      if (MinorRev != 0UL) {
        output.WriteRawTag(16);
        output.WriteUInt64(MinorRev);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (MajorRev != 0UL) {
        output.WriteRawTag(8);
        output.WriteUInt64(MajorRev);
      }
      if (MinorRev != 0UL) {
        output.WriteRawTag(16);
        output.WriteUInt64(MinorRev);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (MajorRev != 0UL) {
        size += 1 + pb::CodedOutputStream.ComputeUInt64Size(MajorRev);
      }
      if (MinorRev != 0UL) {
        size += 1 + pb::CodedOutputStream.ComputeUInt64Size(MinorRev);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(Revision other) {
      if (other == null) {
        return;
      }
      if (other.MajorRev != 0UL) {
        MajorRev = other.MajorRev;
      }
      if (other.MinorRev != 0UL) {
        MinorRev = other.MinorRev;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            MajorRev = input.ReadUInt64();
            break;
          }
          case 16: {
            MinorRev = input.ReadUInt64();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 8: {
            MajorRev = input.ReadUInt64();
            break;
          }
          case 16: {
            MinorRev = input.ReadUInt64();
            break;
          }
        }
      }
    }
    #endif

  }

  public sealed partial class Extrema : pb::IMessage<Extrema>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<Extrema> _parser = new pb::MessageParser<Extrema>(() => new Extrema());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<Extrema> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Messages.VectorReflection.Descriptor.MessageTypes[3]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Extrema() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Extrema(Extrema other) : this() {
      dims_ = other.dims_;
      min_ = other.min_.Clone();
      max_ = other.max_.Clone();
      isSet_ = other.isSet_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Extrema Clone() {
      return new Extrema(this);
    }

    /// <summary>Field number for the "dims" field.</summary>
    public const int DimsFieldNumber = 1;
    private uint dims_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public uint Dims {
      get { return dims_; }
      set {
        dims_ = value;
      }
    }

    /// <summary>Field number for the "min" field.</summary>
    public const int MinFieldNumber = 2;
    private static readonly pb::FieldCodec<double> _repeated_min_codec
        = pb::FieldCodec.ForDouble(18);
    private readonly pbc::RepeatedField<double> min_ = new pbc::RepeatedField<double>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<double> Min {
      get { return min_; }
    }

    /// <summary>Field number for the "max" field.</summary>
    public const int MaxFieldNumber = 3;
    private static readonly pb::FieldCodec<double> _repeated_max_codec
        = pb::FieldCodec.ForDouble(26);
    private readonly pbc::RepeatedField<double> max_ = new pbc::RepeatedField<double>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<double> Max {
      get { return max_; }
    }

    /// <summary>Field number for the "is_set" field.</summary>
    public const int IsSetFieldNumber = 4;
    private bool isSet_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool IsSet {
      get { return isSet_; }
      set {
        isSet_ = value;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as Extrema);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(Extrema other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Dims != other.Dims) return false;
      if(!min_.Equals(other.min_)) return false;
      if(!max_.Equals(other.max_)) return false;
      if (IsSet != other.IsSet) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (Dims != 0) hash ^= Dims.GetHashCode();
      hash ^= min_.GetHashCode();
      hash ^= max_.GetHashCode();
      if (IsSet != false) hash ^= IsSet.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (Dims != 0) {
        output.WriteRawTag(8);
        output.WriteUInt32(Dims);
      }
      min_.WriteTo(output, _repeated_min_codec);
      max_.WriteTo(output, _repeated_max_codec);
      if (IsSet != false) {
        output.WriteRawTag(32);
        output.WriteBool(IsSet);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (Dims != 0) {
        output.WriteRawTag(8);
        output.WriteUInt32(Dims);
      }
      min_.WriteTo(ref output, _repeated_min_codec);
      max_.WriteTo(ref output, _repeated_max_codec);
      if (IsSet != false) {
        output.WriteRawTag(32);
        output.WriteBool(IsSet);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (Dims != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Dims);
      }
      size += min_.CalculateSize(_repeated_min_codec);
      size += max_.CalculateSize(_repeated_max_codec);
      if (IsSet != false) {
        size += 1 + 1;
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(Extrema other) {
      if (other == null) {
        return;
      }
      if (other.Dims != 0) {
        Dims = other.Dims;
      }
      min_.Add(other.min_);
      max_.Add(other.max_);
      if (other.IsSet != false) {
        IsSet = other.IsSet;
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 8: {
            Dims = input.ReadUInt32();
            break;
          }
          case 18:
          case 17: {
            min_.AddEntriesFrom(input, _repeated_min_codec);
            break;
          }
          case 26:
          case 25: {
            max_.AddEntriesFrom(input, _repeated_max_codec);
            break;
          }
          case 32: {
            IsSet = input.ReadBool();
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 8: {
            Dims = input.ReadUInt32();
            break;
          }
          case 18:
          case 17: {
            min_.AddEntriesFrom(ref input, _repeated_min_codec);
            break;
          }
          case 26:
          case 25: {
            max_.AddEntriesFrom(ref input, _repeated_max_codec);
            break;
          }
          case 32: {
            IsSet = input.ReadBool();
            break;
          }
        }
      }
    }
    #endif

  }

  public sealed partial class Vector32 : pb::IMessage<Vector32>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<Vector32> _parser = new pb::MessageParser<Vector32>(() => new Vector32());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<Vector32> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Messages.VectorReflection.Descriptor.MessageTypes[4]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Vector32() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Vector32(Vector32 other) : this() {
      name_ = other.name_;
      components_ = other.components_;
      interleaved_ = other.interleaved_;
      revision_ = other.revision_ != null ? other.revision_.Clone() : null;
      units_ = other.units_;
      comment_ = other.comment_;
      offset_ = other.offset_;
      values_ = other.values_.Clone();
      sizeHint_ = other.sizeHint_.Clone();
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Vector32 Clone() {
      return new Vector32(this);
    }

    /// <summary>Field number for the "name" field.</summary>
    public const int NameFieldNumber = 1;
    private string name_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string Name {
      get { return name_; }
      set {
        name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "components" field.</summary>
    public const int ComponentsFieldNumber = 2;
    private uint components_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public uint Components {
      get { return components_; }
      set {
        components_ = value;
      }
    }

    /// <summary>Field number for the "interleaved" field.</summary>
    public const int InterleavedFieldNumber = 3;
    private bool interleaved_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Interleaved {
      get { return interleaved_; }
      set {
        interleaved_ = value;
      }
    }

    /// <summary>Field number for the "revision" field.</summary>
    public const int RevisionFieldNumber = 4;
    private global::Messages.Revision revision_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Messages.Revision Revision {
      get { return revision_; }
      set {
        revision_ = value;
      }
    }

    /// <summary>Field number for the "units" field.</summary>
    public const int UnitsFieldNumber = 5;
    private string units_ = "";
    /// <summary>
    /// kg m s^2 and such string literals
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string Units {
      get { return units_; }
      set {
        units_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "comment" field.</summary>
    public const int CommentFieldNumber = 6;
    private string comment_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string Comment {
      get { return comment_; }
      set {
        comment_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "offset" field.</summary>
    public const int OffsetFieldNumber = 9;
    private ulong offset_;
    /// <summary>
    ///reserved
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ulong Offset {
      get { return offset_; }
      set {
        offset_ = value;
      }
    }

    /// <summary>Field number for the "values" field.</summary>
    public const int ValuesFieldNumber = 10;
    private static readonly pb::FieldCodec<float> _repeated_values_codec
        = pb::FieldCodec.ForFloat(82);
    private readonly pbc::RepeatedField<float> values_ = new pbc::RepeatedField<float>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<float> Values {
      get { return values_; }
    }

    /// <summary>Field number for the "size_hint" field.</summary>
    public const int SizeHintFieldNumber = 11;
    private static readonly pb::FieldCodec<uint> _repeated_sizeHint_codec
        = pb::FieldCodec.ForUInt32(90);
    private readonly pbc::RepeatedField<uint> sizeHint_ = new pbc::RepeatedField<uint>();
    /// <summary>
    ///reserved
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<uint> SizeHint {
      get { return sizeHint_; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as Vector32);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(Vector32 other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Name != other.Name) return false;
      if (Components != other.Components) return false;
      if (Interleaved != other.Interleaved) return false;
      if (!object.Equals(Revision, other.Revision)) return false;
      if (Units != other.Units) return false;
      if (Comment != other.Comment) return false;
      if (Offset != other.Offset) return false;
      if(!values_.Equals(other.values_)) return false;
      if(!sizeHint_.Equals(other.sizeHint_)) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (Name.Length != 0) hash ^= Name.GetHashCode();
      if (Components != 0) hash ^= Components.GetHashCode();
      if (Interleaved != false) hash ^= Interleaved.GetHashCode();
      if (revision_ != null) hash ^= Revision.GetHashCode();
      if (Units.Length != 0) hash ^= Units.GetHashCode();
      if (Comment.Length != 0) hash ^= Comment.GetHashCode();
      if (Offset != 0UL) hash ^= Offset.GetHashCode();
      hash ^= values_.GetHashCode();
      hash ^= sizeHint_.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (Name.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Name);
      }
      if (Components != 0) {
        output.WriteRawTag(16);
        output.WriteUInt32(Components);
      }
      if (Interleaved != false) {
        output.WriteRawTag(24);
        output.WriteBool(Interleaved);
      }
      if (revision_ != null) {
        output.WriteRawTag(34);
        output.WriteMessage(Revision);
      }
      if (Units.Length != 0) {
        output.WriteRawTag(42);
        output.WriteString(Units);
      }
      if (Comment.Length != 0) {
        output.WriteRawTag(50);
        output.WriteString(Comment);
      }
      if (Offset != 0UL) {
        output.WriteRawTag(72);
        output.WriteUInt64(Offset);
      }
      values_.WriteTo(output, _repeated_values_codec);
      sizeHint_.WriteTo(output, _repeated_sizeHint_codec);
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (Name.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Name);
      }
      if (Components != 0) {
        output.WriteRawTag(16);
        output.WriteUInt32(Components);
      }
      if (Interleaved != false) {
        output.WriteRawTag(24);
        output.WriteBool(Interleaved);
      }
      if (revision_ != null) {
        output.WriteRawTag(34);
        output.WriteMessage(Revision);
      }
      if (Units.Length != 0) {
        output.WriteRawTag(42);
        output.WriteString(Units);
      }
      if (Comment.Length != 0) {
        output.WriteRawTag(50);
        output.WriteString(Comment);
      }
      if (Offset != 0UL) {
        output.WriteRawTag(72);
        output.WriteUInt64(Offset);
      }
      values_.WriteTo(ref output, _repeated_values_codec);
      sizeHint_.WriteTo(ref output, _repeated_sizeHint_codec);
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (Name.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
      }
      if (Components != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Components);
      }
      if (Interleaved != false) {
        size += 1 + 1;
      }
      if (revision_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Revision);
      }
      if (Units.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Units);
      }
      if (Comment.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Comment);
      }
      if (Offset != 0UL) {
        size += 1 + pb::CodedOutputStream.ComputeUInt64Size(Offset);
      }
      size += values_.CalculateSize(_repeated_values_codec);
      size += sizeHint_.CalculateSize(_repeated_sizeHint_codec);
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(Vector32 other) {
      if (other == null) {
        return;
      }
      if (other.Name.Length != 0) {
        Name = other.Name;
      }
      if (other.Components != 0) {
        Components = other.Components;
      }
      if (other.Interleaved != false) {
        Interleaved = other.Interleaved;
      }
      if (other.revision_ != null) {
        if (revision_ == null) {
          Revision = new global::Messages.Revision();
        }
        Revision.MergeFrom(other.Revision);
      }
      if (other.Units.Length != 0) {
        Units = other.Units;
      }
      if (other.Comment.Length != 0) {
        Comment = other.Comment;
      }
      if (other.Offset != 0UL) {
        Offset = other.Offset;
      }
      values_.Add(other.values_);
      sizeHint_.Add(other.sizeHint_);
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            Name = input.ReadString();
            break;
          }
          case 16: {
            Components = input.ReadUInt32();
            break;
          }
          case 24: {
            Interleaved = input.ReadBool();
            break;
          }
          case 34: {
            if (revision_ == null) {
              Revision = new global::Messages.Revision();
            }
            input.ReadMessage(Revision);
            break;
          }
          case 42: {
            Units = input.ReadString();
            break;
          }
          case 50: {
            Comment = input.ReadString();
            break;
          }
          case 72: {
            Offset = input.ReadUInt64();
            break;
          }
          case 82:
          case 85: {
            values_.AddEntriesFrom(input, _repeated_values_codec);
            break;
          }
          case 90:
          case 88: {
            sizeHint_.AddEntriesFrom(input, _repeated_sizeHint_codec);
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            Name = input.ReadString();
            break;
          }
          case 16: {
            Components = input.ReadUInt32();
            break;
          }
          case 24: {
            Interleaved = input.ReadBool();
            break;
          }
          case 34: {
            if (revision_ == null) {
              Revision = new global::Messages.Revision();
            }
            input.ReadMessage(Revision);
            break;
          }
          case 42: {
            Units = input.ReadString();
            break;
          }
          case 50: {
            Comment = input.ReadString();
            break;
          }
          case 72: {
            Offset = input.ReadUInt64();
            break;
          }
          case 82:
          case 85: {
            values_.AddEntriesFrom(ref input, _repeated_values_codec);
            break;
          }
          case 90:
          case 88: {
            sizeHint_.AddEntriesFrom(ref input, _repeated_sizeHint_codec);
            break;
          }
        }
      }
    }
    #endif

  }

  public sealed partial class Vector64 : pb::IMessage<Vector64>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<Vector64> _parser = new pb::MessageParser<Vector64>(() => new Vector64());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<Vector64> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Messages.VectorReflection.Descriptor.MessageTypes[5]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Vector64() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Vector64(Vector64 other) : this() {
      name_ = other.name_;
      components_ = other.components_;
      interleaved_ = other.interleaved_;
      revision_ = other.revision_ != null ? other.revision_.Clone() : null;
      units_ = other.units_;
      comment_ = other.comment_;
      offset_ = other.offset_;
      values_ = other.values_.Clone();
      sizeHint_ = other.sizeHint_.Clone();
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Vector64 Clone() {
      return new Vector64(this);
    }

    /// <summary>Field number for the "name" field.</summary>
    public const int NameFieldNumber = 1;
    private string name_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string Name {
      get { return name_; }
      set {
        name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "components" field.</summary>
    public const int ComponentsFieldNumber = 2;
    private uint components_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public uint Components {
      get { return components_; }
      set {
        components_ = value;
      }
    }

    /// <summary>Field number for the "interleaved" field.</summary>
    public const int InterleavedFieldNumber = 3;
    private bool interleaved_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Interleaved {
      get { return interleaved_; }
      set {
        interleaved_ = value;
      }
    }

    /// <summary>Field number for the "revision" field.</summary>
    public const int RevisionFieldNumber = 4;
    private global::Messages.Revision revision_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Messages.Revision Revision {
      get { return revision_; }
      set {
        revision_ = value;
      }
    }

    /// <summary>Field number for the "units" field.</summary>
    public const int UnitsFieldNumber = 5;
    private string units_ = "";
    /// <summary>
    /// kg m s^2 and such string literals
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string Units {
      get { return units_; }
      set {
        units_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "comment" field.</summary>
    public const int CommentFieldNumber = 6;
    private string comment_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string Comment {
      get { return comment_; }
      set {
        comment_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "offset" field.</summary>
    public const int OffsetFieldNumber = 9;
    private ulong offset_;
    /// <summary>
    ///reserved
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ulong Offset {
      get { return offset_; }
      set {
        offset_ = value;
      }
    }

    /// <summary>Field number for the "values" field.</summary>
    public const int ValuesFieldNumber = 10;
    private static readonly pb::FieldCodec<double> _repeated_values_codec
        = pb::FieldCodec.ForDouble(82);
    private readonly pbc::RepeatedField<double> values_ = new pbc::RepeatedField<double>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<double> Values {
      get { return values_; }
    }

    /// <summary>Field number for the "size_hint" field.</summary>
    public const int SizeHintFieldNumber = 11;
    private static readonly pb::FieldCodec<uint> _repeated_sizeHint_codec
        = pb::FieldCodec.ForUInt32(90);
    private readonly pbc::RepeatedField<uint> sizeHint_ = new pbc::RepeatedField<uint>();
    /// <summary>
    ///reserved
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<uint> SizeHint {
      get { return sizeHint_; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as Vector64);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(Vector64 other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Name != other.Name) return false;
      if (Components != other.Components) return false;
      if (Interleaved != other.Interleaved) return false;
      if (!object.Equals(Revision, other.Revision)) return false;
      if (Units != other.Units) return false;
      if (Comment != other.Comment) return false;
      if (Offset != other.Offset) return false;
      if(!values_.Equals(other.values_)) return false;
      if(!sizeHint_.Equals(other.sizeHint_)) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (Name.Length != 0) hash ^= Name.GetHashCode();
      if (Components != 0) hash ^= Components.GetHashCode();
      if (Interleaved != false) hash ^= Interleaved.GetHashCode();
      if (revision_ != null) hash ^= Revision.GetHashCode();
      if (Units.Length != 0) hash ^= Units.GetHashCode();
      if (Comment.Length != 0) hash ^= Comment.GetHashCode();
      if (Offset != 0UL) hash ^= Offset.GetHashCode();
      hash ^= values_.GetHashCode();
      hash ^= sizeHint_.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (Name.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Name);
      }
      if (Components != 0) {
        output.WriteRawTag(16);
        output.WriteUInt32(Components);
      }
      if (Interleaved != false) {
        output.WriteRawTag(24);
        output.WriteBool(Interleaved);
      }
      if (revision_ != null) {
        output.WriteRawTag(34);
        output.WriteMessage(Revision);
      }
      if (Units.Length != 0) {
        output.WriteRawTag(42);
        output.WriteString(Units);
      }
      if (Comment.Length != 0) {
        output.WriteRawTag(50);
        output.WriteString(Comment);
      }
      if (Offset != 0UL) {
        output.WriteRawTag(72);
        output.WriteUInt64(Offset);
      }
      values_.WriteTo(output, _repeated_values_codec);
      sizeHint_.WriteTo(output, _repeated_sizeHint_codec);
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (Name.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Name);
      }
      if (Components != 0) {
        output.WriteRawTag(16);
        output.WriteUInt32(Components);
      }
      if (Interleaved != false) {
        output.WriteRawTag(24);
        output.WriteBool(Interleaved);
      }
      if (revision_ != null) {
        output.WriteRawTag(34);
        output.WriteMessage(Revision);
      }
      if (Units.Length != 0) {
        output.WriteRawTag(42);
        output.WriteString(Units);
      }
      if (Comment.Length != 0) {
        output.WriteRawTag(50);
        output.WriteString(Comment);
      }
      if (Offset != 0UL) {
        output.WriteRawTag(72);
        output.WriteUInt64(Offset);
      }
      values_.WriteTo(ref output, _repeated_values_codec);
      sizeHint_.WriteTo(ref output, _repeated_sizeHint_codec);
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (Name.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
      }
      if (Components != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Components);
      }
      if (Interleaved != false) {
        size += 1 + 1;
      }
      if (revision_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Revision);
      }
      if (Units.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Units);
      }
      if (Comment.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Comment);
      }
      if (Offset != 0UL) {
        size += 1 + pb::CodedOutputStream.ComputeUInt64Size(Offset);
      }
      size += values_.CalculateSize(_repeated_values_codec);
      size += sizeHint_.CalculateSize(_repeated_sizeHint_codec);
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(Vector64 other) {
      if (other == null) {
        return;
      }
      if (other.Name.Length != 0) {
        Name = other.Name;
      }
      if (other.Components != 0) {
        Components = other.Components;
      }
      if (other.Interleaved != false) {
        Interleaved = other.Interleaved;
      }
      if (other.revision_ != null) {
        if (revision_ == null) {
          Revision = new global::Messages.Revision();
        }
        Revision.MergeFrom(other.Revision);
      }
      if (other.Units.Length != 0) {
        Units = other.Units;
      }
      if (other.Comment.Length != 0) {
        Comment = other.Comment;
      }
      if (other.Offset != 0UL) {
        Offset = other.Offset;
      }
      values_.Add(other.values_);
      sizeHint_.Add(other.sizeHint_);
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            Name = input.ReadString();
            break;
          }
          case 16: {
            Components = input.ReadUInt32();
            break;
          }
          case 24: {
            Interleaved = input.ReadBool();
            break;
          }
          case 34: {
            if (revision_ == null) {
              Revision = new global::Messages.Revision();
            }
            input.ReadMessage(Revision);
            break;
          }
          case 42: {
            Units = input.ReadString();
            break;
          }
          case 50: {
            Comment = input.ReadString();
            break;
          }
          case 72: {
            Offset = input.ReadUInt64();
            break;
          }
          case 82:
          case 81: {
            values_.AddEntriesFrom(input, _repeated_values_codec);
            break;
          }
          case 90:
          case 88: {
            sizeHint_.AddEntriesFrom(input, _repeated_sizeHint_codec);
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            Name = input.ReadString();
            break;
          }
          case 16: {
            Components = input.ReadUInt32();
            break;
          }
          case 24: {
            Interleaved = input.ReadBool();
            break;
          }
          case 34: {
            if (revision_ == null) {
              Revision = new global::Messages.Revision();
            }
            input.ReadMessage(Revision);
            break;
          }
          case 42: {
            Units = input.ReadString();
            break;
          }
          case 50: {
            Comment = input.ReadString();
            break;
          }
          case 72: {
            Offset = input.ReadUInt64();
            break;
          }
          case 82:
          case 81: {
            values_.AddEntriesFrom(ref input, _repeated_values_codec);
            break;
          }
          case 90:
          case 88: {
            sizeHint_.AddEntriesFrom(ref input, _repeated_sizeHint_codec);
            break;
          }
        }
      }
    }
    #endif

  }

  public sealed partial class SparseMatrix : pb::IMessage<SparseMatrix>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<SparseMatrix> _parser = new pb::MessageParser<SparseMatrix>(() => new SparseMatrix());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<SparseMatrix> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Messages.VectorReflection.Descriptor.MessageTypes[6]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public SparseMatrix() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public SparseMatrix(SparseMatrix other) : this() {
      name_ = other.name_;
      sizeHint_ = other.sizeHint_.Clone();
      indices_ = other.indices_.Clone();
      values_ = other.values_.Clone();
      bounds_ = other.bounds_ != null ? other.bounds_.Clone() : null;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public SparseMatrix Clone() {
      return new SparseMatrix(this);
    }

    /// <summary>Field number for the "name" field.</summary>
    public const int NameFieldNumber = 1;
    private string name_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string Name {
      get { return name_; }
      set {
        name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "size_hint" field.</summary>
    public const int SizeHintFieldNumber = 2;
    private static readonly pb::FieldCodec<uint> _repeated_sizeHint_codec
        = pb::FieldCodec.ForUInt32(18);
    private readonly pbc::RepeatedField<uint> sizeHint_ = new pbc::RepeatedField<uint>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<uint> SizeHint {
      get { return sizeHint_; }
    }

    /// <summary>Field number for the "indices" field.</summary>
    public const int IndicesFieldNumber = 3;
    private static readonly pb::FieldCodec<uint> _repeated_indices_codec
        = pb::FieldCodec.ForUInt32(26);
    private readonly pbc::RepeatedField<uint> indices_ = new pbc::RepeatedField<uint>();
    /// <summary>
    ///1:1 mapping between indices and values
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<uint> Indices {
      get { return indices_; }
    }

    /// <summary>Field number for the "values" field.</summary>
    public const int ValuesFieldNumber = 4;
    private static readonly pb::FieldCodec<double> _repeated_values_codec
        = pb::FieldCodec.ForDouble(34);
    private readonly pbc::RepeatedField<double> values_ = new pbc::RepeatedField<double>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<double> Values {
      get { return values_; }
    }

    /// <summary>Field number for the "bounds" field.</summary>
    public const int BoundsFieldNumber = 5;
    private global::Messages.Extrema bounds_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Messages.Extrema Bounds {
      get { return bounds_; }
      set {
        bounds_ = value;
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as SparseMatrix);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(SparseMatrix other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Name != other.Name) return false;
      if(!sizeHint_.Equals(other.sizeHint_)) return false;
      if(!indices_.Equals(other.indices_)) return false;
      if(!values_.Equals(other.values_)) return false;
      if (!object.Equals(Bounds, other.Bounds)) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (Name.Length != 0) hash ^= Name.GetHashCode();
      hash ^= sizeHint_.GetHashCode();
      hash ^= indices_.GetHashCode();
      hash ^= values_.GetHashCode();
      if (bounds_ != null) hash ^= Bounds.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (Name.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Name);
      }
      sizeHint_.WriteTo(output, _repeated_sizeHint_codec);
      indices_.WriteTo(output, _repeated_indices_codec);
      values_.WriteTo(output, _repeated_values_codec);
      if (bounds_ != null) {
        output.WriteRawTag(42);
        output.WriteMessage(Bounds);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (Name.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Name);
      }
      sizeHint_.WriteTo(ref output, _repeated_sizeHint_codec);
      indices_.WriteTo(ref output, _repeated_indices_codec);
      values_.WriteTo(ref output, _repeated_values_codec);
      if (bounds_ != null) {
        output.WriteRawTag(42);
        output.WriteMessage(Bounds);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (Name.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
      }
      size += sizeHint_.CalculateSize(_repeated_sizeHint_codec);
      size += indices_.CalculateSize(_repeated_indices_codec);
      size += values_.CalculateSize(_repeated_values_codec);
      if (bounds_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Bounds);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(SparseMatrix other) {
      if (other == null) {
        return;
      }
      if (other.Name.Length != 0) {
        Name = other.Name;
      }
      sizeHint_.Add(other.sizeHint_);
      indices_.Add(other.indices_);
      values_.Add(other.values_);
      if (other.bounds_ != null) {
        if (bounds_ == null) {
          Bounds = new global::Messages.Extrema();
        }
        Bounds.MergeFrom(other.Bounds);
      }
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            Name = input.ReadString();
            break;
          }
          case 18:
          case 16: {
            sizeHint_.AddEntriesFrom(input, _repeated_sizeHint_codec);
            break;
          }
          case 26:
          case 24: {
            indices_.AddEntriesFrom(input, _repeated_indices_codec);
            break;
          }
          case 34:
          case 33: {
            values_.AddEntriesFrom(input, _repeated_values_codec);
            break;
          }
          case 42: {
            if (bounds_ == null) {
              Bounds = new global::Messages.Extrema();
            }
            input.ReadMessage(Bounds);
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            Name = input.ReadString();
            break;
          }
          case 18:
          case 16: {
            sizeHint_.AddEntriesFrom(ref input, _repeated_sizeHint_codec);
            break;
          }
          case 26:
          case 24: {
            indices_.AddEntriesFrom(ref input, _repeated_indices_codec);
            break;
          }
          case 34:
          case 33: {
            values_.AddEntriesFrom(ref input, _repeated_values_codec);
            break;
          }
          case 42: {
            if (bounds_ == null) {
              Bounds = new global::Messages.Extrema();
            }
            input.ReadMessage(Bounds);
            break;
          }
        }
      }
    }
    #endif

  }

  /// <summary>
  ///e.g. pk ( != | == | &lt; | > ) value, else: execute algorithm(s)
  /// </summary>
  public sealed partial class Rule : pb::IMessage<Rule>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<Rule> _parser = new pb::MessageParser<Rule>(() => new Rule());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<Rule> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Messages.VectorReflection.Descriptor.MessageTypes[7]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Rule() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Rule(Rule other) : this() {
      pk_ = other.pk_;
      op_ = other.op_;
      value_ = other.value_;
      algorithms_ = other.algorithms_.Clone();
      failedNodes_ = other.failedNodes_.Clone();
      failedValues_ = other.failedValues_.Clone();
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Rule Clone() {
      return new Rule(this);
    }

    /// <summary>Field number for the "pk" field.</summary>
    public const int PkFieldNumber = 1;
    private string pk_ = "";
    /// <summary>
    /// serialized property-key &lt;property|modifier|...>
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string Pk {
      get { return pk_; }
      set {
        pk_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "op" field.</summary>
    public const int OpFieldNumber = 2;
    private uint op_;
    /// <summary>
    /// either: comparator enum (requirement), or relative priority number in queue
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public uint Op {
      get { return op_; }
      set {
        op_ = value;
      }
    }

    /// <summary>Field number for the "value" field.</summary>
    public const int ValueFieldNumber = 3;
    private double value_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public double Value {
      get { return value_; }
      set {
        value_ = value;
      }
    }

    /// <summary>Field number for the "algorithms" field.</summary>
    public const int AlgorithmsFieldNumber = 4;
    private static readonly pb::FieldCodec<string> _repeated_algorithms_codec
        = pb::FieldCodec.ForString(34);
    private readonly pbc::RepeatedField<string> algorithms_ = new pbc::RepeatedField<string>();
    /// <summary>
    /// names of algorithms to be associated
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<string> Algorithms {
      get { return algorithms_; }
    }

    /// <summary>Field number for the "failed_nodes" field.</summary>
    public const int FailedNodesFieldNumber = 5;
    private static readonly pb::FieldCodec<uint> _repeated_failedNodes_codec
        = pb::FieldCodec.ForUInt32(42);
    private readonly pbc::RepeatedField<uint> failedNodes_ = new pbc::RepeatedField<uint>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<uint> FailedNodes {
      get { return failedNodes_; }
    }

    /// <summary>Field number for the "failed_values" field.</summary>
    public const int FailedValuesFieldNumber = 6;
    private static readonly pb::FieldCodec<double> _repeated_failedValues_codec
        = pb::FieldCodec.ForDouble(50);
    private readonly pbc::RepeatedField<double> failedValues_ = new pbc::RepeatedField<double>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<double> FailedValues {
      get { return failedValues_; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as Rule);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(Rule other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Pk != other.Pk) return false;
      if (Op != other.Op) return false;
      if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(Value, other.Value)) return false;
      if(!algorithms_.Equals(other.algorithms_)) return false;
      if(!failedNodes_.Equals(other.failedNodes_)) return false;
      if(!failedValues_.Equals(other.failedValues_)) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (Pk.Length != 0) hash ^= Pk.GetHashCode();
      if (Op != 0) hash ^= Op.GetHashCode();
      if (Value != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(Value);
      hash ^= algorithms_.GetHashCode();
      hash ^= failedNodes_.GetHashCode();
      hash ^= failedValues_.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (Pk.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Pk);
      }
      if (Op != 0) {
        output.WriteRawTag(16);
        output.WriteUInt32(Op);
      }
      if (Value != 0D) {
        output.WriteRawTag(25);
        output.WriteDouble(Value);
      }
      algorithms_.WriteTo(output, _repeated_algorithms_codec);
      failedNodes_.WriteTo(output, _repeated_failedNodes_codec);
      failedValues_.WriteTo(output, _repeated_failedValues_codec);
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (Pk.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Pk);
      }
      if (Op != 0) {
        output.WriteRawTag(16);
        output.WriteUInt32(Op);
      }
      if (Value != 0D) {
        output.WriteRawTag(25);
        output.WriteDouble(Value);
      }
      algorithms_.WriteTo(ref output, _repeated_algorithms_codec);
      failedNodes_.WriteTo(ref output, _repeated_failedNodes_codec);
      failedValues_.WriteTo(ref output, _repeated_failedValues_codec);
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (Pk.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Pk);
      }
      if (Op != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Op);
      }
      if (Value != 0D) {
        size += 1 + 8;
      }
      size += algorithms_.CalculateSize(_repeated_algorithms_codec);
      size += failedNodes_.CalculateSize(_repeated_failedNodes_codec);
      size += failedValues_.CalculateSize(_repeated_failedValues_codec);
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(Rule other) {
      if (other == null) {
        return;
      }
      if (other.Pk.Length != 0) {
        Pk = other.Pk;
      }
      if (other.Op != 0) {
        Op = other.Op;
      }
      if (other.Value != 0D) {
        Value = other.Value;
      }
      algorithms_.Add(other.algorithms_);
      failedNodes_.Add(other.failedNodes_);
      failedValues_.Add(other.failedValues_);
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            Pk = input.ReadString();
            break;
          }
          case 16: {
            Op = input.ReadUInt32();
            break;
          }
          case 25: {
            Value = input.ReadDouble();
            break;
          }
          case 34: {
            algorithms_.AddEntriesFrom(input, _repeated_algorithms_codec);
            break;
          }
          case 42:
          case 40: {
            failedNodes_.AddEntriesFrom(input, _repeated_failedNodes_codec);
            break;
          }
          case 50:
          case 49: {
            failedValues_.AddEntriesFrom(input, _repeated_failedValues_codec);
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            Pk = input.ReadString();
            break;
          }
          case 16: {
            Op = input.ReadUInt32();
            break;
          }
          case 25: {
            Value = input.ReadDouble();
            break;
          }
          case 34: {
            algorithms_.AddEntriesFrom(ref input, _repeated_algorithms_codec);
            break;
          }
          case 42:
          case 40: {
            failedNodes_.AddEntriesFrom(ref input, _repeated_failedNodes_codec);
            break;
          }
          case 50:
          case 49: {
            failedValues_.AddEntriesFrom(ref input, _repeated_failedValues_codec);
            break;
          }
        }
      }
    }
    #endif

  }

  public sealed partial class Record64 : pb::IMessage<Record64>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<Record64> _parser = new pb::MessageParser<Record64>(() => new Record64());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<Record64> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Messages.VectorReflection.Descriptor.MessageTypes[8]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Record64() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Record64(Record64 other) : this() {
      name_ = other.name_;
      owner_ = other.owner_;
      revision_ = other.revision_ != null ? other.revision_.Clone() : null;
      lengthUnits_ = other.lengthUnits_;
      requirements_ = other.requirements_.Clone();
      data_ = other.data_.Clone();
      matrix_ = other.matrix_.Clone();
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Record64 Clone() {
      return new Record64(this);
    }

    /// <summary>Field number for the "name" field.</summary>
    public const int NameFieldNumber = 1;
    private string name_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string Name {
      get { return name_; }
      set {
        name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "owner" field.</summary>
    public const int OwnerFieldNumber = 2;
    private string owner_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string Owner {
      get { return owner_; }
      set {
        owner_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "revision" field.</summary>
    public const int RevisionFieldNumber = 3;
    private global::Messages.Revision revision_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Messages.Revision Revision {
      get { return revision_; }
      set {
        revision_ = value;
      }
    }

    /// <summary>Field number for the "length_units" field.</summary>
    public const int LengthUnitsFieldNumber = 8;
    private uint lengthUnits_;
    /// <summary>
    ///reserved
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public uint LengthUnits {
      get { return lengthUnits_; }
      set {
        lengthUnits_ = value;
      }
    }

    /// <summary>Field number for the "requirements" field.</summary>
    public const int RequirementsFieldNumber = 9;
    private static readonly pb::FieldCodec<global::Messages.Rule> _repeated_requirements_codec
        = pb::FieldCodec.ForMessage(74, global::Messages.Rule.Parser);
    private readonly pbc::RepeatedField<global::Messages.Rule> requirements_ = new pbc::RepeatedField<global::Messages.Rule>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<global::Messages.Rule> Requirements {
      get { return requirements_; }
    }

    /// <summary>Field number for the "data" field.</summary>
    public const int DataFieldNumber = 10;
    private static readonly pb::FieldCodec<global::Messages.Vector64> _repeated_data_codec
        = pb::FieldCodec.ForMessage(82, global::Messages.Vector64.Parser);
    private readonly pbc::RepeatedField<global::Messages.Vector64> data_ = new pbc::RepeatedField<global::Messages.Vector64>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<global::Messages.Vector64> Data {
      get { return data_; }
    }

    /// <summary>Field number for the "matrix" field.</summary>
    public const int MatrixFieldNumber = 11;
    private static readonly pb::FieldCodec<global::Messages.SparseMatrix> _repeated_matrix_codec
        = pb::FieldCodec.ForMessage(90, global::Messages.SparseMatrix.Parser);
    private readonly pbc::RepeatedField<global::Messages.SparseMatrix> matrix_ = new pbc::RepeatedField<global::Messages.SparseMatrix>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<global::Messages.SparseMatrix> Matrix {
      get { return matrix_; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as Record64);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(Record64 other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Name != other.Name) return false;
      if (Owner != other.Owner) return false;
      if (!object.Equals(Revision, other.Revision)) return false;
      if (LengthUnits != other.LengthUnits) return false;
      if(!requirements_.Equals(other.requirements_)) return false;
      if(!data_.Equals(other.data_)) return false;
      if(!matrix_.Equals(other.matrix_)) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (Name.Length != 0) hash ^= Name.GetHashCode();
      if (Owner.Length != 0) hash ^= Owner.GetHashCode();
      if (revision_ != null) hash ^= Revision.GetHashCode();
      if (LengthUnits != 0) hash ^= LengthUnits.GetHashCode();
      hash ^= requirements_.GetHashCode();
      hash ^= data_.GetHashCode();
      hash ^= matrix_.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (Name.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Name);
      }
      if (Owner.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(Owner);
      }
      if (revision_ != null) {
        output.WriteRawTag(26);
        output.WriteMessage(Revision);
      }
      if (LengthUnits != 0) {
        output.WriteRawTag(64);
        output.WriteUInt32(LengthUnits);
      }
      requirements_.WriteTo(output, _repeated_requirements_codec);
      data_.WriteTo(output, _repeated_data_codec);
      matrix_.WriteTo(output, _repeated_matrix_codec);
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (Name.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Name);
      }
      if (Owner.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(Owner);
      }
      if (revision_ != null) {
        output.WriteRawTag(26);
        output.WriteMessage(Revision);
      }
      if (LengthUnits != 0) {
        output.WriteRawTag(64);
        output.WriteUInt32(LengthUnits);
      }
      requirements_.WriteTo(ref output, _repeated_requirements_codec);
      data_.WriteTo(ref output, _repeated_data_codec);
      matrix_.WriteTo(ref output, _repeated_matrix_codec);
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (Name.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
      }
      if (Owner.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Owner);
      }
      if (revision_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Revision);
      }
      if (LengthUnits != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(LengthUnits);
      }
      size += requirements_.CalculateSize(_repeated_requirements_codec);
      size += data_.CalculateSize(_repeated_data_codec);
      size += matrix_.CalculateSize(_repeated_matrix_codec);
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(Record64 other) {
      if (other == null) {
        return;
      }
      if (other.Name.Length != 0) {
        Name = other.Name;
      }
      if (other.Owner.Length != 0) {
        Owner = other.Owner;
      }
      if (other.revision_ != null) {
        if (revision_ == null) {
          Revision = new global::Messages.Revision();
        }
        Revision.MergeFrom(other.Revision);
      }
      if (other.LengthUnits != 0) {
        LengthUnits = other.LengthUnits;
      }
      requirements_.Add(other.requirements_);
      data_.Add(other.data_);
      matrix_.Add(other.matrix_);
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            Name = input.ReadString();
            break;
          }
          case 18: {
            Owner = input.ReadString();
            break;
          }
          case 26: {
            if (revision_ == null) {
              Revision = new global::Messages.Revision();
            }
            input.ReadMessage(Revision);
            break;
          }
          case 64: {
            LengthUnits = input.ReadUInt32();
            break;
          }
          case 74: {
            requirements_.AddEntriesFrom(input, _repeated_requirements_codec);
            break;
          }
          case 82: {
            data_.AddEntriesFrom(input, _repeated_data_codec);
            break;
          }
          case 90: {
            matrix_.AddEntriesFrom(input, _repeated_matrix_codec);
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            Name = input.ReadString();
            break;
          }
          case 18: {
            Owner = input.ReadString();
            break;
          }
          case 26: {
            if (revision_ == null) {
              Revision = new global::Messages.Revision();
            }
            input.ReadMessage(Revision);
            break;
          }
          case 64: {
            LengthUnits = input.ReadUInt32();
            break;
          }
          case 74: {
            requirements_.AddEntriesFrom(ref input, _repeated_requirements_codec);
            break;
          }
          case 82: {
            data_.AddEntriesFrom(ref input, _repeated_data_codec);
            break;
          }
          case 90: {
            matrix_.AddEntriesFrom(ref input, _repeated_matrix_codec);
            break;
          }
        }
      }
    }
    #endif

  }

  public sealed partial class UIndices : pb::IMessage<UIndices>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<UIndices> _parser = new pb::MessageParser<UIndices>(() => new UIndices());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<UIndices> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Messages.VectorReflection.Descriptor.MessageTypes[9]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public UIndices() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public UIndices(UIndices other) : this() {
      name_ = other.name_;
      components_ = other.components_;
      interleaved_ = other.interleaved_;
      revision_ = other.revision_ != null ? other.revision_.Clone() : null;
      offset_ = other.offset_;
      values_ = other.values_.Clone();
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public UIndices Clone() {
      return new UIndices(this);
    }

    /// <summary>Field number for the "name" field.</summary>
    public const int NameFieldNumber = 1;
    private string name_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string Name {
      get { return name_; }
      set {
        name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "components" field.</summary>
    public const int ComponentsFieldNumber = 2;
    private uint components_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public uint Components {
      get { return components_; }
      set {
        components_ = value;
      }
    }

    /// <summary>Field number for the "interleaved" field.</summary>
    public const int InterleavedFieldNumber = 3;
    private bool interleaved_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Interleaved {
      get { return interleaved_; }
      set {
        interleaved_ = value;
      }
    }

    /// <summary>Field number for the "revision" field.</summary>
    public const int RevisionFieldNumber = 4;
    private global::Messages.Revision revision_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Messages.Revision Revision {
      get { return revision_; }
      set {
        revision_ = value;
      }
    }

    /// <summary>Field number for the "offset" field.</summary>
    public const int OffsetFieldNumber = 9;
    private ulong offset_;
    /// <summary>
    ///reserved
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public ulong Offset {
      get { return offset_; }
      set {
        offset_ = value;
      }
    }

    /// <summary>Field number for the "values" field.</summary>
    public const int ValuesFieldNumber = 10;
    private static readonly pb::FieldCodec<uint> _repeated_values_codec
        = pb::FieldCodec.ForUInt32(82);
    private readonly pbc::RepeatedField<uint> values_ = new pbc::RepeatedField<uint>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<uint> Values {
      get { return values_; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as UIndices);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(UIndices other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Name != other.Name) return false;
      if (Components != other.Components) return false;
      if (Interleaved != other.Interleaved) return false;
      if (!object.Equals(Revision, other.Revision)) return false;
      if (Offset != other.Offset) return false;
      if(!values_.Equals(other.values_)) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (Name.Length != 0) hash ^= Name.GetHashCode();
      if (Components != 0) hash ^= Components.GetHashCode();
      if (Interleaved != false) hash ^= Interleaved.GetHashCode();
      if (revision_ != null) hash ^= Revision.GetHashCode();
      if (Offset != 0UL) hash ^= Offset.GetHashCode();
      hash ^= values_.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (Name.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Name);
      }
      if (Components != 0) {
        output.WriteRawTag(16);
        output.WriteUInt32(Components);
      }
      if (Interleaved != false) {
        output.WriteRawTag(24);
        output.WriteBool(Interleaved);
      }
      if (revision_ != null) {
        output.WriteRawTag(34);
        output.WriteMessage(Revision);
      }
      if (Offset != 0UL) {
        output.WriteRawTag(72);
        output.WriteUInt64(Offset);
      }
      values_.WriteTo(output, _repeated_values_codec);
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (Name.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Name);
      }
      if (Components != 0) {
        output.WriteRawTag(16);
        output.WriteUInt32(Components);
      }
      if (Interleaved != false) {
        output.WriteRawTag(24);
        output.WriteBool(Interleaved);
      }
      if (revision_ != null) {
        output.WriteRawTag(34);
        output.WriteMessage(Revision);
      }
      if (Offset != 0UL) {
        output.WriteRawTag(72);
        output.WriteUInt64(Offset);
      }
      values_.WriteTo(ref output, _repeated_values_codec);
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (Name.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
      }
      if (Components != 0) {
        size += 1 + pb::CodedOutputStream.ComputeUInt32Size(Components);
      }
      if (Interleaved != false) {
        size += 1 + 1;
      }
      if (revision_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Revision);
      }
      if (Offset != 0UL) {
        size += 1 + pb::CodedOutputStream.ComputeUInt64Size(Offset);
      }
      size += values_.CalculateSize(_repeated_values_codec);
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(UIndices other) {
      if (other == null) {
        return;
      }
      if (other.Name.Length != 0) {
        Name = other.Name;
      }
      if (other.Components != 0) {
        Components = other.Components;
      }
      if (other.Interleaved != false) {
        Interleaved = other.Interleaved;
      }
      if (other.revision_ != null) {
        if (revision_ == null) {
          Revision = new global::Messages.Revision();
        }
        Revision.MergeFrom(other.Revision);
      }
      if (other.Offset != 0UL) {
        Offset = other.Offset;
      }
      values_.Add(other.values_);
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            Name = input.ReadString();
            break;
          }
          case 16: {
            Components = input.ReadUInt32();
            break;
          }
          case 24: {
            Interleaved = input.ReadBool();
            break;
          }
          case 34: {
            if (revision_ == null) {
              Revision = new global::Messages.Revision();
            }
            input.ReadMessage(Revision);
            break;
          }
          case 72: {
            Offset = input.ReadUInt64();
            break;
          }
          case 82:
          case 80: {
            values_.AddEntriesFrom(input, _repeated_values_codec);
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10: {
            Name = input.ReadString();
            break;
          }
          case 16: {
            Components = input.ReadUInt32();
            break;
          }
          case 24: {
            Interleaved = input.ReadBool();
            break;
          }
          case 34: {
            if (revision_ == null) {
              Revision = new global::Messages.Revision();
            }
            input.ReadMessage(Revision);
            break;
          }
          case 72: {
            Offset = input.ReadUInt64();
            break;
          }
          case 82:
          case 80: {
            values_.AddEntriesFrom(ref input, _repeated_values_codec);
            break;
          }
        }
      }
    }
    #endif

  }

  public sealed partial class Elements : pb::IMessage<Elements>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<Elements> _parser = new pb::MessageParser<Elements>(() => new Elements());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<Elements> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Messages.VectorReflection.Descriptor.MessageTypes[10]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Elements() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Elements(Elements other) : this() {
      elementIndices_ = other.elementIndices_.Clone();
      elementTypes_ = other.elementTypes_.Clone();
      elementIds_ = other.elementIds_.Clone();
      nodeIndices_ = other.nodeIndices_.Clone();
      elementCenters_ = other.elementCenters_.Clone();
      elementMeasures_ = other.elementMeasures_.Clone();
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public Elements Clone() {
      return new Elements(this);
    }

    /// <summary>Field number for the "element_indices" field.</summary>
    public const int ElementIndicesFieldNumber = 1;
    private static readonly pb::FieldCodec<uint> _repeated_elementIndices_codec
        = pb::FieldCodec.ForUInt32(10);
    private readonly pbc::RepeatedField<uint> elementIndices_ = new pbc::RepeatedField<uint>();
    /// <summary>
    /// each element has a unique index assigned
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<uint> ElementIndices {
      get { return elementIndices_; }
    }

    /// <summary>Field number for the "element_types" field.</summary>
    public const int ElementTypesFieldNumber = 2;
    private static readonly pb::FieldCodec<uint> _repeated_elementTypes_codec
        = pb::FieldCodec.ForUInt32(18);
    private readonly pbc::RepeatedField<uint> elementTypes_ = new pbc::RepeatedField<uint>();
    /// <summary>
    /// type convention (see xcompute-server documentation, enums for tri3, tet4, quad4, ... , tet 10, ...)
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<uint> ElementTypes {
      get { return elementTypes_; }
    }

    /// <summary>Field number for the "element_ids" field.</summary>
    public const int ElementIdsFieldNumber = 3;
    private static readonly pb::FieldCodec<int> _repeated_elementIds_codec
        = pb::FieldCodec.ForInt32(26);
    private readonly pbc::RepeatedField<int> elementIds_ = new pbc::RepeatedField<int>();
    /// <summary>
    /// region identifier (unique within a type of region, e.g. surface 0, surface 1, ..., volume 0, ... )
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<int> ElementIds {
      get { return elementIds_; }
    }

    /// <summary>Field number for the "node_indices" field.</summary>
    public const int NodeIndicesFieldNumber = 4;
    private static readonly pb::FieldCodec<uint> _repeated_nodeIndices_codec
        = pb::FieldCodec.ForUInt32(34);
    private readonly pbc::RepeatedField<uint> nodeIndices_ = new pbc::RepeatedField<uint>();
    /// <summary>
    /// node indices (unique within this region, e.g. nodes 0, 1, 3, 5, 7 , 11, 13, 17 ... 41 ...)
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<uint> NodeIndices {
      get { return nodeIndices_; }
    }

    /// <summary>Field number for the "element_centers" field.</summary>
    public const int ElementCentersFieldNumber = 10;
    private static readonly pb::FieldCodec<double> _repeated_elementCenters_codec
        = pb::FieldCodec.ForDouble(82);
    private readonly pbc::RepeatedField<double> elementCenters_ = new pbc::RepeatedField<double>();
    /// <summary>
    ///reserved
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<double> ElementCenters {
      get { return elementCenters_; }
    }

    /// <summary>Field number for the "element_measures" field.</summary>
    public const int ElementMeasuresFieldNumber = 11;
    private static readonly pb::FieldCodec<double> _repeated_elementMeasures_codec
        = pb::FieldCodec.ForDouble(90);
    private readonly pbc::RepeatedField<double> elementMeasures_ = new pbc::RepeatedField<double>();
    /// <summary>
    /// optional. element measure could be lengths (edges), areas (faces), or volumes (cells) values (scalar or nDim-component vector)
    /// </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<double> ElementMeasures {
      get { return elementMeasures_; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as Elements);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(Elements other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if(!elementIndices_.Equals(other.elementIndices_)) return false;
      if(!elementTypes_.Equals(other.elementTypes_)) return false;
      if(!elementIds_.Equals(other.elementIds_)) return false;
      if(!nodeIndices_.Equals(other.nodeIndices_)) return false;
      if(!elementCenters_.Equals(other.elementCenters_)) return false;
      if(!elementMeasures_.Equals(other.elementMeasures_)) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      hash ^= elementIndices_.GetHashCode();
      hash ^= elementTypes_.GetHashCode();
      hash ^= elementIds_.GetHashCode();
      hash ^= nodeIndices_.GetHashCode();
      hash ^= elementCenters_.GetHashCode();
      hash ^= elementMeasures_.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      elementIndices_.WriteTo(output, _repeated_elementIndices_codec);
      elementTypes_.WriteTo(output, _repeated_elementTypes_codec);
      elementIds_.WriteTo(output, _repeated_elementIds_codec);
      nodeIndices_.WriteTo(output, _repeated_nodeIndices_codec);
      elementCenters_.WriteTo(output, _repeated_elementCenters_codec);
      elementMeasures_.WriteTo(output, _repeated_elementMeasures_codec);
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      elementIndices_.WriteTo(ref output, _repeated_elementIndices_codec);
      elementTypes_.WriteTo(ref output, _repeated_elementTypes_codec);
      elementIds_.WriteTo(ref output, _repeated_elementIds_codec);
      nodeIndices_.WriteTo(ref output, _repeated_nodeIndices_codec);
      elementCenters_.WriteTo(ref output, _repeated_elementCenters_codec);
      elementMeasures_.WriteTo(ref output, _repeated_elementMeasures_codec);
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      size += elementIndices_.CalculateSize(_repeated_elementIndices_codec);
      size += elementTypes_.CalculateSize(_repeated_elementTypes_codec);
      size += elementIds_.CalculateSize(_repeated_elementIds_codec);
      size += nodeIndices_.CalculateSize(_repeated_nodeIndices_codec);
      size += elementCenters_.CalculateSize(_repeated_elementCenters_codec);
      size += elementMeasures_.CalculateSize(_repeated_elementMeasures_codec);
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(Elements other) {
      if (other == null) {
        return;
      }
      elementIndices_.Add(other.elementIndices_);
      elementTypes_.Add(other.elementTypes_);
      elementIds_.Add(other.elementIds_);
      nodeIndices_.Add(other.nodeIndices_);
      elementCenters_.Add(other.elementCenters_);
      elementMeasures_.Add(other.elementMeasures_);
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10:
          case 8: {
            elementIndices_.AddEntriesFrom(input, _repeated_elementIndices_codec);
            break;
          }
          case 18:
          case 16: {
            elementTypes_.AddEntriesFrom(input, _repeated_elementTypes_codec);
            break;
          }
          case 26:
          case 24: {
            elementIds_.AddEntriesFrom(input, _repeated_elementIds_codec);
            break;
          }
          case 34:
          case 32: {
            nodeIndices_.AddEntriesFrom(input, _repeated_nodeIndices_codec);
            break;
          }
          case 82:
          case 81: {
            elementCenters_.AddEntriesFrom(input, _repeated_elementCenters_codec);
            break;
          }
          case 90:
          case 89: {
            elementMeasures_.AddEntriesFrom(input, _repeated_elementMeasures_codec);
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 10:
          case 8: {
            elementIndices_.AddEntriesFrom(ref input, _repeated_elementIndices_codec);
            break;
          }
          case 18:
          case 16: {
            elementTypes_.AddEntriesFrom(ref input, _repeated_elementTypes_codec);
            break;
          }
          case 26:
          case 24: {
            elementIds_.AddEntriesFrom(ref input, _repeated_elementIds_codec);
            break;
          }
          case 34:
          case 32: {
            nodeIndices_.AddEntriesFrom(ref input, _repeated_nodeIndices_codec);
            break;
          }
          case 82:
          case 81: {
            elementCenters_.AddEntriesFrom(ref input, _repeated_elementCenters_codec);
            break;
          }
          case 90:
          case 89: {
            elementMeasures_.AddEntriesFrom(ref input, _repeated_elementMeasures_codec);
            break;
          }
        }
      }
    }
    #endif

  }

  #endregion

}

#endregion Designer generated code
