File: artifacts\obj\Microsoft.AspNetCore.Grpc.JsonTranscoding.Tests\Release\net10.0\Proto\Transcoding.cs
Project: src\src\Grpc\JsonTranscoding\test\Microsoft.AspNetCore.Grpc.JsonTranscoding.Tests\Microsoft.AspNetCore.Grpc.JsonTranscoding.Tests.csproj (Microsoft.AspNetCore.Grpc.JsonTranscoding.Tests)
// <auto-generated>
//     Generated by the protocol buffer compiler.  DO NOT EDIT!
//     source: Proto/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 Proto/transcoding.proto</summary>
  public static partial class TranscodingReflection {

    #region Descriptor
    /// <summary>File descriptor for Proto/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(
            "ChdQcm90by90cmFuc2NvZGluZy5wcm90bxILdHJhbnNjb2RpbmcaHGdvb2ds",
            "ZS9hcGkvYW5ub3RhdGlvbnMucHJvdG8aHmdvb2dsZS9wcm90b2J1Zi93cmFw",
            "cGVycy5wcm90bxoZZ29vZ2xlL3Byb3RvYnVmL2FueS5wcm90bxofZ29vZ2xl",
            "L3Byb3RvYnVmL3RpbWVzdGFtcC5wcm90bxoeZ29vZ2xlL3Byb3RvYnVmL2R1",
            "cmF0aW9uLnByb3RvGhxnb29nbGUvcHJvdG9idWYvc3RydWN0LnByb3RvGiBn",
            "b29nbGUvcHJvdG9idWYvZmllbGRfbWFzay5wcm90byKUFQoMSGVsbG9SZXF1",
            "ZXN0EgwKBG5hbWUYASABKAkSMQoDc3ViGAIgASgLMiQudHJhbnNjb2Rpbmcu",
            "SGVsbG9SZXF1ZXN0LlN1Yk1lc3NhZ2USMQoEZGF0YRgDIAEoCzIjLnRyYW5z",
            "Y29kaW5nLkhlbGxvUmVxdWVzdC5EYXRhVHlwZXMSNAoId3JhcHBlcnMYBCAB",
            "KAsyIi50cmFuc2NvZGluZy5IZWxsb1JlcXVlc3QuV3JhcHBlcnMSGAoQcmVw",
            "ZWF0ZWRfc3RyaW5ncxgFIAMoCRIpCgthbnlfbWVzc2FnZRgGIAEoCzIULmdv",
            "b2dsZS5wcm90b2J1Zi5BbnkSPgoLbWFwX3N0cmluZ3MYByADKAsyKS50cmFu",
            "c2NvZGluZy5IZWxsb1JlcXVlc3QuTWFwU3RyaW5nc0VudHJ5Ej4KC21hcF9t",
            "ZXNzYWdlGAggAygLMikudHJhbnNjb2RpbmcuSGVsbG9SZXF1ZXN0Lk1hcE1l",
            "c3NhZ2VFbnRyeRI+CgttYXBfa2V5Ym9vbBgJIAMoCzIpLnRyYW5zY29kaW5n",
            "LkhlbGxvUmVxdWVzdC5NYXBLZXlib29sRW50cnkSPAoKbWFwX2tleWludBgK",
            "IAMoCzIoLnRyYW5zY29kaW5nLkhlbGxvUmVxdWVzdC5NYXBLZXlpbnRFbnRy",
            "eRIVCgtvbmVvZl9uYW1lMRgLIAEoCUgAEhUKC29uZW9mX25hbWUyGAwgASgJ",
            "SAASCwoDYWdlGA0gASgFEjwKFnJlcGVhdGVkX2RvdWJsZV92YWx1ZXMYDiAD",
            "KAsyHC5nb29nbGUucHJvdG9idWYuRG91YmxlVmFsdWUSMwoPdGltZXN0YW1w",
            "X3ZhbHVlGA8gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIxCg5k",
            "dXJhdGlvbl92YWx1ZRgQIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlv",
            "bhIrCgt2YWx1ZV92YWx1ZRgRIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1",
            "ZRItCgxzdHJ1Y3RfdmFsdWUYEiABKAsyFy5nb29nbGUucHJvdG9idWYuU3Ry",
            "dWN0Ei4KCmxpc3RfdmFsdWUYEyABKAsyGi5nb29nbGUucHJvdG9idWYuTGlz",
            "dFZhbHVlEi4KCm51bGxfdmFsdWUYFCABKA4yGi5nb29nbGUucHJvdG9idWYu",
            "TnVsbFZhbHVlEjQKEGZpZWxkX21hc2tfdmFsdWUYFSABKAsyGi5nb29nbGUu",
            "cHJvdG9idWYuRmllbGRNYXNrEigKCmZpZWxkX25hbWUYFiABKAlSFGpzb25f",
            "Y3VzdG9taXplZF9uYW1lEjAKC2Zsb2F0X3ZhbHVlGBcgASgLMhsuZ29vZ2xl",
            "LnByb3RvYnVmLkZsb2F0VmFsdWUSJQoRaGlkaW5nX2ZpZWxkX25hbWUYGCAB",
            "KAlSCmZpZWxkX25hbWUSPwoRcmVwZWF0ZWRfbWVzc2FnZXMYGSADKAsyJC50",
            "cmFuc2NvZGluZy5IZWxsb1JlcXVlc3QuU3ViTWVzc2FnZRJNChNtYXBfa2V5",
            "aW50X3ZhbHVlaW50GBogAygLMjAudHJhbnNjb2RpbmcuSGVsbG9SZXF1ZXN0",
            "Lk1hcEtleWludFZhbHVlaW50RW50cnkaMQoKU3ViTWVzc2FnZRIQCghzdWJm",
            "aWVsZBgBIAEoCRIRCglzdWJmaWVsZHMYAiADKAka7wQKCURhdGFUeXBlcxIU",
            "CgxzaW5nbGVfaW50MzIYASABKAUSFAoMc2luZ2xlX2ludDY0GAIgASgDEhUK",
            "DXNpbmdsZV91aW50MzIYAyABKA0SFQoNc2luZ2xlX3VpbnQ2NBgEIAEoBBIV",
            "Cg1zaW5nbGVfc2ludDMyGAUgASgREhUKDXNpbmdsZV9zaW50NjQYBiABKBIS",
            "FgoOc2luZ2xlX2ZpeGVkMzIYByABKAcSFgoOc2luZ2xlX2ZpeGVkNjQYCCAB",
            "KAYSFwoPc2luZ2xlX3NmaXhlZDMyGAkgASgPEhcKD3NpbmdsZV9zZml4ZWQ2",
            "NBgKIAEoEBIUCgxzaW5nbGVfZmxvYXQYCyABKAISFQoNc2luZ2xlX2RvdWJs",
            "ZRgMIAEoARITCgtzaW5nbGVfYm9vbBgNIAEoCBIVCg1zaW5nbGVfc3RyaW5n",
            "GA4gASgJEhQKDHNpbmdsZV9ieXRlcxgPIAEoDBJDCgtzaW5nbGVfZW51bRgQ",
            "IAEoDjIuLnRyYW5zY29kaW5nLkhlbGxvUmVxdWVzdC5EYXRhVHlwZXMuTmVz",
            "dGVkRW51bRJJCg5zaW5nbGVfbWVzc2FnZRgRIAEoCzIxLnRyYW5zY29kaW5n",
            "LkhlbGxvUmVxdWVzdC5EYXRhVHlwZXMuTmVzdGVkTWVzc2FnZRohCg1OZXN0",
            "ZWRNZXNzYWdlEhAKCHN1YmZpZWxkGAEgASgJIlYKCk5lc3RlZEVudW0SGwoX",
            "TkVTVEVEX0VOVU1fVU5TUEVDSUZJRUQQABIHCgNGT08QARIHCgNCQVIQAhIH",
            "CgNCQVoQAxIQCgNORUcQ////////////ARrSAwoIV3JhcHBlcnMSMgoMc3Ry",
            "aW5nX3ZhbHVlGAEgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVl",
            "EjAKC2ludDMyX3ZhbHVlGAIgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkludDMy",
            "VmFsdWUSMAoLaW50NjRfdmFsdWUYAyABKAsyGy5nb29nbGUucHJvdG9idWYu",
            "SW50NjRWYWx1ZRIwCgtmbG9hdF92YWx1ZRgEIAEoCzIbLmdvb2dsZS5wcm90",
            "b2J1Zi5GbG9hdFZhbHVlEjIKDGRvdWJsZV92YWx1ZRgFIAEoCzIcLmdvb2ds",
            "ZS5wcm90b2J1Zi5Eb3VibGVWYWx1ZRIuCgpib29sX3ZhbHVlGAYgASgLMhou",
            "Z29vZ2xlLnByb3RvYnVmLkJvb2xWYWx1ZRIyCgx1aW50MzJfdmFsdWUYByAB",
            "KAsyHC5nb29nbGUucHJvdG9idWYuVUludDMyVmFsdWUSMgoMdWludDY0X3Zh",
            "bHVlGAggASgLMhwuZ29vZ2xlLnByb3RvYnVmLlVJbnQ2NFZhbHVlEjAKC2J5",
            "dGVzX3ZhbHVlGAkgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkJ5dGVzVmFsdWUa",
            "MQoPTWFwU3RyaW5nc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEo",
            "CToCOAEaVwoPTWFwTWVzc2FnZUVudHJ5EgsKA2tleRgBIAEoCRIzCgV2YWx1",
            "ZRgCIAEoCzIkLnRyYW5zY29kaW5nLkhlbGxvUmVxdWVzdC5TdWJNZXNzYWdl",
            "OgI4ARoxCg9NYXBLZXlib29sRW50cnkSCwoDa2V5GAEgASgIEg0KBXZhbHVl",
            "GAIgASgJOgI4ARowCg5NYXBLZXlpbnRFbnRyeRILCgNrZXkYASABKAUSDQoF",
            "dmFsdWUYAiABKAk6AjgBGjgKFk1hcEtleWludFZhbHVlaW50RW50cnkSCwoD",
            "a2V5GAEgASgFEg0KBXZhbHVlGAIgASgFOgI4AUIMCgpvbmVvZl90ZXN0IvQB",
            "CgpIZWxsb1JlcGx5Eg8KB21lc3NhZ2UYASABKAkSDgoGdmFsdWVzGAIgAygJ",
            "EjYKEG51bGxhYmxlX21lc3NhZ2UYAyABKAsyHC5nb29nbGUucHJvdG9idWYu",
            "U3RyaW5nVmFsdWUSKQoLYW55X21lc3NhZ2UYBCABKAsyFC5nb29nbGUucHJv",
            "dG9idWYuQW55Ei8KA3N1YhgFIAEoCzIiLnRyYW5zY29kaW5nLkhlbGxvUmVw",
            "bHkuU3ViTWVzc2FnZRoxCgpTdWJNZXNzYWdlEhAKCHN1YmZpZWxkGAEgASgJ",
            "EhEKCXN1YmZpZWxkcxgCIAMoCSJEChJOdWxsVmFsdWVDb250YWluZXISLgoK",
            "bnVsbF92YWx1ZRgBIAEoDjIaLmdvb2dsZS5wcm90b2J1Zi5OdWxsVmFsdWUy",
            "nQcKFkpzb25UcmFuc2NvZGluZ0dyZWV0ZXISWgoIU2F5SGVsbG8SGS50cmFu",
            "c2NvZGluZy5IZWxsb1JlcXVlc3QaFy50cmFuc2NvZGluZy5IZWxsb1JlcGx5",
            "IhqC0+STAhQSEi92MS9ncmVldGVyL3tuYW1lfRJnCgxSZXNwb25zZUJvZHkS",
            "GS50cmFuc2NvZGluZy5IZWxsb1JlcXVlc3QaFy50cmFuc2NvZGluZy5IZWxs",
            "b1JlcGx5IiOC0+STAh0SEi92MS9ncmVldGVyL3tuYW1lfWIHbWVzc2FnZRJg",
            "CgZDdXN0b20SGS50cmFuc2NvZGluZy5IZWxsb1JlcXVlc3QaFy50cmFuc2Nv",
            "ZGluZy5IZWxsb1JlcGx5IiKC0+STAhxCGgoESEVBRBISL3YxL2dyZWV0ZXIv",
            "e25hbWV9EpIBChJBZGRpdGlvbmFsQmluZGluZ3MSGS50cmFuc2NvZGluZy5I",
            "ZWxsb1JlcXVlc3QaFy50cmFuc2NvZGluZy5IZWxsb1JlcGx5IkiC0+STAkIS",
            "Hi92MS9hZGRpdGlvbmFsX2JpbmRpbmdzL3tuYW1lfVogKh4vdjEvYWRkaXRp",
            "b25hbF9iaW5kaW5ncy97bmFtZX0SPgoITm9PcHRpb24SGS50cmFuc2NvZGlu",
            "Zy5IZWxsb1JlcXVlc3QaFy50cmFuc2NvZGluZy5IZWxsb1JlcGx5EmwKGFNl",
            "cnZlclN0cmVhbWluZ0dldE9wdGlvbhIZLnRyYW5zY29kaW5nLkhlbGxvUmVx",
            "dWVzdBoXLnRyYW5zY29kaW5nLkhlbGxvUmVwbHkiGoLT5JMCFBISL3YxL2dy",
            "ZWV0ZXIve25hbWV9MAESUgoEQm9keRIZLnRyYW5zY29kaW5nLkhlbGxvUmVx",
            "dWVzdBoXLnRyYW5zY29kaW5nLkhlbGxvUmVwbHkiFoLT5JMCECILL3YxL2dy",
            "ZWV0ZXI6ASoSVwoHU3ViQm9keRIZLnRyYW5zY29kaW5nLkhlbGxvUmVxdWVz",
            "dBoXLnRyYW5zY29kaW5nLkhlbGxvUmVwbHkiGILT5JMCEiILL3YxL2dyZWV0",
            "ZXI6A3N1YhJsCg9TdWJSZXBlYXRlZEJvZHkSGS50cmFuc2NvZGluZy5IZWxs",
            "b1JlcXVlc3QaFy50cmFuc2NvZGluZy5IZWxsb1JlcGx5IiWC0+STAh8iCy92",
            "MS9ncmVldGVyOhByZXBlYXRlZF9zdHJpbmdzMpcBCilKc29uVHJhbnNjb2Rp",
            "bmdJbnZhbGlkUmVzcG9uc2VCb2R5R3JlZXRlchJqCg9CYWRSZXNwb25zZUJv",
            "ZHkSGS50cmFuc2NvZGluZy5IZWxsb1JlcXVlc3QaFy50cmFuc2NvZGluZy5I",
            "ZWxsb1JlcGx5IiOC0+STAh0SEi92MS9ncmVldGVyL3tuYW1lfWIHTm9NYXRj",
            "aDKiAQovSnNvblRyYW5zY29kaW5nSW52YWxpZE5lc3RlZFJlc3BvbnNlQm9k",
            "eUdyZWV0ZXISbwoPQmFkUmVzcG9uc2VCb2R5EhkudHJhbnNjb2RpbmcuSGVs",
            "bG9SZXF1ZXN0GhcudHJhbnNjb2RpbmcuSGVsbG9SZXBseSIogtPkkwIiEhIv",
            "djEvZ3JlZXRlci97bmFtZX1iDHN1Yi5zdWJmaWVsZDKHAQohSnNvblRyYW5z",
            "Y29kaW5nSW52YWxpZEJvZHlHcmVldGVyEmIKB0JhZEJvZHkSGS50cmFuc2Nv",
            "ZGluZy5IZWxsb1JlcXVlc3QaFy50cmFuc2NvZGluZy5IZWxsb1JlcGx5IiOC",
            "0+STAh0SEi92MS9ncmVldGVyL3tuYW1lfToHTm9NYXRjaDKSAQonSnNvblRy",
            "YW5zY29kaW5nSW52YWxpZE5lc3RlZEJvZHlHcmVldGVyEmcKB0JhZEJvZHkS",
            "GS50cmFuc2NvZGluZy5IZWxsb1JlcXVlc3QaFy50cmFuc2NvZGluZy5IZWxs",
            "b1JlcGx5IiiC0+STAiISEi92MS9ncmVldGVyL3tuYW1lfToMc3ViLnN1YmZp",
            "ZWxkMowBCiRKc29uVHJhbnNjb2RpbmdJbnZhbGlkUGF0dGVybkdyZWV0ZXIS",
            "ZAoKQmFkUGF0dGVybhIZLnRyYW5zY29kaW5nLkhlbGxvUmVxdWVzdBoXLnRy",
            "YW5zY29kaW5nLkhlbGxvUmVwbHkiIoLT5JMCHBIRdjEvZ3JlZXRlci97bmFt",
            "ZX06B05vTWF0Y2gy5QIKGEpzb25UcmFuc2NvZGluZ1N0cmVhbWluZxJtChJH",
            "ZXRTZXJ2ZXJTdHJlYW1pbmcSGS50cmFuc2NvZGluZy5IZWxsb1JlcXVlc3Qa",
            "Fy50cmFuc2NvZGluZy5IZWxsb1JlcGx5IiGC0+STAhsSGS92MS9zZXJ2ZXJf",
            "Z3JlZXRlci97bmFtZX0wARJtChJHZXRDbGllbnRTdHJlYW1pbmcSGS50cmFu",
            "c2NvZGluZy5IZWxsb1JlcXVlc3QaFy50cmFuc2NvZGluZy5IZWxsb1JlcGx5",
            "IiGC0+STAhsSGS92MS9jbGllbnRfZ3JlZXRlci97bmFtZX0oARJrChBHZXRC",
            "aWRpU3RyZWFtaW5nEhkudHJhbnNjb2RpbmcuSGVsbG9SZXF1ZXN0GhcudHJh",
            "bnNjb2RpbmcuSGVsbG9SZXBseSIfgtPkkwIZEhcvdjEvYmlkaV9ncmVldGVy",
            "L3tuYW1lfSgBMAEy9wEKGUpzb25UcmFuc2NvZGluZ0NvbG9uUm91dGUSbgoQ",
            "U3RhcnRGcmFtZUltcG9ydBIZLnRyYW5zY29kaW5nLkhlbGxvUmVxdWVzdBoX",
            "LnRyYW5zY29kaW5nLkhlbGxvUmVwbHkiJoLT5JMCICIbL3YxL2ZyYW1lczpz",
            "dGFydEZyYW1lSW1wb3J0OgEqEmoKDkdldEZyYW1lSW1wb3J0EhkudHJhbnNj",
            "b2RpbmcuSGVsbG9SZXF1ZXN0GhcudHJhbnNjb2RpbmcuSGVsbG9SZXBseSIk",
            "gtPkkwIeIhkvdjEvZnJhbWVzOmdldEZyYW1lSW1wb3J0OgEqYgZwcm90bzM="));
      descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
          new pbr::FileDescriptor[] { global::Google.Api.AnnotationsReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.WrappersReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.AnyReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.TimestampReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.DurationReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.StructReflection.Descriptor, global::Google.Protobuf.WellKnownTypes.FieldMaskReflection.Descriptor, },
          new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {
            new pbr::GeneratedClrTypeInfo(typeof(global::Transcoding.HelloRequest), global::Transcoding.HelloRequest.Parser, new[]{ "Name", "Sub", "Data", "Wrappers", "RepeatedStrings", "AnyMessage", "MapStrings", "MapMessage", "MapKeybool", "MapKeyint", "OneofName1", "OneofName2", "Age", "RepeatedDoubleValues", "TimestampValue", "DurationValue", "ValueValue", "StructValue", "ListValue", "NullValue", "FieldMaskValue", "FieldName", "FloatValue", "HidingFieldName", "RepeatedMessages", "MapKeyintValueint" }, new[]{ "OneofTest" }, 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),
            null, null, null, null, null, }),
            new pbr::GeneratedClrTypeInfo(typeof(global::Transcoding.HelloReply), global::Transcoding.HelloReply.Parser, new[]{ "Message", "Values", "NullableMessage", "AnyMessage", "Sub" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Transcoding.HelloReply.Types.SubMessage), global::Transcoding.HelloReply.Types.SubMessage.Parser, new[]{ "Subfield", "Subfields" }, null, null, null, null)}),
            new pbr::GeneratedClrTypeInfo(typeof(global::Transcoding.NullValueContainer), global::Transcoding.NullValueContainer.Parser, new[]{ "NullValue" }, null, null, null, null)
          }));
    }
    #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();
      anyMessage_ = other.anyMessage_ != null ? other.anyMessage_.Clone() : null;
      mapStrings_ = other.mapStrings_.Clone();
      mapMessage_ = other.mapMessage_.Clone();
      mapKeybool_ = other.mapKeybool_.Clone();
      mapKeyint_ = other.mapKeyint_.Clone();
      age_ = other.age_;
      repeatedDoubleValues_ = other.repeatedDoubleValues_.Clone();
      timestampValue_ = other.timestampValue_ != null ? other.timestampValue_.Clone() : null;
      durationValue_ = other.durationValue_ != null ? other.durationValue_.Clone() : null;
      valueValue_ = other.valueValue_ != null ? other.valueValue_.Clone() : null;
      structValue_ = other.structValue_ != null ? other.structValue_.Clone() : null;
      listValue_ = other.listValue_ != null ? other.listValue_.Clone() : null;
      nullValue_ = other.nullValue_;
      fieldMaskValue_ = other.fieldMaskValue_ != null ? other.fieldMaskValue_.Clone() : null;
      fieldName_ = other.fieldName_;
      FloatValue = other.FloatValue;
      hidingFieldName_ = other.hidingFieldName_;
      repeatedMessages_ = other.repeatedMessages_.Clone();
      mapKeyintValueint_ = other.mapKeyintValueint_.Clone();
      switch (other.OneofTestCase) {
        case OneofTestOneofCase.OneofName1:
          OneofName1 = other.OneofName1;
          break;
        case OneofTestOneofCase.OneofName2:
          OneofName2 = other.OneofName2;
          break;
      }

      _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_; }
    }

    /// <summary>Field number for the "any_message" field.</summary>
    public const int AnyMessageFieldNumber = 6;
    private global::Google.Protobuf.WellKnownTypes.Any anyMessage_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Google.Protobuf.WellKnownTypes.Any AnyMessage {
      get { return anyMessage_; }
      set {
        anyMessage_ = value;
      }
    }

    /// <summary>Field number for the "map_strings" field.</summary>
    public const int MapStringsFieldNumber = 7;
    private static readonly pbc::MapField<string, string>.Codec _map_mapStrings_codec
        = new pbc::MapField<string, string>.Codec(pb::FieldCodec.ForString(10, ""), pb::FieldCodec.ForString(18, ""), 58);
    private readonly pbc::MapField<string, string> mapStrings_ = new pbc::MapField<string, string>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::MapField<string, string> MapStrings {
      get { return mapStrings_; }
    }

    /// <summary>Field number for the "map_message" field.</summary>
    public const int MapMessageFieldNumber = 8;
    private static readonly pbc::MapField<string, global::Transcoding.HelloRequest.Types.SubMessage>.Codec _map_mapMessage_codec
        = new pbc::MapField<string, global::Transcoding.HelloRequest.Types.SubMessage>.Codec(pb::FieldCodec.ForString(10, ""), pb::FieldCodec.ForMessage(18, global::Transcoding.HelloRequest.Types.SubMessage.Parser), 66);
    private readonly pbc::MapField<string, global::Transcoding.HelloRequest.Types.SubMessage> mapMessage_ = new pbc::MapField<string, global::Transcoding.HelloRequest.Types.SubMessage>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::MapField<string, global::Transcoding.HelloRequest.Types.SubMessage> MapMessage {
      get { return mapMessage_; }
    }

    /// <summary>Field number for the "map_keybool" field.</summary>
    public const int MapKeyboolFieldNumber = 9;
    private static readonly pbc::MapField<bool, string>.Codec _map_mapKeybool_codec
        = new pbc::MapField<bool, string>.Codec(pb::FieldCodec.ForBool(8, false), pb::FieldCodec.ForString(18, ""), 74);
    private readonly pbc::MapField<bool, string> mapKeybool_ = new pbc::MapField<bool, string>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::MapField<bool, string> MapKeybool {
      get { return mapKeybool_; }
    }

    /// <summary>Field number for the "map_keyint" field.</summary>
    public const int MapKeyintFieldNumber = 10;
    private static readonly pbc::MapField<int, string>.Codec _map_mapKeyint_codec
        = new pbc::MapField<int, string>.Codec(pb::FieldCodec.ForInt32(8, 0), pb::FieldCodec.ForString(18, ""), 82);
    private readonly pbc::MapField<int, string> mapKeyint_ = new pbc::MapField<int, string>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::MapField<int, string> MapKeyint {
      get { return mapKeyint_; }
    }

    /// <summary>Field number for the "oneof_name1" field.</summary>
    public const int OneofName1FieldNumber = 11;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string OneofName1 {
      get { return HasOneofName1 ? (string) oneofTest_ : ""; }
      set {
        oneofTest_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
        oneofTestCase_ = OneofTestOneofCase.OneofName1;
      }
    }
    /// <summary>Gets whether the "oneof_name1" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasOneofName1 {
      get { return oneofTestCase_ == OneofTestOneofCase.OneofName1; }
    }
    /// <summary> Clears the value of the oneof if it's currently set to "oneof_name1" </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearOneofName1() {
      if (HasOneofName1) {
        ClearOneofTest();
      }
    }

    /// <summary>Field number for the "oneof_name2" field.</summary>
    public const int OneofName2FieldNumber = 12;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string OneofName2 {
      get { return HasOneofName2 ? (string) oneofTest_ : ""; }
      set {
        oneofTest_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
        oneofTestCase_ = OneofTestOneofCase.OneofName2;
      }
    }
    /// <summary>Gets whether the "oneof_name2" field is set</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool HasOneofName2 {
      get { return oneofTestCase_ == OneofTestOneofCase.OneofName2; }
    }
    /// <summary> Clears the value of the oneof if it's currently set to "oneof_name2" </summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearOneofName2() {
      if (HasOneofName2) {
        ClearOneofTest();
      }
    }

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

    /// <summary>Field number for the "repeated_double_values" field.</summary>
    public const int RepeatedDoubleValuesFieldNumber = 14;
    private static readonly pb::FieldCodec<double?> _repeated_repeatedDoubleValues_codec
        = pb::FieldCodec.ForStructWrapper<double>(114);
    private readonly pbc::RepeatedField<double?> repeatedDoubleValues_ = new pbc::RepeatedField<double?>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<double?> RepeatedDoubleValues {
      get { return repeatedDoubleValues_; }
    }

    /// <summary>Field number for the "timestamp_value" field.</summary>
    public const int TimestampValueFieldNumber = 15;
    private global::Google.Protobuf.WellKnownTypes.Timestamp timestampValue_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Google.Protobuf.WellKnownTypes.Timestamp TimestampValue {
      get { return timestampValue_; }
      set {
        timestampValue_ = value;
      }
    }

    /// <summary>Field number for the "duration_value" field.</summary>
    public const int DurationValueFieldNumber = 16;
    private global::Google.Protobuf.WellKnownTypes.Duration durationValue_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Google.Protobuf.WellKnownTypes.Duration DurationValue {
      get { return durationValue_; }
      set {
        durationValue_ = value;
      }
    }

    /// <summary>Field number for the "value_value" field.</summary>
    public const int ValueValueFieldNumber = 17;
    private global::Google.Protobuf.WellKnownTypes.Value valueValue_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Google.Protobuf.WellKnownTypes.Value ValueValue {
      get { return valueValue_; }
      set {
        valueValue_ = value;
      }
    }

    /// <summary>Field number for the "struct_value" field.</summary>
    public const int StructValueFieldNumber = 18;
    private global::Google.Protobuf.WellKnownTypes.Struct structValue_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Google.Protobuf.WellKnownTypes.Struct StructValue {
      get { return structValue_; }
      set {
        structValue_ = value;
      }
    }

    /// <summary>Field number for the "list_value" field.</summary>
    public const int ListValueFieldNumber = 19;
    private global::Google.Protobuf.WellKnownTypes.ListValue listValue_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Google.Protobuf.WellKnownTypes.ListValue ListValue {
      get { return listValue_; }
      set {
        listValue_ = value;
      }
    }

    /// <summary>Field number for the "null_value" field.</summary>
    public const int NullValueFieldNumber = 20;
    private global::Google.Protobuf.WellKnownTypes.NullValue nullValue_ = global::Google.Protobuf.WellKnownTypes.NullValue.NullValue;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Google.Protobuf.WellKnownTypes.NullValue NullValue {
      get { return nullValue_; }
      set {
        nullValue_ = value;
      }
    }

    /// <summary>Field number for the "field_mask_value" field.</summary>
    public const int FieldMaskValueFieldNumber = 21;
    private global::Google.Protobuf.WellKnownTypes.FieldMask fieldMaskValue_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Google.Protobuf.WellKnownTypes.FieldMask FieldMaskValue {
      get { return fieldMaskValue_; }
      set {
        fieldMaskValue_ = value;
      }
    }

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

    /// <summary>Field number for the "float_value" field.</summary>
    public const int FloatValueFieldNumber = 23;
    private static readonly pb::FieldCodec<float?> _single_floatValue_codec = pb::FieldCodec.ForStructWrapper<float>(186);
    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 "hiding_field_name" field.</summary>
    public const int HidingFieldNameFieldNumber = 24;
    private string hidingFieldName_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string HidingFieldName {
      get { return hidingFieldName_; }
      set {
        hidingFieldName_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "repeated_messages" field.</summary>
    public const int RepeatedMessagesFieldNumber = 25;
    private static readonly pb::FieldCodec<global::Transcoding.HelloRequest.Types.SubMessage> _repeated_repeatedMessages_codec
        = pb::FieldCodec.ForMessage(202, global::Transcoding.HelloRequest.Types.SubMessage.Parser);
    private readonly pbc::RepeatedField<global::Transcoding.HelloRequest.Types.SubMessage> repeatedMessages_ = new pbc::RepeatedField<global::Transcoding.HelloRequest.Types.SubMessage>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<global::Transcoding.HelloRequest.Types.SubMessage> RepeatedMessages {
      get { return repeatedMessages_; }
    }

    /// <summary>Field number for the "map_keyint_valueint" field.</summary>
    public const int MapKeyintValueintFieldNumber = 26;
    private static readonly pbc::MapField<int, int>.Codec _map_mapKeyintValueint_codec
        = new pbc::MapField<int, int>.Codec(pb::FieldCodec.ForInt32(8, 0), pb::FieldCodec.ForInt32(16, 0), 210);
    private readonly pbc::MapField<int, int> mapKeyintValueint_ = new pbc::MapField<int, int>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::MapField<int, int> MapKeyintValueint {
      get { return mapKeyintValueint_; }
    }

    private object oneofTest_;
    /// <summary>Enum of possible cases for the "oneof_test" oneof.</summary>
    public enum OneofTestOneofCase {
      None = 0,
      OneofName1 = 11,
      OneofName2 = 12,
    }
    private OneofTestOneofCase oneofTestCase_ = OneofTestOneofCase.None;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public OneofTestOneofCase OneofTestCase {
      get { return oneofTestCase_; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void ClearOneofTest() {
      oneofTestCase_ = OneofTestOneofCase.None;
      oneofTest_ = null;
    }

    [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;
      if (!object.Equals(AnyMessage, other.AnyMessage)) return false;
      if (!MapStrings.Equals(other.MapStrings)) return false;
      if (!MapMessage.Equals(other.MapMessage)) return false;
      if (!MapKeybool.Equals(other.MapKeybool)) return false;
      if (!MapKeyint.Equals(other.MapKeyint)) return false;
      if (OneofName1 != other.OneofName1) return false;
      if (OneofName2 != other.OneofName2) return false;
      if (Age != other.Age) return false;
      if(!repeatedDoubleValues_.Equals(other.repeatedDoubleValues_)) return false;
      if (!object.Equals(TimestampValue, other.TimestampValue)) return false;
      if (!object.Equals(DurationValue, other.DurationValue)) return false;
      if (!object.Equals(ValueValue, other.ValueValue)) return false;
      if (!object.Equals(StructValue, other.StructValue)) return false;
      if (!object.Equals(ListValue, other.ListValue)) return false;
      if (NullValue != other.NullValue) return false;
      if (!object.Equals(FieldMaskValue, other.FieldMaskValue)) return false;
      if (FieldName != other.FieldName) return false;
      if (!pbc::ProtobufEqualityComparers.BitwiseNullableSingleEqualityComparer.Equals(FloatValue, other.FloatValue)) return false;
      if (HidingFieldName != other.HidingFieldName) return false;
      if(!repeatedMessages_.Equals(other.repeatedMessages_)) return false;
      if (!MapKeyintValueint.Equals(other.MapKeyintValueint)) return false;
      if (OneofTestCase != other.OneofTestCase) 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 (anyMessage_ != null) hash ^= AnyMessage.GetHashCode();
      hash ^= MapStrings.GetHashCode();
      hash ^= MapMessage.GetHashCode();
      hash ^= MapKeybool.GetHashCode();
      hash ^= MapKeyint.GetHashCode();
      if (HasOneofName1) hash ^= OneofName1.GetHashCode();
      if (HasOneofName2) hash ^= OneofName2.GetHashCode();
      if (Age != 0) hash ^= Age.GetHashCode();
      hash ^= repeatedDoubleValues_.GetHashCode();
      if (timestampValue_ != null) hash ^= TimestampValue.GetHashCode();
      if (durationValue_ != null) hash ^= DurationValue.GetHashCode();
      if (valueValue_ != null) hash ^= ValueValue.GetHashCode();
      if (structValue_ != null) hash ^= StructValue.GetHashCode();
      if (listValue_ != null) hash ^= ListValue.GetHashCode();
      if (NullValue != global::Google.Protobuf.WellKnownTypes.NullValue.NullValue) hash ^= NullValue.GetHashCode();
      if (fieldMaskValue_ != null) hash ^= FieldMaskValue.GetHashCode();
      if (FieldName.Length != 0) hash ^= FieldName.GetHashCode();
      if (floatValue_ != null) hash ^= pbc::ProtobufEqualityComparers.BitwiseNullableSingleEqualityComparer.GetHashCode(FloatValue);
      if (HidingFieldName.Length != 0) hash ^= HidingFieldName.GetHashCode();
      hash ^= repeatedMessages_.GetHashCode();
      hash ^= MapKeyintValueint.GetHashCode();
      hash ^= (int) oneofTestCase_;
      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 (anyMessage_ != null) {
        output.WriteRawTag(50);
        output.WriteMessage(AnyMessage);
      }
      mapStrings_.WriteTo(output, _map_mapStrings_codec);
      mapMessage_.WriteTo(output, _map_mapMessage_codec);
      mapKeybool_.WriteTo(output, _map_mapKeybool_codec);
      mapKeyint_.WriteTo(output, _map_mapKeyint_codec);
      if (HasOneofName1) {
        output.WriteRawTag(90);
        output.WriteString(OneofName1);
      }
      if (HasOneofName2) {
        output.WriteRawTag(98);
        output.WriteString(OneofName2);
      }
      if (Age != 0) {
        output.WriteRawTag(104);
        output.WriteInt32(Age);
      }
      repeatedDoubleValues_.WriteTo(output, _repeated_repeatedDoubleValues_codec);
      if (timestampValue_ != null) {
        output.WriteRawTag(122);
        output.WriteMessage(TimestampValue);
      }
      if (durationValue_ != null) {
        output.WriteRawTag(130, 1);
        output.WriteMessage(DurationValue);
      }
      if (valueValue_ != null) {
        output.WriteRawTag(138, 1);
        output.WriteMessage(ValueValue);
      }
      if (structValue_ != null) {
        output.WriteRawTag(146, 1);
        output.WriteMessage(StructValue);
      }
      if (listValue_ != null) {
        output.WriteRawTag(154, 1);
        output.WriteMessage(ListValue);
      }
      if (NullValue != global::Google.Protobuf.WellKnownTypes.NullValue.NullValue) {
        output.WriteRawTag(160, 1);
        output.WriteEnum((int) NullValue);
      }
      if (fieldMaskValue_ != null) {
        output.WriteRawTag(170, 1);
        output.WriteMessage(FieldMaskValue);
      }
      if (FieldName.Length != 0) {
        output.WriteRawTag(178, 1);
        output.WriteString(FieldName);
      }
      if (floatValue_ != null) {
        _single_floatValue_codec.WriteTagAndValue(output, FloatValue);
      }
      if (HidingFieldName.Length != 0) {
        output.WriteRawTag(194, 1);
        output.WriteString(HidingFieldName);
      }
      repeatedMessages_.WriteTo(output, _repeated_repeatedMessages_codec);
      mapKeyintValueint_.WriteTo(output, _map_mapKeyintValueint_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 (anyMessage_ != null) {
        output.WriteRawTag(50);
        output.WriteMessage(AnyMessage);
      }
      mapStrings_.WriteTo(ref output, _map_mapStrings_codec);
      mapMessage_.WriteTo(ref output, _map_mapMessage_codec);
      mapKeybool_.WriteTo(ref output, _map_mapKeybool_codec);
      mapKeyint_.WriteTo(ref output, _map_mapKeyint_codec);
      if (HasOneofName1) {
        output.WriteRawTag(90);
        output.WriteString(OneofName1);
      }
      if (HasOneofName2) {
        output.WriteRawTag(98);
        output.WriteString(OneofName2);
      }
      if (Age != 0) {
        output.WriteRawTag(104);
        output.WriteInt32(Age);
      }
      repeatedDoubleValues_.WriteTo(ref output, _repeated_repeatedDoubleValues_codec);
      if (timestampValue_ != null) {
        output.WriteRawTag(122);
        output.WriteMessage(TimestampValue);
      }
      if (durationValue_ != null) {
        output.WriteRawTag(130, 1);
        output.WriteMessage(DurationValue);
      }
      if (valueValue_ != null) {
        output.WriteRawTag(138, 1);
        output.WriteMessage(ValueValue);
      }
      if (structValue_ != null) {
        output.WriteRawTag(146, 1);
        output.WriteMessage(StructValue);
      }
      if (listValue_ != null) {
        output.WriteRawTag(154, 1);
        output.WriteMessage(ListValue);
      }
      if (NullValue != global::Google.Protobuf.WellKnownTypes.NullValue.NullValue) {
        output.WriteRawTag(160, 1);
        output.WriteEnum((int) NullValue);
      }
      if (fieldMaskValue_ != null) {
        output.WriteRawTag(170, 1);
        output.WriteMessage(FieldMaskValue);
      }
      if (FieldName.Length != 0) {
        output.WriteRawTag(178, 1);
        output.WriteString(FieldName);
      }
      if (floatValue_ != null) {
        _single_floatValue_codec.WriteTagAndValue(ref output, FloatValue);
      }
      if (HidingFieldName.Length != 0) {
        output.WriteRawTag(194, 1);
        output.WriteString(HidingFieldName);
      }
      repeatedMessages_.WriteTo(ref output, _repeated_repeatedMessages_codec);
      mapKeyintValueint_.WriteTo(ref output, _map_mapKeyintValueint_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 (anyMessage_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(AnyMessage);
      }
      size += mapStrings_.CalculateSize(_map_mapStrings_codec);
      size += mapMessage_.CalculateSize(_map_mapMessage_codec);
      size += mapKeybool_.CalculateSize(_map_mapKeybool_codec);
      size += mapKeyint_.CalculateSize(_map_mapKeyint_codec);
      if (HasOneofName1) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(OneofName1);
      }
      if (HasOneofName2) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(OneofName2);
      }
      if (Age != 0) {
        size += 1 + pb::CodedOutputStream.ComputeInt32Size(Age);
      }
      size += repeatedDoubleValues_.CalculateSize(_repeated_repeatedDoubleValues_codec);
      if (timestampValue_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(TimestampValue);
      }
      if (durationValue_ != null) {
        size += 2 + pb::CodedOutputStream.ComputeMessageSize(DurationValue);
      }
      if (valueValue_ != null) {
        size += 2 + pb::CodedOutputStream.ComputeMessageSize(ValueValue);
      }
      if (structValue_ != null) {
        size += 2 + pb::CodedOutputStream.ComputeMessageSize(StructValue);
      }
      if (listValue_ != null) {
        size += 2 + pb::CodedOutputStream.ComputeMessageSize(ListValue);
      }
      if (NullValue != global::Google.Protobuf.WellKnownTypes.NullValue.NullValue) {
        size += 2 + pb::CodedOutputStream.ComputeEnumSize((int) NullValue);
      }
      if (fieldMaskValue_ != null) {
        size += 2 + pb::CodedOutputStream.ComputeMessageSize(FieldMaskValue);
      }
      if (FieldName.Length != 0) {
        size += 2 + pb::CodedOutputStream.ComputeStringSize(FieldName);
      }
      if (floatValue_ != null) {
        size += _single_floatValue_codec.CalculateSizeWithTag(FloatValue);
      }
      if (HidingFieldName.Length != 0) {
        size += 2 + pb::CodedOutputStream.ComputeStringSize(HidingFieldName);
      }
      size += repeatedMessages_.CalculateSize(_repeated_repeatedMessages_codec);
      size += mapKeyintValueint_.CalculateSize(_map_mapKeyintValueint_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_);
      if (other.anyMessage_ != null) {
        if (anyMessage_ == null) {
          AnyMessage = new global::Google.Protobuf.WellKnownTypes.Any();
        }
        AnyMessage.MergeFrom(other.AnyMessage);
      }
      mapStrings_.MergeFrom(other.mapStrings_);
      mapMessage_.MergeFrom(other.mapMessage_);
      mapKeybool_.MergeFrom(other.mapKeybool_);
      mapKeyint_.MergeFrom(other.mapKeyint_);
      if (other.Age != 0) {
        Age = other.Age;
      }
      repeatedDoubleValues_.Add(other.repeatedDoubleValues_);
      if (other.timestampValue_ != null) {
        if (timestampValue_ == null) {
          TimestampValue = new global::Google.Protobuf.WellKnownTypes.Timestamp();
        }
        TimestampValue.MergeFrom(other.TimestampValue);
      }
      if (other.durationValue_ != null) {
        if (durationValue_ == null) {
          DurationValue = new global::Google.Protobuf.WellKnownTypes.Duration();
        }
        DurationValue.MergeFrom(other.DurationValue);
      }
      if (other.valueValue_ != null) {
        if (valueValue_ == null) {
          ValueValue = new global::Google.Protobuf.WellKnownTypes.Value();
        }
        ValueValue.MergeFrom(other.ValueValue);
      }
      if (other.structValue_ != null) {
        if (structValue_ == null) {
          StructValue = new global::Google.Protobuf.WellKnownTypes.Struct();
        }
        StructValue.MergeFrom(other.StructValue);
      }
      if (other.listValue_ != null) {
        if (listValue_ == null) {
          ListValue = new global::Google.Protobuf.WellKnownTypes.ListValue();
        }
        ListValue.MergeFrom(other.ListValue);
      }
      if (other.NullValue != global::Google.Protobuf.WellKnownTypes.NullValue.NullValue) {
        NullValue = other.NullValue;
      }
      if (other.fieldMaskValue_ != null) {
        if (fieldMaskValue_ == null) {
          FieldMaskValue = new global::Google.Protobuf.WellKnownTypes.FieldMask();
        }
        FieldMaskValue.MergeFrom(other.FieldMaskValue);
      }
      if (other.FieldName.Length != 0) {
        FieldName = other.FieldName;
      }
      if (other.floatValue_ != null) {
        if (floatValue_ == null || other.FloatValue != 0F) {
          FloatValue = other.FloatValue;
        }
      }
      if (other.HidingFieldName.Length != 0) {
        HidingFieldName = other.HidingFieldName;
      }
      repeatedMessages_.Add(other.repeatedMessages_);
      mapKeyintValueint_.MergeFrom(other.mapKeyintValueint_);
      switch (other.OneofTestCase) {
        case OneofTestOneofCase.OneofName1:
          OneofName1 = other.OneofName1;
          break;
        case OneofTestOneofCase.OneofName2:
          OneofName2 = other.OneofName2;
          break;
      }

      _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;
          }
          case 50: {
            if (anyMessage_ == null) {
              AnyMessage = new global::Google.Protobuf.WellKnownTypes.Any();
            }
            input.ReadMessage(AnyMessage);
            break;
          }
          case 58: {
            mapStrings_.AddEntriesFrom(input, _map_mapStrings_codec);
            break;
          }
          case 66: {
            mapMessage_.AddEntriesFrom(input, _map_mapMessage_codec);
            break;
          }
          case 74: {
            mapKeybool_.AddEntriesFrom(input, _map_mapKeybool_codec);
            break;
          }
          case 82: {
            mapKeyint_.AddEntriesFrom(input, _map_mapKeyint_codec);
            break;
          }
          case 90: {
            OneofName1 = input.ReadString();
            break;
          }
          case 98: {
            OneofName2 = input.ReadString();
            break;
          }
          case 104: {
            Age = input.ReadInt32();
            break;
          }
          case 114: {
            repeatedDoubleValues_.AddEntriesFrom(input, _repeated_repeatedDoubleValues_codec);
            break;
          }
          case 122: {
            if (timestampValue_ == null) {
              TimestampValue = new global::Google.Protobuf.WellKnownTypes.Timestamp();
            }
            input.ReadMessage(TimestampValue);
            break;
          }
          case 130: {
            if (durationValue_ == null) {
              DurationValue = new global::Google.Protobuf.WellKnownTypes.Duration();
            }
            input.ReadMessage(DurationValue);
            break;
          }
          case 138: {
            if (valueValue_ == null) {
              ValueValue = new global::Google.Protobuf.WellKnownTypes.Value();
            }
            input.ReadMessage(ValueValue);
            break;
          }
          case 146: {
            if (structValue_ == null) {
              StructValue = new global::Google.Protobuf.WellKnownTypes.Struct();
            }
            input.ReadMessage(StructValue);
            break;
          }
          case 154: {
            if (listValue_ == null) {
              ListValue = new global::Google.Protobuf.WellKnownTypes.ListValue();
            }
            input.ReadMessage(ListValue);
            break;
          }
          case 160: {
            NullValue = (global::Google.Protobuf.WellKnownTypes.NullValue) input.ReadEnum();
            break;
          }
          case 170: {
            if (fieldMaskValue_ == null) {
              FieldMaskValue = new global::Google.Protobuf.WellKnownTypes.FieldMask();
            }
            input.ReadMessage(FieldMaskValue);
            break;
          }
          case 178: {
            FieldName = input.ReadString();
            break;
          }
          case 186: {
            float? value = _single_floatValue_codec.Read(input);
            if (floatValue_ == null || value != 0F) {
              FloatValue = value;
            }
            break;
          }
          case 194: {
            HidingFieldName = input.ReadString();
            break;
          }
          case 202: {
            repeatedMessages_.AddEntriesFrom(input, _repeated_repeatedMessages_codec);
            break;
          }
          case 210: {
            mapKeyintValueint_.AddEntriesFrom(input, _map_mapKeyintValueint_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;
          }
          case 50: {
            if (anyMessage_ == null) {
              AnyMessage = new global::Google.Protobuf.WellKnownTypes.Any();
            }
            input.ReadMessage(AnyMessage);
            break;
          }
          case 58: {
            mapStrings_.AddEntriesFrom(ref input, _map_mapStrings_codec);
            break;
          }
          case 66: {
            mapMessage_.AddEntriesFrom(ref input, _map_mapMessage_codec);
            break;
          }
          case 74: {
            mapKeybool_.AddEntriesFrom(ref input, _map_mapKeybool_codec);
            break;
          }
          case 82: {
            mapKeyint_.AddEntriesFrom(ref input, _map_mapKeyint_codec);
            break;
          }
          case 90: {
            OneofName1 = input.ReadString();
            break;
          }
          case 98: {
            OneofName2 = input.ReadString();
            break;
          }
          case 104: {
            Age = input.ReadInt32();
            break;
          }
          case 114: {
            repeatedDoubleValues_.AddEntriesFrom(ref input, _repeated_repeatedDoubleValues_codec);
            break;
          }
          case 122: {
            if (timestampValue_ == null) {
              TimestampValue = new global::Google.Protobuf.WellKnownTypes.Timestamp();
            }
            input.ReadMessage(TimestampValue);
            break;
          }
          case 130: {
            if (durationValue_ == null) {
              DurationValue = new global::Google.Protobuf.WellKnownTypes.Duration();
            }
            input.ReadMessage(DurationValue);
            break;
          }
          case 138: {
            if (valueValue_ == null) {
              ValueValue = new global::Google.Protobuf.WellKnownTypes.Value();
            }
            input.ReadMessage(ValueValue);
            break;
          }
          case 146: {
            if (structValue_ == null) {
              StructValue = new global::Google.Protobuf.WellKnownTypes.Struct();
            }
            input.ReadMessage(StructValue);
            break;
          }
          case 154: {
            if (listValue_ == null) {
              ListValue = new global::Google.Protobuf.WellKnownTypes.ListValue();
            }
            input.ReadMessage(ListValue);
            break;
          }
          case 160: {
            NullValue = (global::Google.Protobuf.WellKnownTypes.NullValue) input.ReadEnum();
            break;
          }
          case 170: {
            if (fieldMaskValue_ == null) {
              FieldMaskValue = new global::Google.Protobuf.WellKnownTypes.FieldMask();
            }
            input.ReadMessage(FieldMaskValue);
            break;
          }
          case 178: {
            FieldName = input.ReadString();
            break;
          }
          case 186: {
            float? value = _single_floatValue_codec.Read(ref input);
            if (floatValue_ == null || value != 0F) {
              FloatValue = value;
            }
            break;
          }
          case 194: {
            HidingFieldName = input.ReadString();
            break;
          }
          case 202: {
            repeatedMessages_.AddEntriesFrom(ref input, _repeated_repeatedMessages_codec);
            break;
          }
          case 210: {
            mapKeyintValueint_.AddEntriesFrom(ref input, _map_mapKeyintValueint_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 HelloReply : pb::IMessage<HelloReply>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<HelloReply> _parser = new pb::MessageParser<HelloReply>(() => new HelloReply());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<HelloReply> 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 HelloReply() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public HelloReply(HelloReply other) : this() {
      message_ = other.message_;
      values_ = other.values_.Clone();
      NullableMessage = other.NullableMessage;
      anyMessage_ = other.anyMessage_ != null ? other.anyMessage_.Clone() : null;
      sub_ = other.sub_ != null ? other.sub_.Clone() : null;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public HelloReply Clone() {
      return new HelloReply(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 "nullable_message" field.</summary>
    public const int NullableMessageFieldNumber = 3;
    private static readonly pb::FieldCodec<string> _single_nullableMessage_codec = pb::FieldCodec.ForClassWrapper<string>(26);
    private string nullableMessage_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public string NullableMessage {
      get { return nullableMessage_; }
      set {
        nullableMessage_ = value;
      }
    }


    /// <summary>Field number for the "any_message" field.</summary>
    public const int AnyMessageFieldNumber = 4;
    private global::Google.Protobuf.WellKnownTypes.Any anyMessage_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Google.Protobuf.WellKnownTypes.Any AnyMessage {
      get { return anyMessage_; }
      set {
        anyMessage_ = value;
      }
    }

    /// <summary>Field number for the "sub" field.</summary>
    public const int SubFieldNumber = 5;
    private global::Transcoding.HelloReply.Types.SubMessage sub_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Transcoding.HelloReply.Types.SubMessage Sub {
      get { return sub_; }
      set {
        sub_ = value;
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(HelloReply 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 (NullableMessage != other.NullableMessage) return false;
      if (!object.Equals(AnyMessage, other.AnyMessage)) return false;
      if (!object.Equals(Sub, other.Sub)) 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 (nullableMessage_ != null) hash ^= NullableMessage.GetHashCode();
      if (anyMessage_ != null) hash ^= AnyMessage.GetHashCode();
      if (sub_ != null) hash ^= Sub.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 (nullableMessage_ != null) {
        _single_nullableMessage_codec.WriteTagAndValue(output, NullableMessage);
      }
      if (anyMessage_ != null) {
        output.WriteRawTag(34);
        output.WriteMessage(AnyMessage);
      }
      if (sub_ != null) {
        output.WriteRawTag(42);
        output.WriteMessage(Sub);
      }
      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 (nullableMessage_ != null) {
        _single_nullableMessage_codec.WriteTagAndValue(ref output, NullableMessage);
      }
      if (anyMessage_ != null) {
        output.WriteRawTag(34);
        output.WriteMessage(AnyMessage);
      }
      if (sub_ != null) {
        output.WriteRawTag(42);
        output.WriteMessage(Sub);
      }
      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 (nullableMessage_ != null) {
        size += _single_nullableMessage_codec.CalculateSizeWithTag(NullableMessage);
      }
      if (anyMessage_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(AnyMessage);
      }
      if (sub_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Sub);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(HelloReply other) {
      if (other == null) {
        return;
      }
      if (other.Message.Length != 0) {
        Message = other.Message;
      }
      values_.Add(other.values_);
      if (other.nullableMessage_ != null) {
        if (nullableMessage_ == null || other.NullableMessage != "") {
          NullableMessage = other.NullableMessage;
        }
      }
      if (other.anyMessage_ != null) {
        if (anyMessage_ == null) {
          AnyMessage = new global::Google.Protobuf.WellKnownTypes.Any();
        }
        AnyMessage.MergeFrom(other.AnyMessage);
      }
      if (other.sub_ != null) {
        if (sub_ == null) {
          Sub = new global::Transcoding.HelloReply.Types.SubMessage();
        }
        Sub.MergeFrom(other.Sub);
      }
      _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 26: {
            string value = _single_nullableMessage_codec.Read(input);
            if (nullableMessage_ == null || value != "") {
              NullableMessage = value;
            }
            break;
          }
          case 34: {
            if (anyMessage_ == null) {
              AnyMessage = new global::Google.Protobuf.WellKnownTypes.Any();
            }
            input.ReadMessage(AnyMessage);
            break;
          }
          case 42: {
            if (sub_ == null) {
              Sub = new global::Transcoding.HelloReply.Types.SubMessage();
            }
            input.ReadMessage(Sub);
            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 26: {
            string value = _single_nullableMessage_codec.Read(ref input);
            if (nullableMessage_ == null || value != "") {
              NullableMessage = value;
            }
            break;
          }
          case 34: {
            if (anyMessage_ == null) {
              AnyMessage = new global::Google.Protobuf.WellKnownTypes.Any();
            }
            input.ReadMessage(AnyMessage);
            break;
          }
          case 42: {
            if (sub_ == null) {
              Sub = new global::Transcoding.HelloReply.Types.SubMessage();
            }
            input.ReadMessage(Sub);
            break;
          }
        }
      }
    }
    #endif

    #region Nested types
    /// <summary>Container for nested types declared in the HelloReply 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.HelloReply.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

      }

    }
    #endregion

  }

  [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
  public sealed partial class NullValueContainer : pb::IMessage<NullValueContainer>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<NullValueContainer> _parser = new pb::MessageParser<NullValueContainer>(() => new NullValueContainer());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<NullValueContainer> 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[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 NullValueContainer() {
      OnConstruction();
    }

    partial void OnConstruction();

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

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

    /// <summary>Field number for the "null_value" field.</summary>
    public const int NullValueFieldNumber = 1;
    private global::Google.Protobuf.WellKnownTypes.NullValue nullValue_ = global::Google.Protobuf.WellKnownTypes.NullValue.NullValue;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::Google.Protobuf.WellKnownTypes.NullValue NullValue {
      get { return nullValue_; }
      set {
        nullValue_ = value;
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(NullValueContainer other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (NullValue != other.NullValue) 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 (NullValue != global::Google.Protobuf.WellKnownTypes.NullValue.NullValue) hash ^= NullValue.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 (NullValue != global::Google.Protobuf.WellKnownTypes.NullValue.NullValue) {
        output.WriteRawTag(8);
        output.WriteEnum((int) NullValue);
      }
      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 (NullValue != global::Google.Protobuf.WellKnownTypes.NullValue.NullValue) {
        output.WriteRawTag(8);
        output.WriteEnum((int) NullValue);
      }
      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 (NullValue != global::Google.Protobuf.WellKnownTypes.NullValue.NullValue) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) NullValue);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(NullValueContainer other) {
      if (other == null) {
        return;
      }
      if (other.NullValue != global::Google.Protobuf.WellKnownTypes.NullValue.NullValue) {
        NullValue = other.NullValue;
      }
      _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: {
            NullValue = (global::Google.Protobuf.WellKnownTypes.NullValue) 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 8: {
            NullValue = (global::Google.Protobuf.WellKnownTypes.NullValue) input.ReadEnum();
            break;
          }
        }
      }
    }
    #endif

  }

  #endregion

}

#endregion Designer generated code