File: artifacts\obj\Sandbox\Release\net10.0\Transcoding.cs
Project: src\src\Grpc\JsonTranscoding\test\testassets\Sandbox\Sandbox.csproj (Sandbox)
// <auto-generated>
//     Generated by the protocol buffer compiler.  DO NOT EDIT!
//     source: transcoding.proto
// </auto-generated>
#pragma warning disable 1591, 0612, 3021, 8981
#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 Transcoding {

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

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

    static TranscodingReflection() {
      byte[] descriptorData = global::System.Convert.FromBase64String(
          string.Concat(
            "ChF0cmFuc2NvZGluZy5wcm90bxILdHJhbnNjb2RpbmcaHGdvb2dsZS9hcGkv",
            "YW5ub3RhdGlvbnMucHJvdG8aHmdvb2dsZS9wcm90b2J1Zi93cmFwcGVycy5w",
            "cm90bxocZ29vZ2xlL3Byb3RvYnVmL3N0cnVjdC5wcm90byLMCgoMSGVsbG9S",
            "ZXF1ZXN0EgwKBG5hbWUYASABKAkSMQoDc3ViGAIgASgLMiQudHJhbnNjb2Rp",
            "bmcuSGVsbG9SZXF1ZXN0LlN1Yk1lc3NhZ2USMQoEZGF0YRgDIAEoCzIjLnRy",
            "YW5zY29kaW5nLkhlbGxvUmVxdWVzdC5EYXRhVHlwZXMSNAoId3JhcHBlcnMY",
            "BCABKAsyIi50cmFuc2NvZGluZy5IZWxsb1JlcXVlc3QuV3JhcHBlcnMSGAoQ",
            "cmVwZWF0ZWRfc3RyaW5ncxgFIAMoCRoxCgpTdWJNZXNzYWdlEhAKCHN1YmZp",
            "ZWxkGAEgASgJEhEKCXN1YmZpZWxkcxgCIAMoCRrvBAoJRGF0YVR5cGVzEhQK",
            "DHNpbmdsZV9pbnQzMhgBIAEoBRIUCgxzaW5nbGVfaW50NjQYAiABKAMSFQoN",
            "c2luZ2xlX3VpbnQzMhgDIAEoDRIVCg1zaW5nbGVfdWludDY0GAQgASgEEhUK",
            "DXNpbmdsZV9zaW50MzIYBSABKBESFQoNc2luZ2xlX3NpbnQ2NBgGIAEoEhIW",
            "Cg5zaW5nbGVfZml4ZWQzMhgHIAEoBxIWCg5zaW5nbGVfZml4ZWQ2NBgIIAEo",
            "BhIXCg9zaW5nbGVfc2ZpeGVkMzIYCSABKA8SFwoPc2luZ2xlX3NmaXhlZDY0",
            "GAogASgQEhQKDHNpbmdsZV9mbG9hdBgLIAEoAhIVCg1zaW5nbGVfZG91Ymxl",
            "GAwgASgBEhMKC3NpbmdsZV9ib29sGA0gASgIEhUKDXNpbmdsZV9zdHJpbmcY",
            "DiABKAkSFAoMc2luZ2xlX2J5dGVzGA8gASgMEkMKC3NpbmdsZV9lbnVtGBAg",
            "ASgOMi4udHJhbnNjb2RpbmcuSGVsbG9SZXF1ZXN0LkRhdGFUeXBlcy5OZXN0",
            "ZWRFbnVtEkkKDnNpbmdsZV9tZXNzYWdlGBEgASgLMjEudHJhbnNjb2Rpbmcu",
            "SGVsbG9SZXF1ZXN0LkRhdGFUeXBlcy5OZXN0ZWRNZXNzYWdlGiEKDU5lc3Rl",
            "ZE1lc3NhZ2USEAoIc3ViZmllbGQYASABKAkiVgoKTmVzdGVkRW51bRIbChdO",
            "RVNURURfRU5VTV9VTlNQRUNJRklFRBAAEgcKA0ZPTxABEgcKA0JBUhACEgcK",
            "A0JBWhADEhAKA05FRxD///////////8BGtIDCghXcmFwcGVycxIyCgxzdHJp",
            "bmdfdmFsdWUYASABKAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWUS",
            "MAoLaW50MzJfdmFsdWUYAiABKAsyGy5nb29nbGUucHJvdG9idWYuSW50MzJW",
            "YWx1ZRIwCgtpbnQ2NF92YWx1ZRgDIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5J",
            "bnQ2NFZhbHVlEjAKC2Zsb2F0X3ZhbHVlGAQgASgLMhsuZ29vZ2xlLnByb3Rv",
            "YnVmLkZsb2F0VmFsdWUSMgoMZG91YmxlX3ZhbHVlGAUgASgLMhwuZ29vZ2xl",
            "LnByb3RvYnVmLkRvdWJsZVZhbHVlEi4KCmJvb2xfdmFsdWUYBiABKAsyGi5n",
            "b29nbGUucHJvdG9idWYuQm9vbFZhbHVlEjIKDHVpbnQzMl92YWx1ZRgHIAEo",
            "CzIcLmdvb2dsZS5wcm90b2J1Zi5VSW50MzJWYWx1ZRIyCgx1aW50NjRfdmFs",
            "dWUYCCABKAsyHC5nb29nbGUucHJvdG9idWYuVUludDY0VmFsdWUSMAoLYnl0",
            "ZXNfdmFsdWUYCSABKAsyGy5nb29nbGUucHJvdG9idWYuQnl0ZXNWYWx1ZSJd",
            "CgtIZWxsb1JlcGx5MhIPCgdtZXNzYWdlGAEgASgJEg4KBnZhbHVlcxgCIAMo",
            "CRItCgRlbnVtGAMgASgOMh8udHJhbnNjb2RpbmcuRW51bVdpdGhvdXRNZXNz",
            "YWdlKrsBChJFbnVtV2l0aG91dE1lc3NhZ2USJAogRU5VTV9XSVRIT1VUX01F",
            "U1NBR0VfVU5TUEVDSUZJRUQQABIcChhFTlVNX1dJVEhPVVRfTUVTU0FHRV9G",
            "T08QARIcChhFTlVNX1dJVEhPVVRfTUVTU0FHRV9CQVIQAhIcChhFTlVNX1dJ",
            "VEhPVVRfTUVTU0FHRV9CQVoQAxIlChhFTlVNX1dJVEhPVVRfTUVTU0FHRV9O",
            "RUcQ////////////ATKmCwoWSnNvblRyYW5zY29kaW5nR3JlZXRlchJdCghT",
            "YXlIZWxsbxIZLnRyYW5zY29kaW5nLkhlbGxvUmVxdWVzdBoYLnRyYW5zY29k",
            "aW5nLkhlbGxvUmVwbHkyIhyC0+STAhYSFC92MTEvZ3JlZXRlcjgve25hbWV9",
            "EmoKDFJlc3BvbnNlQm9keRIZLnRyYW5zY29kaW5nLkhlbGxvUmVxdWVzdBoY",
            "LnRyYW5zY29kaW5nLkhlbGxvUmVwbHkyIiWC0+STAh8SFC92MTEvZ3JlZXRl",
            "cjcve25hbWV9YgdtZXNzYWdlEmIKBkN1c3RvbRIZLnRyYW5zY29kaW5nLkhl",
            "bGxvUmVxdWVzdBoYLnRyYW5zY29kaW5nLkhlbGxvUmVwbHkyIiOC0+STAh1C",
            "GwoESEVBRBITL3YxL2dyZWV0ZXI2L3tuYW1lfRKTAQoSQWRkaXRpb25hbEJp",
            "bmRpbmdzEhkudHJhbnNjb2RpbmcuSGVsbG9SZXF1ZXN0GhgudHJhbnNjb2Rp",
            "bmcuSGVsbG9SZXBseTIiSILT5JMCQhIeL3YxL2FkZGl0aW9uYWxfYmluZGlu",
            "Z3Mve25hbWV9WiAqHi92MS9hZGRpdGlvbmFsX2JpbmRpbmdzL3tuYW1lfRI/",
            "CghOb09wdGlvbhIZLnRyYW5zY29kaW5nLkhlbGxvUmVxdWVzdBoYLnRyYW5z",
            "Y29kaW5nLkhlbGxvUmVwbHkyEm8KGFNlcnZlclN0cmVhbWluZ0dldE9wdGlv",
            "bhIZLnRyYW5zY29kaW5nLkhlbGxvUmVxdWVzdBoYLnRyYW5zY29kaW5nLkhl",
            "bGxvUmVwbHkyIhyC0+STAhYSFC92MTEvZ3JlZXRlcjUve25hbWV9MAESVQoE",
            "Qm9keRIZLnRyYW5zY29kaW5nLkhlbGxvUmVxdWVzdBoYLnRyYW5zY29kaW5n",
            "LkhlbGxvUmVwbHkyIhiC0+STAhIiDS92MTEvZ3JlZXRlcjQ6ASoSWgoHU3Vi",
            "Qm9keRIZLnRyYW5zY29kaW5nLkhlbGxvUmVxdWVzdBoYLnRyYW5zY29kaW5n",
            "LkhlbGxvUmVwbHkyIhqC0+STAhQiDS92MTEvZ3JlZXRlcjM6A3N1YhJvCg9T",
            "dWJSZXBlYXRlZEJvZHkSGS50cmFuc2NvZGluZy5IZWxsb1JlcXVlc3QaGC50",
            "cmFuc2NvZGluZy5IZWxsb1JlcGx5MiIngtPkkwIhIg0vdjExL2dyZWV0ZXIy",
            "OhByZXBlYXRlZF9zdHJpbmdzEoIBCg5QYXJhbWV0ZXJSb3V0ZRIZLnRyYW5z",
            "Y29kaW5nLkhlbGxvUmVxdWVzdBoYLnRyYW5zY29kaW5nLkhlbGxvUmVwbHky",
            "IjuC0+STAjUiIS92MTEvZ3JlZXRlcjIve2RhdGEuc2luZ2xlX2ludDMyfToQ",
            "cmVwZWF0ZWRfc3RyaW5ncxJhCg9SZXR1cm5MaXN0VmFsdWUSGS50cmFuc2Nv",
            "ZGluZy5IZWxsb1JlcXVlc3QaGi5nb29nbGUucHJvdG9idWYuTGlzdFZhbHVl",
            "IheC0+STAhEiDy92MTEvbGlzdF92YWx1ZRJUCgtSZXR1cm5WYWx1ZRIZLnRy",
            "YW5zY29kaW5nLkhlbGxvUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5WYWx1",
            "ZSISgtPkkwIMIgovdjExL3ZhbHVlElcKDFJldHVyblN0cnVjdBIZLnRyYW5z",
            "Y29kaW5nLkhlbGxvUmVxdWVzdBoXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3Qi",
            "E4LT5JMCDSILL3YxMS9zdHJ1Y3QSWgoKUmV0dXJuRW51bRIZLnRyYW5zY29k",
            "aW5nLkhlbGxvUmVxdWVzdBoYLnRyYW5zY29kaW5nLkhlbGxvUmVwbHkyIheC",
            "0+STAhESCS92MTEvZW51bWIEZW51bTKYAQopSnNvblRyYW5zY29kaW5nSW52",
            "YWxpZFJlc3BvbnNlQm9keUdyZWV0ZXISawoPQmFkUmVzcG9uc2VCb2R5Ehku",
            "dHJhbnNjb2RpbmcuSGVsbG9SZXF1ZXN0GhgudHJhbnNjb2RpbmcuSGVsbG9S",
            "ZXBseTIiI4LT5JMCHRISL3YxL2dyZWV0ZXIve25hbWV9YgdOb01hdGNoMogB",
            "CiFKc29uVHJhbnNjb2RpbmdJbnZhbGlkQm9keUdyZWV0ZXISYwoHQmFkQm9k",
            "eRIZLnRyYW5zY29kaW5nLkhlbGxvUmVxdWVzdBoYLnRyYW5zY29kaW5nLkhl",
            "bGxvUmVwbHkyIiOC0+STAh0SEi92MS9ncmVldGVyL3tuYW1lfToHTm9NYXRj",
            "aDKNAQokSnNvblRyYW5zY29kaW5nSW52YWxpZFBhdHRlcm5HcmVldGVyEmUK",
            "CkJhZFBhdHRlcm4SGS50cmFuc2NvZGluZy5IZWxsb1JlcXVlc3QaGC50cmFu",
            "c2NvZGluZy5IZWxsb1JlcGx5MiIigtPkkwIcEhF2MS9ncmVldGVyL3tuYW1l",
            "fToHTm9NYXRjaGIGcHJvdG8z"));
      descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
          new pbr::FileDescriptor[] { global::Google.Api.AnnotationsReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.WrappersReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.StructReflection.Descriptor, },
          new pbr::GeneratedClrTypeInfo(new[] {typeof(global::Transcoding.EnumWithoutMessage), }, null, new pbr::GeneratedClrTypeInfo[] {
            new pbr::GeneratedClrTypeInfo(typeof(global::Transcoding.HelloRequest), global::Transcoding.HelloRequest.Parser, new[]{ "Name", "Sub", "Data", "Wrappers", "RepeatedStrings" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Transcoding.HelloRequest.Types.SubMessage), global::Transcoding.HelloRequest.Types.SubMessage.Parser, new[]{ "Subfield", "Subfields" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Transcoding.HelloRequest.Types.DataTypes), global::Transcoding.HelloRequest.Types.DataTypes.Parser, new[]{ "SingleInt32", "SingleInt64", "SingleUint32", "SingleUint64", "SingleSint32", "SingleSint64", "SingleFixed32", "SingleFixed64", "SingleSfixed32", "SingleSfixed64", "SingleFloat", "SingleDouble", "SingleBool", "SingleString", "SingleBytes", "SingleEnum", "SingleMessage" }, null, new[]{ typeof(global::Transcoding.HelloRequest.Types.DataTypes.Types.NestedEnum) }, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Transcoding.HelloRequest.Types.DataTypes.Types.NestedMessage), global::Transcoding.HelloRequest.Types.DataTypes.Types.NestedMessage.Parser, new[]{ "Subfield" }, null, null, null, null)}),
            new pbr::GeneratedClrTypeInfo(typeof(global::Transcoding.HelloRequest.Types.Wrappers), global::Transcoding.HelloRequest.Types.Wrappers.Parser, new[]{ "StringValue", "Int32Value", "Int64Value", "FloatValue", "DoubleValue", "BoolValue", "Uint32Value", "Uint64Value", "BytesValue" }, null, null, null, null)}),
            new pbr::GeneratedClrTypeInfo(typeof(global::Transcoding.HelloReply2), global::Transcoding.HelloReply2.Parser, new[]{ "Message", "Values", "Enum" }, null, null, null, null)
          }));
    }
    #endregion

  }
  #region Enums
  public enum EnumWithoutMessage {
    [pbr::OriginalName("ENUM_WITHOUT_MESSAGE_UNSPECIFIED")] Unspecified = 0,
    [pbr::OriginalName("ENUM_WITHOUT_MESSAGE_FOO")] Foo = 1,
    [pbr::OriginalName("ENUM_WITHOUT_MESSAGE_BAR")] Bar = 2,
    [pbr::OriginalName("ENUM_WITHOUT_MESSAGE_BAZ")] Baz = 3,
    /// <summary>
    /// Intentionally negative.
    /// </summary>
    [pbr::OriginalName("ENUM_WITHOUT_MESSAGE_NEG")] Neg = -1,
  }

  #endregion

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Transcoding.TranscodingReflection.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 HelloRequest() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public HelloRequest(HelloRequest other) : this() {
      name_ = other.name_;
      sub_ = other.sub_ != null ? other.sub_.Clone() : null;
      data_ = other.data_ != null ? other.data_.Clone() : null;
      wrappers_ = other.wrappers_ != null ? other.wrappers_.Clone() : null;
      repeatedStrings_ = other.repeatedStrings_.Clone();
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public HelloRequest Clone() {
      return new HelloRequest(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 "sub" field.</summary>
    public const int SubFieldNumber = 2;
    private global::Transcoding.HelloRequest.Types.SubMessage sub_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Transcoding.HelloRequest.Types.SubMessage Sub {
      get { return sub_; }
      set {
        sub_ = value;
      }
    }

    /// <summary>Field number for the "data" field.</summary>
    public const int DataFieldNumber = 3;
    private global::Transcoding.HelloRequest.Types.DataTypes data_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Transcoding.HelloRequest.Types.DataTypes Data {
      get { return data_; }
      set {
        data_ = value;
      }
    }

    /// <summary>Field number for the "wrappers" field.</summary>
    public const int WrappersFieldNumber = 4;
    private global::Transcoding.HelloRequest.Types.Wrappers wrappers_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Transcoding.HelloRequest.Types.Wrappers Wrappers {
      get { return wrappers_; }
      set {
        wrappers_ = value;
      }
    }

    /// <summary>Field number for the "repeated_strings" field.</summary>
    public const int RepeatedStringsFieldNumber = 5;
    private static readonly pb::FieldCodec<string> _repeated_repeatedStrings_codec
        = pb::FieldCodec.ForString(42);
    private readonly pbc::RepeatedField<string> repeatedStrings_ = new pbc::RepeatedField<string>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<string> RepeatedStrings {
      get { return repeatedStrings_; }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(HelloRequest other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Name != other.Name) return false;
      if (!object.Equals(Sub, other.Sub)) return false;
      if (!object.Equals(Data, other.Data)) return false;
      if (!object.Equals(Wrappers, other.Wrappers)) return false;
      if(!repeatedStrings_.Equals(other.repeatedStrings_)) 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 (sub_ != null) hash ^= Sub.GetHashCode();
      if (data_ != null) hash ^= Data.GetHashCode();
      if (wrappers_ != null) hash ^= Wrappers.GetHashCode();
      hash ^= repeatedStrings_.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 (sub_ != null) {
        output.WriteRawTag(18);
        output.WriteMessage(Sub);
      }
      if (data_ != null) {
        output.WriteRawTag(26);
        output.WriteMessage(Data);
      }
      if (wrappers_ != null) {
        output.WriteRawTag(34);
        output.WriteMessage(Wrappers);
      }
      repeatedStrings_.WriteTo(output, _repeated_repeatedStrings_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 (sub_ != null) {
        output.WriteRawTag(18);
        output.WriteMessage(Sub);
      }
      if (data_ != null) {
        output.WriteRawTag(26);
        output.WriteMessage(Data);
      }
      if (wrappers_ != null) {
        output.WriteRawTag(34);
        output.WriteMessage(Wrappers);
      }
      repeatedStrings_.WriteTo(ref output, _repeated_repeatedStrings_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 (sub_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Sub);
      }
      if (data_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Data);
      }
      if (wrappers_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Wrappers);
      }
      size += repeatedStrings_.CalculateSize(_repeated_repeatedStrings_codec);
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(HelloRequest other) {
      if (other == null) {
        return;
      }
      if (other.Name.Length != 0) {
        Name = other.Name;
      }
      if (other.sub_ != null) {
        if (sub_ == null) {
          Sub = new global::Transcoding.HelloRequest.Types.SubMessage();
        }
        Sub.MergeFrom(other.Sub);
      }
      if (other.data_ != null) {
        if (data_ == null) {
          Data = new global::Transcoding.HelloRequest.Types.DataTypes();
        }
        Data.MergeFrom(other.Data);
      }
      if (other.wrappers_ != null) {
        if (wrappers_ == null) {
          Wrappers = new global::Transcoding.HelloRequest.Types.Wrappers();
        }
        Wrappers.MergeFrom(other.Wrappers);
      }
      repeatedStrings_.Add(other.repeatedStrings_);
      _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: {
            if (sub_ == null) {
              Sub = new global::Transcoding.HelloRequest.Types.SubMessage();
            }
            input.ReadMessage(Sub);
            break;
          }
          case 26: {
            if (data_ == null) {
              Data = new global::Transcoding.HelloRequest.Types.DataTypes();
            }
            input.ReadMessage(Data);
            break;
          }
          case 34: {
            if (wrappers_ == null) {
              Wrappers = new global::Transcoding.HelloRequest.Types.Wrappers();
            }
            input.ReadMessage(Wrappers);
            break;
          }
          case 42: {
            repeatedStrings_.AddEntriesFrom(input, _repeated_repeatedStrings_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: {
            if (sub_ == null) {
              Sub = new global::Transcoding.HelloRequest.Types.SubMessage();
            }
            input.ReadMessage(Sub);
            break;
          }
          case 26: {
            if (data_ == null) {
              Data = new global::Transcoding.HelloRequest.Types.DataTypes();
            }
            input.ReadMessage(Data);
            break;
          }
          case 34: {
            if (wrappers_ == null) {
              Wrappers = new global::Transcoding.HelloRequest.Types.Wrappers();
            }
            input.ReadMessage(Wrappers);
            break;
          }
          case 42: {
            repeatedStrings_.AddEntriesFrom(ref input, _repeated_repeatedStrings_codec);
            break;
          }
        }
      }
    }
    #endif

    #region Nested types
    /// <summary>Container for nested types declared in the HelloRequest message type.</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static partial class Types {
      [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
      public sealed partial class SubMessage : pb::IMessage<SubMessage>
      #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
          , pb::IBufferMessage
      #endif
      {
        private static readonly pb::MessageParser<SubMessage> _parser = new pb::MessageParser<SubMessage>(() => new SubMessage());
        private pb::UnknownFieldSet _unknownFields;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public static pb::MessageParser<SubMessage> Parser { get { return _parser; } }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public static pbr::MessageDescriptor Descriptor {
          get { return global::Transcoding.HelloRequest.Descriptor.NestedTypes[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 SubMessage() {
          OnConstruction();
        }

        partial void OnConstruction();

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

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

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

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

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

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public bool Equals(SubMessage other) {
          if (ReferenceEquals(other, null)) {
            return false;
          }
          if (ReferenceEquals(other, this)) {
            return true;
          }
          if (Subfield != other.Subfield) return false;
          if(!subfields_.Equals(other.subfields_)) 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 (Subfield.Length != 0) hash ^= Subfield.GetHashCode();
          hash ^= subfields_.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 (Subfield.Length != 0) {
            output.WriteRawTag(10);
            output.WriteString(Subfield);
          }
          subfields_.WriteTo(output, _repeated_subfields_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 (Subfield.Length != 0) {
            output.WriteRawTag(10);
            output.WriteString(Subfield);
          }
          subfields_.WriteTo(ref output, _repeated_subfields_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 (Subfield.Length != 0) {
            size += 1 + pb::CodedOutputStream.ComputeStringSize(Subfield);
          }
          size += subfields_.CalculateSize(_repeated_subfields_codec);
          if (_unknownFields != null) {
            size += _unknownFields.CalculateSize();
          }
          return size;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public void MergeFrom(SubMessage other) {
          if (other == null) {
            return;
          }
          if (other.Subfield.Length != 0) {
            Subfield = other.Subfield;
          }
          subfields_.Add(other.subfields_);
          _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: {
                Subfield = input.ReadString();
                break;
              }
              case 18: {
                subfields_.AddEntriesFrom(input, _repeated_subfields_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: {
                Subfield = input.ReadString();
                break;
              }
              case 18: {
                subfields_.AddEntriesFrom(ref input, _repeated_subfields_codec);
                break;
              }
            }
          }
        }
        #endif

      }

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

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public static pbr::MessageDescriptor Descriptor {
          get { return global::Transcoding.HelloRequest.Descriptor.NestedTypes[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 DataTypes() {
          OnConstruction();
        }

        partial void OnConstruction();

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public DataTypes(DataTypes other) : this() {
          singleInt32_ = other.singleInt32_;
          singleInt64_ = other.singleInt64_;
          singleUint32_ = other.singleUint32_;
          singleUint64_ = other.singleUint64_;
          singleSint32_ = other.singleSint32_;
          singleSint64_ = other.singleSint64_;
          singleFixed32_ = other.singleFixed32_;
          singleFixed64_ = other.singleFixed64_;
          singleSfixed32_ = other.singleSfixed32_;
          singleSfixed64_ = other.singleSfixed64_;
          singleFloat_ = other.singleFloat_;
          singleDouble_ = other.singleDouble_;
          singleBool_ = other.singleBool_;
          singleString_ = other.singleString_;
          singleBytes_ = other.singleBytes_;
          singleEnum_ = other.singleEnum_;
          singleMessage_ = other.singleMessage_ != null ? other.singleMessage_.Clone() : null;
          _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
        }

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

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

        /// <summary>Field number for the "single_int64" field.</summary>
        public const int SingleInt64FieldNumber = 2;
        private long singleInt64_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public long SingleInt64 {
          get { return singleInt64_; }
          set {
            singleInt64_ = value;
          }
        }

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

        /// <summary>Field number for the "single_uint64" field.</summary>
        public const int SingleUint64FieldNumber = 4;
        private ulong singleUint64_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public ulong SingleUint64 {
          get { return singleUint64_; }
          set {
            singleUint64_ = value;
          }
        }

        /// <summary>Field number for the "single_sint32" field.</summary>
        public const int SingleSint32FieldNumber = 5;
        private int singleSint32_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public int SingleSint32 {
          get { return singleSint32_; }
          set {
            singleSint32_ = value;
          }
        }

        /// <summary>Field number for the "single_sint64" field.</summary>
        public const int SingleSint64FieldNumber = 6;
        private long singleSint64_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public long SingleSint64 {
          get { return singleSint64_; }
          set {
            singleSint64_ = value;
          }
        }

        /// <summary>Field number for the "single_fixed32" field.</summary>
        public const int SingleFixed32FieldNumber = 7;
        private uint singleFixed32_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public uint SingleFixed32 {
          get { return singleFixed32_; }
          set {
            singleFixed32_ = value;
          }
        }

        /// <summary>Field number for the "single_fixed64" field.</summary>
        public const int SingleFixed64FieldNumber = 8;
        private ulong singleFixed64_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public ulong SingleFixed64 {
          get { return singleFixed64_; }
          set {
            singleFixed64_ = value;
          }
        }

        /// <summary>Field number for the "single_sfixed32" field.</summary>
        public const int SingleSfixed32FieldNumber = 9;
        private int singleSfixed32_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public int SingleSfixed32 {
          get { return singleSfixed32_; }
          set {
            singleSfixed32_ = value;
          }
        }

        /// <summary>Field number for the "single_sfixed64" field.</summary>
        public const int SingleSfixed64FieldNumber = 10;
        private long singleSfixed64_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public long SingleSfixed64 {
          get { return singleSfixed64_; }
          set {
            singleSfixed64_ = value;
          }
        }

        /// <summary>Field number for the "single_float" field.</summary>
        public const int SingleFloatFieldNumber = 11;
        private float singleFloat_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public float SingleFloat {
          get { return singleFloat_; }
          set {
            singleFloat_ = value;
          }
        }

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

        /// <summary>Field number for the "single_bool" field.</summary>
        public const int SingleBoolFieldNumber = 13;
        private bool singleBool_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public bool SingleBool {
          get { return singleBool_; }
          set {
            singleBool_ = value;
          }
        }

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

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

        /// <summary>Field number for the "single_enum" field.</summary>
        public const int SingleEnumFieldNumber = 16;
        private global::Transcoding.HelloRequest.Types.DataTypes.Types.NestedEnum singleEnum_ = global::Transcoding.HelloRequest.Types.DataTypes.Types.NestedEnum.Unspecified;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public global::Transcoding.HelloRequest.Types.DataTypes.Types.NestedEnum SingleEnum {
          get { return singleEnum_; }
          set {
            singleEnum_ = value;
          }
        }

        /// <summary>Field number for the "single_message" field.</summary>
        public const int SingleMessageFieldNumber = 17;
        private global::Transcoding.HelloRequest.Types.DataTypes.Types.NestedMessage singleMessage_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public global::Transcoding.HelloRequest.Types.DataTypes.Types.NestedMessage SingleMessage {
          get { return singleMessage_; }
          set {
            singleMessage_ = value;
          }
        }

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

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public bool Equals(DataTypes other) {
          if (ReferenceEquals(other, null)) {
            return false;
          }
          if (ReferenceEquals(other, this)) {
            return true;
          }
          if (SingleInt32 != other.SingleInt32) return false;
          if (SingleInt64 != other.SingleInt64) return false;
          if (SingleUint32 != other.SingleUint32) return false;
          if (SingleUint64 != other.SingleUint64) return false;
          if (SingleSint32 != other.SingleSint32) return false;
          if (SingleSint64 != other.SingleSint64) return false;
          if (SingleFixed32 != other.SingleFixed32) return false;
          if (SingleFixed64 != other.SingleFixed64) return false;
          if (SingleSfixed32 != other.SingleSfixed32) return false;
          if (SingleSfixed64 != other.SingleSfixed64) return false;
          if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(SingleFloat, other.SingleFloat)) return false;
          if (!pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.Equals(SingleDouble, other.SingleDouble)) return false;
          if (SingleBool != other.SingleBool) return false;
          if (SingleString != other.SingleString) return false;
          if (SingleBytes != other.SingleBytes) return false;
          if (SingleEnum != other.SingleEnum) return false;
          if (!object.Equals(SingleMessage, other.SingleMessage)) 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 (SingleInt32 != 0) hash ^= SingleInt32.GetHashCode();
          if (SingleInt64 != 0L) hash ^= SingleInt64.GetHashCode();
          if (SingleUint32 != 0) hash ^= SingleUint32.GetHashCode();
          if (SingleUint64 != 0UL) hash ^= SingleUint64.GetHashCode();
          if (SingleSint32 != 0) hash ^= SingleSint32.GetHashCode();
          if (SingleSint64 != 0L) hash ^= SingleSint64.GetHashCode();
          if (SingleFixed32 != 0) hash ^= SingleFixed32.GetHashCode();
          if (SingleFixed64 != 0UL) hash ^= SingleFixed64.GetHashCode();
          if (SingleSfixed32 != 0) hash ^= SingleSfixed32.GetHashCode();
          if (SingleSfixed64 != 0L) hash ^= SingleSfixed64.GetHashCode();
          if (SingleFloat != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(SingleFloat);
          if (SingleDouble != 0D) hash ^= pbc::ProtobufEqualityComparers.BitwiseDoubleEqualityComparer.GetHashCode(SingleDouble);
          if (SingleBool != false) hash ^= SingleBool.GetHashCode();
          if (SingleString.Length != 0) hash ^= SingleString.GetHashCode();
          if (SingleBytes.Length != 0) hash ^= SingleBytes.GetHashCode();
          if (SingleEnum != global::Transcoding.HelloRequest.Types.DataTypes.Types.NestedEnum.Unspecified) hash ^= SingleEnum.GetHashCode();
          if (singleMessage_ != null) hash ^= SingleMessage.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 (SingleInt32 != 0) {
            output.WriteRawTag(8);
            output.WriteInt32(SingleInt32);
          }
          if (SingleInt64 != 0L) {
            output.WriteRawTag(16);
            output.WriteInt64(SingleInt64);
          }
          if (SingleUint32 != 0) {
            output.WriteRawTag(24);
            output.WriteUInt32(SingleUint32);
          }
          if (SingleUint64 != 0UL) {
            output.WriteRawTag(32);
            output.WriteUInt64(SingleUint64);
          }
          if (SingleSint32 != 0) {
            output.WriteRawTag(40);
            output.WriteSInt32(SingleSint32);
          }
          if (SingleSint64 != 0L) {
            output.WriteRawTag(48);
            output.WriteSInt64(SingleSint64);
          }
          if (SingleFixed32 != 0) {
            output.WriteRawTag(61);
            output.WriteFixed32(SingleFixed32);
          }
          if (SingleFixed64 != 0UL) {
            output.WriteRawTag(65);
            output.WriteFixed64(SingleFixed64);
          }
          if (SingleSfixed32 != 0) {
            output.WriteRawTag(77);
            output.WriteSFixed32(SingleSfixed32);
          }
          if (SingleSfixed64 != 0L) {
            output.WriteRawTag(81);
            output.WriteSFixed64(SingleSfixed64);
          }
          if (SingleFloat != 0F) {
            output.WriteRawTag(93);
            output.WriteFloat(SingleFloat);
          }
          if (SingleDouble != 0D) {
            output.WriteRawTag(97);
            output.WriteDouble(SingleDouble);
          }
          if (SingleBool != false) {
            output.WriteRawTag(104);
            output.WriteBool(SingleBool);
          }
          if (SingleString.Length != 0) {
            output.WriteRawTag(114);
            output.WriteString(SingleString);
          }
          if (SingleBytes.Length != 0) {
            output.WriteRawTag(122);
            output.WriteBytes(SingleBytes);
          }
          if (SingleEnum != global::Transcoding.HelloRequest.Types.DataTypes.Types.NestedEnum.Unspecified) {
            output.WriteRawTag(128, 1);
            output.WriteEnum((int) SingleEnum);
          }
          if (singleMessage_ != null) {
            output.WriteRawTag(138, 1);
            output.WriteMessage(SingleMessage);
          }
          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 (SingleInt32 != 0) {
            output.WriteRawTag(8);
            output.WriteInt32(SingleInt32);
          }
          if (SingleInt64 != 0L) {
            output.WriteRawTag(16);
            output.WriteInt64(SingleInt64);
          }
          if (SingleUint32 != 0) {
            output.WriteRawTag(24);
            output.WriteUInt32(SingleUint32);
          }
          if (SingleUint64 != 0UL) {
            output.WriteRawTag(32);
            output.WriteUInt64(SingleUint64);
          }
          if (SingleSint32 != 0) {
            output.WriteRawTag(40);
            output.WriteSInt32(SingleSint32);
          }
          if (SingleSint64 != 0L) {
            output.WriteRawTag(48);
            output.WriteSInt64(SingleSint64);
          }
          if (SingleFixed32 != 0) {
            output.WriteRawTag(61);
            output.WriteFixed32(SingleFixed32);
          }
          if (SingleFixed64 != 0UL) {
            output.WriteRawTag(65);
            output.WriteFixed64(SingleFixed64);
          }
          if (SingleSfixed32 != 0) {
            output.WriteRawTag(77);
            output.WriteSFixed32(SingleSfixed32);
          }
          if (SingleSfixed64 != 0L) {
            output.WriteRawTag(81);
            output.WriteSFixed64(SingleSfixed64);
          }
          if (SingleFloat != 0F) {
            output.WriteRawTag(93);
            output.WriteFloat(SingleFloat);
          }
          if (SingleDouble != 0D) {
            output.WriteRawTag(97);
            output.WriteDouble(SingleDouble);
          }
          if (SingleBool != false) {
            output.WriteRawTag(104);
            output.WriteBool(SingleBool);
          }
          if (SingleString.Length != 0) {
            output.WriteRawTag(114);
            output.WriteString(SingleString);
          }
          if (SingleBytes.Length != 0) {
            output.WriteRawTag(122);
            output.WriteBytes(SingleBytes);
          }
          if (SingleEnum != global::Transcoding.HelloRequest.Types.DataTypes.Types.NestedEnum.Unspecified) {
            output.WriteRawTag(128, 1);
            output.WriteEnum((int) SingleEnum);
          }
          if (singleMessage_ != null) {
            output.WriteRawTag(138, 1);
            output.WriteMessage(SingleMessage);
          }
          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 (SingleInt32 != 0) {
            size += 1 + pb::CodedOutputStream.ComputeInt32Size(SingleInt32);
          }
          if (SingleInt64 != 0L) {
            size += 1 + pb::CodedOutputStream.ComputeInt64Size(SingleInt64);
          }
          if (SingleUint32 != 0) {
            size += 1 + pb::CodedOutputStream.ComputeUInt32Size(SingleUint32);
          }
          if (SingleUint64 != 0UL) {
            size += 1 + pb::CodedOutputStream.ComputeUInt64Size(SingleUint64);
          }
          if (SingleSint32 != 0) {
            size += 1 + pb::CodedOutputStream.ComputeSInt32Size(SingleSint32);
          }
          if (SingleSint64 != 0L) {
            size += 1 + pb::CodedOutputStream.ComputeSInt64Size(SingleSint64);
          }
          if (SingleFixed32 != 0) {
            size += 1 + 4;
          }
          if (SingleFixed64 != 0UL) {
            size += 1 + 8;
          }
          if (SingleSfixed32 != 0) {
            size += 1 + 4;
          }
          if (SingleSfixed64 != 0L) {
            size += 1 + 8;
          }
          if (SingleFloat != 0F) {
            size += 1 + 4;
          }
          if (SingleDouble != 0D) {
            size += 1 + 8;
          }
          if (SingleBool != false) {
            size += 1 + 1;
          }
          if (SingleString.Length != 0) {
            size += 1 + pb::CodedOutputStream.ComputeStringSize(SingleString);
          }
          if (SingleBytes.Length != 0) {
            size += 1 + pb::CodedOutputStream.ComputeBytesSize(SingleBytes);
          }
          if (SingleEnum != global::Transcoding.HelloRequest.Types.DataTypes.Types.NestedEnum.Unspecified) {
            size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) SingleEnum);
          }
          if (singleMessage_ != null) {
            size += 2 + pb::CodedOutputStream.ComputeMessageSize(SingleMessage);
          }
          if (_unknownFields != null) {
            size += _unknownFields.CalculateSize();
          }
          return size;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public void MergeFrom(DataTypes other) {
          if (other == null) {
            return;
          }
          if (other.SingleInt32 != 0) {
            SingleInt32 = other.SingleInt32;
          }
          if (other.SingleInt64 != 0L) {
            SingleInt64 = other.SingleInt64;
          }
          if (other.SingleUint32 != 0) {
            SingleUint32 = other.SingleUint32;
          }
          if (other.SingleUint64 != 0UL) {
            SingleUint64 = other.SingleUint64;
          }
          if (other.SingleSint32 != 0) {
            SingleSint32 = other.SingleSint32;
          }
          if (other.SingleSint64 != 0L) {
            SingleSint64 = other.SingleSint64;
          }
          if (other.SingleFixed32 != 0) {
            SingleFixed32 = other.SingleFixed32;
          }
          if (other.SingleFixed64 != 0UL) {
            SingleFixed64 = other.SingleFixed64;
          }
          if (other.SingleSfixed32 != 0) {
            SingleSfixed32 = other.SingleSfixed32;
          }
          if (other.SingleSfixed64 != 0L) {
            SingleSfixed64 = other.SingleSfixed64;
          }
          if (other.SingleFloat != 0F) {
            SingleFloat = other.SingleFloat;
          }
          if (other.SingleDouble != 0D) {
            SingleDouble = other.SingleDouble;
          }
          if (other.SingleBool != false) {
            SingleBool = other.SingleBool;
          }
          if (other.SingleString.Length != 0) {
            SingleString = other.SingleString;
          }
          if (other.SingleBytes.Length != 0) {
            SingleBytes = other.SingleBytes;
          }
          if (other.SingleEnum != global::Transcoding.HelloRequest.Types.DataTypes.Types.NestedEnum.Unspecified) {
            SingleEnum = other.SingleEnum;
          }
          if (other.singleMessage_ != null) {
            if (singleMessage_ == null) {
              SingleMessage = new global::Transcoding.HelloRequest.Types.DataTypes.Types.NestedMessage();
            }
            SingleMessage.MergeFrom(other.SingleMessage);
          }
          _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: {
                SingleInt32 = input.ReadInt32();
                break;
              }
              case 16: {
                SingleInt64 = input.ReadInt64();
                break;
              }
              case 24: {
                SingleUint32 = input.ReadUInt32();
                break;
              }
              case 32: {
                SingleUint64 = input.ReadUInt64();
                break;
              }
              case 40: {
                SingleSint32 = input.ReadSInt32();
                break;
              }
              case 48: {
                SingleSint64 = input.ReadSInt64();
                break;
              }
              case 61: {
                SingleFixed32 = input.ReadFixed32();
                break;
              }
              case 65: {
                SingleFixed64 = input.ReadFixed64();
                break;
              }
              case 77: {
                SingleSfixed32 = input.ReadSFixed32();
                break;
              }
              case 81: {
                SingleSfixed64 = input.ReadSFixed64();
                break;
              }
              case 93: {
                SingleFloat = input.ReadFloat();
                break;
              }
              case 97: {
                SingleDouble = input.ReadDouble();
                break;
              }
              case 104: {
                SingleBool = input.ReadBool();
                break;
              }
              case 114: {
                SingleString = input.ReadString();
                break;
              }
              case 122: {
                SingleBytes = input.ReadBytes();
                break;
              }
              case 128: {
                SingleEnum = (global::Transcoding.HelloRequest.Types.DataTypes.Types.NestedEnum) input.ReadEnum();
                break;
              }
              case 138: {
                if (singleMessage_ == null) {
                  SingleMessage = new global::Transcoding.HelloRequest.Types.DataTypes.Types.NestedMessage();
                }
                input.ReadMessage(SingleMessage);
                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: {
                SingleInt32 = input.ReadInt32();
                break;
              }
              case 16: {
                SingleInt64 = input.ReadInt64();
                break;
              }
              case 24: {
                SingleUint32 = input.ReadUInt32();
                break;
              }
              case 32: {
                SingleUint64 = input.ReadUInt64();
                break;
              }
              case 40: {
                SingleSint32 = input.ReadSInt32();
                break;
              }
              case 48: {
                SingleSint64 = input.ReadSInt64();
                break;
              }
              case 61: {
                SingleFixed32 = input.ReadFixed32();
                break;
              }
              case 65: {
                SingleFixed64 = input.ReadFixed64();
                break;
              }
              case 77: {
                SingleSfixed32 = input.ReadSFixed32();
                break;
              }
              case 81: {
                SingleSfixed64 = input.ReadSFixed64();
                break;
              }
              case 93: {
                SingleFloat = input.ReadFloat();
                break;
              }
              case 97: {
                SingleDouble = input.ReadDouble();
                break;
              }
              case 104: {
                SingleBool = input.ReadBool();
                break;
              }
              case 114: {
                SingleString = input.ReadString();
                break;
              }
              case 122: {
                SingleBytes = input.ReadBytes();
                break;
              }
              case 128: {
                SingleEnum = (global::Transcoding.HelloRequest.Types.DataTypes.Types.NestedEnum) input.ReadEnum();
                break;
              }
              case 138: {
                if (singleMessage_ == null) {
                  SingleMessage = new global::Transcoding.HelloRequest.Types.DataTypes.Types.NestedMessage();
                }
                input.ReadMessage(SingleMessage);
                break;
              }
            }
          }
        }
        #endif

        #region Nested types
        /// <summary>Container for nested types declared in the DataTypes message type.</summary>
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public static partial class Types {
          public enum NestedEnum {
            [pbr::OriginalName("NESTED_ENUM_UNSPECIFIED")] Unspecified = 0,
            [pbr::OriginalName("FOO")] Foo = 1,
            [pbr::OriginalName("BAR")] Bar = 2,
            [pbr::OriginalName("BAZ")] Baz = 3,
            /// <summary>
            /// Intentionally negative.
            /// </summary>
            [pbr::OriginalName("NEG")] Neg = -1,
          }

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

            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public static pbr::MessageDescriptor Descriptor {
              get { return global::Transcoding.HelloRequest.Types.DataTypes.Descriptor.NestedTypes[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 NestedMessage() {
              OnConstruction();
            }

            partial void OnConstruction();

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

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

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

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

            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public bool Equals(NestedMessage other) {
              if (ReferenceEquals(other, null)) {
                return false;
              }
              if (ReferenceEquals(other, this)) {
                return true;
              }
              if (Subfield != other.Subfield) 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 (Subfield.Length != 0) hash ^= Subfield.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 (Subfield.Length != 0) {
                output.WriteRawTag(10);
                output.WriteString(Subfield);
              }
              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 (Subfield.Length != 0) {
                output.WriteRawTag(10);
                output.WriteString(Subfield);
              }
              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 (Subfield.Length != 0) {
                size += 1 + pb::CodedOutputStream.ComputeStringSize(Subfield);
              }
              if (_unknownFields != null) {
                size += _unknownFields.CalculateSize();
              }
              return size;
            }

            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public void MergeFrom(NestedMessage other) {
              if (other == null) {
                return;
              }
              if (other.Subfield.Length != 0) {
                Subfield = other.Subfield;
              }
              _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: {
                    Subfield = input.ReadString();
                    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: {
                    Subfield = input.ReadString();
                    break;
                  }
                }
              }
            }
            #endif

          }

        }
        #endregion

      }

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

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public static pbr::MessageDescriptor Descriptor {
          get { return global::Transcoding.HelloRequest.Descriptor.NestedTypes[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 Wrappers() {
          OnConstruction();
        }

        partial void OnConstruction();

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public Wrappers(Wrappers other) : this() {
          StringValue = other.StringValue;
          Int32Value = other.Int32Value;
          Int64Value = other.Int64Value;
          FloatValue = other.FloatValue;
          DoubleValue = other.DoubleValue;
          BoolValue = other.BoolValue;
          Uint32Value = other.Uint32Value;
          Uint64Value = other.Uint64Value;
          BytesValue = other.BytesValue;
          _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
        }

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

        /// <summary>Field number for the "string_value" field.</summary>
        public const int StringValueFieldNumber = 1;
        private static readonly pb::FieldCodec<string> _single_stringValue_codec = pb::FieldCodec.ForClassWrapper<string>(10);
        private string stringValue_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public string StringValue {
          get { return stringValue_; }
          set {
            stringValue_ = value;
          }
        }


        /// <summary>Field number for the "int32_value" field.</summary>
        public const int Int32ValueFieldNumber = 2;
        private static readonly pb::FieldCodec<int?> _single_int32Value_codec = pb::FieldCodec.ForStructWrapper<int>(18);
        private int? int32Value_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public int? Int32Value {
          get { return int32Value_; }
          set {
            int32Value_ = value;
          }
        }


        /// <summary>Field number for the "int64_value" field.</summary>
        public const int Int64ValueFieldNumber = 3;
        private static readonly pb::FieldCodec<long?> _single_int64Value_codec = pb::FieldCodec.ForStructWrapper<long>(26);
        private long? int64Value_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public long? Int64Value {
          get { return int64Value_; }
          set {
            int64Value_ = value;
          }
        }


        /// <summary>Field number for the "float_value" field.</summary>
        public const int FloatValueFieldNumber = 4;
        private static readonly pb::FieldCodec<float?> _single_floatValue_codec = pb::FieldCodec.ForStructWrapper<float>(34);
        private float? floatValue_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public float? FloatValue {
          get { return floatValue_; }
          set {
            floatValue_ = value;
          }
        }


        /// <summary>Field number for the "double_value" field.</summary>
        public const int DoubleValueFieldNumber = 5;
        private static readonly pb::FieldCodec<double?> _single_doubleValue_codec = pb::FieldCodec.ForStructWrapper<double>(42);
        private double? doubleValue_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public double? DoubleValue {
          get { return doubleValue_; }
          set {
            doubleValue_ = value;
          }
        }


        /// <summary>Field number for the "bool_value" field.</summary>
        public const int BoolValueFieldNumber = 6;
        private static readonly pb::FieldCodec<bool?> _single_boolValue_codec = pb::FieldCodec.ForStructWrapper<bool>(50);
        private bool? boolValue_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public bool? BoolValue {
          get { return boolValue_; }
          set {
            boolValue_ = value;
          }
        }


        /// <summary>Field number for the "uint32_value" field.</summary>
        public const int Uint32ValueFieldNumber = 7;
        private static readonly pb::FieldCodec<uint?> _single_uint32Value_codec = pb::FieldCodec.ForStructWrapper<uint>(58);
        private uint? uint32Value_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public uint? Uint32Value {
          get { return uint32Value_; }
          set {
            uint32Value_ = value;
          }
        }


        /// <summary>Field number for the "uint64_value" field.</summary>
        public const int Uint64ValueFieldNumber = 8;
        private static readonly pb::FieldCodec<ulong?> _single_uint64Value_codec = pb::FieldCodec.ForStructWrapper<ulong>(66);
        private ulong? uint64Value_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public ulong? Uint64Value {
          get { return uint64Value_; }
          set {
            uint64Value_ = value;
          }
        }


        /// <summary>Field number for the "bytes_value" field.</summary>
        public const int BytesValueFieldNumber = 9;
        private static readonly pb::FieldCodec<pb::ByteString> _single_bytesValue_codec = pb::FieldCodec.ForClassWrapper<pb::ByteString>(74);
        private pb::ByteString bytesValue_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public pb::ByteString BytesValue {
          get { return bytesValue_; }
          set {
            bytesValue_ = value;
          }
        }


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

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public bool Equals(Wrappers other) {
          if (ReferenceEquals(other, null)) {
            return false;
          }
          if (ReferenceEquals(other, this)) {
            return true;
          }
          if (StringValue != other.StringValue) return false;
          if (Int32Value != other.Int32Value) return false;
          if (Int64Value != other.Int64Value) return false;
          if (!pbc::ProtobufEqualityComparers.BitwiseNullableSingleEqualityComparer.Equals(FloatValue, other.FloatValue)) return false;
          if (!pbc::ProtobufEqualityComparers.BitwiseNullableDoubleEqualityComparer.Equals(DoubleValue, other.DoubleValue)) return false;
          if (BoolValue != other.BoolValue) return false;
          if (Uint32Value != other.Uint32Value) return false;
          if (Uint64Value != other.Uint64Value) return false;
          if (BytesValue != other.BytesValue) 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 (stringValue_ != null) hash ^= StringValue.GetHashCode();
          if (int32Value_ != null) hash ^= Int32Value.GetHashCode();
          if (int64Value_ != null) hash ^= Int64Value.GetHashCode();
          if (floatValue_ != null) hash ^= pbc::ProtobufEqualityComparers.BitwiseNullableSingleEqualityComparer.GetHashCode(FloatValue);
          if (doubleValue_ != null) hash ^= pbc::ProtobufEqualityComparers.BitwiseNullableDoubleEqualityComparer.GetHashCode(DoubleValue);
          if (boolValue_ != null) hash ^= BoolValue.GetHashCode();
          if (uint32Value_ != null) hash ^= Uint32Value.GetHashCode();
          if (uint64Value_ != null) hash ^= Uint64Value.GetHashCode();
          if (bytesValue_ != null) hash ^= BytesValue.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 (stringValue_ != null) {
            _single_stringValue_codec.WriteTagAndValue(output, StringValue);
          }
          if (int32Value_ != null) {
            _single_int32Value_codec.WriteTagAndValue(output, Int32Value);
          }
          if (int64Value_ != null) {
            _single_int64Value_codec.WriteTagAndValue(output, Int64Value);
          }
          if (floatValue_ != null) {
            _single_floatValue_codec.WriteTagAndValue(output, FloatValue);
          }
          if (doubleValue_ != null) {
            _single_doubleValue_codec.WriteTagAndValue(output, DoubleValue);
          }
          if (boolValue_ != null) {
            _single_boolValue_codec.WriteTagAndValue(output, BoolValue);
          }
          if (uint32Value_ != null) {
            _single_uint32Value_codec.WriteTagAndValue(output, Uint32Value);
          }
          if (uint64Value_ != null) {
            _single_uint64Value_codec.WriteTagAndValue(output, Uint64Value);
          }
          if (bytesValue_ != null) {
            _single_bytesValue_codec.WriteTagAndValue(output, BytesValue);
          }
          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 (stringValue_ != null) {
            _single_stringValue_codec.WriteTagAndValue(ref output, StringValue);
          }
          if (int32Value_ != null) {
            _single_int32Value_codec.WriteTagAndValue(ref output, Int32Value);
          }
          if (int64Value_ != null) {
            _single_int64Value_codec.WriteTagAndValue(ref output, Int64Value);
          }
          if (floatValue_ != null) {
            _single_floatValue_codec.WriteTagAndValue(ref output, FloatValue);
          }
          if (doubleValue_ != null) {
            _single_doubleValue_codec.WriteTagAndValue(ref output, DoubleValue);
          }
          if (boolValue_ != null) {
            _single_boolValue_codec.WriteTagAndValue(ref output, BoolValue);
          }
          if (uint32Value_ != null) {
            _single_uint32Value_codec.WriteTagAndValue(ref output, Uint32Value);
          }
          if (uint64Value_ != null) {
            _single_uint64Value_codec.WriteTagAndValue(ref output, Uint64Value);
          }
          if (bytesValue_ != null) {
            _single_bytesValue_codec.WriteTagAndValue(ref output, BytesValue);
          }
          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 (stringValue_ != null) {
            size += _single_stringValue_codec.CalculateSizeWithTag(StringValue);
          }
          if (int32Value_ != null) {
            size += _single_int32Value_codec.CalculateSizeWithTag(Int32Value);
          }
          if (int64Value_ != null) {
            size += _single_int64Value_codec.CalculateSizeWithTag(Int64Value);
          }
          if (floatValue_ != null) {
            size += _single_floatValue_codec.CalculateSizeWithTag(FloatValue);
          }
          if (doubleValue_ != null) {
            size += _single_doubleValue_codec.CalculateSizeWithTag(DoubleValue);
          }
          if (boolValue_ != null) {
            size += _single_boolValue_codec.CalculateSizeWithTag(BoolValue);
          }
          if (uint32Value_ != null) {
            size += _single_uint32Value_codec.CalculateSizeWithTag(Uint32Value);
          }
          if (uint64Value_ != null) {
            size += _single_uint64Value_codec.CalculateSizeWithTag(Uint64Value);
          }
          if (bytesValue_ != null) {
            size += _single_bytesValue_codec.CalculateSizeWithTag(BytesValue);
          }
          if (_unknownFields != null) {
            size += _unknownFields.CalculateSize();
          }
          return size;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public void MergeFrom(Wrappers other) {
          if (other == null) {
            return;
          }
          if (other.stringValue_ != null) {
            if (stringValue_ == null || other.StringValue != "") {
              StringValue = other.StringValue;
            }
          }
          if (other.int32Value_ != null) {
            if (int32Value_ == null || other.Int32Value != 0) {
              Int32Value = other.Int32Value;
            }
          }
          if (other.int64Value_ != null) {
            if (int64Value_ == null || other.Int64Value != 0L) {
              Int64Value = other.Int64Value;
            }
          }
          if (other.floatValue_ != null) {
            if (floatValue_ == null || other.FloatValue != 0F) {
              FloatValue = other.FloatValue;
            }
          }
          if (other.doubleValue_ != null) {
            if (doubleValue_ == null || other.DoubleValue != 0D) {
              DoubleValue = other.DoubleValue;
            }
          }
          if (other.boolValue_ != null) {
            if (boolValue_ == null || other.BoolValue != false) {
              BoolValue = other.BoolValue;
            }
          }
          if (other.uint32Value_ != null) {
            if (uint32Value_ == null || other.Uint32Value != 0) {
              Uint32Value = other.Uint32Value;
            }
          }
          if (other.uint64Value_ != null) {
            if (uint64Value_ == null || other.Uint64Value != 0UL) {
              Uint64Value = other.Uint64Value;
            }
          }
          if (other.bytesValue_ != null) {
            if (bytesValue_ == null || other.BytesValue != pb::ByteString.Empty) {
              BytesValue = other.BytesValue;
            }
          }
          _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: {
                string value = _single_stringValue_codec.Read(input);
                if (stringValue_ == null || value != "") {
                  StringValue = value;
                }
                break;
              }
              case 18: {
                int? value = _single_int32Value_codec.Read(input);
                if (int32Value_ == null || value != 0) {
                  Int32Value = value;
                }
                break;
              }
              case 26: {
                long? value = _single_int64Value_codec.Read(input);
                if (int64Value_ == null || value != 0L) {
                  Int64Value = value;
                }
                break;
              }
              case 34: {
                float? value = _single_floatValue_codec.Read(input);
                if (floatValue_ == null || value != 0F) {
                  FloatValue = value;
                }
                break;
              }
              case 42: {
                double? value = _single_doubleValue_codec.Read(input);
                if (doubleValue_ == null || value != 0D) {
                  DoubleValue = value;
                }
                break;
              }
              case 50: {
                bool? value = _single_boolValue_codec.Read(input);
                if (boolValue_ == null || value != false) {
                  BoolValue = value;
                }
                break;
              }
              case 58: {
                uint? value = _single_uint32Value_codec.Read(input);
                if (uint32Value_ == null || value != 0) {
                  Uint32Value = value;
                }
                break;
              }
              case 66: {
                ulong? value = _single_uint64Value_codec.Read(input);
                if (uint64Value_ == null || value != 0UL) {
                  Uint64Value = value;
                }
                break;
              }
              case 74: {
                pb::ByteString value = _single_bytesValue_codec.Read(input);
                if (bytesValue_ == null || value != pb::ByteString.Empty) {
                  BytesValue = value;
                }
                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: {
                string value = _single_stringValue_codec.Read(ref input);
                if (stringValue_ == null || value != "") {
                  StringValue = value;
                }
                break;
              }
              case 18: {
                int? value = _single_int32Value_codec.Read(ref input);
                if (int32Value_ == null || value != 0) {
                  Int32Value = value;
                }
                break;
              }
              case 26: {
                long? value = _single_int64Value_codec.Read(ref input);
                if (int64Value_ == null || value != 0L) {
                  Int64Value = value;
                }
                break;
              }
              case 34: {
                float? value = _single_floatValue_codec.Read(ref input);
                if (floatValue_ == null || value != 0F) {
                  FloatValue = value;
                }
                break;
              }
              case 42: {
                double? value = _single_doubleValue_codec.Read(ref input);
                if (doubleValue_ == null || value != 0D) {
                  DoubleValue = value;
                }
                break;
              }
              case 50: {
                bool? value = _single_boolValue_codec.Read(ref input);
                if (boolValue_ == null || value != false) {
                  BoolValue = value;
                }
                break;
              }
              case 58: {
                uint? value = _single_uint32Value_codec.Read(ref input);
                if (uint32Value_ == null || value != 0) {
                  Uint32Value = value;
                }
                break;
              }
              case 66: {
                ulong? value = _single_uint64Value_codec.Read(ref input);
                if (uint64Value_ == null || value != 0UL) {
                  Uint64Value = value;
                }
                break;
              }
              case 74: {
                pb::ByteString value = _single_bytesValue_codec.Read(ref input);
                if (bytesValue_ == null || value != pb::ByteString.Empty) {
                  BytesValue = value;
                }
                break;
              }
            }
          }
        }
        #endif

      }

    }
    #endregion

  }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Transcoding.TranscodingReflection.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 HelloReply2() {
      OnConstruction();
    }

    partial void OnConstruction();

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

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

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

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

    /// <summary>Field number for the "enum" field.</summary>
    public const int EnumFieldNumber = 3;
    private global::Transcoding.EnumWithoutMessage enum_ = global::Transcoding.EnumWithoutMessage.Unspecified;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Transcoding.EnumWithoutMessage Enum {
      get { return enum_; }
      set {
        enum_ = value;
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(HelloReply2 other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Message != other.Message) return false;
      if(!values_.Equals(other.values_)) return false;
      if (Enum != other.Enum) 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 (Message.Length != 0) hash ^= Message.GetHashCode();
      hash ^= values_.GetHashCode();
      if (Enum != global::Transcoding.EnumWithoutMessage.Unspecified) hash ^= Enum.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 (Message.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Message);
      }
      values_.WriteTo(output, _repeated_values_codec);
      if (Enum != global::Transcoding.EnumWithoutMessage.Unspecified) {
        output.WriteRawTag(24);
        output.WriteEnum((int) Enum);
      }
      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 (Message.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Message);
      }
      values_.WriteTo(ref output, _repeated_values_codec);
      if (Enum != global::Transcoding.EnumWithoutMessage.Unspecified) {
        output.WriteRawTag(24);
        output.WriteEnum((int) Enum);
      }
      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 (Message.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Message);
      }
      size += values_.CalculateSize(_repeated_values_codec);
      if (Enum != global::Transcoding.EnumWithoutMessage.Unspecified) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Enum);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(HelloReply2 other) {
      if (other == null) {
        return;
      }
      if (other.Message.Length != 0) {
        Message = other.Message;
      }
      values_.Add(other.values_);
      if (other.Enum != global::Transcoding.EnumWithoutMessage.Unspecified) {
        Enum = other.Enum;
      }
      _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: {
            Message = input.ReadString();
            break;
          }
          case 18: {
            values_.AddEntriesFrom(input, _repeated_values_codec);
            break;
          }
          case 24: {
            Enum = (global::Transcoding.EnumWithoutMessage) input.ReadEnum();
            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: {
            Message = input.ReadString();
            break;
          }
          case 18: {
            values_.AddEntriesFrom(ref input, _repeated_values_codec);
            break;
          }
          case 24: {
            Enum = (global::Transcoding.EnumWithoutMessage) input.ReadEnum();
            break;
          }
        }
      }
    }
    #endif

  }

  #endregion

}

#endregion Designer generated code