diff --git a/csharp/.gitignore b/csharp/.gitignore
new file mode 100644
index 00000000..19af6f85
--- /dev/null
+++ b/csharp/.gitignore
@@ -0,0 +1,43 @@
+#
+# Untracked directories
+#
+src/AddressBook/bin
+src/AddressBook/obj
+src/ProtocolBuffers/bin/
+src/ProtocolBuffers/obj/
+src/ProtocolBuffers/objCF
+src/ProtocolBuffers.Test/bin/
+src/ProtocolBuffers.Test/obj/
+src/ProtocolBuffersLite.Test/bin/
+src/ProtocolBuffersLite.Test/obj/
+src/ProtoBench/bin/
+src/ProtoBench/obj/
+src/ProtoDump/bin/
+src/ProtoDump/obj/
+src/ProtoGen/bin/
+src/ProtoGen/obj/
+src/ProtoGen.Test/bin/
+src/ProtoGen.Test/obj/
+src/ProtoMunge/bin/
+src/ProtoMunge/obj/
+mono/bin
+mono/tmp
+mono/protoc
+build_output
+build_temp
+build/msbuild*.log
+lib/Microsoft.Silverlight.Testing
+lib/NUnit
+
+#
+# Untracked files
+#
+*.user
+*.suo
+_ReSharper.*
+*.sln.cache
+mono/TestResult.xml
+mono/.libs
+mono/*.exe
+mono/*.dll
+lib/protoc.exe
diff --git a/csharp/CHANGES.txt b/csharp/CHANGES.txt
new file mode 100644
index 00000000..b29debb8
--- /dev/null
+++ b/csharp/CHANGES.txt
@@ -0,0 +1,148 @@
+===============================================================================
+Welcome to the C# port of Google Protocol Buffers, written by Jon Skeet
+(skeet@pobox.com) based on the work of many talented people.
+
+===============================================================================
+RELEASE NOTES - Code imported into Google's main protobuf repository
+===============================================================================
+
+Everything below note this represents history of protobuf-csharp-port project
+before the code was merged into csharp/ subtree of GitHub google/protobuf
+repository.
+Frozen legacy version of the original project is available in
+https://github.com/jskeet/protobuf-csharp-port.
+
+===============================================================================
+RELEASE NOTES - Version 2.4.1.555
+===============================================================================
+
+Changes:
+- Upgrade solution format to Visual Studio 2012.
+- Add the ability to print a builder (not just a message)
+- TextGenerator introduces a new overload of PrintTo
+- Munge protoc's error format into a VS-C#-compatible output format.
+- Work to make ProtoGen clone that acts as a protoc.exe plugin.
+- Added the AllowPartiallyTrustedCallers attribute
+- Optimized enum parsing.
+
+Fixes:
+- Fix for bug in limited input stream's Position, Introduced Position on
+ output stream
+- Fix for writing a character to a JSON output overflows allocated buffer
+- Optimize FromBase64String to return Empty when presented with empty string.
+- Use string.Concat instead of operator to avoid potential import problems
+- Issue 81: quoting for NUnit parameters.
+- Issue 56: NuGet package is noisy
+- Issue 70: Portable library project has some invalid Nunit-based code.
+- Issue 71: CodedInputStream.ReadBytes go to slow path unnecessarily
+- Issue 84: warning CS0219: The variable `size' is assigned but never used
+
+===============================================================================
+RELEASE NOTES - Version 2.4.1.521
+===============================================================================
+
+Changes:
+- Add generated_code_attributes option, defaulted to false
+- Added support for Portable library
+- Added 'Unsafe' static type in ByteString to allow direct buffer access
+
+Fixes:
+- Issue 50: The XML serializer will fail to deserialize a message with empty
+ child message
+- Issue 45: Use of 'item' as a field name causes AmbiguousMatchException
+- Issue 49: Generated nested static Types class should be partial
+- Issue 38: Disable CLSCompliant warnings (3021)
+- Issue 40: proto_path does not work for command-line file names
+- Issue 54: should retire all bytes in buffer (bufferSize)
+- Issue 43: Fix to correct identical 'umbrella_classname' options from trying
+ to write to the same filename.
+
+===============================================================================
+RELEASE NOTES - Version 2.4.1.473
+===============================================================================
+
+Features:
+- Added option service_generator_type to control service generation with
+ NONE, GENERIC, INTERFACE, or IRPCDISPATCH
+- Added interfaces IRpcDispatch and IRpcServerStub to provide for blocking
+ services and implementations.
+- Added ProtoGen.exe command-line argument "--protoc_dir=" to specify the
+ location of protoc.exe.
+- Extracted interfaces for ICodedInputStream and ICodedOutputStream to allow
+ custom implementation of writers with both speed and size optimizations.
+- Addition of the "Google.ProtoBuffers.Serialization" assembly to support
+ reading and writing messages to/from XML, JSON, IDictionary<,> and others.
+- Several performance related fixes and tweeks
+- Issue 3: Add option to mark generated code with attribute
+- Issue 20: Support for decorating classes [Serializable]
+- Issue 21: Decorate fields with [deprecated=true] as [System.Obsolete]
+- Issue 22: Reusable Builder classes
+- Issue 24: Support for using Json/Xml formats with ICodedInputStream
+- Issue 25: Added support for NuGet packages
+- Issue 31: Upgraded protoc.exe and descriptor to 2.4.1
+
+Fixes:
+- Issue 13: Message with Field same name as message causes uncompilable .cs
+- Issue 16: Does not integrate well with other tooling
+- Issue 19: Support for negative enum values
+- Issue 26: AddRange in GeneratedBuilder iterates twice.
+- Issue 27: Remove XML documentation output from test projects to clear
+ warnings/errors.
+- Issue 28: Circular message dependencies result in null default values for
+ Message fields.
+- Issue 29: Message classes generated have a public default constructor. You
+ can disable private ctor generation with the option generate_private_ctor.
+- Issue 35: Fixed a bug in ProtoGen handling of arguments with trailing \
+- Big-endian support for float, and double on Silverlight
+- Packed and Unpacked parsing allow for all repeated, as per version 2.3
+- Fix for leaving Builder a public ctor on internal classes for use with
+ generic "where T: new()" constraints.
+
+Other:
+- Changed the code signing key to a privately held key
+- Reformatted all code and line-endings to C# defaults
+- Reworking of performance benchmarks to produce reliable results, option /v2
+- Issue 34: Silverlight assemblies are now unit tested
+
+===============================================================================
+RELEASE NOTES - Version 2.3.0.277
+===============================================================================
+
+Features:
+- Added cls_compliance option to generate attributes indicating
+ non-CLS-compliance.
+- Added file_extension option to control the generated output file's extension.
+- Added umbrella_namespace option to place the umbrella class into a nested
+ namespace to address issues with proto files having the same name as a
+ message it contains.
+- Added output_directory option to set the output path for the source file(s).
+- Added ignore_google_protobuf option to avoid generating code for includes
+ from the google.protobuf package.
+- Added the LITE framework (Google.ProtoBuffersLite.dll) and the ability to
+ generate code with "option optimize_for = LITE_RUNTIME;".
+- Added ability to invoke protoc.exe from within ProtoGen.exe.
+- Upgraded to protoc.exe (2.3) compiler.
+
+Fixes:
+- Issue 9: Class cannot be static and sealed error
+- Issue 12: default value for enumerate fields must be filled out
+
+Other:
+- Rewrite of build using MSBbuild instead of NAnt
+- Moved to NUnit Version 2.2.8.0
+- Changed to using secure .snk for releases
+
+===============================================================================
+RELEASE NOTES - Version 0.9.1
+===============================================================================
+
+Fixes:
+- issue 10: Incorrect encoding of packed fields when serialized
+
+===============================================================================
+RELEASE NOTES - Version 0.9.0
+===============================================================================
+
+- Initial release
+
+===============================================================================
\ No newline at end of file
diff --git a/csharp/README.md b/csharp/README.md
new file mode 100644
index 00000000..62c76384
--- /dev/null
+++ b/csharp/README.md
@@ -0,0 +1,17 @@
+This directory contains a library that implements Protocol Buffers
+functionality in C#.
+
+Experimental only
+-----------------
+
+C# protobufs are currently under development and are not officially supported yet.
+Also, as of now, only proto2 is supported. Proto3 support for C# is currently in progress
+(both design & implementation).
+
+History of C# protobufs
+-----------------------
+
+This subtree was originally imported from https://github.com/jskeet/protobuf-csharp-port
+and represents the latest development version of C# protobufs, that will now be developed
+and maintained by Google. All the development will be done in open, under this repository
+(https://github.com/google/protobuf).
\ No newline at end of file
diff --git a/csharp/build/BuildAll.bat b/csharp/build/BuildAll.bat
new file mode 100644
index 00000000..9bee73c7
--- /dev/null
+++ b/csharp/build/BuildAll.bat
@@ -0,0 +1,8 @@
+@echo off
+SET BUILD_TARGET=%~1
+SET BUILD_CONFIG=%~2
+
+IF "%BUILD_TARGET%"=="" SET BUILD_TARGET=Rebuild
+IF "%BUILD_CONFIG%"=="" SET BUILD_CONFIG=Debug
+
+CMD.exe /Q /C "CD %~dp0 && %WINDIR%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe /nologo build.csproj /t:%BUILD_TARGET% /toolsversion:4.0 "/p:Configuration=%BUILD_CONFIG%" %3 %4 %5 %6
diff --git a/csharp/build/Common.targets b/csharp/build/Common.targets
new file mode 100644
index 00000000..2aa74dfe
--- /dev/null
+++ b/csharp/build/Common.targets
@@ -0,0 +1,122 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/csharp/build/Google.ProtocolBuffers.nuspec b/csharp/build/Google.ProtocolBuffers.nuspec
new file mode 100644
index 00000000..c355cd4a
--- /dev/null
+++ b/csharp/build/Google.ProtocolBuffers.nuspec
@@ -0,0 +1,59 @@
+
+
+
+ Google.ProtocolBuffers
+ $version$
+ Jon Skeet
+ Jon Skeet
+ http://code.google.com/p/protobuf-csharp-port/source/browse/license.txt
+ http://code.google.com/p/protobuf-csharp-port/
+ false
+ Copyright 2008 Google Inc. All rights reserved.
+ Protocol Buffers Binary Serialization Format Google
+
+ Google.ProtocolBuffers
+ A managed code generator and library for Google's data interchange format.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/csharp/build/Google.ProtocolBuffersLite.nuspec b/csharp/build/Google.ProtocolBuffersLite.nuspec
new file mode 100644
index 00000000..8b9107f5
--- /dev/null
+++ b/csharp/build/Google.ProtocolBuffersLite.nuspec
@@ -0,0 +1,60 @@
+
+
+
+ Google.ProtocolBuffersLite
+ $version$
+ Jon Skeet
+ Jon Skeet
+ http://code.google.com/p/protobuf-csharp-port/source/browse/license.txt
+ http://code.google.com/p/protobuf-csharp-port/
+ false
+ Copyright 2008 Google Inc. All rights reserved.
+ Protocol Buffers Binary Serialization Format Google
+
+ Google.ProtocolBuffersLite
+ A managed code generator and library for Google's data interchange format.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/csharp/build/RunBenchmarks.bat b/csharp/build/RunBenchmarks.bat
new file mode 100644
index 00000000..d0e65010
--- /dev/null
+++ b/csharp/build/RunBenchmarks.bat
@@ -0,0 +1,2 @@
+@echo off
+CMD.exe /Q /C "CD %~dp0 && %WINDIR%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe /nologo build.csproj /toolsversion:4.0 /t:RunBenchmarks %1 %2 %3 %4
diff --git a/csharp/build/build.bat b/csharp/build/build.bat
new file mode 100644
index 00000000..bd7bd2a0
--- /dev/null
+++ b/csharp/build/build.bat
@@ -0,0 +1,20 @@
+@echo off
+SET BUILD_VERSION=%~1
+SET BUILD_TARGET=%~2
+SET BUILD_CONFIG=%~3
+
+IF NOT "%BUILD_VERSION%"=="" GOTO RUN
+ECHO.
+ECHO Usage: build.bat platform [target] [config] [msbuild arguments]
+ECHO.
+ECHO - platform: CF20, CF35, NET20, NET35, NET40, PL40, SL20, SL30, or SL40
+ECHO - [target]: Rebuild, Clean, Build, Test, or Publish
+ECHO - [config]: Debug or Release
+ECHO.
+EXIT /B 1
+
+:RUN
+IF "%BUILD_TARGET%"=="" SET BUILD_TARGET=Rebuild
+IF "%BUILD_CONFIG%"=="" SET BUILD_CONFIG=Debug
+
+CMD.exe /Q /C "CD %~dp0 && %WINDIR%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe /nologo target.csproj /toolsversion:4.0 %4 %5 %6 "/t:%BUILD_TARGET%" "/p:Configuration=%BUILD_CONFIG%;TargetVersion=%BUILD_VERSION%"
diff --git a/csharp/build/build.csproj b/csharp/build/build.csproj
new file mode 100644
index 00000000..e78b2efb
--- /dev/null
+++ b/csharp/build/build.csproj
@@ -0,0 +1,241 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Protocol Buffers
+ Release
+ Any CPU
+
+
+ $(MSBuildProjectDirectory)\..
+ $(ProjectDirectory)\src
+ $(ProjectDirectory)\lib
+ $(ProjectDirectory)\protos
+
+ $(ProjectDirectory)\build_temp\GeneratedSource
+ $(ProjectDirectory)\build_temp
+ $(ProjectDirectory)\build_output
+ $(BuildOutputDirectory)
+
+ /v2 /fast /formats
+ $(BuildTempDirectory)\..\BenchmarkResults.txt
+ $(ProjectDirectory)\benchmarks
+
+ $(Configuration)
+
+
+ $(BuildOutputDirectory)\tools\protoc.exe
+ $(BuildOutputDirectory)\tools\protogen.exe
+ $(LibDirectory)\NUnit\tools\nunit-console.exe
+ $(LibDirectory)\CsProjectProjector\CsProjectProjector.exe
+ $(LibDirectory)\7-Zip 9.20\7za.exe
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(SourceDirectory)\ProtocolBuffers\DescriptorProtos
+
+
+ $(SourceDirectory)\ProtocolBuffers\DescriptorProtos
+
+
+
+
+ $(SourceDirectory)\AddressBook
+
+
+
+ $(SourceDirectory)\ProtocolBuffers.Test\TestProtos
+
+
+ $(SourceDirectory)\ProtocolBuffers.Test\TestProtos
+
+
+ $(SourceDirectory)\ProtocolBuffers.Test\TestProtos
+
+
+ $(SourceDirectory)\ProtocolBuffers.Test\TestProtos
+
+
+ $(SourceDirectory)\ProtocolBuffers.Test\TestProtos
+
+
+ $(SourceDirectory)\ProtocolBuffers.Test\TestProtos
+
+
+ $(SourceDirectory)\ProtocolBuffers.Test\TestProtos
+
+
+ $(SourceDirectory)\ProtocolBuffers.Test\TestProtos
+
+
+ $(SourceDirectory)\ProtocolBuffers.Test\TestProtos
+
+
+ $(SourceDirectory)\ProtocolBuffers.Test\TestProtos
+
+
+ $(SourceDirectory)\ProtocolBuffers.Test\TestProtos
+
+
+ $(SourceDirectory)\ProtocolBuffers.Test\TestProtos
+
+
+ $(SourceDirectory)\ProtocolBuffers.Test\TestProtos
+
+
+ $(SourceDirectory)\ProtocolBuffers.Test\TestProtos
+
+
+ $(SourceDirectory)\ProtocolBuffersLite.Test\TestProtos
+
+
+ $(SourceDirectory)\ProtocolBuffers.Test\TestProtos
+
+
+
+ $(SourceDirectory)\ProtocolBuffersLite.Test\TestProtos
+
+
+ $(SourceDirectory)\ProtocolBuffersLite.Test\TestProtos
+
+
+ $(SourceDirectory)\ProtocolBuffersLite.Test\TestProtos
+
+
+ $(SourceDirectory)\ProtocolBuffersLite.Test\TestProtos
+
+
+ $(SourceDirectory)\ProtocolBuffersLite.Test\TestProtos
+
+
+ $(SourceDirectory)\ProtocolBuffersLite.Test\TestProtos
+
+
+ $(SourceDirectory)\ProtocolBuffersLite.Test\TestProtos
+
+
+ $(SourceDirectory)\ProtocolBuffers.Test\TestProtos
+
+
+ $(SourceDirectory)\ProtocolBuffers.Test\TestProtos
+
+
+ $(SourceDirectory)\ProtoBench\TestProtos
+
+
+ $(SourceDirectory)\ProtoBench\TestProtos
+
+
+ $(SourceDirectory)\ProtoBench\TestProtos
+
+
+ $(SourceDirectory)\ProtoBench\TestProtos
+
+
+
+
+
+
+
+ \protos\google\protobuf
+
+
+ \protos\google\protobuf\compiler
+
+
+ \protos\google\protobuf
+
+
+ \protos\tutorial
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/csharp/build/googlecode_upload.py b/csharp/build/googlecode_upload.py
new file mode 100644
index 00000000..d2d5f974
--- /dev/null
+++ b/csharp/build/googlecode_upload.py
@@ -0,0 +1,248 @@
+#!/usr/bin/env python
+#
+# Copyright 2006, 2007 Google Inc. All Rights Reserved.
+# Author: danderson@google.com (David Anderson)
+#
+# Script for uploading files to a Google Code project.
+#
+# This is intended to be both a useful script for people who want to
+# streamline project uploads and a reference implementation for
+# uploading files to Google Code projects.
+#
+# To upload a file to Google Code, you need to provide a path to the
+# file on your local machine, a small summary of what the file is, a
+# project name, and a valid account that is a member or owner of that
+# project. You can optionally provide a list of labels that apply to
+# the file. The file will be uploaded under the same name that it has
+# in your local filesystem (that is, the "basename" or last path
+# component). Run the script with '--help' to get the exact syntax
+# and available options.
+#
+# Note that the upload script requests that you enter your
+# googlecode.com password. This is NOT your Gmail account password!
+# This is the password you use on googlecode.com for committing to
+# Subversion and uploading files. You can find your password by going
+# to http://code.google.com/hosting/settings when logged in with your
+# Gmail account. If you have already committed to your project's
+# Subversion repository, the script will automatically retrieve your
+# credentials from there (unless disabled, see the output of '--help'
+# for details).
+#
+# If you are looking at this script as a reference for implementing
+# your own Google Code file uploader, then you should take a look at
+# the upload() function, which is the meat of the uploader. You
+# basically need to build a multipart/form-data POST request with the
+# right fields and send it to https://PROJECT.googlecode.com/files .
+# Authenticate the request using HTTP Basic authentication, as is
+# shown below.
+#
+# Licensed under the terms of the Apache Software License 2.0:
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Questions, comments, feature requests and patches are most welcome.
+# Please direct all of these to the Google Code users group:
+# http://groups.google.com/group/google-code-hosting
+
+"""Google Code file uploader script.
+"""
+
+__author__ = 'danderson@google.com (David Anderson)'
+
+import httplib
+import os.path
+import optparse
+import getpass
+import base64
+import sys
+
+
+def upload(file, project_name, user_name, password, summary, labels=None):
+ """Upload a file to a Google Code project's file server.
+
+ Args:
+ file: The local path to the file.
+ project_name: The name of your project on Google Code.
+ user_name: Your Google account name.
+ password: The googlecode.com password for your account.
+ Note that this is NOT your global Google Account password!
+ summary: A small description for the file.
+ labels: an optional list of label strings with which to tag the file.
+
+ Returns: a tuple:
+ http_status: 201 if the upload succeeded, something else if an
+ error occured.
+ http_reason: The human-readable string associated with http_status
+ file_url: If the upload succeeded, the URL of the file on Google
+ Code, None otherwise.
+ """
+ # The login is the user part of user@gmail.com. If the login provided
+ # is in the full user@domain form, strip it down.
+ if user_name.endswith('@gmail.com'):
+ user_name = user_name[:user_name.index('@gmail.com')]
+
+ form_fields = [('summary', summary)]
+ if labels is not None:
+ form_fields.extend([('label', l.strip()) for l in labels])
+
+ content_type, body = encode_upload_request(form_fields, file)
+
+ upload_host = '%s.googlecode.com' % project_name
+ upload_uri = '/files'
+ auth_token = base64.b64encode('%s:%s'% (user_name, password))
+ headers = {
+ 'Authorization': 'Basic %s' % auth_token,
+ 'User-Agent': 'Googlecode.com uploader v0.9.4',
+ 'Content-Type': content_type,
+ }
+
+ server = httplib.HTTPSConnection(upload_host)
+ server.request('POST', upload_uri, body, headers)
+ resp = server.getresponse()
+ server.close()
+
+ if resp.status == 201:
+ location = resp.getheader('Location', None)
+ else:
+ location = None
+ return resp.status, resp.reason, location
+
+
+def encode_upload_request(fields, file_path):
+ """Encode the given fields and file into a multipart form body.
+
+ fields is a sequence of (name, value) pairs. file is the path of
+ the file to upload. The file will be uploaded to Google Code with
+ the same file name.
+
+ Returns: (content_type, body) ready for httplib.HTTP instance
+ """
+ BOUNDARY = '----------Googlecode_boundary_reindeer_flotilla'
+ CRLF = '\r\n'
+
+ body = []
+
+ # Add the metadata about the upload first
+ for key, value in fields:
+ body.extend(
+ ['--' + BOUNDARY,
+ 'Content-Disposition: form-data; name="%s"' % key,
+ '',
+ value,
+ ])
+
+ # Now add the file itself
+ file_name = os.path.basename(file_path)
+ f = open(file_path, 'rb')
+ file_content = f.read()
+ f.close()
+
+ body.extend(
+ ['--' + BOUNDARY,
+ 'Content-Disposition: form-data; name="filename"; filename="%s"'
+ % file_name,
+ # The upload server determines the mime-type, no need to set it.
+ 'Content-Type: application/octet-stream',
+ '',
+ file_content,
+ ])
+
+ # Finalize the form body
+ body.extend(['--' + BOUNDARY + '--', ''])
+
+ return 'multipart/form-data; boundary=%s' % BOUNDARY, CRLF.join(body)
+
+
+def upload_find_auth(file_path, project_name, summary, labels=None,
+ user_name=None, password=None, tries=3):
+ """Find credentials and upload a file to a Google Code project's file server.
+
+ file_path, project_name, summary, and labels are passed as-is to upload.
+
+ Args:
+ file_path: The local path to the file.
+ project_name: The name of your project on Google Code.
+ summary: A small description for the file.
+ labels: an optional list of label strings with which to tag the file.
+ config_dir: Path to Subversion configuration directory, 'none', or None.
+ user_name: Your Google account name.
+ tries: How many attempts to make.
+ """
+
+ while tries > 0:
+ if user_name is None:
+ # Read username if not specified or loaded from svn config, or on
+ # subsequent tries.
+ sys.stdout.write('Please enter your googlecode.com username: ')
+ sys.stdout.flush()
+ user_name = sys.stdin.readline().rstrip()
+ if password is None:
+ # Read password if not loaded from svn config, or on subsequent tries.
+ print 'Please enter your googlecode.com password.'
+ print '** Note that this is NOT your Gmail account password! **'
+ print 'It is the password you use to access Subversion repositories,'
+ print 'and can be found here: http://code.google.com/hosting/settings'
+ password = getpass.getpass()
+
+ status, reason, url = upload(file_path, project_name, user_name, password,
+ summary, labels)
+ # Returns 403 Forbidden instead of 401 Unauthorized for bad
+ # credentials as of 2007-07-17.
+ if status in [httplib.FORBIDDEN, httplib.UNAUTHORIZED]:
+ # Rest for another try.
+ user_name = password = None
+ tries = tries - 1
+ else:
+ # We're done.
+ break
+
+ return status, reason, url
+
+
+def main():
+ parser = optparse.OptionParser(usage='googlecode-upload.py -s SUMMARY '
+ '-p PROJECT [options] FILE')
+ parser.add_option('-s', '--summary', dest='summary',
+ help='Short description of the file')
+ parser.add_option('-p', '--project', dest='project',
+ help='Google Code project name')
+ parser.add_option('-u', '--user', dest='user',
+ help='Your Google Code username')
+ parser.add_option('-w', '--password', dest='password',
+ help='Your Google Code password')
+ parser.add_option('-l', '--labels', dest='labels',
+ help='An optional list of comma-separated labels to attach '
+ 'to the file')
+
+ options, args = parser.parse_args()
+
+ if not options.summary:
+ parser.error('File summary is missing.')
+ elif not options.project:
+ parser.error('Project name is missing.')
+ elif len(args) < 1:
+ parser.error('File to upload not provided.')
+ elif len(args) > 1:
+ parser.error('Only one file may be specified.')
+
+ file_path = args[0]
+
+ if options.labels:
+ labels = options.labels.split(',')
+ else:
+ labels = None
+
+ status, reason, url = upload_find_auth(file_path, options.project,
+ options.summary, labels,
+ options.user, options.password)
+ if url:
+ print 'The file was uploaded successfully.'
+ print 'URL: %s' % url
+ return 0
+ else:
+ print 'An error occurred. Your file was not uploaded.'
+ print 'Google Code upload server said: %s (%s)' % (reason, status)
+ return 1
+
+
+if __name__ == '__main__':
+ sys.exit(main())
diff --git a/csharp/build/nuspec.xsd b/csharp/build/nuspec.xsd
new file mode 100644
index 00000000..db744d1a
--- /dev/null
+++ b/csharp/build/nuspec.xsd
@@ -0,0 +1,79 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/csharp/build/publish.csproj b/csharp/build/publish.csproj
new file mode 100644
index 00000000..bbe71df5
--- /dev/null
+++ b/csharp/build/publish.csproj
@@ -0,0 +1,186 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Protocol Buffers
+ 2
+ 4
+ 1
+
+
+
+ protobuf-csharp-port-
+ false
+
+
+
+
+
+ $(MSBuildProjectDirectory)\..
+ $(ProjectDirectory)\build_temp
+ $(ProjectDirectory)\build_output
+ $(ProjectDirectory)\src
+ $(ProjectDirectory)\lib
+
+
+ $(ProjectDirectory)\release-key\Google.ProtocolBuffers.snk
+
+
+ hg.exe
+ C:\Python25\python.exe
+ $(registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A@InstallationFolder)Bin\sn.exe
+ $(LibDirectory)\StampVersion.exe
+ $(LibDirectory)\7-Zip 9.20\7za.exe
+ $(LibDirectory)\NuGet.exe
+ $(BuildOutputDirectory)\tools\protogen.exe
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(VersionMajor).$(VersionMinor).$(VersionBuild).$(VersionRevision)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(Python) "$(MSBuildProjectDirectory)\googlecode_upload.py" --project protobuf-csharp-port --user "$(GoogleUsername)" --password "$(GooglePassword)"
+
+ $(BuildTempDirectory)\$(PackagePrefix)$(VersionLabel)-source.zip
+ $(BuildTempDirectory)\$(PackagePrefix)$(VersionLabel)-release-binaries.zip
+ $(BuildTempDirectory)\$(PackagePrefix)$(VersionLabel)-release-symbols.zip
+ $(BuildTempDirectory)\$(PackagePrefix)$(VersionLabel)-full-binaries.zip
+ $(BuildTempDirectory)\$(PackagePrefix)$(VersionLabel)-full-symbols.zip
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/csharp/build/target.csproj b/csharp/build/target.csproj
new file mode 100644
index 00000000..09a9d50b
--- /dev/null
+++ b/csharp/build/target.csproj
@@ -0,0 +1,167 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Debug
+ Any CPU
+ NET20
+
+
+
+ $(MSBuildProjectDirectory)\..
+ $(ProjectDirectory)\src
+ $(ProjectDirectory)\lib
+
+
+ $(ProjectDirectory)\build_temp\$(Configuration)\$(TargetVersion)
+ $(ProjectDirectory)\build_output\$(Configuration)\$(TargetVersion)
+ $(SourceDirectory)\ProtocolBuffersLibrary.$(TargetVersion).sln
+
+
+ $(LibDirectory)\NUnit\tools\nunit-console.exe
+ $(LibDirectory)\StatLight\tools\StatLight.exe
+
+
+
+
+
+ 3.5
+ NUNIT
+ v2.0
+
+
+ 3.5
+ NUNIT
+ v3.5
+
+
+ 4.0
+ NUNIT
+ v4.0
+
+
+ 3.5
+ NONE
+ v2.0
+
+
+ 3.5
+ NONE
+ v3.5
+
+
+ 3.5
+ SILVERLIGHT
+ v2.0
+
+
+ 3.5
+ SILVERLIGHT
+ v3.5
+
+
+ 4.0
+ SILVERLIGHT
+ v4.0
+
+
+ 4.0
+ SILVERLIGHT
+ v4.0
+ $(ProjectDirectory)\build_output\$(Configuration)\portable-net40+sl4+sl5+wp7+wp8+win8
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/csharp/csproj_templates/CF20.csproj b/csharp/csproj_templates/CF20.csproj
new file mode 100644
index 00000000..29684126
--- /dev/null
+++ b/csharp/csproj_templates/CF20.csproj
@@ -0,0 +1,41 @@
+
+
+ COMPACT_FRAMEWORK
+ CF20
+ {4D628B5B-2FBC-4AA6-8C16-197242AEB884};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ v2.0
+ Smartphone
+ f27da329-3269-4191-98e0-c87d3d7f1db9
+
+
+
+
+
+
+ bin\CF20\Debug
+ obj\CF20\Debug\
+ $(DefineConstants);NOSERIALIZABLE;NOFILEVERSION;NOEXTENSIONS
+ true
+
+
+ bin\CF20\Release
+ obj\CF20\Release\
+ $(DefineConstants);NOSERIALIZABLE;NOFILEVERSION;NOEXTENSIONS
+ true
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/csharp/csproj_templates/CF35.csproj b/csharp/csproj_templates/CF35.csproj
new file mode 100644
index 00000000..eae866f0
--- /dev/null
+++ b/csharp/csproj_templates/CF35.csproj
@@ -0,0 +1,44 @@
+
+
+ COMPACT_FRAMEWORK
+ CF35
+ {4D628B5B-2FBC-4AA6-8C16-197242AEB884};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ v3.5
+ Smartphone
+ f27da329-3269-4191-98e0-c87d3d7f1db9
+
+
+
+
+
+
+ bin\CF35\Debug
+ obj\CF35\Debug\
+ $(DefineConstants);NOSERIALIZABLE;NOFILEVERSION
+ true
+
+
+ bin\CF35\Release
+ obj\CF35\Release\
+ $(DefineConstants);NOSERIALIZABLE;NOFILEVERSION
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/csharp/csproj_templates/NET20.csproj b/csharp/csproj_templates/NET20.csproj
new file mode 100644
index 00000000..f9e93920
--- /dev/null
+++ b/csharp/csproj_templates/NET20.csproj
@@ -0,0 +1,17 @@
+
+
+ CLIENTPROFILE
+ NET20
+ v2.0
+
+
+ bin\NET20\Debug
+ obj\NET20\Debug\
+ $(DefineConstants);NOEXTENSIONS
+
+
+ bin\NET20\Release
+ obj\NET20\Release\
+ $(DefineConstants);NOEXTENSIONS
+
+
\ No newline at end of file
diff --git a/csharp/csproj_templates/NET35.csproj b/csharp/csproj_templates/NET35.csproj
new file mode 100644
index 00000000..80ef69aa
--- /dev/null
+++ b/csharp/csproj_templates/NET35.csproj
@@ -0,0 +1,20 @@
+
+
+ CLIENTPROFILE
+ NET35
+ v3.5
+
+
+ bin\NET35\Debug
+ obj\NET35\Debug\
+ $(DefineConstants)
+
+
+ bin\NET35\Release
+ obj\NET35\Release\
+ $(DefineConstants)
+
+
+
+
+
\ No newline at end of file
diff --git a/csharp/csproj_templates/NET40.csproj b/csharp/csproj_templates/NET40.csproj
new file mode 100644
index 00000000..691845a6
--- /dev/null
+++ b/csharp/csproj_templates/NET40.csproj
@@ -0,0 +1,20 @@
+
+
+ CLIENTPROFILE
+ NET40
+ v4.0
+
+
+ bin\NET40\Debug
+ obj\NET40\Debug\
+ $(DefineConstants)
+
+
+ bin\NET40\Release
+ obj\NET40\Release\
+ $(DefineConstants)
+
+
+
+
+
\ No newline at end of file
diff --git a/csharp/csproj_templates/PL40.csproj b/csharp/csproj_templates/PL40.csproj
new file mode 100644
index 00000000..2618a79f
--- /dev/null
+++ b/csharp/csproj_templates/PL40.csproj
@@ -0,0 +1,51 @@
+
+
+ 10.0
+ PORTABLE_LIBRARY
+ PL40
+ {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ v4.0
+ Profile1
+
+
+ bin\PL40\Debug
+ obj\PL40\Debug\
+ $(DefineConstants);NOSERIALIZABLE;NOSORTEDLIST
+
+
+ bin\PL40\Release
+ obj\PL40\Release\
+ $(DefineConstants);NOSERIALIZABLE;NOSORTEDLIST
+
+
+
+
+
+
+
+ {A1591282-1198-4647-A2B1-27E5FF5F6F3B};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}
+ false
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/csharp/csproj_templates/SL20.csproj b/csharp/csproj_templates/SL20.csproj
new file mode 100644
index 00000000..0abb104b
--- /dev/null
+++ b/csharp/csproj_templates/SL20.csproj
@@ -0,0 +1,44 @@
+
+
+ SILVERLIGHT
+ SL20
+ {A1591282-1198-4647-A2B1-27E5FF5F6F3B};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}
+ v2.0
+ false
+ false
+ false
+
+
+ bin\SL20\Debug
+ obj\SL20\Debug\
+ $(DefineConstants);NOSERIALIZABLE;NOSORTEDLIST;NOEXTENSIONS
+ true
+
+
+ bin\SL20\Release
+ obj\SL20\Release\
+ $(DefineConstants);NOSERIALIZABLE;NOSORTEDLIST;NOEXTENSIONS
+ true
+
+
+
+
+
+
+
+
+
+ OfflineApplication
+
+
+
+
+
\ No newline at end of file
diff --git a/csharp/csproj_templates/SL30.csproj b/csharp/csproj_templates/SL30.csproj
new file mode 100644
index 00000000..82ea9a8e
--- /dev/null
+++ b/csharp/csproj_templates/SL30.csproj
@@ -0,0 +1,47 @@
+
+
+ SILVERLIGHT
+ SL30
+ {A1591282-1198-4647-A2B1-27E5FF5F6F3B};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}
+ v3.5
+ false
+ false
+ false
+
+
+ bin\SL30\Debug
+ obj\SL30\Debug\
+ $(DefineConstants);NOSERIALIZABLE;NOSORTEDLIST
+ true
+
+
+ bin\SL30\Release
+ obj\SL30\Release\
+ $(DefineConstants);NOSERIALIZABLE;NOSORTEDLIST
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+ OfflineApplication
+
+
+
+
+
\ No newline at end of file
diff --git a/csharp/csproj_templates/SL40.csproj b/csharp/csproj_templates/SL40.csproj
new file mode 100644
index 00000000..8a38e3d2
--- /dev/null
+++ b/csharp/csproj_templates/SL40.csproj
@@ -0,0 +1,48 @@
+
+
+ SILVERLIGHT
+ SL40
+ {A1591282-1198-4647-A2B1-27E5FF5F6F3B};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}
+ v4.0
+ false
+ false
+ false
+ $(TargetFrameworkVersion)
+
+
+ bin\SL40\Debug
+ obj\SL40\Debug\
+ $(DefineConstants);NOSERIALIZABLE;NOSORTEDLIST
+ true
+
+
+ bin\SL40\Release
+ obj\SL40\Release\
+ $(DefineConstants);NOSERIALIZABLE;NOSORTEDLIST
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+ OfflineApplication
+
+
+
+
+
\ No newline at end of file
diff --git a/csharp/csproj_templates/SLTest.targets b/csharp/csproj_templates/SLTest.targets
new file mode 100644
index 00000000..29da2399
--- /dev/null
+++ b/csharp/csproj_templates/SLTest.targets
@@ -0,0 +1,34 @@
+
+
+
+ true
+ true
+ true
+ $(AssemblyName).xap
+ Properties\AppManifest.xml
+ $(RootNamespace).App
+ TestPage.html
+ true
+ $(TargetFrameworkVersion)
+ Properties\OutOfBrowserSettings.xml
+ true
+
+
+
+
+
+
+
+ App.xaml
+
+
+
+
+ MSBuild:Compile
+ Designer
+
+
+
+
\ No newline at end of file
diff --git a/csharp/keys/Google.ProtocolBuffers.snk b/csharp/keys/Google.ProtocolBuffers.snk
new file mode 100644
index 00000000..6bbfc90f
Binary files /dev/null and b/csharp/keys/Google.ProtocolBuffers.snk differ
diff --git a/csharp/keys/generate_new_key.bat b/csharp/keys/generate_new_key.bat
new file mode 100644
index 00000000..9f99c077
--- /dev/null
+++ b/csharp/keys/generate_new_key.bat
@@ -0,0 +1,13 @@
+@ECHO OFF
+IF EXIST "C:\Program Files\Microsoft SDKs\Windows\v7.0\Bin\sn.exe" GOTO FOUND
+goto USEPATH
+
+:FOUND
+"C:\Program Files\Microsoft SDKs\Windows\v7.0\Bin\sn.exe" -k %~dp0\Google.ProtocolBuffers.snk
+GOTO EXIT
+
+:USEPATH
+sn.exe -k %~dp0\Google.ProtocolBuffers.snk
+GOTO EXIT
+
+:EXIT
\ No newline at end of file
diff --git a/csharp/lib/NUnit-config/Microsoft.VisualStudio.TestTools.cs b/csharp/lib/NUnit-config/Microsoft.VisualStudio.TestTools.cs
new file mode 100644
index 00000000..fd151dae
--- /dev/null
+++ b/csharp/lib/NUnit-config/Microsoft.VisualStudio.TestTools.cs
@@ -0,0 +1,54 @@
+
+using System;
+#if CLIENTPROFILE
+namespace Microsoft.VisualStudio.TestTools.UnitTesting
+{
+ [AttributeUsage(AttributeTargets.Class, Inherited = true, AllowMultiple = false)]
+ public sealed class TestClassAttribute : NUnit.Framework.TestFixtureAttribute
+ {
+ }
+
+ [AttributeUsage(AttributeTargets.Method, Inherited = true, AllowMultiple = false)]
+ public sealed class TestMethodAttribute : NUnit.Framework.TestAttribute
+ {
+ }
+
+ [AttributeUsage(AttributeTargets.Method, Inherited = true, AllowMultiple = false)]
+ public sealed class TestInitializeAttribute : NUnit.Framework.SetUpAttribute
+ {
+ }
+
+ [AttributeUsage(AttributeTargets.Method, Inherited = true, AllowMultiple = false)]
+ public sealed class IgnoreAttribute : NUnit.Framework.IgnoreAttribute
+ {
+ }
+
+ [AttributeUsage(AttributeTargets.Method, Inherited = true, AllowMultiple = false)]
+ public sealed class ExpectedExceptionAttribute : NUnit.Framework.ExpectedExceptionAttribute
+ {
+ public ExpectedExceptionAttribute(Type type) : base(type)
+ { }
+ }
+
+ public class Assert : NUnit.Framework.Assert
+ {
+ [Obsolete("Do not use AreEqual on Byte[], use TestUtil.AssertBytesEqual(,)")]
+ public static void AreEqual(byte[] b1, byte[] b2)
+ {
+ NUnit.Framework.Assert.AreEqual(b1, b2);
+ }
+
+ [Obsolete("No not use assert with miss-matched types.")]
+ public static new void AreEqual(object b1, object b2)
+ {
+ NUnit.Framework.Assert.AreEqual(b1, b2);
+ }
+
+ //Allowed if the types match
+ public static void AreEqual(T b1, T b2)
+ {
+ NUnit.Framework.Assert.AreEqual(b1, b2);
+ }
+ }
+}
+#endif
\ No newline at end of file
diff --git a/csharp/lib/NUnit-config/nunit-console.v2.0.config b/csharp/lib/NUnit-config/nunit-console.v2.0.config
new file mode 100644
index 00000000..30453c9b
--- /dev/null
+++ b/csharp/lib/NUnit-config/nunit-console.v2.0.config
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/csharp/lib/NUnit-config/nunit-console.v3.5.config b/csharp/lib/NUnit-config/nunit-console.v3.5.config
new file mode 100644
index 00000000..30453c9b
--- /dev/null
+++ b/csharp/lib/NUnit-config/nunit-console.v3.5.config
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/csharp/lib/NUnit-config/nunit-console.v4.0.config b/csharp/lib/NUnit-config/nunit-console.v4.0.config
new file mode 100644
index 00000000..08ee9547
--- /dev/null
+++ b/csharp/lib/NUnit-config/nunit-console.v4.0.config
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/csharp/lib/README.md b/csharp/lib/README.md
new file mode 100644
index 00000000..d31885be
--- /dev/null
+++ b/csharp/lib/README.md
@@ -0,0 +1,13 @@
+This directory used to contain the binary dependencies, but they were removed during a cleanup associated with importing the project
+into google/protobuf repository. Before we figure a better way to manage the dependencies, you will have to manually download the dependencies
+to be able to build the test projects:
+
+1. Download https://github.com/jskeet/protobuf-csharp-port/archive/2.4.1.555.zip
+2. Open the archive and copy following files into this directory:
+ * `lib/Microsoft.Silverlight.Testing/`
+ * `lib/NUnit/`
+ * `lib/proto.exe`
+
+After that, you should be able to fully build the C# protobufs Visual Studio solutions.
+
+TODO(jtattermusch): the way we pull in dependencies needs to change
diff --git a/csharp/mono/buildall.sh b/csharp/mono/buildall.sh
new file mode 100755
index 00000000..bdd0490b
--- /dev/null
+++ b/csharp/mono/buildall.sh
@@ -0,0 +1,37 @@
+#!/bin/bash
+
+# Adjust these to reflect the location of NUnit in your system,
+# and how you want NUnit to run
+NUNIT=~/protobuf/NUnit-2.5.0.9122/bin/net-2.0/nunit-console.exe
+NUNIT_OPTIONS=-noshadow
+
+# The rest should be okay.
+
+SRC=../src
+LIB=../lib
+KEYFILE=../keys/Google.ProtocolBuffers.snk
+
+rm -rf bin
+mkdir bin
+
+# Running the unit tests requires the dependencies are
+# in the bin directory too
+cp -f $LIB/{Rhino.Mocks.dll,nunit.framework.dll} bin
+
+echo Building main library
+gmcs -target:library -out:bin/Google.ProtocolBuffers.dll `find $SRC/ProtocolBuffers -name '*.cs'` -keyfile:$KEYFILE
+
+echo Building main library tests
+gmcs -target:library -out:bin/Google.ProtocolBuffers.Test.dll `find $SRC/ProtocolBuffers.Test -name '*.cs'` -keyfile:$KEYFILE -r:bin/Google.ProtocolBuffers.dll -r:$LIB/nunit.framework.dll -r:$LIB/Rhino.Mocks.dll
+
+echo Running main library tests
+mono $NUNIT bin/Google.ProtocolBuffers.Test.dll $NUNIT_OPTIONS
+
+echo Building ProtoGen
+gmcs -target:exe -out:bin/ProtoGen.exe `find $SRC/ProtoGen -name '*.cs'` -keyfile:$KEYFILE -r:bin/Google.ProtocolBuffers.dll
+
+echo Building ProtoGen tests
+gmcs -target:library -out:bin/Google.ProtocolBuffers.ProtoGen.Test.dll `find $SRC/ProtoGen.Test -name '*.cs'` -keyfile:$KEYFILE -r:bin/Google.ProtocolBuffers.dll -r:$LIB/nunit.framework.dll -r:bin/ProtoGen.exe
+
+echo Running ProtoGen tests
+mono $NUNIT bin/Google.ProtocolBuffers.ProtoGen.Test.dll $NUNIT_OPTIONS
diff --git a/csharp/mono/generatesource.sh b/csharp/mono/generatesource.sh
new file mode 100755
index 00000000..218449e2
--- /dev/null
+++ b/csharp/mono/generatesource.sh
@@ -0,0 +1,29 @@
+#!/bin/bash
+
+echo Compiling protobufs
+rm -rf tmp
+mkdir tmp
+PROTOS_DIR=../protos
+
+./protoc --proto_path=$PROTOS_DIR --descriptor_set_out=tmp/compiled.pb \
+ $PROTOS_DIR/google/protobuf/descriptor.proto \
+ $PROTOS_DIR/google/protobuf/csharp_options.proto \
+ $PROTOS_DIR/google/protobuf/unittest.proto \
+ $PROTOS_DIR/google/protobuf/unittest_csharp_options.proto \
+ $PROTOS_DIR/google/protobuf/unittest_custom_options.proto \
+ $PROTOS_DIR/google/protobuf/unittest_embed_optimize_for.proto \
+ $PROTOS_DIR/google/protobuf/unittest_import.proto \
+ $PROTOS_DIR/google/protobuf/unittest_mset.proto \
+ $PROTOS_DIR/google/protobuf/unittest_optimize_for.proto \
+ $PROTOS_DIR/tutorial/addressbook.proto
+
+cd tmp
+echo Generating new source
+mono ../bin/ProtoGen.exe compiled.pb
+
+echo Copying source into place
+cp DescriptorProtoFile.cs CSharpOptions.cs ../../src/ProtocolBuffers/DescriptorProtos
+cp UnitTest*.cs ../../src/ProtocolBuffers.Test/TestProtos
+cp AddressBookProtos.cs ../../src/AddressBook
+cd ..
+rm -rf tmp
diff --git a/csharp/mono/readme.txt b/csharp/mono/readme.txt
new file mode 100644
index 00000000..ad873a58
--- /dev/null
+++ b/csharp/mono/readme.txt
@@ -0,0 +1,91 @@
+Getting started with Protocol Buffers on Mono
+---------------------------------------------
+
+Prerequisites:
+
+o Mono 2.4 or higher. Earlier versions of Mono had too
+ many issues with the weird and wonderful generic type
+ relationships in Protocol Buffers. (Even Mono 2.4 *did*
+ have a few compile-time problems, but I've worked round them.)
+
+o Some sort of Linux/Unix system
+ You can try running with Bash on Windows via MINGW32 or
+ something similar, but you're on your own :) It's easier
+ to build and test everything with .NET if you're on
+ Windows.
+
+o The native Protocol Buffers build for your system.
+ Get it from http://code.google.com/p/protobuf/
+ After building it, copy the executable protoc
+ file into this directory.
+
+o The NUnit binaries from http://nunit.org
+ I generally just download the latest version, which
+ may not be the one which goes with nunit.framework.dll
+ in ../lib, but I've never found this to be a problem.
+
+Building the code with current sources
+--------------------------------------
+
+1) Edit buildall.sh to tell it where to find nunit-console.exe
+ (and possibly change other options)
+
+2) Run buildall.sh from this directory. It should build the
+ main library code + tests and ProtoGen code + tests, running
+ each set of tests after building it.
+
+Note that currently one test is ignored in ServiceTest.cs. This
+made the Mono VM blow up - I suspect it's some interaction with
+Rhino which doesn't quite work on Mono 2.4. If you want to see a
+truly nasty stack trace, just comment out the Ignore attribute in
+ServiceTest.cs and rerun.
+
+The binaries will be produced in a bin directory under this one. The
+build currently starts from scratch each time, cleaning out the bin
+directory first. Once I've decided on a full NAnt or xbuild
+strategy, I'll do something a little cleaner.
+
+Rebuilding sources for generated code
+-------------------------------------
+
+1) Build the current code first. The bootstrapping issue is why
+ the generated source code is in the source repository :) See
+ the steps above.
+
+2) Run generatesource.sh from this directory. This will create a
+ temporary directory, compile the .proto files into a binary
+ format, then run ProtoGen to generate .cs files from the binary
+ format. It will copy these files to the right places in the tree,
+ and finally delete the temporary directory.
+
+3) Rebuild to test that your newly generated sources work. (Optionally
+ regenerate as well, and hash the generated files to check that
+ the new build generates the same code as the old build :)
+
+Running the code
+----------------
+
+Once you've built the binaries, you should be able to use them just
+as if you'd built them with .NET. (And indeed, you should be able to
+use binaries built with .NET as if you'd built them with Mono :)
+
+See the getting started guide for more information:
+http://code.google.com/p/protobuf-csharp-port/wiki/GettingStarted
+
+FAQ (Frequently Anticipated Questions)
+--------------------------------------
+
+Q) This build process sucks! Why aren't you doing X, Y, Z?
+A) My Mono skills are limited. My NAnt skills are limited. My
+ MSBuild/xbuild skils are limited. My shell script skills are
+ limited. Any help is *very* welcome!
+
+Q) Why doesn't it build ProtoBench etc?
+A) This is a first initial "release" I'll add more bits to
+ the build script. I'll be interested to see the results
+ of benchmarking it on Mono :)
+
+Any further questions or suggestions? Please email skeet@pobox.com
+or leave a request at
+http://code.google.com/p/protobuf-csharp-port/issues/list
+
diff --git a/csharp/protos/benchmarks/google_size.proto b/csharp/protos/benchmarks/google_size.proto
new file mode 100644
index 00000000..1442ca23
--- /dev/null
+++ b/csharp/protos/benchmarks/google_size.proto
@@ -0,0 +1,140 @@
+import "google/protobuf/csharp_options.proto";
+option (google.protobuf.csharp_file_options).namespace = "Google.ProtocolBuffers.ProtoBench";
+option (google.protobuf.csharp_file_options).umbrella_classname = "GoogleSizeProtoFile";
+
+package benchmarks;
+
+option java_outer_classname = "GoogleSize";
+option optimize_for = CODE_SIZE;
+
+message SizeMessage1 {
+ required string field1 = 1;
+ optional string field9 = 9;
+ optional string field18 = 18;
+ optional bool field80 = 80 [default=false];
+ optional bool field81 = 81 [default=true];
+ required int32 field2 = 2;
+ required int32 field3 = 3;
+ optional int32 field280 = 280;
+ optional int32 field6 = 6 [default=0];
+ optional int64 field22 = 22;
+ optional string field4 = 4;
+ repeated fixed64 field5 = 5;
+ optional bool field59 = 59 [default=false];
+ optional string field7 = 7;
+ optional int32 field16 = 16;
+ optional int32 field130 = 130 [default=0];
+ optional bool field12 = 12 [default=true];
+ optional bool field17 = 17 [default=true];
+ optional bool field13 = 13 [default=true];
+ optional bool field14 = 14 [default=true];
+ optional int32 field104 = 104 [default=0];
+ optional int32 field100 = 100 [default=0];
+ optional int32 field101 = 101 [default=0];
+ optional string field102 = 102;
+ optional string field103 = 103;
+ optional int32 field29 = 29 [default=0];
+ optional bool field30 = 30 [default=false];
+ optional int32 field60 = 60 [default=-1];
+ optional int32 field271 = 271 [default=-1];
+ optional int32 field272 = 272 [default=-1];
+ optional int32 field150 = 150;
+ optional int32 field23 = 23 [default=0];
+ optional bool field24 = 24 [default=false];
+ optional int32 field25 = 25 [default=0];
+ optional SizeMessage1SubMessage field15 = 15;
+ optional bool field78 = 78;
+ optional int32 field67 = 67 [default=0];
+ optional int32 field68 = 68;
+ optional int32 field128 = 128 [default=0];
+ optional string field129 = 129 [default="xxxxxxxxxxxxxxxxxxxxx"];
+ optional int32 field131 = 131 [default=0];
+}
+
+message SizeMessage1SubMessage {
+ optional int32 field1 = 1 [default=0];
+ optional int32 field2 = 2 [default=0];
+ optional int32 field3 = 3 [default=0];
+ optional string field15 = 15;
+ optional bool field12 = 12 [default=true];
+ optional int64 field13 = 13;
+ optional int64 field14 = 14;
+ optional int32 field16 = 16;
+ optional int32 field19 = 19 [default=2];
+ optional bool field20 = 20 [default=true];
+ optional bool field28 = 28 [default=true];
+ optional fixed64 field21 = 21;
+ optional int32 field22 = 22;
+ optional bool field23 = 23 [ default=false ];
+ optional bool field206 = 206 [default=false];
+ optional fixed32 field203 = 203;
+ optional int32 field204 = 204;
+ optional string field205 = 205;
+ optional uint64 field207 = 207;
+ optional uint64 field300 = 300;
+}
+
+message SizeMessage2 {
+ optional string field1 = 1;
+ optional int64 field3 = 3;
+ optional int64 field4 = 4;
+ optional int64 field30 = 30;
+ optional bool field75 = 75 [default=false];
+ optional string field6 = 6;
+ optional bytes field2 = 2;
+ optional int32 field21 = 21 [default=0];
+ optional int32 field71 = 71;
+ optional float field25 = 25;
+ optional int32 field109 = 109 [default=0];
+ optional int32 field210 = 210 [default=0];
+ optional int32 field211 = 211 [default=0];
+ optional int32 field212 = 212 [default=0];
+ optional int32 field213 = 213 [default=0];
+ optional int32 field216 = 216 [default=0];
+ optional int32 field217 = 217 [default=0];
+ optional int32 field218 = 218 [default=0];
+ optional int32 field220 = 220 [default=0];
+ optional int32 field221 = 221 [default=0];
+ optional float field222 = 222 [default=0.0];
+ optional int32 field63 = 63;
+
+ repeated group Group1 = 10 {
+ required float field11 = 11;
+ optional float field26 = 26;
+ optional string field12 = 12;
+ optional string field13 = 13;
+ repeated string field14 = 14;
+ required uint64 field15 = 15;
+ optional int32 field5 = 5;
+ optional string field27 = 27;
+ optional int32 field28 = 28;
+ optional string field29 = 29;
+ optional string field16 = 16;
+ repeated string field22 = 22;
+ repeated int32 field73 = 73;
+ optional int32 field20 = 20 [default=0];
+ optional string field24 = 24;
+ optional SizeMessage2GroupedMessage field31 = 31;
+ }
+ repeated string field128 = 128;
+ optional int64 field131 = 131;
+ repeated string field127 = 127;
+ optional int32 field129 = 129;
+ repeated int64 field130 = 130;
+ optional bool field205 = 205 [default=false];
+ optional bool field206 = 206 [default=false];
+}
+
+message SizeMessage2GroupedMessage {
+ optional float field1 = 1;
+ optional float field2 = 2;
+ optional float field3 = 3 [default=0.0];
+ optional bool field4 = 4;
+ optional bool field5 = 5;
+ optional bool field6 = 6 [default=true];
+ optional bool field7 = 7 [default=false];
+ optional float field8 = 8;
+ optional bool field9 = 9;
+ optional float field10 = 10;
+ optional int64 field11 = 11;
+}
diff --git a/csharp/protos/benchmarks/google_speed.proto b/csharp/protos/benchmarks/google_speed.proto
new file mode 100644
index 00000000..269eba80
--- /dev/null
+++ b/csharp/protos/benchmarks/google_speed.proto
@@ -0,0 +1,140 @@
+import "google/protobuf/csharp_options.proto";
+option (google.protobuf.csharp_file_options).namespace = "Google.ProtocolBuffers.ProtoBench";
+option (google.protobuf.csharp_file_options).umbrella_classname = "GoogleSpeedProtoFile";
+
+package benchmarks;
+
+option java_outer_classname = "GoogleSpeed";
+option optimize_for = SPEED;
+
+message SpeedMessage1 {
+ required string field1 = 1;
+ optional string field9 = 9;
+ optional string field18 = 18;
+ optional bool field80 = 80 [default=false];
+ optional bool field81 = 81 [default=true];
+ required int32 field2 = 2;
+ required int32 field3 = 3;
+ optional int32 field280 = 280;
+ optional int32 field6 = 6 [default=0];
+ optional int64 field22 = 22;
+ optional string field4 = 4;
+ repeated fixed64 field5 = 5;
+ optional bool field59 = 59 [default=false];
+ optional string field7 = 7;
+ optional int32 field16 = 16;
+ optional int32 field130 = 130 [default=0];
+ optional bool field12 = 12 [default=true];
+ optional bool field17 = 17 [default=true];
+ optional bool field13 = 13 [default=true];
+ optional bool field14 = 14 [default=true];
+ optional int32 field104 = 104 [default=0];
+ optional int32 field100 = 100 [default=0];
+ optional int32 field101 = 101 [default=0];
+ optional string field102 = 102;
+ optional string field103 = 103;
+ optional int32 field29 = 29 [default=0];
+ optional bool field30 = 30 [default=false];
+ optional int32 field60 = 60 [default=-1];
+ optional int32 field271 = 271 [default=-1];
+ optional int32 field272 = 272 [default=-1];
+ optional int32 field150 = 150;
+ optional int32 field23 = 23 [default=0];
+ optional bool field24 = 24 [default=false];
+ optional int32 field25 = 25 [default=0];
+ optional SpeedMessage1SubMessage field15 = 15;
+ optional bool field78 = 78;
+ optional int32 field67 = 67 [default=0];
+ optional int32 field68 = 68;
+ optional int32 field128 = 128 [default=0];
+ optional string field129 = 129 [default="xxxxxxxxxxxxxxxxxxxxx"];
+ optional int32 field131 = 131 [default=0];
+}
+
+message SpeedMessage1SubMessage {
+ optional int32 field1 = 1 [default=0];
+ optional int32 field2 = 2 [default=0];
+ optional int32 field3 = 3 [default=0];
+ optional string field15 = 15;
+ optional bool field12 = 12 [default=true];
+ optional int64 field13 = 13;
+ optional int64 field14 = 14;
+ optional int32 field16 = 16;
+ optional int32 field19 = 19 [default=2];
+ optional bool field20 = 20 [default=true];
+ optional bool field28 = 28 [default=true];
+ optional fixed64 field21 = 21;
+ optional int32 field22 = 22;
+ optional bool field23 = 23 [ default=false ];
+ optional bool field206 = 206 [default=false];
+ optional fixed32 field203 = 203;
+ optional int32 field204 = 204;
+ optional string field205 = 205;
+ optional uint64 field207 = 207;
+ optional uint64 field300 = 300;
+}
+
+message SpeedMessage2 {
+ optional string field1 = 1;
+ optional int64 field3 = 3;
+ optional int64 field4 = 4;
+ optional int64 field30 = 30;
+ optional bool field75 = 75 [default=false];
+ optional string field6 = 6;
+ optional bytes field2 = 2;
+ optional int32 field21 = 21 [default=0];
+ optional int32 field71 = 71;
+ optional float field25 = 25;
+ optional int32 field109 = 109 [default=0];
+ optional int32 field210 = 210 [default=0];
+ optional int32 field211 = 211 [default=0];
+ optional int32 field212 = 212 [default=0];
+ optional int32 field213 = 213 [default=0];
+ optional int32 field216 = 216 [default=0];
+ optional int32 field217 = 217 [default=0];
+ optional int32 field218 = 218 [default=0];
+ optional int32 field220 = 220 [default=0];
+ optional int32 field221 = 221 [default=0];
+ optional float field222 = 222 [default=0.0];
+ optional int32 field63 = 63;
+
+ repeated group Group1 = 10 {
+ required float field11 = 11;
+ optional float field26 = 26;
+ optional string field12 = 12;
+ optional string field13 = 13;
+ repeated string field14 = 14;
+ required uint64 field15 = 15;
+ optional int32 field5 = 5;
+ optional string field27 = 27;
+ optional int32 field28 = 28;
+ optional string field29 = 29;
+ optional string field16 = 16;
+ repeated string field22 = 22;
+ repeated int32 field73 = 73;
+ optional int32 field20 = 20 [default=0];
+ optional string field24 = 24;
+ optional SpeedMessage2GroupedMessage field31 = 31;
+ }
+ repeated string field128 = 128;
+ optional int64 field131 = 131;
+ repeated string field127 = 127;
+ optional int32 field129 = 129;
+ repeated int64 field130 = 130;
+ optional bool field205 = 205 [default=false];
+ optional bool field206 = 206 [default=false];
+}
+
+message SpeedMessage2GroupedMessage {
+ optional float field1 = 1;
+ optional float field2 = 2;
+ optional float field3 = 3 [default=0.0];
+ optional bool field4 = 4;
+ optional bool field5 = 5;
+ optional bool field6 = 6 [default=true];
+ optional bool field7 = 7 [default=false];
+ optional float field8 = 8;
+ optional bool field9 = 9;
+ optional float field10 = 10;
+ optional int64 field11 = 11;
+}
diff --git a/csharp/protos/extest/unittest_extras.proto b/csharp/protos/extest/unittest_extras.proto
new file mode 100644
index 00000000..91f10fbd
--- /dev/null
+++ b/csharp/protos/extest/unittest_extras.proto
@@ -0,0 +1,37 @@
+// Additional options required for C# generation. File from copyright
+// line onwards is as per original distribution.
+import "google/protobuf/csharp_options.proto";
+option (google.protobuf.csharp_file_options).namespace = "Google.ProtocolBuffers.TestProtos";
+option (google.protobuf.csharp_file_options).umbrella_classname = "UnitTestExtrasProtoFile";
+option (google.protobuf.csharp_file_options).add_serializable = true;
+
+package protobuf_unittest_extra;
+
+option java_package = "com.google.protobuf";
+
+message TestUnpackedExtensions {
+ extensions 1 to max;
+}
+
+extend TestUnpackedExtensions {
+ repeated int32 unpacked_int32_extension = 90;
+ repeated int64 unpacked_int64_extension = 91;
+ repeated uint32 unpacked_uint32_extension = 92;
+ repeated uint64 unpacked_uint64_extension = 93;
+ repeated sint32 unpacked_sint32_extension = 94;
+ repeated sint64 unpacked_sint64_extension = 95;
+ repeated fixed32 unpacked_fixed32_extension = 96;
+ repeated fixed64 unpacked_fixed64_extension = 97;
+ repeated sfixed32 unpacked_sfixed32_extension = 98;
+ repeated sfixed64 unpacked_sfixed64_extension = 99;
+ repeated float unpacked_float_extension = 100;
+ repeated double unpacked_double_extension = 101;
+ repeated bool unpacked_bool_extension = 102;
+ repeated UnpackedExtensionsForeignEnum unpacked_enum_extension = 103;
+}
+
+enum UnpackedExtensionsForeignEnum {
+ FOREIGN_FOO = 4;
+ FOREIGN_BAR = 5;
+ FOREIGN_BAZ = 6;
+}
diff --git a/csharp/protos/extest/unittest_extras_full.proto b/csharp/protos/extest/unittest_extras_full.proto
new file mode 100644
index 00000000..a334bbf1
--- /dev/null
+++ b/csharp/protos/extest/unittest_extras_full.proto
@@ -0,0 +1,72 @@
+// Additional options required for C# generation. File from copyright
+// line onwards is as per original distribution.
+import "google/protobuf/csharp_options.proto";
+option (google.protobuf.csharp_file_options).namespace = "Google.ProtocolBuffers.TestProtos";
+option (google.protobuf.csharp_file_options).umbrella_classname = "UnitTestExtrasFullProtoFile";
+
+package protobuf_unittest_extra;
+
+option optimize_for = CODE_SIZE;
+
+option java_package = "com.google.protobuf";
+
+message TestInteropPerson {
+ required string name = 1;
+ required int32 id = 2;
+ optional string email = 3;
+ repeated int32 codes = 10 [packed=true];
+
+ enum PhoneType {
+ MOBILE = 0;
+ HOME = 1;
+ WORK = 2;
+ }
+
+ message PhoneNumber {
+ required string number = 1;
+ optional PhoneType type = 2 [default = HOME];
+ }
+
+ repeated PhoneNumber phone = 4;
+
+ repeated group Addresses = 5 {
+ required string address = 1;
+ optional string address2 = 2;
+ required string city = 3;
+ required string state = 4;
+ required fixed32 zip = 5;
+ }
+
+ extensions 100 to 199;
+}
+
+message TestInteropEmployeeId {
+ required string number = 1;
+}
+
+extend TestInteropPerson {
+ required TestInteropEmployeeId employee_id = 126;
+}
+
+message TestMissingFieldsA {
+ required string name = 1;
+ required int32 id = 2;
+ optional string email = 3;
+
+ message SubA {
+ required int32 count = 5;
+ repeated string values = 6;
+ }
+ optional SubA testA = 11;
+}
+
+message TestMissingFieldsB {
+ required string name = 1;
+ required int32 id = 2;
+ optional string website = 4;
+
+ message SubB {
+ repeated string values = 7;
+ }
+ optional SubB testB = 12;
+}
diff --git a/csharp/protos/extest/unittest_extras_lite.proto b/csharp/protos/extest/unittest_extras_lite.proto
new file mode 100644
index 00000000..ea1bcd25
--- /dev/null
+++ b/csharp/protos/extest/unittest_extras_lite.proto
@@ -0,0 +1,117 @@
+// Additional options required for C# generation. File from copyright
+// line onwards is as per original distribution.
+import "google/protobuf/csharp_options.proto";
+option (google.protobuf.csharp_file_options).namespace = "Google.ProtocolBuffers.TestProtos";
+option (google.protobuf.csharp_file_options).umbrella_classname = "UnitTestExtrasLiteProtoFile";
+option (google.protobuf.csharp_file_options).add_serializable = true;
+
+package protobuf_unittest_extra;
+
+option optimize_for = LITE_RUNTIME;
+
+option java_package = "com.google.protobuf";
+
+message TestRequiredLite {
+ required int32 d = 1;
+ required ExtraEnum en = 2 [default = DEFAULT];
+}
+
+enum ExtraEnum {
+ DEFAULT = 10;
+ EXLITE_FOO = 7;
+ EXLITE_BAR = 8;
+ EXLITE_BAZ = 9;
+}
+
+message TestInteropPersonLite {
+ required string name = 1;
+ required int32 id = 2;
+ optional string email = 3;
+ repeated int32 codes = 10 [packed=true];
+
+ enum PhoneType {
+ MOBILE = 0;
+ HOME = 1;
+ WORK = 2;
+ }
+
+ message PhoneNumber {
+ required string number = 1;
+ optional PhoneType type = 2 [default = HOME];
+ }
+
+ repeated PhoneNumber phone = 4;
+
+ repeated group Addresses = 5 {
+ required string address = 1;
+ optional string address2 = 2;
+ required string city = 3;
+ required string state = 4;
+ required fixed32 zip = 5;
+ }
+
+ extensions 100 to 199;
+}
+
+message TestInteropEmployeeIdLite {
+ required string number = 1;
+}
+
+extend TestInteropPersonLite {
+ required TestInteropEmployeeIdLite employee_id_lite = 126;
+}
+
+/* Removed from unittest_lite.proto and added back here */
+
+message TestUnpackedExtensionsLite {
+ extensions 1 to max;
+}
+
+message TestUnpackedTypesLite {
+ repeated int32 unpacked_int32 = 90;
+ repeated int64 unpacked_int64 = 91;
+ repeated uint32 unpacked_uint32 = 92;
+ repeated uint64 unpacked_uint64 = 93;
+ repeated sint32 unpacked_sint32 = 94;
+ repeated sint64 unpacked_sint64 = 95;
+ repeated fixed32 unpacked_fixed32 = 96;
+ repeated fixed64 unpacked_fixed64 = 97;
+ repeated sfixed32 unpacked_sfixed32 = 98;
+ repeated sfixed64 unpacked_sfixed64 = 99;
+ repeated float unpacked_float = 100;
+ repeated double unpacked_double = 101;
+ repeated bool unpacked_bool = 102;
+ repeated UnpackedTypesForeignEnumLite unpacked_enum = 103;
+}
+
+extend TestUnpackedExtensionsLite {
+ repeated int32 unpacked_int32_extension_lite = 90;
+ repeated int64 unpacked_int64_extension_lite = 91;
+ repeated uint32 unpacked_uint32_extension_lite = 92;
+ repeated uint64 unpacked_uint64_extension_lite = 93;
+ repeated sint32 unpacked_sint32_extension_lite = 94;
+ repeated sint64 unpacked_sint64_extension_lite = 95;
+ repeated fixed32 unpacked_fixed32_extension_lite = 96;
+ repeated fixed64 unpacked_fixed64_extension_lite = 97;
+ repeated sfixed32 unpacked_sfixed32_extension_lite = 98;
+ repeated sfixed64 unpacked_sfixed64_extension_lite = 99;
+ repeated float unpacked_float_extension_lite = 100;
+ repeated double unpacked_double_extension_lite = 101;
+ repeated bool unpacked_bool_extension_lite = 102;
+ repeated UnpackedTypesForeignEnumLite unpacked_enum_extension_lite = 103;
+}
+
+enum UnpackedTypesForeignEnumLite {
+ FOREIGN_LITE_FOO = 4;
+ FOREIGN_LITE_BAR = 5;
+ FOREIGN_LITE_BAZ = 6;
+}
+
+message BucketOfBytes {
+ optional bytes value = 1;
+
+}
+message BucketOfBytesEx {
+ optional bytes value = 1;
+ optional bytes value2 = 255;
+}
\ No newline at end of file
diff --git a/csharp/protos/extest/unittest_extras_xmltest.proto b/csharp/protos/extest/unittest_extras_xmltest.proto
new file mode 100644
index 00000000..ab8088a7
--- /dev/null
+++ b/csharp/protos/extest/unittest_extras_xmltest.proto
@@ -0,0 +1,54 @@
+import "google/protobuf/csharp_options.proto";
+option (google.protobuf.csharp_file_options).namespace = "Google.ProtocolBuffers.TestProtos";
+option (google.protobuf.csharp_file_options).umbrella_classname = "UnitTestXmlSerializerTestProtoFile";
+option (google.protobuf.csharp_file_options).add_serializable = true;
+
+package protobuf_unittest_extra;
+
+option optimize_for = SPEED;
+
+enum EnumOptions {
+ ONE = 0;
+ TWO = 1;
+ THREE = 2;
+}
+
+message TestXmlChild {
+ repeated EnumOptions options = 3;
+ optional bytes binary = 4;
+}
+
+message TestXmlNoFields {
+}
+
+message TestXmlRescursive {
+ optional TestXmlRescursive child = 1;
+}
+
+message TestXmlMessage {
+
+ optional int64 number = 6;
+ repeated int32 numbers = 2;
+ optional string text = 3;
+ repeated string textlines = 700;
+ optional bool valid = 5;
+
+ optional TestXmlChild child = 1;
+ repeated group Children = 401 {
+ repeated EnumOptions options = 3;
+ optional bytes binary = 4;
+ }
+
+extensions 100 to 199;
+}
+
+message TestXmlExtension {
+ required int32 number = 1;
+}
+
+extend TestXmlMessage {
+ optional EnumOptions extension_enum = 101;
+ optional string extension_text = 102;
+ repeated int32 extension_number = 103 [packed = true];
+ optional TestXmlExtension extension_message = 199;
+}
diff --git a/csharp/protos/extest/unittest_generic_services.proto b/csharp/protos/extest/unittest_generic_services.proto
new file mode 100644
index 00000000..3fe2e8eb
--- /dev/null
+++ b/csharp/protos/extest/unittest_generic_services.proto
@@ -0,0 +1,29 @@
+// Additional options required for C# generation. File from copyright
+// line onwards is as per original distribution.
+import "google/protobuf/csharp_options.proto";
+import "google/protobuf/unittest.proto";
+import "google/protobuf/unittest_custom_options.proto";
+option (google.protobuf.csharp_file_options).namespace = "Google.ProtocolBuffers.TestProtos";
+option (google.protobuf.csharp_file_options).umbrella_classname = "UnitTestGenericServices";
+
+option (google.protobuf.csharp_file_options).service_generator_type = GENERIC;
+
+// We don't put this in a package within proto2 because we need to make sure
+// that the generated code doesn't depend on being in the proto2 namespace.
+package protobuf_unittest;
+
+option optimize_for = SPEED;
+
+service TestGenericService {
+ rpc Foo(FooRequest) returns (FooResponse);
+ rpc Bar(BarRequest) returns (BarResponse);
+}
+
+service TestGenericServiceWithCustomOptions {
+ option (service_opt1) = -9876543210;
+
+ rpc Foo(CustomOptionFooRequest) returns (CustomOptionFooResponse) {
+ option (method_opt1) = METHODOPT1_VAL2;
+ }
+}
+
diff --git a/csharp/protos/extest/unittest_issues.proto b/csharp/protos/extest/unittest_issues.proto
new file mode 100644
index 00000000..cb803791
--- /dev/null
+++ b/csharp/protos/extest/unittest_issues.proto
@@ -0,0 +1,137 @@
+// These proto descriptors have at one time been reported as an issue or defect.
+// They are kept here to replicate the issue, and continue to verify the fix.
+import "google/protobuf/csharp_options.proto";
+
+// Issue: Non-"Google.Protobuffers" namespace will ensure that protobuffer library types are qualified
+option (google.protobuf.csharp_file_options).namespace = "UnitTest.Issues.TestProtos";
+option (google.protobuf.csharp_file_options).umbrella_classname = "UnitTestExtrasIssuesProtoFile";
+
+package unittest_issues;
+option optimize_for = SPEED;
+
+// The following is a representative set of features
+/*
+enum EnumOptions {
+ ONE = 0;
+ TWO = 1;
+ THREE = 2;
+}
+
+message TestBasicChild
+{
+ repeated EnumOptions options = 3;
+ optional bytes binary = 4;
+}
+
+message TestBasicNoFields {
+}
+
+message TestBasicRescursive {
+ optional TestBasicRescursive child = 1;
+}
+
+message TestBasicMessage {
+
+ optional int64 number = 6;
+ repeated int32 numbers = 2;
+ optional string text = 3;
+ repeated string textlines = 700;
+ optional bool valid = 5;
+
+ optional TestBasicChild child = 1;
+ repeated group Children = 401
+ {
+ repeated EnumOptions options = 3;
+ optional bytes binary = 4;
+ }
+
+ extensions 100 to 199;
+}
+
+message TestBasicExtension {
+ required int32 number = 1;
+}
+
+extend TestBasicMessage {
+ optional EnumOptions extension_enum = 101;
+ optional string extension_text = 102;
+ repeated int32 extension_number = 103 [packed = true];
+ optional TestBasicExtension extension_message = 199;
+}
+
+// Issue for non-qualified type reference in new services generation
+option (google.protobuf.csharp_file_options).service_generator_type = IRPCDISPATCH;
+
+service TestGenericService {
+ rpc Foo(TestBasicNoFields) returns (TestBasicMessage);
+ rpc Bar(TestBasicNoFields) returns (TestBasicMessage);
+}
+*/
+// Issue 13: http://code.google.com/p/protobuf-csharp-port/issues/detail?id=13
+
+message A {
+ optional int32 _A = 1;
+}
+
+message B {
+ optional int32 B_ = 1;
+}
+
+message AB {
+ optional int32 a_b = 1;
+}
+
+// Similar issue with numeric names
+message NumberField {
+ optional int32 _01 = 1;
+}
+
+// Issue 28: Circular message dependencies result in null defaults for DefaultInstance
+
+message MyMessageAReferenceB {
+ required MyMessageBReferenceA value = 1;
+}
+
+message MyMessageBReferenceA {
+ required MyMessageAReferenceB value = 1;
+}
+
+// issue 19 - negative enum values
+
+enum NegativeEnum {
+ FiveBelow = -5;
+ MinusOne = -1;
+ Zero = 0;
+}
+
+message NegativeEnumMessage {
+ optional NegativeEnum value = 1;
+ repeated NegativeEnum values = 2;
+ repeated NegativeEnum packed_values = 3 [packed=true];
+}
+
+// Issue 21: http://code.google.com/p/protobuf-csharp-port/issues/detail?id=21
+// Decorate fields with [deprecated=true] as [System.Obsolete]
+
+message DeprecatedChild {
+}
+
+enum DeprecatedEnum {
+ one = 1;
+}
+
+message DeprecatedFieldsMessage {
+ optional int32 PrimitiveValue = 1 [deprecated = true];
+ repeated int32 PrimitiveArray = 2 [deprecated = true];
+
+ optional DeprecatedChild MessageValue = 3 [deprecated = true];
+ repeated DeprecatedChild MessageArray = 4 [deprecated = true];
+
+ optional DeprecatedEnum EnumValue = 5 [deprecated = true];
+ repeated DeprecatedEnum EnumArray = 6 [deprecated = true];
+}
+
+// Issue 45: http://code.google.com/p/protobuf-csharp-port/issues/detail?id=45
+message ItemField {
+ optional int32 item = 1;
+}
diff --git a/csharp/protos/extest/unittest_rpc_interop.proto b/csharp/protos/extest/unittest_rpc_interop.proto
new file mode 100644
index 00000000..dec5b872
--- /dev/null
+++ b/csharp/protos/extest/unittest_rpc_interop.proto
@@ -0,0 +1,41 @@
+// Additional options required for C# generation. File from copyright
+// line onwards is as per original distribution.
+import "google/protobuf/csharp_options.proto";
+option (google.protobuf.csharp_file_options).namespace = "Google.ProtocolBuffers.TestProtos";
+option (google.protobuf.csharp_file_options).umbrella_classname = "UnitTestRpcInterop";
+
+option (google.protobuf.csharp_file_options).service_generator_type = IRPCDISPATCH;
+
+option optimize_for = SPEED;
+
+message SearchRequest {
+ repeated string Criteria = 1;
+}
+
+message SearchResponse {
+ message ResultItem {
+ required string url = 1;
+ optional string name = 2;
+ }
+
+ repeated ResultItem results = 1;
+}
+
+message RefineSearchRequest {
+ repeated string Criteria = 1;
+ required SearchResponse previous_results = 2;
+}
+
+service SearchService {
+ /*
+ Add this option to specify the GuidAttribute on the service interface
+ option (google.protobuf.csharp_service_options).interface_id = "{A65F0925-FD11-4f94-B166-89AC4F027205}";
+ */
+ rpc Search (SearchRequest) returns (SearchResponse)
+ /*
+ Add this option to specify the DispIdAttribute on the service interface
+ { option (google.protobuf.csharp_method_options).dispatch_id = 5; }
+ */ ;
+
+ rpc RefineSearch (RefineSearchRequest) returns (SearchResponse);
+}
diff --git a/csharp/protos/extest/unittest_rpc_interop_lite.proto b/csharp/protos/extest/unittest_rpc_interop_lite.proto
new file mode 100644
index 00000000..62d1c6a6
--- /dev/null
+++ b/csharp/protos/extest/unittest_rpc_interop_lite.proto
@@ -0,0 +1,42 @@
+// Additional options required for C# generation. File from copyright
+// line onwards is as per original distribution.
+import "google/protobuf/csharp_options.proto";
+option (google.protobuf.csharp_file_options).namespace = "Google.ProtocolBuffers.TestProtos";
+option (google.protobuf.csharp_file_options).umbrella_classname = "UnitTestRpcInteropLite";
+
+option (google.protobuf.csharp_file_options).service_generator_type = IRPCDISPATCH;
+
+option optimize_for = LITE_RUNTIME;
+package unittest_rpc_interop_lite;
+
+message SearchRequest {
+ repeated string Criteria = 1;
+}
+
+message SearchResponse {
+ message ResultItem {
+ required string url = 1;
+ optional string name = 2;
+ }
+
+ repeated ResultItem results = 1;
+}
+
+message RefineSearchRequest {
+ repeated string Criteria = 1;
+ required SearchResponse previous_results = 2;
+}
+
+service SearchService {
+ /*
+ Add this option to specify the GuidAttribute on the service interface
+ option (google.protobuf.csharp_service_options).interface_id = "{A65F0925-FD11-4f94-B166-89AC4F027205}";
+ */
+ rpc Search (SearchRequest) returns (SearchResponse)
+ /*
+ Add this option to specify the DispIdAttribute on the service interface
+ { option (google.protobuf.csharp_method_options).dispatch_id = 5; }
+ */ ;
+
+ rpc RefineSearch (RefineSearchRequest) returns (SearchResponse);
+}
diff --git a/csharp/protos/google/protobuf/compiler/plugin.proto b/csharp/protos/google/protobuf/compiler/plugin.proto
new file mode 100644
index 00000000..866fba11
--- /dev/null
+++ b/csharp/protos/google/protobuf/compiler/plugin.proto
@@ -0,0 +1,147 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Author: kenton@google.com (Kenton Varda)
+//
+// WARNING: The plugin interface is currently EXPERIMENTAL and is subject to
+// change.
+//
+// protoc (aka the Protocol Compiler) can be extended via plugins. A plugin is
+// just a program that reads a CodeGeneratorRequest from stdin and writes a
+// CodeGeneratorResponse to stdout.
+//
+// Plugins written using C++ can use google/protobuf/compiler/plugin.h instead
+// of dealing with the raw protocol defined here.
+//
+// A plugin executable needs only to be placed somewhere in the path. The
+// plugin should be named "protoc-gen-$NAME", and will then be used when the
+// flag "--${NAME}_out" is passed to protoc.
+
+package google.protobuf.compiler;
+option java_package = "com.google.protobuf.compiler";
+option java_outer_classname = "PluginProtos";
+
+import "google/protobuf/descriptor.proto";
+
+// An encoded CodeGeneratorRequest is written to the plugin's stdin.
+message CodeGeneratorRequest {
+ // The .proto files that were explicitly listed on the command-line. The
+ // code generator should generate code only for these files. Each file's
+ // descriptor will be included in proto_file, below.
+ repeated string file_to_generate = 1;
+
+ // The generator parameter passed on the command-line.
+ optional string parameter = 2;
+
+ // FileDescriptorProtos for all files in files_to_generate and everything
+ // they import. The files will appear in topological order, so each file
+ // appears before any file that imports it.
+ //
+ // protoc guarantees that all proto_files will be written after
+ // the fields above, even though this is not technically guaranteed by the
+ // protobuf wire format. This theoretically could allow a plugin to stream
+ // in the FileDescriptorProtos and handle them one by one rather than read
+ // the entire set into memory at once. However, as of this writing, this
+ // is not similarly optimized on protoc's end -- it will store all fields in
+ // memory at once before sending them to the plugin.
+ repeated FileDescriptorProto proto_file = 15;
+}
+
+// The plugin writes an encoded CodeGeneratorResponse to stdout.
+message CodeGeneratorResponse {
+ // Error message. If non-empty, code generation failed. The plugin process
+ // should exit with status code zero even if it reports an error in this way.
+ //
+ // This should be used to indicate errors in .proto files which prevent the
+ // code generator from generating correct code. Errors which indicate a
+ // problem in protoc itself -- such as the input CodeGeneratorRequest being
+ // unparseable -- should be reported by writing a message to stderr and
+ // exiting with a non-zero status code.
+ optional string error = 1;
+
+ // Represents a single generated file.
+ message File {
+ // The file name, relative to the output directory. The name must not
+ // contain "." or ".." components and must be relative, not be absolute (so,
+ // the file cannot lie outside the output directory). "/" must be used as
+ // the path separator, not "\".
+ //
+ // If the name is omitted, the content will be appended to the previous
+ // file. This allows the generator to break large files into small chunks,
+ // and allows the generated text to be streamed back to protoc so that large
+ // files need not reside completely in memory at one time. Note that as of
+ // this writing protoc does not optimize for this -- it will read the entire
+ // CodeGeneratorResponse before writing files to disk.
+ optional string name = 1;
+
+ // If non-empty, indicates that the named file should already exist, and the
+ // content here is to be inserted into that file at a defined insertion
+ // point. This feature allows a code generator to extend the output
+ // produced by another code generator. The original generator may provide
+ // insertion points by placing special annotations in the file that look
+ // like:
+ // @@protoc_insertion_point(NAME)
+ // The annotation can have arbitrary text before and after it on the line,
+ // which allows it to be placed in a comment. NAME should be replaced with
+ // an identifier naming the point -- this is what other generators will use
+ // as the insertion_point. Code inserted at this point will be placed
+ // immediately above the line containing the insertion point (thus multiple
+ // insertions to the same point will come out in the order they were added).
+ // The double-@ is intended to make it unlikely that the generated code
+ // could contain things that look like insertion points by accident.
+ //
+ // For example, the C++ code generator places the following line in the
+ // .pb.h files that it generates:
+ // // @@protoc_insertion_point(namespace_scope)
+ // This line appears within the scope of the file's package namespace, but
+ // outside of any particular class. Another plugin can then specify the
+ // insertion_point "namespace_scope" to generate additional classes or
+ // other declarations that should be placed in this scope.
+ //
+ // Note that if the line containing the insertion point begins with
+ // whitespace, the same whitespace will be added to every line of the
+ // inserted text. This is useful for languages like Python, where
+ // indentation matters. In these languages, the insertion point comment
+ // should be indented the same amount as any inserted code will need to be
+ // in order to work correctly in that context.
+ //
+ // The code generator that generates the initial file and the one which
+ // inserts into it must both run as part of a single invocation of protoc.
+ // Code generators are executed in the order in which they appear on the
+ // command line.
+ //
+ // If |insertion_point| is present, |name| must also be present.
+ optional string insertion_point = 2;
+
+ // The file contents.
+ optional string content = 15;
+ }
+ repeated File file = 15;
+}
diff --git a/csharp/protos/google/protobuf/csharp_options.proto b/csharp/protos/google/protobuf/csharp_options.proto
new file mode 100644
index 00000000..f09b96aa
--- /dev/null
+++ b/csharp/protos/google/protobuf/csharp_options.proto
@@ -0,0 +1,115 @@
+// Extra options for C# generator
+
+import "google/protobuf/descriptor.proto";
+
+package google.protobuf;
+
+message CSharpFileOptions {
+
+ // Namespace for generated classes; defaults to the package.
+ optional string namespace = 1;
+
+ // Name of the "umbrella" class used for metadata about all
+ // the messages within this file. Default is based on the name
+ // of the file.
+ optional string umbrella_classname = 2;
+
+ // Whether classes should be public (true) or internal (false)
+ optional bool public_classes = 3 [default = true];
+
+ // Whether to generate a single file for everything within the
+ // .proto file (false), or one file per message (true).
+ // This option is not currently honored; please log a feature
+ // request if you really want it.
+ optional bool multiple_files = 4;
+
+ // Whether to nest messages within a single umbrella class (true)
+ // or create the umbrella class as a peer, with messages as
+ // top-level classes in the namespace (false)
+ optional bool nest_classes = 5;
+
+ // Generate appropriate support for Code Contracts
+ // (Ongoing; support should improve over time)
+ optional bool code_contracts = 6;
+
+ // Create subdirectories for namespaces, e.g. namespace "Foo.Bar"
+ // would generate files within [output directory]/Foo/Bar
+ optional bool expand_namespace_directories = 7;
+
+ // Generate attributes indicating non-CLS-compliance
+ optional bool cls_compliance = 8 [default = true];
+
+ // Generate messages/builders with the [Serializable] attribute
+ optional bool add_serializable = 9 [default = false];
+
+ // Generates a private ctor for Message types
+ optional bool generate_private_ctor = 10 [default = true];
+
+ // The extension that should be appended to the umbrella_classname when creating files.
+ optional string file_extension = 221 [default = ".cs"];
+
+ // A nested namespace for the umbrella class. Helpful for name collisions caused by
+ // umbrella_classname conflicting with an existing type. This will be automatically
+ // set to 'Proto' if a collision is detected with types being generated. This value
+ // is ignored when nest_classes == true
+ optional string umbrella_namespace = 222;
+
+ // The output path for the source file(s) generated
+ optional string output_directory = 223 [default = "."];
+
+ // Will ignore the type generations and remove dependencies for the descriptor proto
+ // files that declare their package to be "google.protobuf"
+ optional bool ignore_google_protobuf = 224 [default = false];
+
+ // Controls how services are generated, GENERIC is the deprecated original implementation
+ // INTERFACE generates service interfaces only, RPCINTEROP generates interfaces and
+ // implementations using the included Windows RPC interop libarary.
+ optional CSharpServiceType service_generator_type = 225 [default = NONE];
+
+ // Used to add the System.Runtime.CompilerServices.CompilerGeneratedAttribute and
+ // System.CodeDom.Compiler.GeneratedCodeAttribute attributes to generated code.
+ optional bool generated_code_attributes = 226 [default = false];
+}
+
+enum CSharpServiceType {
+ // Services are ignored by the generator
+ NONE = 0;
+ // Generates the original Java generic service implementations
+ GENERIC = 1;
+ // Generates an interface for the service and nothing else
+ INTERFACE = 2;
+ // Generates an interface for the service and client/server wrappers for the interface
+ IRPCDISPATCH = 3;
+}
+
+extend FileOptions {
+ optional CSharpFileOptions csharp_file_options = 1000;
+}
+
+extend FieldOptions {
+ optional CSharpFieldOptions csharp_field_options = 1000;
+}
+
+message CSharpFieldOptions {
+ // Provides the ability to override the name of the property
+ // generated for this field. This is applied to all properties
+ // and methods to do with this field, including HasFoo, FooCount,
+ // FooList etc.
+ optional string property_name = 1;
+}
+
+message CSharpServiceOptions {
+ optional string interface_id = 1;
+}
+
+extend ServiceOptions {
+ optional CSharpServiceOptions csharp_service_options = 1000;
+}
+
+message CSharpMethodOptions {
+ optional int32 dispatch_id = 1;
+}
+
+extend MethodOptions {
+ optional CSharpMethodOptions csharp_method_options = 1000;
+}
\ No newline at end of file
diff --git a/csharp/protos/google/protobuf/descriptor.proto b/csharp/protos/google/protobuf/descriptor.proto
new file mode 100644
index 00000000..233f8794
--- /dev/null
+++ b/csharp/protos/google/protobuf/descriptor.proto
@@ -0,0 +1,533 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Author: kenton@google.com (Kenton Varda)
+// Based on original Protocol Buffers design by
+// Sanjay Ghemawat, Jeff Dean, and others.
+//
+// The messages in this file describe the definitions found in .proto files.
+// A valid .proto file can be translated directly to a FileDescriptorProto
+// without any other information (e.g. without reading its imports).
+
+
+
+package google.protobuf;
+option java_package = "com.google.protobuf";
+option java_outer_classname = "DescriptorProtos";
+
+// descriptor.proto must be optimized for speed because reflection-based
+// algorithms don't work during bootstrapping.
+option optimize_for = SPEED;
+
+// The protocol compiler can output a FileDescriptorSet containing the .proto
+// files it parses.
+message FileDescriptorSet {
+ repeated FileDescriptorProto file = 1;
+}
+
+// Describes a complete .proto file.
+message FileDescriptorProto {
+ optional string name = 1; // file name, relative to root of source tree
+ optional string package = 2; // e.g. "foo", "foo.bar", etc.
+
+ // Names of files imported by this file.
+ repeated string dependency = 3;
+
+ // All top-level definitions in this file.
+ repeated DescriptorProto message_type = 4;
+ repeated EnumDescriptorProto enum_type = 5;
+ repeated ServiceDescriptorProto service = 6;
+ repeated FieldDescriptorProto extension = 7;
+
+ optional FileOptions options = 8;
+
+ // This field contains optional information about the original source code.
+ // You may safely remove this entire field whithout harming runtime
+ // functionality of the descriptors -- the information is needed only by
+ // development tools.
+ optional SourceCodeInfo source_code_info = 9;
+}
+
+// Describes a message type.
+message DescriptorProto {
+ optional string name = 1;
+
+ repeated FieldDescriptorProto field = 2;
+ repeated FieldDescriptorProto extension = 6;
+
+ repeated DescriptorProto nested_type = 3;
+ repeated EnumDescriptorProto enum_type = 4;
+
+ message ExtensionRange {
+ optional int32 start = 1;
+ optional int32 end = 2;
+ }
+ repeated ExtensionRange extension_range = 5;
+
+ optional MessageOptions options = 7;
+}
+
+// Describes a field within a message.
+message FieldDescriptorProto {
+ enum Type {
+ // 0 is reserved for errors.
+ // Order is weird for historical reasons.
+ TYPE_DOUBLE = 1;
+ TYPE_FLOAT = 2;
+ TYPE_INT64 = 3; // Not ZigZag encoded. Negative numbers
+ // take 10 bytes. Use TYPE_SINT64 if negative
+ // values are likely.
+ TYPE_UINT64 = 4;
+ TYPE_INT32 = 5; // Not ZigZag encoded. Negative numbers
+ // take 10 bytes. Use TYPE_SINT32 if negative
+ // values are likely.
+ TYPE_FIXED64 = 6;
+ TYPE_FIXED32 = 7;
+ TYPE_BOOL = 8;
+ TYPE_STRING = 9;
+ TYPE_GROUP = 10; // Tag-delimited aggregate.
+ TYPE_MESSAGE = 11; // Length-delimited aggregate.
+
+ // New in version 2.
+ TYPE_BYTES = 12;
+ TYPE_UINT32 = 13;
+ TYPE_ENUM = 14;
+ TYPE_SFIXED32 = 15;
+ TYPE_SFIXED64 = 16;
+ TYPE_SINT32 = 17; // Uses ZigZag encoding.
+ TYPE_SINT64 = 18; // Uses ZigZag encoding.
+ };
+
+ enum Label {
+ // 0 is reserved for errors
+ LABEL_OPTIONAL = 1;
+ LABEL_REQUIRED = 2;
+ LABEL_REPEATED = 3;
+ // TODO(sanjay): Should we add LABEL_MAP?
+ };
+
+ optional string name = 1;
+ optional int32 number = 3;
+ optional Label label = 4;
+
+ // If type_name is set, this need not be set. If both this and type_name
+ // are set, this must be either TYPE_ENUM or TYPE_MESSAGE.
+ optional Type type = 5;
+
+ // For message and enum types, this is the name of the type. If the name
+ // starts with a '.', it is fully-qualified. Otherwise, C++-like scoping
+ // rules are used to find the type (i.e. first the nested types within this
+ // message are searched, then within the parent, on up to the root
+ // namespace).
+ optional string type_name = 6;
+
+ // For extensions, this is the name of the type being extended. It is
+ // resolved in the same manner as type_name.
+ optional string extendee = 2;
+
+ // For numeric types, contains the original text representation of the value.
+ // For booleans, "true" or "false".
+ // For strings, contains the default text contents (not escaped in any way).
+ // For bytes, contains the C escaped value. All bytes >= 128 are escaped.
+ // TODO(kenton): Base-64 encode?
+ optional string default_value = 7;
+
+ optional FieldOptions options = 8;
+}
+
+// Describes an enum type.
+message EnumDescriptorProto {
+ optional string name = 1;
+
+ repeated EnumValueDescriptorProto value = 2;
+
+ optional EnumOptions options = 3;
+}
+
+// Describes a value within an enum.
+message EnumValueDescriptorProto {
+ optional string name = 1;
+ optional int32 number = 2;
+
+ optional EnumValueOptions options = 3;
+}
+
+// Describes a service.
+message ServiceDescriptorProto {
+ optional string name = 1;
+ repeated MethodDescriptorProto method = 2;
+
+ optional ServiceOptions options = 3;
+}
+
+// Describes a method of a service.
+message MethodDescriptorProto {
+ optional string name = 1;
+
+ // Input and output type names. These are resolved in the same way as
+ // FieldDescriptorProto.type_name, but must refer to a message type.
+ optional string input_type = 2;
+ optional string output_type = 3;
+
+ optional MethodOptions options = 4;
+}
+
+// ===================================================================
+// Options
+
+// Each of the definitions above may have "options" attached. These are
+// just annotations which may cause code to be generated slightly differently
+// or may contain hints for code that manipulates protocol messages.
+//
+// Clients may define custom options as extensions of the *Options messages.
+// These extensions may not yet be known at parsing time, so the parser cannot
+// store the values in them. Instead it stores them in a field in the *Options
+// message called uninterpreted_option. This field must have the same name
+// across all *Options messages. We then use this field to populate the
+// extensions when we build a descriptor, at which point all protos have been
+// parsed and so all extensions are known.
+//
+// Extension numbers for custom options may be chosen as follows:
+// * For options which will only be used within a single application or
+// organization, or for experimental options, use field numbers 50000
+// through 99999. It is up to you to ensure that you do not use the
+// same number for multiple options.
+// * For options which will be published and used publicly by multiple
+// independent entities, e-mail kenton@google.com to reserve extension
+// numbers. Simply tell me how many you need and I'll send you back a
+// set of numbers to use -- there's no need to explain how you intend to
+// use them. If this turns out to be popular, a web service will be set up
+// to automatically assign option numbers.
+
+
+message FileOptions {
+
+ // Sets the Java package where classes generated from this .proto will be
+ // placed. By default, the proto package is used, but this is often
+ // inappropriate because proto packages do not normally start with backwards
+ // domain names.
+ optional string java_package = 1;
+
+
+ // If set, all the classes from the .proto file are wrapped in a single
+ // outer class with the given name. This applies to both Proto1
+ // (equivalent to the old "--one_java_file" option) and Proto2 (where
+ // a .proto always translates to a single class, but you may want to
+ // explicitly choose the class name).
+ optional string java_outer_classname = 8;
+
+ // If set true, then the Java code generator will generate a separate .java
+ // file for each top-level message, enum, and service defined in the .proto
+ // file. Thus, these types will *not* be nested inside the outer class
+ // named by java_outer_classname. However, the outer class will still be
+ // generated to contain the file's getDescriptor() method as well as any
+ // top-level extensions defined in the file.
+ optional bool java_multiple_files = 10 [default=false];
+
+ // If set true, then the Java code generator will generate equals() and
+ // hashCode() methods for all messages defined in the .proto file. This is
+ // purely a speed optimization, as the AbstractMessage base class includes
+ // reflection-based implementations of these methods.
+ optional bool java_generate_equals_and_hash = 20 [default=false];
+
+ // Generated classes can be optimized for speed or code size.
+ enum OptimizeMode {
+ SPEED = 1; // Generate complete code for parsing, serialization,
+ // etc.
+ CODE_SIZE = 2; // Use ReflectionOps to implement these methods.
+ LITE_RUNTIME = 3; // Generate code using MessageLite and the lite runtime.
+ }
+ optional OptimizeMode optimize_for = 9 [default=SPEED];
+
+
+
+
+ // Should generic services be generated in each language? "Generic" services
+ // are not specific to any particular RPC system. They are generated by the
+ // main code generators in each language (without additional plugins).
+ // Generic services were the only kind of service generation supported by
+ // early versions of proto2.
+ //
+ // Generic services are now considered deprecated in favor of using plugins
+ // that generate code specific to your particular RPC system. Therefore,
+ // these default to false. Old code which depends on generic services should
+ // explicitly set them to true.
+ optional bool cc_generic_services = 16 [default=false];
+ optional bool java_generic_services = 17 [default=false];
+ optional bool py_generic_services = 18 [default=false];
+
+ // The parser stores options it doesn't recognize here. See above.
+ repeated UninterpretedOption uninterpreted_option = 999;
+
+ // Clients can define custom options in extensions of this message. See above.
+ extensions 1000 to max;
+}
+
+message MessageOptions {
+ // Set true to use the old proto1 MessageSet wire format for extensions.
+ // This is provided for backwards-compatibility with the MessageSet wire
+ // format. You should not use this for any other reason: It's less
+ // efficient, has fewer features, and is more complicated.
+ //
+ // The message must be defined exactly as follows:
+ // message Foo {
+ // option message_set_wire_format = true;
+ // extensions 4 to max;
+ // }
+ // Note that the message cannot have any defined fields; MessageSets only
+ // have extensions.
+ //
+ // All extensions of your type must be singular messages; e.g. they cannot
+ // be int32s, enums, or repeated messages.
+ //
+ // Because this is an option, the above two restrictions are not enforced by
+ // the protocol compiler.
+ optional bool message_set_wire_format = 1 [default=false];
+
+ // Disables the generation of the standard "descriptor()" accessor, which can
+ // conflict with a field of the same name. This is meant to make migration
+ // from proto1 easier; new code should avoid fields named "descriptor".
+ optional bool no_standard_descriptor_accessor = 2 [default=false];
+
+ // The parser stores options it doesn't recognize here. See above.
+ repeated UninterpretedOption uninterpreted_option = 999;
+
+ // Clients can define custom options in extensions of this message. See above.
+ extensions 1000 to max;
+}
+
+message FieldOptions {
+ // The ctype option instructs the C++ code generator to use a different
+ // representation of the field than it normally would. See the specific
+ // options below. This option is not yet implemented in the open source
+ // release -- sorry, we'll try to include it in a future version!
+ optional CType ctype = 1 [default = STRING];
+ enum CType {
+ // Default mode.
+ STRING = 0;
+
+ CORD = 1;
+
+ STRING_PIECE = 2;
+ }
+ // The packed option can be enabled for repeated primitive fields to enable
+ // a more efficient representation on the wire. Rather than repeatedly
+ // writing the tag and type for each element, the entire array is encoded as
+ // a single length-delimited blob.
+ optional bool packed = 2;
+
+
+ // Is this field deprecated?
+ // Depending on the target platform, this can emit Deprecated annotations
+ // for accessors, or it will be completely ignored; in the very least, this
+ // is a formalization for deprecating fields.
+ optional bool deprecated = 3 [default=false];
+
+ // EXPERIMENTAL. DO NOT USE.
+ // For "map" fields, the name of the field in the enclosed type that
+ // is the key for this map. For example, suppose we have:
+ // message Item {
+ // required string name = 1;
+ // required string value = 2;
+ // }
+ // message Config {
+ // repeated Item items = 1 [experimental_map_key="name"];
+ // }
+ // In this situation, the map key for Item will be set to "name".
+ // TODO: Fully-implement this, then remove the "experimental_" prefix.
+ optional string experimental_map_key = 9;
+
+ // The parser stores options it doesn't recognize here. See above.
+ repeated UninterpretedOption uninterpreted_option = 999;
+
+ // Clients can define custom options in extensions of this message. See above.
+ extensions 1000 to max;
+}
+
+message EnumOptions {
+
+ // The parser stores options it doesn't recognize here. See above.
+ repeated UninterpretedOption uninterpreted_option = 999;
+
+ // Clients can define custom options in extensions of this message. See above.
+ extensions 1000 to max;
+}
+
+message EnumValueOptions {
+ // The parser stores options it doesn't recognize here. See above.
+ repeated UninterpretedOption uninterpreted_option = 999;
+
+ // Clients can define custom options in extensions of this message. See above.
+ extensions 1000 to max;
+}
+
+message ServiceOptions {
+
+ // Note: Field numbers 1 through 32 are reserved for Google's internal RPC
+ // framework. We apologize for hoarding these numbers to ourselves, but
+ // we were already using them long before we decided to release Protocol
+ // Buffers.
+
+ // The parser stores options it doesn't recognize here. See above.
+ repeated UninterpretedOption uninterpreted_option = 999;
+
+ // Clients can define custom options in extensions of this message. See above.
+ extensions 1000 to max;
+}
+
+message MethodOptions {
+
+ // Note: Field numbers 1 through 32 are reserved for Google's internal RPC
+ // framework. We apologize for hoarding these numbers to ourselves, but
+ // we were already using them long before we decided to release Protocol
+ // Buffers.
+
+ // The parser stores options it doesn't recognize here. See above.
+ repeated UninterpretedOption uninterpreted_option = 999;
+
+ // Clients can define custom options in extensions of this message. See above.
+ extensions 1000 to max;
+}
+
+// A message representing a option the parser does not recognize. This only
+// appears in options protos created by the compiler::Parser class.
+// DescriptorPool resolves these when building Descriptor objects. Therefore,
+// options protos in descriptor objects (e.g. returned by Descriptor::options(),
+// or produced by Descriptor::CopyTo()) will never have UninterpretedOptions
+// in them.
+message UninterpretedOption {
+ // The name of the uninterpreted option. Each string represents a segment in
+ // a dot-separated name. is_extension is true iff a segment represents an
+ // extension (denoted with parentheses in options specs in .proto files).
+ // E.g.,{ ["foo", false], ["bar.baz", true], ["qux", false] } represents
+ // "foo.(bar.baz).qux".
+ message NamePart {
+ required string name_part = 1;
+ required bool is_extension = 2;
+ }
+ repeated NamePart name = 2;
+
+ // The value of the uninterpreted option, in whatever type the tokenizer
+ // identified it as during parsing. Exactly one of these should be set.
+ optional string identifier_value = 3;
+ optional uint64 positive_int_value = 4;
+ optional int64 negative_int_value = 5;
+ optional double double_value = 6;
+ optional bytes string_value = 7;
+ optional string aggregate_value = 8;
+}
+
+// ===================================================================
+// Optional source code info
+
+// Encapsulates information about the original source file from which a
+// FileDescriptorProto was generated.
+message SourceCodeInfo {
+ // A Location identifies a piece of source code in a .proto file which
+ // corresponds to a particular definition. This information is intended
+ // to be useful to IDEs, code indexers, documentation generators, and similar
+ // tools.
+ //
+ // For example, say we have a file like:
+ // message Foo {
+ // optional string foo = 1;
+ // }
+ // Let's look at just the field definition:
+ // optional string foo = 1;
+ // ^ ^^ ^^ ^ ^^^
+ // a bc de f ghi
+ // We have the following locations:
+ // span path represents
+ // [a,i) [ 4, 0, 2, 0 ] The whole field definition.
+ // [a,b) [ 4, 0, 2, 0, 4 ] The label (optional).
+ // [c,d) [ 4, 0, 2, 0, 5 ] The type (string).
+ // [e,f) [ 4, 0, 2, 0, 1 ] The name (foo).
+ // [g,h) [ 4, 0, 2, 0, 3 ] The number (1).
+ //
+ // Notes:
+ // - A location may refer to a repeated field itself (i.e. not to any
+ // particular index within it). This is used whenever a set of elements are
+ // logically enclosed in a single code segment. For example, an entire
+ // extend block (possibly containing multiple extension definitions) will
+ // have an outer location whose path refers to the "extensions" repeated
+ // field without an index.
+ // - Multiple locations may have the same path. This happens when a single
+ // logical declaration is spread out across multiple places. The most
+ // obvious example is the "extend" block again -- there may be multiple
+ // extend blocks in the same scope, each of which will have the same path.
+ // - A location's span is not always a subset of its parent's span. For
+ // example, the "extendee" of an extension declaration appears at the
+ // beginning of the "extend" block and is shared by all extensions within
+ // the block.
+ // - Just because a location's span is a subset of some other location's span
+ // does not mean that it is a descendent. For example, a "group" defines
+ // both a type and a field in a single declaration. Thus, the locations
+ // corresponding to the type and field and their components will overlap.
+ // - Code which tries to interpret locations should probably be designed to
+ // ignore those that it doesn't understand, as more types of locations could
+ // be recorded in the future.
+ repeated Location location = 1;
+ message Location {
+ // Identifies which part of the FileDescriptorProto was defined at this
+ // location.
+ //
+ // Each element is a field number or an index. They form a path from
+ // the root FileDescriptorProto to the place where the definition. For
+ // example, this path:
+ // [ 4, 3, 2, 7, 1 ]
+ // refers to:
+ // file.message_type(3) // 4, 3
+ // .field(7) // 2, 7
+ // .name() // 1
+ // This is because FileDescriptorProto.message_type has field number 4:
+ // repeated DescriptorProto message_type = 4;
+ // and DescriptorProto.field has field number 2:
+ // repeated FieldDescriptorProto field = 2;
+ // and FieldDescriptorProto.name has field number 1:
+ // optional string name = 1;
+ //
+ // Thus, the above path gives the location of a field name. If we removed
+ // the last element:
+ // [ 4, 3, 2, 7 ]
+ // this path refers to the whole field declaration (from the beginning
+ // of the label to the terminating semicolon).
+ repeated int32 path = 1 [packed=true];
+
+ // Always has exactly three or four elements: start line, start column,
+ // end line (optional, otherwise assumed same as start line), end column.
+ // These are packed into a single field for efficiency. Note that line
+ // and column numbers are zero-based -- typically you will want to add
+ // 1 to each before displaying to a user.
+ repeated int32 span = 2 [packed=true];
+
+ // TODO(kenton): Record comments appearing before and after the
+ // declaration.
+ }
+}
diff --git a/csharp/protos/google/protobuf/unittest.proto b/csharp/protos/google/protobuf/unittest.proto
new file mode 100644
index 00000000..7f05cf80
--- /dev/null
+++ b/csharp/protos/google/protobuf/unittest.proto
@@ -0,0 +1,636 @@
+// Additional options required for C# generation. File from copyright
+// line onwards is as per original distribution.
+import "google/protobuf/csharp_options.proto";
+option (google.protobuf.csharp_file_options).namespace = "Google.ProtocolBuffers.TestProtos";
+option (google.protobuf.csharp_file_options).umbrella_classname = "UnitTestProtoFile";
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Author: kenton@google.com (Kenton Varda)
+// Based on original Protocol Buffers design by
+// Sanjay Ghemawat, Jeff Dean, and others.
+//
+// A proto file we will use for unit testing.
+
+
+// Some generic_services option(s) added automatically.
+// See: http://go/proto2-generic-services-default
+option cc_generic_services = true; // auto-added
+option java_generic_services = true; // auto-added
+option py_generic_services = true; // auto-added
+
+import "google/protobuf/unittest_import.proto";
+
+// We don't put this in a package within proto2 because we need to make sure
+// that the generated code doesn't depend on being in the proto2 namespace.
+// In test_util.h we do "using namespace unittest = protobuf_unittest".
+package protobuf_unittest;
+
+// Protos optimized for SPEED use a strict superset of the generated code
+// of equivalent ones optimized for CODE_SIZE, so we should optimize all our
+// tests for speed unless explicitly testing code size optimization.
+option optimize_for = SPEED;
+
+option java_outer_classname = "UnittestProto";
+
+// This proto includes every type of field in both singular and repeated
+// forms.
+message TestAllTypes {
+ message NestedMessage {
+ // The field name "b" fails to compile in proto1 because it conflicts with
+ // a local variable named "b" in one of the generated methods. Doh.
+ // This file needs to compile in proto1 to test backwards-compatibility.
+ optional int32 bb = 1;
+ }
+
+ enum NestedEnum {
+ FOO = 1;
+ BAR = 2;
+ BAZ = 3;
+ }
+
+ // Singular
+ optional int32 optional_int32 = 1;
+ optional int64 optional_int64 = 2;
+ optional uint32 optional_uint32 = 3;
+ optional uint64 optional_uint64 = 4;
+ optional sint32 optional_sint32 = 5;
+ optional sint64 optional_sint64 = 6;
+ optional fixed32 optional_fixed32 = 7;
+ optional fixed64 optional_fixed64 = 8;
+ optional sfixed32 optional_sfixed32 = 9;
+ optional sfixed64 optional_sfixed64 = 10;
+ optional float optional_float = 11;
+ optional double optional_double = 12;
+ optional bool optional_bool = 13;
+ optional string optional_string = 14;
+ optional bytes optional_bytes = 15;
+
+ optional group OptionalGroup = 16 {
+ optional int32 a = 17;
+ }
+
+ optional NestedMessage optional_nested_message = 18;
+ optional ForeignMessage optional_foreign_message = 19;
+ optional protobuf_unittest_import.ImportMessage optional_import_message = 20;
+
+ optional NestedEnum optional_nested_enum = 21;
+ optional ForeignEnum optional_foreign_enum = 22;
+ optional protobuf_unittest_import.ImportEnum optional_import_enum = 23;
+
+ optional string optional_string_piece = 24 [ctype=STRING_PIECE];
+ optional string optional_cord = 25 [ctype=CORD];
+
+ // Repeated
+ repeated int32 repeated_int32 = 31;
+ repeated int64 repeated_int64 = 32;
+ repeated uint32 repeated_uint32 = 33;
+ repeated uint64 repeated_uint64 = 34;
+ repeated sint32 repeated_sint32 = 35;
+ repeated sint64 repeated_sint64 = 36;
+ repeated fixed32 repeated_fixed32 = 37;
+ repeated fixed64 repeated_fixed64 = 38;
+ repeated sfixed32 repeated_sfixed32 = 39;
+ repeated sfixed64 repeated_sfixed64 = 40;
+ repeated float repeated_float = 41;
+ repeated double repeated_double = 42;
+ repeated bool repeated_bool = 43;
+ repeated string repeated_string = 44;
+ repeated bytes repeated_bytes = 45;
+
+ repeated group RepeatedGroup = 46 {
+ optional int32 a = 47;
+ }
+
+ repeated NestedMessage repeated_nested_message = 48;
+ repeated ForeignMessage repeated_foreign_message = 49;
+ repeated protobuf_unittest_import.ImportMessage repeated_import_message = 50;
+
+ repeated NestedEnum repeated_nested_enum = 51;
+ repeated ForeignEnum repeated_foreign_enum = 52;
+ repeated protobuf_unittest_import.ImportEnum repeated_import_enum = 53;
+
+ repeated string repeated_string_piece = 54 [ctype=STRING_PIECE];
+ repeated string repeated_cord = 55 [ctype=CORD];
+
+ // Singular with defaults
+ optional int32 default_int32 = 61 [default = 41 ];
+ optional int64 default_int64 = 62 [default = 42 ];
+ optional uint32 default_uint32 = 63 [default = 43 ];
+ optional uint64 default_uint64 = 64 [default = 44 ];
+ optional sint32 default_sint32 = 65 [default = -45 ];
+ optional sint64 default_sint64 = 66 [default = 46 ];
+ optional fixed32 default_fixed32 = 67 [default = 47 ];
+ optional fixed64 default_fixed64 = 68 [default = 48 ];
+ optional sfixed32 default_sfixed32 = 69 [default = 49 ];
+ optional sfixed64 default_sfixed64 = 70 [default = -50 ];
+ optional float default_float = 71 [default = 51.5 ];
+ optional double default_double = 72 [default = 52e3 ];
+ optional bool default_bool = 73 [default = true ];
+ optional string default_string = 74 [default = "hello"];
+ optional bytes default_bytes = 75 [default = "world"];
+
+ optional NestedEnum default_nested_enum = 81 [default = BAR ];
+ optional ForeignEnum default_foreign_enum = 82 [default = FOREIGN_BAR];
+ optional protobuf_unittest_import.ImportEnum
+ default_import_enum = 83 [default = IMPORT_BAR];
+
+ optional string default_string_piece = 84 [ctype=STRING_PIECE,default="abc"];
+ optional string default_cord = 85 [ctype=CORD,default="123"];
+}
+
+message TestDeprecatedFields {
+ optional int32 deprecated_int32 = 1 [deprecated=true];
+}
+
+// Define these after TestAllTypes to make sure the compiler can handle
+// that.
+message ForeignMessage {
+ optional int32 c = 1;
+}
+
+enum ForeignEnum {
+ FOREIGN_FOO = 4;
+ FOREIGN_BAR = 5;
+ FOREIGN_BAZ = 6;
+}
+
+message TestAllExtensions {
+ extensions 1 to max;
+}
+
+extend TestAllExtensions {
+ // Singular
+ optional int32 optional_int32_extension = 1;
+ optional int64 optional_int64_extension = 2;
+ optional uint32 optional_uint32_extension = 3;
+ optional uint64 optional_uint64_extension = 4;
+ optional sint32 optional_sint32_extension = 5;
+ optional sint64 optional_sint64_extension = 6;
+ optional fixed32 optional_fixed32_extension = 7;
+ optional fixed64 optional_fixed64_extension = 8;
+ optional sfixed32 optional_sfixed32_extension = 9;
+ optional sfixed64 optional_sfixed64_extension = 10;
+ optional float optional_float_extension = 11;
+ optional double optional_double_extension = 12;
+ optional bool optional_bool_extension = 13;
+ optional string optional_string_extension = 14;
+ optional bytes optional_bytes_extension = 15;
+
+ optional group OptionalGroup_extension = 16 {
+ optional int32 a = 17;
+ }
+
+ optional TestAllTypes.NestedMessage optional_nested_message_extension = 18;
+ optional ForeignMessage optional_foreign_message_extension = 19;
+ optional protobuf_unittest_import.ImportMessage
+ optional_import_message_extension = 20;
+
+ optional TestAllTypes.NestedEnum optional_nested_enum_extension = 21;
+ optional ForeignEnum optional_foreign_enum_extension = 22;
+ optional protobuf_unittest_import.ImportEnum
+ optional_import_enum_extension = 23;
+
+ optional string optional_string_piece_extension = 24 [ctype=STRING_PIECE];
+ optional string optional_cord_extension = 25 [ctype=CORD];
+
+ // Repeated
+ repeated int32 repeated_int32_extension = 31;
+ repeated int64 repeated_int64_extension = 32;
+ repeated uint32 repeated_uint32_extension = 33;
+ repeated uint64 repeated_uint64_extension = 34;
+ repeated sint32 repeated_sint32_extension = 35;
+ repeated sint64 repeated_sint64_extension = 36;
+ repeated fixed32 repeated_fixed32_extension = 37;
+ repeated fixed64 repeated_fixed64_extension = 38;
+ repeated sfixed32 repeated_sfixed32_extension = 39;
+ repeated sfixed64 repeated_sfixed64_extension = 40;
+ repeated float repeated_float_extension = 41;
+ repeated double repeated_double_extension = 42;
+ repeated bool repeated_bool_extension = 43;
+ repeated string repeated_string_extension = 44;
+ repeated bytes repeated_bytes_extension = 45;
+
+ repeated group RepeatedGroup_extension = 46 {
+ optional int32 a = 47;
+ }
+
+ repeated TestAllTypes.NestedMessage repeated_nested_message_extension = 48;
+ repeated ForeignMessage repeated_foreign_message_extension = 49;
+ repeated protobuf_unittest_import.ImportMessage
+ repeated_import_message_extension = 50;
+
+ repeated TestAllTypes.NestedEnum repeated_nested_enum_extension = 51;
+ repeated ForeignEnum repeated_foreign_enum_extension = 52;
+ repeated protobuf_unittest_import.ImportEnum
+ repeated_import_enum_extension = 53;
+
+ repeated string repeated_string_piece_extension = 54 [ctype=STRING_PIECE];
+ repeated string repeated_cord_extension = 55 [ctype=CORD];
+
+ // Singular with defaults
+ optional int32 default_int32_extension = 61 [default = 41 ];
+ optional int64 default_int64_extension = 62 [default = 42 ];
+ optional uint32 default_uint32_extension = 63 [default = 43 ];
+ optional uint64 default_uint64_extension = 64 [default = 44 ];
+ optional sint32 default_sint32_extension = 65 [default = -45 ];
+ optional sint64 default_sint64_extension = 66 [default = 46 ];
+ optional fixed32 default_fixed32_extension = 67 [default = 47 ];
+ optional fixed64 default_fixed64_extension = 68 [default = 48 ];
+ optional sfixed32 default_sfixed32_extension = 69 [default = 49 ];
+ optional sfixed64 default_sfixed64_extension = 70 [default = -50 ];
+ optional float default_float_extension = 71 [default = 51.5 ];
+ optional double default_double_extension = 72 [default = 52e3 ];
+ optional bool default_bool_extension = 73 [default = true ];
+ optional string default_string_extension = 74 [default = "hello"];
+ optional bytes default_bytes_extension = 75 [default = "world"];
+
+ optional TestAllTypes.NestedEnum
+ default_nested_enum_extension = 81 [default = BAR];
+ optional ForeignEnum
+ default_foreign_enum_extension = 82 [default = FOREIGN_BAR];
+ optional protobuf_unittest_import.ImportEnum
+ default_import_enum_extension = 83 [default = IMPORT_BAR];
+
+ optional string default_string_piece_extension = 84 [ctype=STRING_PIECE,
+ default="abc"];
+ optional string default_cord_extension = 85 [ctype=CORD, default="123"];
+}
+
+message TestNestedExtension {
+ extend TestAllExtensions {
+ // Check for bug where string extensions declared in tested scope did not
+ // compile.
+ optional string test = 1002 [default="test"];
+ }
+}
+
+// We have separate messages for testing required fields because it's
+// annoying to have to fill in required fields in TestProto in order to
+// do anything with it. Note that we don't need to test every type of
+// required filed because the code output is basically identical to
+// optional fields for all types.
+message TestRequired {
+ required int32 a = 1;
+ optional int32 dummy2 = 2;
+ required int32 b = 3;
+
+ extend TestAllExtensions {
+ optional TestRequired single = 1000;
+ repeated TestRequired multi = 1001;
+ }
+
+ // Pad the field count to 32 so that we can test that IsInitialized()
+ // properly checks multiple elements of has_bits_.
+ optional int32 dummy4 = 4;
+ optional int32 dummy5 = 5;
+ optional int32 dummy6 = 6;
+ optional int32 dummy7 = 7;
+ optional int32 dummy8 = 8;
+ optional int32 dummy9 = 9;
+ optional int32 dummy10 = 10;
+ optional int32 dummy11 = 11;
+ optional int32 dummy12 = 12;
+ optional int32 dummy13 = 13;
+ optional int32 dummy14 = 14;
+ optional int32 dummy15 = 15;
+ optional int32 dummy16 = 16;
+ optional int32 dummy17 = 17;
+ optional int32 dummy18 = 18;
+ optional int32 dummy19 = 19;
+ optional int32 dummy20 = 20;
+ optional int32 dummy21 = 21;
+ optional int32 dummy22 = 22;
+ optional int32 dummy23 = 23;
+ optional int32 dummy24 = 24;
+ optional int32 dummy25 = 25;
+ optional int32 dummy26 = 26;
+ optional int32 dummy27 = 27;
+ optional int32 dummy28 = 28;
+ optional int32 dummy29 = 29;
+ optional int32 dummy30 = 30;
+ optional int32 dummy31 = 31;
+ optional int32 dummy32 = 32;
+
+ required int32 c = 33;
+}
+
+message TestRequiredForeign {
+ optional TestRequired optional_message = 1;
+ repeated TestRequired repeated_message = 2;
+ optional int32 dummy = 3;
+}
+
+// Test that we can use NestedMessage from outside TestAllTypes.
+message TestForeignNested {
+ optional TestAllTypes.NestedMessage foreign_nested = 1;
+}
+
+// TestEmptyMessage is used to test unknown field support.
+message TestEmptyMessage {
+}
+
+// Like above, but declare all field numbers as potential extensions. No
+// actual extensions should ever be defined for this type.
+message TestEmptyMessageWithExtensions {
+ extensions 1 to max;
+}
+
+message TestMultipleExtensionRanges {
+ extensions 42;
+ extensions 4143 to 4243;
+ extensions 65536 to max;
+}
+
+// Test that really large tag numbers don't break anything.
+message TestReallyLargeTagNumber {
+ // The largest possible tag number is 2^28 - 1, since the wire format uses
+ // three bits to communicate wire type.
+ optional int32 a = 1;
+ optional int32 bb = 268435455;
+}
+
+message TestRecursiveMessage {
+ optional TestRecursiveMessage a = 1;
+ optional int32 i = 2;
+}
+
+// Test that mutual recursion works.
+message TestMutualRecursionA {
+ optional TestMutualRecursionB bb = 1;
+}
+
+message TestMutualRecursionB {
+ optional TestMutualRecursionA a = 1;
+ optional int32 optional_int32 = 2;
+}
+
+// Test that groups have disjoint field numbers from their siblings and
+// parents. This is NOT possible in proto1; only proto2. When attempting
+// to compile with proto1, this will emit an error; so we only include it
+// in protobuf_unittest_proto.
+message TestDupFieldNumber { // NO_PROTO1
+ optional int32 a = 1; // NO_PROTO1
+ optional group Foo = 2 { optional int32 a = 1; } // NO_PROTO1
+ optional group Bar = 3 { optional int32 a = 1; } // NO_PROTO1
+} // NO_PROTO1
+
+
+// Needed for a Python test.
+message TestNestedMessageHasBits {
+ message NestedMessage {
+ repeated int32 nestedmessage_repeated_int32 = 1;
+ repeated ForeignMessage nestedmessage_repeated_foreignmessage = 2;
+ }
+ optional NestedMessage optional_nested_message = 1;
+}
+
+
+// Test an enum that has multiple values with the same number.
+enum TestEnumWithDupValue {
+ FOO1 = 1;
+ BAR1 = 2;
+ BAZ = 3;
+ FOO2 = 1;
+ BAR2 = 2;
+}
+
+// Test an enum with large, unordered values.
+enum TestSparseEnum {
+ SPARSE_A = 123;
+ SPARSE_B = 62374;
+ SPARSE_C = 12589234;
+ SPARSE_D = -15;
+ SPARSE_E = -53452;
+ SPARSE_F = 0;
+ SPARSE_G = 2;
+}
+
+// Test message with CamelCase field names. This violates Protocol Buffer
+// standard style.
+message TestCamelCaseFieldNames {
+ optional int32 PrimitiveField = 1;
+ optional string StringField = 2;
+ optional ForeignEnum EnumField = 3;
+ optional ForeignMessage MessageField = 4;
+ optional string StringPieceField = 5 [ctype=STRING_PIECE];
+ optional string CordField = 6 [ctype=CORD];
+
+ repeated int32 RepeatedPrimitiveField = 7;
+ repeated string RepeatedStringField = 8;
+ repeated ForeignEnum RepeatedEnumField = 9;
+ repeated ForeignMessage RepeatedMessageField = 10;
+ repeated string RepeatedStringPieceField = 11 [ctype=STRING_PIECE];
+ repeated string RepeatedCordField = 12 [ctype=CORD];
+}
+
+
+// We list fields out of order, to ensure that we're using field number and not
+// field index to determine serialization order.
+message TestFieldOrderings {
+ optional string my_string = 11;
+ extensions 2 to 10;
+ optional int64 my_int = 1;
+ extensions 12 to 100;
+ optional float my_float = 101;
+}
+
+
+extend TestFieldOrderings {
+ optional string my_extension_string = 50;
+ optional int32 my_extension_int = 5;
+}
+
+
+message TestExtremeDefaultValues {
+ optional bytes escaped_bytes = 1 [default = "\0\001\a\b\f\n\r\t\v\\\'\"\xfe"];
+ optional uint32 large_uint32 = 2 [default = 0xFFFFFFFF];
+ optional uint64 large_uint64 = 3 [default = 0xFFFFFFFFFFFFFFFF];
+ optional int32 small_int32 = 4 [default = -0x7FFFFFFF];
+ optional int64 small_int64 = 5 [default = -0x7FFFFFFFFFFFFFFF];
+
+ // The default value here is UTF-8 for "\u1234". (We could also just type
+ // the UTF-8 text directly into this text file rather than escape it, but
+ // lots of people use editors that would be confused by this.)
+ optional string utf8_string = 6 [default = "\341\210\264"];
+
+ // Tests for single-precision floating-point values.
+ optional float zero_float = 7 [default = 0];
+ optional float one_float = 8 [default = 1];
+ optional float small_float = 9 [default = 1.5];
+ optional float negative_one_float = 10 [default = -1];
+ optional float negative_float = 11 [default = -1.5];
+ // Using exponents
+ optional float large_float = 12 [default = 2E8];
+ optional float small_negative_float = 13 [default = -8e-28];
+
+ // Text for nonfinite floating-point values.
+ optional double inf_double = 14 [default = inf];
+ optional double neg_inf_double = 15 [default = -inf];
+ optional double nan_double = 16 [default = nan];
+ optional float inf_float = 17 [default = inf];
+ optional float neg_inf_float = 18 [default = -inf];
+ optional float nan_float = 19 [default = nan];
+
+ // Tests for C++ trigraphs.
+ // Trigraphs should be escaped in C++ generated files, but they should not be
+ // escaped for other languages.
+ // Note that in .proto file, "\?" is a valid way to escape ? in string
+ // literals.
+ optional string cpp_trigraph = 20 [default = "? \? ?? \?? \??? ??/ ?\?-"];
+}
+
+message SparseEnumMessage {
+ optional TestSparseEnum sparse_enum = 1;
+}
+
+// Test String and Bytes: string is for valid UTF-8 strings
+message OneString {
+ optional string data = 1;
+}
+
+message OneBytes {
+ optional bytes data = 1;
+}
+
+// Test messages for packed fields
+
+message TestPackedTypes {
+ repeated int32 packed_int32 = 90 [packed = true];
+ repeated int64 packed_int64 = 91 [packed = true];
+ repeated uint32 packed_uint32 = 92 [packed = true];
+ repeated uint64 packed_uint64 = 93 [packed = true];
+ repeated sint32 packed_sint32 = 94 [packed = true];
+ repeated sint64 packed_sint64 = 95 [packed = true];
+ repeated fixed32 packed_fixed32 = 96 [packed = true];
+ repeated fixed64 packed_fixed64 = 97 [packed = true];
+ repeated sfixed32 packed_sfixed32 = 98 [packed = true];
+ repeated sfixed64 packed_sfixed64 = 99 [packed = true];
+ repeated float packed_float = 100 [packed = true];
+ repeated double packed_double = 101 [packed = true];
+ repeated bool packed_bool = 102 [packed = true];
+ repeated ForeignEnum packed_enum = 103 [packed = true];
+}
+
+// A message with the same fields as TestPackedTypes, but without packing. Used
+// to test packed <-> unpacked wire compatibility.
+message TestUnpackedTypes {
+ repeated int32 unpacked_int32 = 90 [packed = false];
+ repeated int64 unpacked_int64 = 91 [packed = false];
+ repeated uint32 unpacked_uint32 = 92 [packed = false];
+ repeated uint64 unpacked_uint64 = 93 [packed = false];
+ repeated sint32 unpacked_sint32 = 94 [packed = false];
+ repeated sint64 unpacked_sint64 = 95 [packed = false];
+ repeated fixed32 unpacked_fixed32 = 96 [packed = false];
+ repeated fixed64 unpacked_fixed64 = 97 [packed = false];
+ repeated sfixed32 unpacked_sfixed32 = 98 [packed = false];
+ repeated sfixed64 unpacked_sfixed64 = 99 [packed = false];
+ repeated float unpacked_float = 100 [packed = false];
+ repeated double unpacked_double = 101 [packed = false];
+ repeated bool unpacked_bool = 102 [packed = false];
+ repeated ForeignEnum unpacked_enum = 103 [packed = false];
+}
+
+message TestPackedExtensions {
+ extensions 1 to max;
+}
+
+extend TestPackedExtensions {
+ repeated int32 packed_int32_extension = 90 [packed = true];
+ repeated int64 packed_int64_extension = 91 [packed = true];
+ repeated uint32 packed_uint32_extension = 92 [packed = true];
+ repeated uint64 packed_uint64_extension = 93 [packed = true];
+ repeated sint32 packed_sint32_extension = 94 [packed = true];
+ repeated sint64 packed_sint64_extension = 95 [packed = true];
+ repeated fixed32 packed_fixed32_extension = 96 [packed = true];
+ repeated fixed64 packed_fixed64_extension = 97 [packed = true];
+ repeated sfixed32 packed_sfixed32_extension = 98 [packed = true];
+ repeated sfixed64 packed_sfixed64_extension = 99 [packed = true];
+ repeated float packed_float_extension = 100 [packed = true];
+ repeated double packed_double_extension = 101 [packed = true];
+ repeated bool packed_bool_extension = 102 [packed = true];
+ repeated ForeignEnum packed_enum_extension = 103 [packed = true];
+}
+
+// Used by ExtensionSetTest/DynamicExtensions. The test actually builds
+// a set of extensions to TestAllExtensions dynamically, based on the fields
+// of this message type.
+message TestDynamicExtensions {
+ enum DynamicEnumType {
+ DYNAMIC_FOO = 2200;
+ DYNAMIC_BAR = 2201;
+ DYNAMIC_BAZ = 2202;
+ }
+ message DynamicMessageType {
+ optional int32 dynamic_field = 2100;
+ }
+
+ optional fixed32 scalar_extension = 2000;
+ optional ForeignEnum enum_extension = 2001;
+ optional DynamicEnumType dynamic_enum_extension = 2002;
+
+ optional ForeignMessage message_extension = 2003;
+ optional DynamicMessageType dynamic_message_extension = 2004;
+
+ repeated string repeated_extension = 2005;
+ repeated sint32 packed_extension = 2006 [packed = true];
+}
+
+message TestRepeatedScalarDifferentTagSizes {
+ // Parsing repeated fixed size values used to fail. This message needs to be
+ // used in order to get a tag of the right size; all of the repeated fields
+ // in TestAllTypes didn't trigger the check.
+ repeated fixed32 repeated_fixed32 = 12;
+ // Check for a varint type, just for good measure.
+ repeated int32 repeated_int32 = 13;
+
+ // These have two-byte tags.
+ repeated fixed64 repeated_fixed64 = 2046;
+ repeated int64 repeated_int64 = 2047;
+
+ // Three byte tags.
+ repeated float repeated_float = 262142;
+ repeated uint64 repeated_uint64 = 262143;
+}
+
+
+// Test that RPC services work.
+message FooRequest {}
+message FooResponse {}
+
+service TestService {
+ rpc Foo(FooRequest) returns (FooResponse);
+ rpc Bar(BarRequest) returns (BarResponse);
+}
+
+
+message BarRequest {}
+message BarResponse {}
diff --git a/csharp/protos/google/protobuf/unittest_csharp_options.proto b/csharp/protos/google/protobuf/unittest_csharp_options.proto
new file mode 100644
index 00000000..37693292
--- /dev/null
+++ b/csharp/protos/google/protobuf/unittest_csharp_options.proto
@@ -0,0 +1,52 @@
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Author: jonskeet@google.com (Jon Skeet)
+//
+// A proto file for unit testing the custom C# options
+
+import "google/protobuf/csharp_options.proto";
+option (google.protobuf.csharp_file_options).namespace = "Google.ProtocolBuffers.TestProtos";
+option (google.protobuf.csharp_file_options).umbrella_classname = "UnitTestCSharpOptionsProtoFile";
+//option (google.protobuf.csharp_file_options).nest_classes = true;
+
+package protobuf_unittest;
+
+message OptionsMessage {
+
+ // Will be left as Normal
+ optional string normal = 1;
+
+ // Will be converted to OptionsMessage_
+ optional string options_message = 2;
+
+ // Will be converted to CustomName
+ optional string customized = 3 [(google.protobuf.csharp_field_options).property_name = "CustomName"];
+}
diff --git a/csharp/protos/google/protobuf/unittest_custom_options.proto b/csharp/protos/google/protobuf/unittest_custom_options.proto
new file mode 100644
index 00000000..201fb32a
--- /dev/null
+++ b/csharp/protos/google/protobuf/unittest_custom_options.proto
@@ -0,0 +1,372 @@
+// Additional options required for C# generation. File from copyright
+// line onwards is as per original distribution.
+import "google/protobuf/csharp_options.proto";
+option (google.protobuf.csharp_file_options).namespace = "Google.ProtocolBuffers.TestProtos";
+option (google.protobuf.csharp_file_options).umbrella_classname = "UnitTestCustomOptionsProtoFile";
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Author: benjy@google.com (Benjy Weinberger)
+// Based on original Protocol Buffers design by
+// Sanjay Ghemawat, Jeff Dean, and others.
+//
+// A proto file used to test the "custom options" feature of proto2.
+
+
+// Some generic_services option(s) added automatically.
+// See: http://go/proto2-generic-services-default
+option cc_generic_services = true; // auto-added
+option java_generic_services = true; // auto-added
+option py_generic_services = true;
+
+// A custom file option (defined below).
+option (file_opt1) = 9876543210;
+
+import "google/protobuf/descriptor.proto";
+
+// We don't put this in a package within proto2 because we need to make sure
+// that the generated code doesn't depend on being in the proto2 namespace.
+package protobuf_unittest;
+
+
+// Some simple test custom options of various types.
+
+extend google.protobuf.FileOptions {
+ optional uint64 file_opt1 = 7736974;
+}
+
+extend google.protobuf.MessageOptions {
+ optional int32 message_opt1 = 7739036;
+}
+
+extend google.protobuf.FieldOptions {
+ optional fixed64 field_opt1 = 7740936;
+ // This is useful for testing that we correctly register default values for
+ // extension options.
+ optional int32 field_opt2 = 7753913 [default=42];
+}
+
+extend google.protobuf.EnumOptions {
+ optional sfixed32 enum_opt1 = 7753576;
+}
+
+extend google.protobuf.EnumValueOptions {
+ optional int32 enum_value_opt1 = 1560678;
+}
+
+extend google.protobuf.ServiceOptions {
+ optional sint64 service_opt1 = 7887650;
+}
+
+enum MethodOpt1 {
+ METHODOPT1_VAL1 = 1;
+ METHODOPT1_VAL2 = 2;
+}
+
+extend google.protobuf.MethodOptions {
+ optional MethodOpt1 method_opt1 = 7890860;
+}
+
+// A test message with custom options at all possible locations (and also some
+// regular options, to make sure they interact nicely).
+message TestMessageWithCustomOptions {
+ option message_set_wire_format = false;
+
+ option (message_opt1) = -56;
+
+ optional string field1 = 1 [ctype=CORD,
+ (field_opt1)=8765432109];
+
+ enum AnEnum {
+ option (enum_opt1) = -789;
+
+ ANENUM_VAL1 = 1;
+ ANENUM_VAL2 = 2 [(enum_value_opt1) = 123];
+ }
+}
+
+
+// A test RPC service with custom options at all possible locations (and also
+// some regular options, to make sure they interact nicely).
+message CustomOptionFooRequest {
+}
+
+message CustomOptionFooResponse {
+}
+
+service TestServiceWithCustomOptions {
+ option (service_opt1) = -9876543210;
+
+ rpc Foo(CustomOptionFooRequest) returns (CustomOptionFooResponse) {
+ option (method_opt1) = METHODOPT1_VAL2;
+ }
+}
+
+
+
+// Options of every possible field type, so we can test them all exhaustively.
+
+message DummyMessageContainingEnum {
+ enum TestEnumType {
+ TEST_OPTION_ENUM_TYPE1 = 22;
+ TEST_OPTION_ENUM_TYPE2 = -23;
+ }
+}
+
+message DummyMessageInvalidAsOptionType {
+}
+
+extend google.protobuf.MessageOptions {
+ optional bool bool_opt = 7706090;
+ optional int32 int32_opt = 7705709;
+ optional int64 int64_opt = 7705542;
+ optional uint32 uint32_opt = 7704880;
+ optional uint64 uint64_opt = 7702367;
+ optional sint32 sint32_opt = 7701568;
+ optional sint64 sint64_opt = 7700863;
+ optional fixed32 fixed32_opt = 7700307;
+ optional fixed64 fixed64_opt = 7700194;
+ optional sfixed32 sfixed32_opt = 7698645;
+ optional sfixed64 sfixed64_opt = 7685475;
+ optional float float_opt = 7675390;
+ optional double double_opt = 7673293;
+ optional string string_opt = 7673285;
+ optional bytes bytes_opt = 7673238;
+ optional DummyMessageContainingEnum.TestEnumType enum_opt = 7673233;
+ optional DummyMessageInvalidAsOptionType message_type_opt = 7665967;
+}
+
+message CustomOptionMinIntegerValues {
+ option (bool_opt) = false;
+ option (int32_opt) = -0x80000000;
+ option (int64_opt) = -0x8000000000000000;
+ option (uint32_opt) = 0;
+ option (uint64_opt) = 0;
+ option (sint32_opt) = -0x80000000;
+ option (sint64_opt) = -0x8000000000000000;
+ option (fixed32_opt) = 0;
+ option (fixed64_opt) = 0;
+ option (sfixed32_opt) = -0x80000000;
+ option (sfixed64_opt) = -0x8000000000000000;
+}
+
+message CustomOptionMaxIntegerValues {
+ option (bool_opt) = true;
+ option (int32_opt) = 0x7FFFFFFF;
+ option (int64_opt) = 0x7FFFFFFFFFFFFFFF;
+ option (uint32_opt) = 0xFFFFFFFF;
+ option (uint64_opt) = 0xFFFFFFFFFFFFFFFF;
+ option (sint32_opt) = 0x7FFFFFFF;
+ option (sint64_opt) = 0x7FFFFFFFFFFFFFFF;
+ option (fixed32_opt) = 0xFFFFFFFF;
+ option (fixed64_opt) = 0xFFFFFFFFFFFFFFFF;
+ option (sfixed32_opt) = 0x7FFFFFFF;
+ option (sfixed64_opt) = 0x7FFFFFFFFFFFFFFF;
+}
+
+message CustomOptionOtherValues {
+ option (int32_opt) = -100; // To test sign-extension.
+ option (float_opt) = 12.3456789;
+ option (double_opt) = 1.234567890123456789;
+ option (string_opt) = "Hello, \"World\"";
+ option (bytes_opt) = "Hello\0World";
+ option (enum_opt) = TEST_OPTION_ENUM_TYPE2;
+}
+
+message SettingRealsFromPositiveInts {
+ option (float_opt) = 12;
+ option (double_opt) = 154;
+}
+
+message SettingRealsFromNegativeInts {
+ option (float_opt) = -12;
+ option (double_opt) = -154;
+}
+
+// Options of complex message types, themselves combined and extended in
+// various ways.
+
+message ComplexOptionType1 {
+ optional int32 foo = 1;
+ optional int32 foo2 = 2;
+ optional int32 foo3 = 3;
+
+ extensions 100 to max;
+}
+
+message ComplexOptionType2 {
+ optional ComplexOptionType1 bar = 1;
+ optional int32 baz = 2;
+
+ message ComplexOptionType4 {
+ optional int32 waldo = 1;
+
+ extend google.protobuf.MessageOptions {
+ optional ComplexOptionType4 complex_opt4 = 7633546;
+ }
+ }
+
+ optional ComplexOptionType4 fred = 3;
+
+ extensions 100 to max;
+}
+
+message ComplexOptionType3 {
+ optional int32 qux = 1;
+
+ optional group ComplexOptionType5 = 2 {
+ optional int32 plugh = 3;
+ }
+}
+
+extend ComplexOptionType1 {
+ optional int32 quux = 7663707;
+ optional ComplexOptionType3 corge = 7663442;
+}
+
+extend ComplexOptionType2 {
+ optional int32 grault = 7650927;
+ optional ComplexOptionType1 garply = 7649992;
+}
+
+extend google.protobuf.MessageOptions {
+ optional protobuf_unittest.ComplexOptionType1 complex_opt1 = 7646756;
+ optional ComplexOptionType2 complex_opt2 = 7636949;
+ optional ComplexOptionType3 complex_opt3 = 7636463;
+ optional group ComplexOpt6 = 7595468 {
+ optional int32 xyzzy = 7593951;
+ }
+}
+
+// Note that we try various different ways of naming the same extension.
+message VariousComplexOptions {
+ option (.protobuf_unittest.complex_opt1).foo = 42;
+ option (protobuf_unittest.complex_opt1).(.protobuf_unittest.quux) = 324;
+ option (.protobuf_unittest.complex_opt1).(protobuf_unittest.corge).qux = 876;
+ option (complex_opt2).baz = 987;
+ option (complex_opt2).(grault) = 654;
+ option (complex_opt2).bar.foo = 743;
+ option (complex_opt2).bar.(quux) = 1999;
+ option (complex_opt2).bar.(protobuf_unittest.corge).qux = 2008;
+ option (complex_opt2).(garply).foo = 741;
+ option (complex_opt2).(garply).(.protobuf_unittest.quux) = 1998;
+ option (complex_opt2).(protobuf_unittest.garply).(corge).qux = 2121;
+ option (ComplexOptionType2.ComplexOptionType4.complex_opt4).waldo = 1971;
+ option (complex_opt2).fred.waldo = 321;
+ option (protobuf_unittest.complex_opt3).qux = 9;
+ option (complex_opt3).complexoptiontype5.plugh = 22;
+ option (complexopt6).xyzzy = 24;
+}
+
+// ------------------------------------------------------
+// Definitions for testing aggregate option parsing.
+// See descriptor_unittest.cc.
+
+message AggregateMessageSet {
+ option message_set_wire_format = true;
+ extensions 4 to max;
+}
+
+message AggregateMessageSetElement {
+ extend AggregateMessageSet {
+ optional AggregateMessageSetElement message_set_extension = 15447542;
+ }
+ optional string s = 1;
+}
+
+// A helper type used to test aggregate option parsing
+message Aggregate {
+ optional int32 i = 1;
+ optional string s = 2;
+
+ // A nested object
+ optional Aggregate sub = 3;
+
+ // To test the parsing of extensions inside aggregate values
+ optional google.protobuf.FileOptions file = 4;
+ extend google.protobuf.FileOptions {
+ optional Aggregate nested = 15476903;
+ }
+
+ // An embedded message set
+ optional AggregateMessageSet mset = 5;
+}
+
+// Allow Aggregate to be used as an option at all possible locations
+// in the .proto grammer.
+extend google.protobuf.FileOptions { optional Aggregate fileopt = 15478479; }
+extend google.protobuf.MessageOptions { optional Aggregate msgopt = 15480088; }
+extend google.protobuf.FieldOptions { optional Aggregate fieldopt = 15481374; }
+extend google.protobuf.EnumOptions { optional Aggregate enumopt_renamed = 15483218; }
+extend google.protobuf.EnumValueOptions { optional Aggregate enumvalopt = 15486921; }
+extend google.protobuf.ServiceOptions { optional Aggregate serviceopt = 15497145; }
+extend google.protobuf.MethodOptions { optional Aggregate methodopt = 15512713; }
+
+// Try using AggregateOption at different points in the proto grammar
+option (fileopt) = {
+ s: 'FileAnnotation'
+ // Also test the handling of comments
+ /* of both types */ i: 100
+
+ sub { s: 'NestedFileAnnotation' }
+
+ // Include a google.protobuf.FileOptions and recursively extend it with
+ // another fileopt.
+ file {
+ [protobuf_unittest.fileopt] {
+ s:'FileExtensionAnnotation'
+ }
+ }
+
+ // A message set inside an option value
+ mset {
+ [protobuf_unittest.AggregateMessageSetElement.message_set_extension] {
+ s: 'EmbeddedMessageSetElement'
+ }
+ }
+};
+
+message AggregateMessage {
+ option (msgopt) = { i:101 s:'MessageAnnotation' };
+ optional int32 fieldname = 1 [(fieldopt) = { s:'FieldAnnotation' }];
+}
+
+service AggregateService {
+ option (serviceopt) = { s:'ServiceAnnotation' };
+ rpc Method (AggregateMessage) returns (AggregateMessage) {
+ option (methodopt) = { s:'MethodAnnotation' };
+ }
+}
+
+enum AggregateEnum {
+ option (enumopt_renamed) = { s:'EnumAnnotation' };
+ VALUE = 1 [(enumvalopt) = { s:'EnumValueAnnotation' }];
+}
diff --git a/csharp/protos/google/protobuf/unittest_embed_optimize_for.proto b/csharp/protos/google/protobuf/unittest_embed_optimize_for.proto
new file mode 100644
index 00000000..56255385
--- /dev/null
+++ b/csharp/protos/google/protobuf/unittest_embed_optimize_for.proto
@@ -0,0 +1,56 @@
+// Additional options required for C# generation. File from copyright
+// line onwards is as per original distribution.
+import "google/protobuf/csharp_options.proto";
+option (google.protobuf.csharp_file_options).namespace = "Google.ProtocolBuffers.TestProtos";
+option (google.protobuf.csharp_file_options).umbrella_classname = "UnitTestEmbedOptimizeForProtoFile";
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Author: kenton@google.com (Kenton Varda)
+// Based on original Protocol Buffers design by
+// Sanjay Ghemawat, Jeff Dean, and others.
+//
+// A proto file which imports a proto file that uses optimize_for = CODE_SIZE.
+
+import "google/protobuf/unittest_optimize_for.proto";
+
+package protobuf_unittest;
+
+// We optimize for speed here, but we are importing a proto that is optimized
+// for code size.
+option optimize_for = SPEED;
+
+message TestEmbedOptimizedForSize {
+ // Test that embedding a message which has optimize_for = CODE_SIZE into
+ // one optimized for speed works.
+ optional TestOptimizedForSize optional_message = 1;
+ repeated TestOptimizedForSize repeated_message = 2;
+}
diff --git a/csharp/protos/google/protobuf/unittest_empty.proto b/csharp/protos/google/protobuf/unittest_empty.proto
new file mode 100644
index 00000000..f6b532a8
--- /dev/null
+++ b/csharp/protos/google/protobuf/unittest_empty.proto
@@ -0,0 +1,43 @@
+// Additional options required for C# generation. File from copyright
+// line onwards is as per original distribution.
+import "google/protobuf/csharp_options.proto";
+option (google.protobuf.csharp_file_options).namespace = "Google.ProtocolBuffers.TestProtos";
+option (google.protobuf.csharp_file_options).umbrella_classname = "UnitTestEmptyProtoFile";
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Author: kenton@google.com (Kenton Varda)
+// Based on original Protocol Buffers design by
+// Sanjay Ghemawat, Jeff Dean, and others.
+//
+// This file intentionally left blank. (At one point this wouldn't compile
+// correctly.)
+
diff --git a/csharp/protos/google/protobuf/unittest_enormous_descriptor.proto b/csharp/protos/google/protobuf/unittest_enormous_descriptor.proto
new file mode 100644
index 00000000..fa97778e
--- /dev/null
+++ b/csharp/protos/google/protobuf/unittest_enormous_descriptor.proto
@@ -0,0 +1,1052 @@
+// Additional options required for C# generation. File from copyright
+// line onwards is as per original distribution.
+import "google/protobuf/csharp_options.proto";
+option (google.protobuf.csharp_file_options).namespace = "Google.ProtocolBuffers.TestProtos";
+option (google.protobuf.csharp_file_options).umbrella_classname = "UnitTestEnormousDescriptorProtoFile";
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Author: kenton@google.com (Kenton Varda)
+// Based on original Protocol Buffers design by
+// Sanjay Ghemawat, Jeff Dean, and others.
+//
+// A proto file that has an extremely large descriptor. Used to test that
+// descriptors over 64k don't break the string literal length limit in Java.
+
+
+package google.protobuf;
+option java_package = "com.google.protobuf";
+
+// Avoid generating insanely long methods.
+option optimize_for = CODE_SIZE;
+
+message TestEnormousDescriptor {
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_1 = 1 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_2 = 2 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_3 = 3 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_4 = 4 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_5 = 5 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_6 = 6 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_7 = 7 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_8 = 8 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_9 = 9 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_10 = 10 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_11 = 11 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_12 = 12 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_13 = 13 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_14 = 14 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_15 = 15 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_16 = 16 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_17 = 17 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_18 = 18 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_19 = 19 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_20 = 20 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_21 = 21 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_22 = 22 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_23 = 23 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_24 = 24 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_25 = 25 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_26 = 26 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_27 = 27 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_28 = 28 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_29 = 29 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_30 = 30 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_31 = 31 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_32 = 32 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_33 = 33 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_34 = 34 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_35 = 35 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_36 = 36 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_37 = 37 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_38 = 38 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_39 = 39 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_40 = 40 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_41 = 41 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_42 = 42 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_43 = 43 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_44 = 44 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_45 = 45 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_46 = 46 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_47 = 47 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_48 = 48 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_49 = 49 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_50 = 50 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_51 = 51 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_52 = 52 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_53 = 53 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_54 = 54 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_55 = 55 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_56 = 56 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_57 = 57 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_58 = 58 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_59 = 59 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_60 = 60 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_61 = 61 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_62 = 62 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_63 = 63 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_64 = 64 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_65 = 65 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_66 = 66 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_67 = 67 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_68 = 68 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_69 = 69 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_70 = 70 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_71 = 71 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_72 = 72 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_73 = 73 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_74 = 74 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_75 = 75 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_76 = 76 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_77 = 77 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_78 = 78 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_79 = 79 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_80 = 80 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_81 = 81 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_82 = 82 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_83 = 83 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_84 = 84 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_85 = 85 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_86 = 86 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_87 = 87 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_88 = 88 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_89 = 89 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_90 = 90 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_91 = 91 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_92 = 92 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_93 = 93 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_94 = 94 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_95 = 95 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_96 = 96 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_97 = 97 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_98 = 98 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_99 = 99 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_100 = 100 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_101 = 101 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_102 = 102 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_103 = 103 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_104 = 104 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_105 = 105 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_106 = 106 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_107 = 107 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_108 = 108 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_109 = 109 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_110 = 110 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_111 = 111 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_112 = 112 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_113 = 113 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_114 = 114 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_115 = 115 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_116 = 116 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_117 = 117 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_118 = 118 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_119 = 119 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_120 = 120 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_121 = 121 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_122 = 122 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_123 = 123 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_124 = 124 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_125 = 125 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_126 = 126 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_127 = 127 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_128 = 128 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_129 = 129 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_130 = 130 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_131 = 131 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_132 = 132 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_133 = 133 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_134 = 134 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_135 = 135 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_136 = 136 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_137 = 137 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_138 = 138 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_139 = 139 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_140 = 140 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_141 = 141 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_142 = 142 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_143 = 143 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_144 = 144 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_145 = 145 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_146 = 146 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_147 = 147 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_148 = 148 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_149 = 149 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_150 = 150 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_151 = 151 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_152 = 152 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_153 = 153 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_154 = 154 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_155 = 155 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_156 = 156 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_157 = 157 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_158 = 158 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_159 = 159 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_160 = 160 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_161 = 161 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_162 = 162 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_163 = 163 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_164 = 164 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_165 = 165 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_166 = 166 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_167 = 167 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_168 = 168 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_169 = 169 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_170 = 170 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_171 = 171 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_172 = 172 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_173 = 173 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_174 = 174 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_175 = 175 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_176 = 176 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_177 = 177 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_178 = 178 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_179 = 179 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_180 = 180 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_181 = 181 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_182 = 182 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_183 = 183 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_184 = 184 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_185 = 185 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_186 = 186 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_187 = 187 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_188 = 188 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_189 = 189 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_190 = 190 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_191 = 191 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_192 = 192 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_193 = 193 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_194 = 194 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_195 = 195 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_196 = 196 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_197 = 197 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_198 = 198 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_199 = 199 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_200 = 200 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_201 = 201 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_202 = 202 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_203 = 203 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_204 = 204 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_205 = 205 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_206 = 206 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_207 = 207 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_208 = 208 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_209 = 209 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_210 = 210 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_211 = 211 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_212 = 212 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_213 = 213 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_214 = 214 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_215 = 215 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_216 = 216 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_217 = 217 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_218 = 218 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_219 = 219 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_220 = 220 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_221 = 221 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_222 = 222 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_223 = 223 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_224 = 224 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_225 = 225 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_226 = 226 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_227 = 227 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_228 = 228 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_229 = 229 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_230 = 230 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_231 = 231 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_232 = 232 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_233 = 233 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_234 = 234 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_235 = 235 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_236 = 236 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_237 = 237 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_238 = 238 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_239 = 239 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_240 = 240 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_241 = 241 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_242 = 242 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_243 = 243 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_244 = 244 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_245 = 245 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_246 = 246 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_247 = 247 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_248 = 248 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_249 = 249 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_250 = 250 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_251 = 251 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_252 = 252 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_253 = 253 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_254 = 254 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_255 = 255 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_256 = 256 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_257 = 257 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_258 = 258 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_259 = 259 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_260 = 260 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_261 = 261 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_262 = 262 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_263 = 263 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_264 = 264 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_265 = 265 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_266 = 266 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_267 = 267 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_268 = 268 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_269 = 269 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_270 = 270 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_271 = 271 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_272 = 272 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_273 = 273 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_274 = 274 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_275 = 275 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_276 = 276 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_277 = 277 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_278 = 278 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_279 = 279 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_280 = 280 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_281 = 281 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_282 = 282 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_283 = 283 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_284 = 284 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_285 = 285 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_286 = 286 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_287 = 287 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_288 = 288 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_289 = 289 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_290 = 290 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_291 = 291 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_292 = 292 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_293 = 293 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_294 = 294 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_295 = 295 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_296 = 296 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_297 = 297 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_298 = 298 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_299 = 299 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_300 = 300 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_301 = 301 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_302 = 302 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_303 = 303 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_304 = 304 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_305 = 305 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_306 = 306 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_307 = 307 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_308 = 308 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_309 = 309 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_310 = 310 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_311 = 311 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_312 = 312 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_313 = 313 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_314 = 314 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_315 = 315 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_316 = 316 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_317 = 317 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_318 = 318 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_319 = 319 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_320 = 320 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_321 = 321 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_322 = 322 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_323 = 323 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_324 = 324 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_325 = 325 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_326 = 326 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_327 = 327 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_328 = 328 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_329 = 329 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_330 = 330 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_331 = 331 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_332 = 332 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_333 = 333 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_334 = 334 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_335 = 335 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_336 = 336 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_337 = 337 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_338 = 338 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_339 = 339 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_340 = 340 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_341 = 341 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_342 = 342 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_343 = 343 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_344 = 344 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_345 = 345 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_346 = 346 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_347 = 347 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_348 = 348 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_349 = 349 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_350 = 350 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_351 = 351 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_352 = 352 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_353 = 353 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_354 = 354 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_355 = 355 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_356 = 356 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_357 = 357 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_358 = 358 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_359 = 359 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_360 = 360 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_361 = 361 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_362 = 362 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_363 = 363 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_364 = 364 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_365 = 365 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_366 = 366 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_367 = 367 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_368 = 368 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_369 = 369 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_370 = 370 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_371 = 371 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_372 = 372 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_373 = 373 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_374 = 374 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_375 = 375 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_376 = 376 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_377 = 377 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_378 = 378 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_379 = 379 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_380 = 380 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_381 = 381 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_382 = 382 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_383 = 383 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_384 = 384 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_385 = 385 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_386 = 386 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_387 = 387 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_388 = 388 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_389 = 389 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_390 = 390 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_391 = 391 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_392 = 392 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_393 = 393 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_394 = 394 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_395 = 395 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_396 = 396 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_397 = 397 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_398 = 398 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_399 = 399 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_400 = 400 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_401 = 401 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_402 = 402 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_403 = 403 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_404 = 404 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_405 = 405 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_406 = 406 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_407 = 407 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_408 = 408 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_409 = 409 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_410 = 410 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_411 = 411 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_412 = 412 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_413 = 413 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_414 = 414 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_415 = 415 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_416 = 416 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_417 = 417 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_418 = 418 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_419 = 419 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_420 = 420 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_421 = 421 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_422 = 422 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_423 = 423 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_424 = 424 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_425 = 425 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_426 = 426 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_427 = 427 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_428 = 428 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_429 = 429 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_430 = 430 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_431 = 431 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_432 = 432 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_433 = 433 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_434 = 434 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_435 = 435 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_436 = 436 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_437 = 437 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_438 = 438 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_439 = 439 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_440 = 440 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_441 = 441 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_442 = 442 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_443 = 443 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_444 = 444 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_445 = 445 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_446 = 446 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_447 = 447 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_448 = 448 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_449 = 449 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_450 = 450 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_451 = 451 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_452 = 452 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_453 = 453 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_454 = 454 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_455 = 455 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_456 = 456 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_457 = 457 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_458 = 458 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_459 = 459 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_460 = 460 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_461 = 461 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_462 = 462 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_463 = 463 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_464 = 464 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_465 = 465 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_466 = 466 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_467 = 467 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_468 = 468 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_469 = 469 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_470 = 470 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_471 = 471 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_472 = 472 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_473 = 473 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_474 = 474 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_475 = 475 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_476 = 476 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_477 = 477 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_478 = 478 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_479 = 479 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_480 = 480 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_481 = 481 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_482 = 482 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_483 = 483 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_484 = 484 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_485 = 485 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_486 = 486 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_487 = 487 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_488 = 488 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_489 = 489 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_490 = 490 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_491 = 491 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_492 = 492 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_493 = 493 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_494 = 494 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_495 = 495 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_496 = 496 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_497 = 497 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_498 = 498 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_499 = 499 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_500 = 500 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_501 = 501 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_502 = 502 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_503 = 503 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_504 = 504 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_505 = 505 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_506 = 506 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_507 = 507 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_508 = 508 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_509 = 509 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_510 = 510 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_511 = 511 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_512 = 512 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_513 = 513 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_514 = 514 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_515 = 515 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_516 = 516 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_517 = 517 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_518 = 518 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_519 = 519 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_520 = 520 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_521 = 521 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_522 = 522 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_523 = 523 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_524 = 524 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_525 = 525 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_526 = 526 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_527 = 527 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_528 = 528 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_529 = 529 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_530 = 530 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_531 = 531 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_532 = 532 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_533 = 533 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_534 = 534 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_535 = 535 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_536 = 536 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_537 = 537 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_538 = 538 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_539 = 539 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_540 = 540 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_541 = 541 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_542 = 542 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_543 = 543 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_544 = 544 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_545 = 545 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_546 = 546 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_547 = 547 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_548 = 548 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_549 = 549 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_550 = 550 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_551 = 551 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_552 = 552 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_553 = 553 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_554 = 554 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_555 = 555 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_556 = 556 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_557 = 557 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_558 = 558 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_559 = 559 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_560 = 560 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_561 = 561 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_562 = 562 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_563 = 563 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_564 = 564 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_565 = 565 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_566 = 566 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_567 = 567 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_568 = 568 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_569 = 569 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_570 = 570 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_571 = 571 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_572 = 572 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_573 = 573 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_574 = 574 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_575 = 575 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_576 = 576 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_577 = 577 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_578 = 578 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_579 = 579 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_580 = 580 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_581 = 581 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_582 = 582 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_583 = 583 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_584 = 584 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_585 = 585 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_586 = 586 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_587 = 587 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_588 = 588 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_589 = 589 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_590 = 590 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_591 = 591 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_592 = 592 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_593 = 593 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_594 = 594 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_595 = 595 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_596 = 596 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_597 = 597 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_598 = 598 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_599 = 599 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_600 = 600 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_601 = 601 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_602 = 602 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_603 = 603 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_604 = 604 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_605 = 605 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_606 = 606 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_607 = 607 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_608 = 608 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_609 = 609 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_610 = 610 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_611 = 611 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_612 = 612 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_613 = 613 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_614 = 614 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_615 = 615 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_616 = 616 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_617 = 617 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_618 = 618 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_619 = 619 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_620 = 620 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_621 = 621 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_622 = 622 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_623 = 623 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_624 = 624 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_625 = 625 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_626 = 626 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_627 = 627 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_628 = 628 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_629 = 629 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_630 = 630 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_631 = 631 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_632 = 632 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_633 = 633 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_634 = 634 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_635 = 635 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_636 = 636 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_637 = 637 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_638 = 638 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_639 = 639 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_640 = 640 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_641 = 641 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_642 = 642 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_643 = 643 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_644 = 644 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_645 = 645 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_646 = 646 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_647 = 647 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_648 = 648 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_649 = 649 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_650 = 650 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_651 = 651 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_652 = 652 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_653 = 653 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_654 = 654 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_655 = 655 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_656 = 656 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_657 = 657 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_658 = 658 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_659 = 659 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_660 = 660 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_661 = 661 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_662 = 662 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_663 = 663 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_664 = 664 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_665 = 665 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_666 = 666 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_667 = 667 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_668 = 668 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_669 = 669 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_670 = 670 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_671 = 671 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_672 = 672 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_673 = 673 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_674 = 674 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_675 = 675 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_676 = 676 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_677 = 677 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_678 = 678 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_679 = 679 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_680 = 680 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_681 = 681 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_682 = 682 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_683 = 683 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_684 = 684 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_685 = 685 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_686 = 686 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_687 = 687 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_688 = 688 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_689 = 689 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_690 = 690 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_691 = 691 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_692 = 692 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_693 = 693 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_694 = 694 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_695 = 695 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_696 = 696 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_697 = 697 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_698 = 698 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_699 = 699 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_700 = 700 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_701 = 701 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_702 = 702 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_703 = 703 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_704 = 704 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_705 = 705 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_706 = 706 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_707 = 707 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_708 = 708 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_709 = 709 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_710 = 710 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_711 = 711 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_712 = 712 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_713 = 713 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_714 = 714 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_715 = 715 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_716 = 716 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_717 = 717 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_718 = 718 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_719 = 719 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_720 = 720 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_721 = 721 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_722 = 722 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_723 = 723 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_724 = 724 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_725 = 725 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_726 = 726 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_727 = 727 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_728 = 728 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_729 = 729 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_730 = 730 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_731 = 731 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_732 = 732 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_733 = 733 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_734 = 734 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_735 = 735 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_736 = 736 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_737 = 737 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_738 = 738 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_739 = 739 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_740 = 740 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_741 = 741 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_742 = 742 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_743 = 743 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_744 = 744 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_745 = 745 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_746 = 746 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_747 = 747 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_748 = 748 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_749 = 749 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_750 = 750 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_751 = 751 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_752 = 752 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_753 = 753 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_754 = 754 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_755 = 755 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_756 = 756 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_757 = 757 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_758 = 758 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_759 = 759 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_760 = 760 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_761 = 761 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_762 = 762 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_763 = 763 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_764 = 764 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_765 = 765 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_766 = 766 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_767 = 767 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_768 = 768 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_769 = 769 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_770 = 770 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_771 = 771 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_772 = 772 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_773 = 773 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_774 = 774 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_775 = 775 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_776 = 776 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_777 = 777 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_778 = 778 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_779 = 779 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_780 = 780 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_781 = 781 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_782 = 782 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_783 = 783 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_784 = 784 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_785 = 785 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_786 = 786 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_787 = 787 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_788 = 788 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_789 = 789 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_790 = 790 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_791 = 791 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_792 = 792 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_793 = 793 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_794 = 794 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_795 = 795 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_796 = 796 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_797 = 797 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_798 = 798 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_799 = 799 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_800 = 800 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_801 = 801 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_802 = 802 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_803 = 803 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_804 = 804 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_805 = 805 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_806 = 806 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_807 = 807 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_808 = 808 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_809 = 809 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_810 = 810 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_811 = 811 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_812 = 812 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_813 = 813 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_814 = 814 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_815 = 815 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_816 = 816 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_817 = 817 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_818 = 818 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_819 = 819 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_820 = 820 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_821 = 821 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_822 = 822 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_823 = 823 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_824 = 824 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_825 = 825 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_826 = 826 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_827 = 827 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_828 = 828 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_829 = 829 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_830 = 830 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_831 = 831 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_832 = 832 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_833 = 833 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_834 = 834 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_835 = 835 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_836 = 836 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_837 = 837 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_838 = 838 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_839 = 839 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_840 = 840 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_841 = 841 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_842 = 842 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_843 = 843 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_844 = 844 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_845 = 845 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_846 = 846 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_847 = 847 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_848 = 848 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_849 = 849 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_850 = 850 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_851 = 851 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_852 = 852 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_853 = 853 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_854 = 854 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_855 = 855 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_856 = 856 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_857 = 857 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_858 = 858 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_859 = 859 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_860 = 860 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_861 = 861 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_862 = 862 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_863 = 863 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_864 = 864 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_865 = 865 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_866 = 866 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_867 = 867 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_868 = 868 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_869 = 869 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_870 = 870 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_871 = 871 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_872 = 872 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_873 = 873 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_874 = 874 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_875 = 875 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_876 = 876 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_877 = 877 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_878 = 878 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_879 = 879 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_880 = 880 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_881 = 881 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_882 = 882 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_883 = 883 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_884 = 884 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_885 = 885 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_886 = 886 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_887 = 887 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_888 = 888 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_889 = 889 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_890 = 890 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_891 = 891 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_892 = 892 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_893 = 893 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_894 = 894 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_895 = 895 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_896 = 896 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_897 = 897 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_898 = 898 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_899 = 899 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_900 = 900 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_901 = 901 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_902 = 902 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_903 = 903 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_904 = 904 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_905 = 905 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_906 = 906 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_907 = 907 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_908 = 908 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_909 = 909 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_910 = 910 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_911 = 911 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_912 = 912 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_913 = 913 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_914 = 914 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_915 = 915 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_916 = 916 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_917 = 917 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_918 = 918 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_919 = 919 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_920 = 920 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_921 = 921 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_922 = 922 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_923 = 923 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_924 = 924 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_925 = 925 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_926 = 926 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_927 = 927 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_928 = 928 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_929 = 929 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_930 = 930 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_931 = 931 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_932 = 932 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_933 = 933 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_934 = 934 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_935 = 935 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_936 = 936 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_937 = 937 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_938 = 938 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_939 = 939 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_940 = 940 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_941 = 941 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_942 = 942 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_943 = 943 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_944 = 944 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_945 = 945 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_946 = 946 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_947 = 947 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_948 = 948 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_949 = 949 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_950 = 950 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_951 = 951 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_952 = 952 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_953 = 953 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_954 = 954 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_955 = 955 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_956 = 956 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_957 = 957 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_958 = 958 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_959 = 959 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_960 = 960 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_961 = 961 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_962 = 962 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_963 = 963 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_964 = 964 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_965 = 965 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_966 = 966 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_967 = 967 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_968 = 968 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_969 = 969 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_970 = 970 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_971 = 971 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_972 = 972 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_973 = 973 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_974 = 974 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_975 = 975 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_976 = 976 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_977 = 977 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_978 = 978 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_979 = 979 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_980 = 980 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_981 = 981 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_982 = 982 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_983 = 983 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_984 = 984 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_985 = 985 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_986 = 986 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_987 = 987 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_988 = 988 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_989 = 989 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_990 = 990 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_991 = 991 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_992 = 992 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_993 = 993 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_994 = 994 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_995 = 995 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_996 = 996 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_997 = 997 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_998 = 998 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_999 = 999 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_1000 = 1000 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+}
diff --git a/csharp/protos/google/protobuf/unittest_import.proto b/csharp/protos/google/protobuf/unittest_import.proto
new file mode 100644
index 00000000..aa68c864
--- /dev/null
+++ b/csharp/protos/google/protobuf/unittest_import.proto
@@ -0,0 +1,67 @@
+// Additional options required for C# generation. File from copyright
+// line onwards is as per original distribution.
+import "google/protobuf/csharp_options.proto";
+option (google.protobuf.csharp_file_options).namespace = "Google.ProtocolBuffers.TestProtos";
+option (google.protobuf.csharp_file_options).umbrella_classname = "UnitTestImportProtoFile";
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Author: kenton@google.com (Kenton Varda)
+// Based on original Protocol Buffers design by
+// Sanjay Ghemawat, Jeff Dean, and others.
+//
+// A proto file which is imported by unittest.proto to test importing.
+
+
+// We don't put this in a package within proto2 because we need to make sure
+// that the generated code doesn't depend on being in the proto2 namespace.
+// In test_util.h we do
+// "using namespace unittest_import = protobuf_unittest_import".
+package protobuf_unittest_import;
+
+option optimize_for = SPEED;
+
+// Excercise the java_package option.
+option java_package = "com.google.protobuf.test";
+
+// Do not set a java_outer_classname here to verify that Proto2 works without
+// one.
+
+message ImportMessage {
+ optional int32 d = 1;
+}
+
+enum ImportEnum {
+ IMPORT_FOO = 7;
+ IMPORT_BAR = 8;
+ IMPORT_BAZ = 9;
+}
+
diff --git a/csharp/protos/google/protobuf/unittest_import_lite.proto b/csharp/protos/google/protobuf/unittest_import_lite.proto
new file mode 100644
index 00000000..d8755d0e
--- /dev/null
+++ b/csharp/protos/google/protobuf/unittest_import_lite.proto
@@ -0,0 +1,55 @@
+// Additional options required for C# generation. File from copyright
+// line onwards is as per original distribution.
+import "google/protobuf/csharp_options.proto";
+option (google.protobuf.csharp_file_options).namespace = "Google.ProtocolBuffers.TestProtos";
+option (google.protobuf.csharp_file_options).umbrella_classname = "UnitTestImportLiteProtoFile";
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Author: kenton@google.com (Kenton Varda)
+//
+// This is like unittest_import.proto but with optimize_for = LITE_RUNTIME.
+
+package protobuf_unittest_import;
+
+option optimize_for = LITE_RUNTIME;
+
+option java_package = "com.google.protobuf";
+
+message ImportMessageLite {
+ optional int32 d = 1;
+}
+
+enum ImportEnumLite {
+ IMPORT_LITE_FOO = 7;
+ IMPORT_LITE_BAR = 8;
+ IMPORT_LITE_BAZ = 9;
+}
diff --git a/csharp/protos/google/protobuf/unittest_lite.proto b/csharp/protos/google/protobuf/unittest_lite.proto
new file mode 100644
index 00000000..823fa1dd
--- /dev/null
+++ b/csharp/protos/google/protobuf/unittest_lite.proto
@@ -0,0 +1,318 @@
+// Additional options required for C# generation. File from copyright
+// line onwards is as per original distribution.
+import "google/protobuf/csharp_options.proto";
+option (google.protobuf.csharp_file_options).namespace = "Google.ProtocolBuffers.TestProtos";
+option (google.protobuf.csharp_file_options).umbrella_classname = "UnitTestLiteProtoFile";
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Author: kenton@google.com (Kenton Varda)
+//
+// This is like unittest.proto but with optimize_for = LITE_RUNTIME.
+
+package protobuf_unittest;
+
+import "google/protobuf/unittest_import_lite.proto";
+
+option optimize_for = LITE_RUNTIME;
+
+option java_package = "com.google.protobuf";
+
+// Same as TestAllTypes but with the lite runtime.
+message TestAllTypesLite {
+ message NestedMessage {
+ optional int32 bb = 1;
+ }
+
+ enum NestedEnum {
+ FOO = 1;
+ BAR = 2;
+ BAZ = 3;
+ }
+
+ // Singular
+ optional int32 optional_int32 = 1;
+ optional int64 optional_int64 = 2;
+ optional uint32 optional_uint32 = 3;
+ optional uint64 optional_uint64 = 4;
+ optional sint32 optional_sint32 = 5;
+ optional sint64 optional_sint64 = 6;
+ optional fixed32 optional_fixed32 = 7;
+ optional fixed64 optional_fixed64 = 8;
+ optional sfixed32 optional_sfixed32 = 9;
+ optional sfixed64 optional_sfixed64 = 10;
+ optional float optional_float = 11;
+ optional double optional_double = 12;
+ optional bool optional_bool = 13;
+ optional string optional_string = 14;
+ optional bytes optional_bytes = 15;
+
+ optional group OptionalGroup = 16 {
+ optional int32 a = 17;
+ }
+
+ optional NestedMessage optional_nested_message = 18;
+ optional ForeignMessageLite optional_foreign_message = 19;
+ optional protobuf_unittest_import.ImportMessageLite
+ optional_import_message = 20;
+
+ optional NestedEnum optional_nested_enum = 21;
+ optional ForeignEnumLite optional_foreign_enum = 22;
+ optional protobuf_unittest_import.ImportEnumLite optional_import_enum = 23;
+
+ optional string optional_string_piece = 24 [ctype=STRING_PIECE];
+ optional string optional_cord = 25 [ctype=CORD];
+
+ // Repeated
+ repeated int32 repeated_int32 = 31;
+ repeated int64 repeated_int64 = 32;
+ repeated uint32 repeated_uint32 = 33;
+ repeated uint64 repeated_uint64 = 34;
+ repeated sint32 repeated_sint32 = 35;
+ repeated sint64 repeated_sint64 = 36;
+ repeated fixed32 repeated_fixed32 = 37;
+ repeated fixed64 repeated_fixed64 = 38;
+ repeated sfixed32 repeated_sfixed32 = 39;
+ repeated sfixed64 repeated_sfixed64 = 40;
+ repeated float repeated_float = 41;
+ repeated double repeated_double = 42;
+ repeated bool repeated_bool = 43;
+ repeated string repeated_string = 44;
+ repeated bytes repeated_bytes = 45;
+
+ repeated group RepeatedGroup = 46 {
+ optional int32 a = 47;
+ }
+
+ repeated NestedMessage repeated_nested_message = 48;
+ repeated ForeignMessageLite repeated_foreign_message = 49;
+ repeated protobuf_unittest_import.ImportMessageLite
+ repeated_import_message = 50;
+
+ repeated NestedEnum repeated_nested_enum = 51;
+ repeated ForeignEnumLite repeated_foreign_enum = 52;
+ repeated protobuf_unittest_import.ImportEnumLite repeated_import_enum = 53;
+
+ repeated string repeated_string_piece = 54 [ctype=STRING_PIECE];
+ repeated string repeated_cord = 55 [ctype=CORD];
+
+ // Singular with defaults
+ optional int32 default_int32 = 61 [default = 41 ];
+ optional int64 default_int64 = 62 [default = 42 ];
+ optional uint32 default_uint32 = 63 [default = 43 ];
+ optional uint64 default_uint64 = 64 [default = 44 ];
+ optional sint32 default_sint32 = 65 [default = -45 ];
+ optional sint64 default_sint64 = 66 [default = 46 ];
+ optional fixed32 default_fixed32 = 67 [default = 47 ];
+ optional fixed64 default_fixed64 = 68 [default = 48 ];
+ optional sfixed32 default_sfixed32 = 69 [default = 49 ];
+ optional sfixed64 default_sfixed64 = 70 [default = -50 ];
+ optional float default_float = 71 [default = 51.5 ];
+ optional double default_double = 72 [default = 52e3 ];
+ optional bool default_bool = 73 [default = true ];
+ optional string default_string = 74 [default = "hello"];
+ optional bytes default_bytes = 75 [default = "world"];
+
+ optional NestedEnum default_nested_enum = 81 [default = BAR];
+ optional ForeignEnumLite default_foreign_enum = 82
+ [default = FOREIGN_LITE_BAR];
+ optional protobuf_unittest_import.ImportEnumLite
+ default_import_enum = 83 [default = IMPORT_LITE_BAR];
+
+ optional string default_string_piece = 84 [ctype=STRING_PIECE,default="abc"];
+ optional string default_cord = 85 [ctype=CORD,default="123"];
+}
+
+message ForeignMessageLite {
+ optional int32 c = 1;
+}
+
+enum ForeignEnumLite {
+ FOREIGN_LITE_FOO = 4;
+ FOREIGN_LITE_BAR = 5;
+ FOREIGN_LITE_BAZ = 6;
+}
+
+message TestPackedTypesLite {
+ repeated int32 packed_int32 = 90 [packed = true];
+ repeated int64 packed_int64 = 91 [packed = true];
+ repeated uint32 packed_uint32 = 92 [packed = true];
+ repeated uint64 packed_uint64 = 93 [packed = true];
+ repeated sint32 packed_sint32 = 94 [packed = true];
+ repeated sint64 packed_sint64 = 95 [packed = true];
+ repeated fixed32 packed_fixed32 = 96 [packed = true];
+ repeated fixed64 packed_fixed64 = 97 [packed = true];
+ repeated sfixed32 packed_sfixed32 = 98 [packed = true];
+ repeated sfixed64 packed_sfixed64 = 99 [packed = true];
+ repeated float packed_float = 100 [packed = true];
+ repeated double packed_double = 101 [packed = true];
+ repeated bool packed_bool = 102 [packed = true];
+ repeated ForeignEnumLite packed_enum = 103 [packed = true];
+}
+
+message TestAllExtensionsLite {
+ extensions 1 to max;
+}
+
+extend TestAllExtensionsLite {
+ // Singular
+ optional int32 optional_int32_extension_lite = 1;
+ optional int64 optional_int64_extension_lite = 2;
+ optional uint32 optional_uint32_extension_lite = 3;
+ optional uint64 optional_uint64_extension_lite = 4;
+ optional sint32 optional_sint32_extension_lite = 5;
+ optional sint64 optional_sint64_extension_lite = 6;
+ optional fixed32 optional_fixed32_extension_lite = 7;
+ optional fixed64 optional_fixed64_extension_lite = 8;
+ optional sfixed32 optional_sfixed32_extension_lite = 9;
+ optional sfixed64 optional_sfixed64_extension_lite = 10;
+ optional float optional_float_extension_lite = 11;
+ optional double optional_double_extension_lite = 12;
+ optional bool optional_bool_extension_lite = 13;
+ optional string optional_string_extension_lite = 14;
+ optional bytes optional_bytes_extension_lite = 15;
+
+ optional group OptionalGroup_extension_lite = 16 {
+ optional int32 a = 17;
+ }
+
+ optional TestAllTypesLite.NestedMessage optional_nested_message_extension_lite
+ = 18;
+ optional ForeignMessageLite optional_foreign_message_extension_lite = 19;
+ optional protobuf_unittest_import.ImportMessageLite
+ optional_import_message_extension_lite = 20;
+
+ optional TestAllTypesLite.NestedEnum optional_nested_enum_extension_lite = 21;
+ optional ForeignEnumLite optional_foreign_enum_extension_lite = 22;
+ optional protobuf_unittest_import.ImportEnumLite
+ optional_import_enum_extension_lite = 23;
+
+ optional string optional_string_piece_extension_lite = 24
+ [ctype=STRING_PIECE];
+ optional string optional_cord_extension_lite = 25 [ctype=CORD];
+
+ // Repeated
+ repeated int32 repeated_int32_extension_lite = 31;
+ repeated int64 repeated_int64_extension_lite = 32;
+ repeated uint32 repeated_uint32_extension_lite = 33;
+ repeated uint64 repeated_uint64_extension_lite = 34;
+ repeated sint32 repeated_sint32_extension_lite = 35;
+ repeated sint64 repeated_sint64_extension_lite = 36;
+ repeated fixed32 repeated_fixed32_extension_lite = 37;
+ repeated fixed64 repeated_fixed64_extension_lite = 38;
+ repeated sfixed32 repeated_sfixed32_extension_lite = 39;
+ repeated sfixed64 repeated_sfixed64_extension_lite = 40;
+ repeated float repeated_float_extension_lite = 41;
+ repeated double repeated_double_extension_lite = 42;
+ repeated bool repeated_bool_extension_lite = 43;
+ repeated string repeated_string_extension_lite = 44;
+ repeated bytes repeated_bytes_extension_lite = 45;
+
+ repeated group RepeatedGroup_extension_lite = 46 {
+ optional int32 a = 47;
+ }
+
+ repeated TestAllTypesLite.NestedMessage repeated_nested_message_extension_lite
+ = 48;
+ repeated ForeignMessageLite repeated_foreign_message_extension_lite = 49;
+ repeated protobuf_unittest_import.ImportMessageLite
+ repeated_import_message_extension_lite = 50;
+
+ repeated TestAllTypesLite.NestedEnum repeated_nested_enum_extension_lite = 51;
+ repeated ForeignEnumLite repeated_foreign_enum_extension_lite = 52;
+ repeated protobuf_unittest_import.ImportEnumLite
+ repeated_import_enum_extension_lite = 53;
+
+ repeated string repeated_string_piece_extension_lite = 54
+ [ctype=STRING_PIECE];
+ repeated string repeated_cord_extension_lite = 55 [ctype=CORD];
+
+ // Singular with defaults
+ optional int32 default_int32_extension_lite = 61 [default = 41 ];
+ optional int64 default_int64_extension_lite = 62 [default = 42 ];
+ optional uint32 default_uint32_extension_lite = 63 [default = 43 ];
+ optional uint64 default_uint64_extension_lite = 64 [default = 44 ];
+ optional sint32 default_sint32_extension_lite = 65 [default = -45 ];
+ optional sint64 default_sint64_extension_lite = 66 [default = 46 ];
+ optional fixed32 default_fixed32_extension_lite = 67 [default = 47 ];
+ optional fixed64 default_fixed64_extension_lite = 68 [default = 48 ];
+ optional sfixed32 default_sfixed32_extension_lite = 69 [default = 49 ];
+ optional sfixed64 default_sfixed64_extension_lite = 70 [default = -50 ];
+ optional float default_float_extension_lite = 71 [default = 51.5 ];
+ optional double default_double_extension_lite = 72 [default = 52e3 ];
+ optional bool default_bool_extension_lite = 73 [default = true ];
+ optional string default_string_extension_lite = 74 [default = "hello"];
+ optional bytes default_bytes_extension_lite = 75 [default = "world"];
+
+ optional TestAllTypesLite.NestedEnum
+ default_nested_enum_extension_lite = 81 [default = BAR];
+ optional ForeignEnumLite
+ default_foreign_enum_extension_lite = 82 [default = FOREIGN_LITE_BAR];
+ optional protobuf_unittest_import.ImportEnumLite
+ default_import_enum_extension_lite = 83 [default = IMPORT_LITE_BAR];
+
+ optional string default_string_piece_extension_lite = 84 [ctype=STRING_PIECE,
+ default="abc"];
+ optional string default_cord_extension_lite = 85 [ctype=CORD, default="123"];
+}
+
+message TestPackedExtensionsLite {
+ extensions 1 to max;
+}
+
+extend TestPackedExtensionsLite {
+ repeated int32 packed_int32_extension_lite = 90 [packed = true];
+ repeated int64 packed_int64_extension_lite = 91 [packed = true];
+ repeated uint32 packed_uint32_extension_lite = 92 [packed = true];
+ repeated uint64 packed_uint64_extension_lite = 93 [packed = true];
+ repeated sint32 packed_sint32_extension_lite = 94 [packed = true];
+ repeated sint64 packed_sint64_extension_lite = 95 [packed = true];
+ repeated fixed32 packed_fixed32_extension_lite = 96 [packed = true];
+ repeated fixed64 packed_fixed64_extension_lite = 97 [packed = true];
+ repeated sfixed32 packed_sfixed32_extension_lite = 98 [packed = true];
+ repeated sfixed64 packed_sfixed64_extension_lite = 99 [packed = true];
+ repeated float packed_float_extension_lite = 100 [packed = true];
+ repeated double packed_double_extension_lite = 101 [packed = true];
+ repeated bool packed_bool_extension_lite = 102 [packed = true];
+ repeated ForeignEnumLite packed_enum_extension_lite = 103 [packed = true];
+}
+
+message TestNestedExtensionLite {
+ extend TestAllExtensionsLite {
+ optional int32 nested_extension = 12345;
+ }
+}
+
+// Test that deprecated fields work. We only verify that they compile (at one
+// point this failed).
+message TestDeprecatedLite {
+ optional int32 deprecated_field = 1 [deprecated = true];
+}
diff --git a/csharp/protos/google/protobuf/unittest_lite_imports_nonlite.proto b/csharp/protos/google/protobuf/unittest_lite_imports_nonlite.proto
new file mode 100644
index 00000000..8f18f4d6
--- /dev/null
+++ b/csharp/protos/google/protobuf/unittest_lite_imports_nonlite.proto
@@ -0,0 +1,49 @@
+// Additional options required for C# generation. File from copyright
+// line onwards is as per original distribution.
+import "google/protobuf/csharp_options.proto";
+option (google.protobuf.csharp_file_options).namespace = "Google.ProtocolBuffers.TestProtos";
+option (google.protobuf.csharp_file_options).umbrella_classname = "UnitTestLiteImportNonLiteProtoFile";
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Author: kenton@google.com (Kenton Varda)
+//
+// Tests that a "lite" message can import a regular message.
+
+package protobuf_unittest;
+
+import "google/protobuf/unittest.proto";
+
+option optimize_for = LITE_RUNTIME;
+
+message TestLiteImportsNonlite {
+ optional TestAllTypes message = 1;
+}
diff --git a/csharp/protos/google/protobuf/unittest_mset.proto b/csharp/protos/google/protobuf/unittest_mset.proto
new file mode 100644
index 00000000..8c74ef4b
--- /dev/null
+++ b/csharp/protos/google/protobuf/unittest_mset.proto
@@ -0,0 +1,78 @@
+// Additional options required for C# generation. File from copyright
+// line onwards is as per original distribution.
+import "google/protobuf/csharp_options.proto";
+option (google.protobuf.csharp_file_options).namespace = "Google.ProtocolBuffers.TestProtos";
+option (google.protobuf.csharp_file_options).umbrella_classname = "UnitTestMessageSetProtoFile";
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Author: kenton@google.com (Kenton Varda)
+// Based on original Protocol Buffers design by
+// Sanjay Ghemawat, Jeff Dean, and others.
+//
+// This file contains messages for testing message_set_wire_format.
+
+package protobuf_unittest;
+
+option optimize_for = SPEED;
+
+// A message with message_set_wire_format.
+message TestMessageSet {
+ option message_set_wire_format = true;
+ extensions 4 to max;
+}
+
+message TestMessageSetContainer {
+ optional TestMessageSet message_set = 1;
+}
+
+message TestMessageSetExtension1 {
+ extend TestMessageSet {
+ optional TestMessageSetExtension1 message_set_extension = 1545008;
+ }
+ optional int32 i = 15;
+}
+
+message TestMessageSetExtension2 {
+ extend TestMessageSet {
+ optional TestMessageSetExtension2 message_set_extension = 1547769;
+ }
+ optional string str = 25;
+}
+
+// MessageSet wire format is equivalent to this.
+message RawMessageSet {
+ repeated group Item = 1 {
+ required int32 type_id = 2;
+ required bytes message = 3;
+ }
+}
+
diff --git a/csharp/protos/google/protobuf/unittest_no_generic_services.proto b/csharp/protos/google/protobuf/unittest_no_generic_services.proto
new file mode 100644
index 00000000..5ab533bf
--- /dev/null
+++ b/csharp/protos/google/protobuf/unittest_no_generic_services.proto
@@ -0,0 +1,58 @@
+// Additional options required for C# generation. File from copyright
+// line onwards is as per original distribution.
+import "google/protobuf/csharp_options.proto";
+option (google.protobuf.csharp_file_options).namespace = "Google.ProtocolBuffers.TestProtos.NoGenericService";
+option (google.protobuf.csharp_file_options).umbrella_classname = "UnitTestNoGenericServicesProtoFile";
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Author: kenton@google.com (Kenton Varda)
+
+package google.protobuf.no_generic_services_test;
+
+// *_generic_services are false by default.
+
+message TestMessage {
+ optional int32 a = 1;
+ extensions 1000 to max;
+}
+
+enum TestEnum {
+ FOO = 1;
+}
+
+extend TestMessage {
+ optional int32 test_extension = 1000;
+}
+
+service TestService {
+ rpc Foo(TestMessage) returns(TestMessage);
+}
diff --git a/csharp/protos/google/protobuf/unittest_optimize_for.proto b/csharp/protos/google/protobuf/unittest_optimize_for.proto
new file mode 100644
index 00000000..99efad64
--- /dev/null
+++ b/csharp/protos/google/protobuf/unittest_optimize_for.proto
@@ -0,0 +1,67 @@
+// Additional options required for C# generation. File from copyright
+// line onwards is as per original distribution.
+import "google/protobuf/csharp_options.proto";
+option (google.protobuf.csharp_file_options).namespace = "Google.ProtocolBuffers.TestProtos";
+option (google.protobuf.csharp_file_options).umbrella_classname = "UnitTestOptimizeForProtoFile";
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Author: kenton@google.com (Kenton Varda)
+// Based on original Protocol Buffers design by
+// Sanjay Ghemawat, Jeff Dean, and others.
+//
+// A proto file which uses optimize_for = CODE_SIZE.
+
+import "google/protobuf/unittest.proto";
+
+package protobuf_unittest;
+
+option optimize_for = CODE_SIZE;
+
+message TestOptimizedForSize {
+ optional int32 i = 1;
+ optional ForeignMessage msg = 19;
+
+ extensions 1000 to max;
+
+ extend TestOptimizedForSize {
+ optional int32 test_extension = 1234;
+ optional TestRequiredOptimizedForSize test_extension2 = 1235;
+ }
+}
+
+message TestRequiredOptimizedForSize {
+ required int32 x = 1;
+}
+
+message TestOptionalOptimizedForSize {
+ optional TestRequiredOptimizedForSize o = 1;
+}
diff --git a/csharp/protos/google/test/google_size.proto b/csharp/protos/google/test/google_size.proto
new file mode 100644
index 00000000..2e777df2
--- /dev/null
+++ b/csharp/protos/google/test/google_size.proto
@@ -0,0 +1,140 @@
+package unittest_google_size;
+
+import "google/protobuf/csharp_options.proto";
+option (google.protobuf.csharp_file_options).namespace = "Google.ProtocolBuffers.TestProtos";
+option (google.protobuf.csharp_file_options).umbrella_classname = "UnitTestGoogleSizeProtoFile";
+
+option java_outer_classname = "GoogleSize";
+option optimize_for = CODE_SIZE;
+
+message SizeMessage1 {
+ required string field1 = 1;
+ optional string field9 = 9;
+ optional string field18 = 18;
+ optional bool field80 = 80 [default=false];
+ optional bool field81 = 81 [default=true];
+ required int32 field2 = 2;
+ required int32 field3 = 3;
+ optional int32 field280 = 280;
+ optional int32 field6 = 6 [default=0];
+ optional int64 field22 = 22;
+ optional string field4 = 4;
+ repeated fixed64 field5 = 5;
+ optional bool field59 = 59 [default=false];
+ optional string field7 = 7;
+ optional int32 field16 = 16;
+ optional int32 field130 = 130 [default=0];
+ optional bool field12 = 12 [default=true];
+ optional bool field17 = 17 [default=true];
+ optional bool field13 = 13 [default=true];
+ optional bool field14 = 14 [default=true];
+ optional int32 field104 = 104 [default=0];
+ optional int32 field100 = 100 [default=0];
+ optional int32 field101 = 101 [default=0];
+ optional string field102 = 102;
+ optional string field103 = 103;
+ optional int32 field29 = 29 [default=0];
+ optional bool field30 = 30 [default=false];
+ optional int32 field60 = 60 [default=-1];
+ optional int32 field271 = 271 [default=-1];
+ optional int32 field272 = 272 [default=-1];
+ optional int32 field150 = 150;
+ optional int32 field23 = 23 [default=0];
+ optional bool field24 = 24 [default=false];
+ optional int32 field25 = 25 [default=0];
+ optional SizeMessage1SubMessage field15 = 15;
+ optional bool field78 = 78;
+ optional int32 field67 = 67 [default=0];
+ optional int32 field68 = 68;
+ optional int32 field128 = 128 [default=0];
+ optional string field129 = 129 [default="xxxxxxxxxxxxxxxxxxxxx"];
+ optional int32 field131 = 131 [default=0];
+}
+
+message SizeMessage1SubMessage {
+ optional int32 field1 = 1 [default=0];
+ optional int32 field2 = 2 [default=0];
+ optional int32 field3 = 3 [default=0];
+ optional string field15 = 15;
+ optional bool field12 = 12 [default=true];
+ optional int64 field13 = 13;
+ optional int64 field14 = 14;
+ optional int32 field16 = 16;
+ optional int32 field19 = 19 [default=2];
+ optional bool field20 = 20 [default=true];
+ optional bool field28 = 28 [default=true];
+ optional fixed64 field21 = 21;
+ optional int32 field22 = 22;
+ optional bool field23 = 23 [ default=false ];
+ optional bool field206 = 206 [default=false];
+ optional fixed32 field203 = 203;
+ optional int32 field204 = 204;
+ optional string field205 = 205;
+ optional uint64 field207 = 207;
+ optional uint64 field300 = 300;
+}
+
+message SizeMessage2 {
+ optional string field1 = 1;
+ optional int64 field3 = 3;
+ optional int64 field4 = 4;
+ optional int64 field30 = 30;
+ optional bool field75 = 75 [default=false];
+ optional string field6 = 6;
+ optional bytes field2 = 2;
+ optional int32 field21 = 21 [default=0];
+ optional int32 field71 = 71;
+ optional float field25 = 25;
+ optional int32 field109 = 109 [default=0];
+ optional int32 field210 = 210 [default=0];
+ optional int32 field211 = 211 [default=0];
+ optional int32 field212 = 212 [default=0];
+ optional int32 field213 = 213 [default=0];
+ optional int32 field216 = 216 [default=0];
+ optional int32 field217 = 217 [default=0];
+ optional int32 field218 = 218 [default=0];
+ optional int32 field220 = 220 [default=0];
+ optional int32 field221 = 221 [default=0];
+ optional float field222 = 222 [default=0.0];
+ optional int32 field63 = 63;
+
+ repeated group Group1 = 10 {
+ required float field11 = 11;
+ optional float field26 = 26;
+ optional string field12 = 12;
+ optional string field13 = 13;
+ repeated string field14 = 14;
+ required uint64 field15 = 15;
+ optional int32 field5 = 5;
+ optional string field27 = 27;
+ optional int32 field28 = 28;
+ optional string field29 = 29;
+ optional string field16 = 16;
+ repeated string field22 = 22;
+ repeated int32 field73 = 73;
+ optional int32 field20 = 20 [default=0];
+ optional string field24 = 24;
+ optional SizeMessage2GroupedMessage field31 = 31;
+ }
+ repeated string field128 = 128;
+ optional int64 field131 = 131;
+ repeated string field127 = 127;
+ optional int32 field129 = 129;
+ repeated int64 field130 = 130;
+ optional bool field205 = 205 [default=false];
+ optional bool field206 = 206 [default=false];
+}
+
+message SizeMessage2GroupedMessage {
+ optional float field1 = 1;
+ optional float field2 = 2;
+ optional float field3 = 3 [default=0.0];
+ optional bool field4 = 4;
+ optional bool field5 = 5;
+ optional bool field6 = 6 [default=true];
+ optional bool field7 = 7 [default=false];
+ optional float field8 = 8;
+ optional bool field9 = 9;
+ optional float field10 = 10;
+ optional int64 field11 = 11;
+}
diff --git a/csharp/protos/google/test/google_speed.proto b/csharp/protos/google/test/google_speed.proto
new file mode 100644
index 00000000..eef2a07e
--- /dev/null
+++ b/csharp/protos/google/test/google_speed.proto
@@ -0,0 +1,140 @@
+package unittest_google_speed;
+
+import "google/protobuf/csharp_options.proto";
+option (google.protobuf.csharp_file_options).namespace = "Google.ProtocolBuffers.TestProtos";
+option (google.protobuf.csharp_file_options).umbrella_classname = "UnitTestGoogleSpeedProtoFile";
+
+option java_outer_classname = "GoogleSpeed";
+option optimize_for = SPEED;
+
+message SpeedMessage1 {
+ required string field1 = 1;
+ optional string field9 = 9;
+ optional string field18 = 18;
+ optional bool field80 = 80 [default=false];
+ optional bool field81 = 81 [default=true];
+ required int32 field2 = 2;
+ required int32 field3 = 3;
+ optional int32 field280 = 280;
+ optional int32 field6 = 6 [default=0];
+ optional int64 field22 = 22;
+ optional string field4 = 4;
+ repeated fixed64 field5 = 5;
+ optional bool field59 = 59 [default=false];
+ optional string field7 = 7;
+ optional int32 field16 = 16;
+ optional int32 field130 = 130 [default=0];
+ optional bool field12 = 12 [default=true];
+ optional bool field17 = 17 [default=true];
+ optional bool field13 = 13 [default=true];
+ optional bool field14 = 14 [default=true];
+ optional int32 field104 = 104 [default=0];
+ optional int32 field100 = 100 [default=0];
+ optional int32 field101 = 101 [default=0];
+ optional string field102 = 102;
+ optional string field103 = 103;
+ optional int32 field29 = 29 [default=0];
+ optional bool field30 = 30 [default=false];
+ optional int32 field60 = 60 [default=-1];
+ optional int32 field271 = 271 [default=-1];
+ optional int32 field272 = 272 [default=-1];
+ optional int32 field150 = 150;
+ optional int32 field23 = 23 [default=0];
+ optional bool field24 = 24 [default=false];
+ optional int32 field25 = 25 [default=0];
+ optional SpeedMessage1SubMessage field15 = 15;
+ optional bool field78 = 78;
+ optional int32 field67 = 67 [default=0];
+ optional int32 field68 = 68;
+ optional int32 field128 = 128 [default=0];
+ optional string field129 = 129 [default="xxxxxxxxxxxxxxxxxxxxx"];
+ optional int32 field131 = 131 [default=0];
+}
+
+message SpeedMessage1SubMessage {
+ optional int32 field1 = 1 [default=0];
+ optional int32 field2 = 2 [default=0];
+ optional int32 field3 = 3 [default=0];
+ optional string field15 = 15;
+ optional bool field12 = 12 [default=true];
+ optional int64 field13 = 13;
+ optional int64 field14 = 14;
+ optional int32 field16 = 16;
+ optional int32 field19 = 19 [default=2];
+ optional bool field20 = 20 [default=true];
+ optional bool field28 = 28 [default=true];
+ optional fixed64 field21 = 21;
+ optional int32 field22 = 22;
+ optional bool field23 = 23 [ default=false ];
+ optional bool field206 = 206 [default=false];
+ optional fixed32 field203 = 203;
+ optional int32 field204 = 204;
+ optional string field205 = 205;
+ optional uint64 field207 = 207;
+ optional uint64 field300 = 300;
+}
+
+message SpeedMessage2 {
+ optional string field1 = 1;
+ optional int64 field3 = 3;
+ optional int64 field4 = 4;
+ optional int64 field30 = 30;
+ optional bool field75 = 75 [default=false];
+ optional string field6 = 6;
+ optional bytes field2 = 2;
+ optional int32 field21 = 21 [default=0];
+ optional int32 field71 = 71;
+ optional float field25 = 25;
+ optional int32 field109 = 109 [default=0];
+ optional int32 field210 = 210 [default=0];
+ optional int32 field211 = 211 [default=0];
+ optional int32 field212 = 212 [default=0];
+ optional int32 field213 = 213 [default=0];
+ optional int32 field216 = 216 [default=0];
+ optional int32 field217 = 217 [default=0];
+ optional int32 field218 = 218 [default=0];
+ optional int32 field220 = 220 [default=0];
+ optional int32 field221 = 221 [default=0];
+ optional float field222 = 222 [default=0.0];
+ optional int32 field63 = 63;
+
+ repeated group Group1 = 10 {
+ required float field11 = 11;
+ optional float field26 = 26;
+ optional string field12 = 12;
+ optional string field13 = 13;
+ repeated string field14 = 14;
+ required uint64 field15 = 15;
+ optional int32 field5 = 5;
+ optional string field27 = 27;
+ optional int32 field28 = 28;
+ optional string field29 = 29;
+ optional string field16 = 16;
+ repeated string field22 = 22;
+ repeated int32 field73 = 73;
+ optional int32 field20 = 20 [default=0];
+ optional string field24 = 24;
+ optional SpeedMessage2GroupedMessage field31 = 31;
+ }
+ repeated string field128 = 128;
+ optional int64 field131 = 131;
+ repeated string field127 = 127;
+ optional int32 field129 = 129;
+ repeated int64 field130 = 130;
+ optional bool field205 = 205 [default=false];
+ optional bool field206 = 206 [default=false];
+}
+
+message SpeedMessage2GroupedMessage {
+ optional float field1 = 1;
+ optional float field2 = 2;
+ optional float field3 = 3 [default=0.0];
+ optional bool field4 = 4;
+ optional bool field5 = 5;
+ optional bool field6 = 6 [default=true];
+ optional bool field7 = 7 [default=false];
+ optional float field8 = 8;
+ optional bool field9 = 9;
+ optional float field10 = 10;
+ optional int64 field11 = 11;
+}
diff --git a/csharp/protos/npp.language.xml b/csharp/protos/npp.language.xml
new file mode 100644
index 00000000..c6122180
--- /dev/null
+++ b/csharp/protos/npp.language.xml
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
+ [00]00
+ {
+ }
+ =
+ 1option 1package 1import 2; 0//
+ message enum service extend
+ required optional repeated extensions to rpc returns
+ double float int32 int64 uint32 uint64 sint32 sint64 fixed32 fixed64 sfixed32 sfixed64 bool string bytes
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/csharp/protos/tutorial/addressbook.proto b/csharp/protos/tutorial/addressbook.proto
new file mode 100644
index 00000000..5abe35ce
--- /dev/null
+++ b/csharp/protos/tutorial/addressbook.proto
@@ -0,0 +1,31 @@
+package tutorial;
+
+import "google/protobuf/csharp_options.proto";
+option (google.protobuf.csharp_file_options).namespace = "Google.ProtocolBuffers.Examples.AddressBook";
+option (google.protobuf.csharp_file_options).umbrella_classname = "AddressBookProtos";
+
+option optimize_for = SPEED;
+
+message Person {
+ required string name = 1;
+ required int32 id = 2; // Unique ID number for this person.
+ optional string email = 3;
+
+ enum PhoneType {
+ MOBILE = 0;
+ HOME = 1;
+ WORK = 2;
+ }
+
+ message PhoneNumber {
+ required string number = 1;
+ optional PhoneType type = 2 [default = HOME];
+ }
+
+ repeated PhoneNumber phone = 4;
+}
+
+// Our address book file is just one of these.
+message AddressBook {
+ repeated Person person = 1;
+}
diff --git a/csharp/src/AddressBook/AddPerson.cs b/csharp/src/AddressBook/AddPerson.cs
new file mode 100644
index 00000000..462b0c56
--- /dev/null
+++ b/csharp/src/AddressBook/AddPerson.cs
@@ -0,0 +1,136 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using System.IO;
+
+namespace Google.ProtocolBuffers.Examples.AddressBook
+{
+ internal class AddPerson
+ {
+ ///
+ /// Builds a person based on user input
+ ///
+ private static Person PromptForAddress(TextReader input, TextWriter output)
+ {
+ Person.Builder person = Person.CreateBuilder();
+
+ output.Write("Enter person ID: ");
+ person.Id = int.Parse(input.ReadLine());
+
+ output.Write("Enter name: ");
+ person.Name = input.ReadLine();
+
+ output.Write("Enter email address (blank for none): ");
+ string email = input.ReadLine();
+ if (email.Length > 0)
+ {
+ person.Email = email;
+ }
+
+ while (true)
+ {
+ output.Write("Enter a phone number (or leave blank to finish): ");
+ string number = input.ReadLine();
+ if (number.Length == 0)
+ {
+ break;
+ }
+
+ Person.Types.PhoneNumber.Builder phoneNumber =
+ Person.Types.PhoneNumber.CreateBuilder().SetNumber(number);
+
+ output.Write("Is this a mobile, home, or work phone? ");
+ String type = input.ReadLine();
+ switch (type)
+ {
+ case "mobile":
+ phoneNumber.Type = Person.Types.PhoneType.MOBILE;
+ break;
+ case "home":
+ phoneNumber.Type = Person.Types.PhoneType.HOME;
+ break;
+ case "work":
+ phoneNumber.Type = Person.Types.PhoneType.WORK;
+ break;
+ default:
+ output.Write("Unknown phone type. Using default.");
+ break;
+ }
+
+ person.AddPhone(phoneNumber);
+ }
+ return person.Build();
+ }
+
+ ///
+ /// Entry point - loads an existing addressbook or creates a new one,
+ /// then writes it back to the file.
+ ///
+ public static int Main(string[] args)
+ {
+ if (args.Length != 1)
+ {
+ Console.Error.WriteLine("Usage: AddPerson ADDRESS_BOOK_FILE");
+ return -1;
+ }
+
+ AddressBook.Builder addressBook = AddressBook.CreateBuilder();
+
+ if (File.Exists(args[0]))
+ {
+ using (Stream file = File.OpenRead(args[0]))
+ {
+ addressBook.MergeFrom(file);
+ }
+ }
+ else
+ {
+ Console.WriteLine("{0}: File not found. Creating a new file.", args[0]);
+ }
+
+ // Add an address.
+ addressBook.AddPerson(PromptForAddress(Console.In, Console.Out));
+
+ // Write the new address book back to disk.
+ using (Stream output = File.OpenWrite(args[0]))
+ {
+ addressBook.Build().WriteTo(output);
+ }
+ return 0;
+ }
+ }
+}
\ No newline at end of file
diff --git a/csharp/src/AddressBook/AddressBook.csproj b/csharp/src/AddressBook/AddressBook.csproj
new file mode 100644
index 00000000..5d27ee7d
--- /dev/null
+++ b/csharp/src/AddressBook/AddressBook.csproj
@@ -0,0 +1,75 @@
+
+
+
+ CLIENTPROFILE
+ NET35
+ Debug
+ AnyCPU
+ 9.0.30729
+ 2.0
+ {A31F5FB2-4FF3-432A-B35B-5CD203606311}
+ Exe
+ Properties
+ Google.ProtocolBuffers.Examples.AddressBook
+ AddressBook
+ v3.5
+ 512
+ Google.ProtocolBuffers.Examples.AddressBook.Program
+
+
+ true
+ full
+ false
+ bin\NET35\Debug
+ obj\NET35\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+ true
+ true
+ Off
+
+
+ pdbonly
+ true
+ bin\NET35\Release
+ obj\NET35\Release\
+ TRACE
+ prompt
+ 4
+ true
+ true
+ Off
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {6908BDCE-D925-43F3-94AC-A531E6DF2591}
+ ProtocolBuffers
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/csharp/src/AddressBook/AddressBookProtos.cs b/csharp/src/AddressBook/AddressBookProtos.cs
new file mode 100644
index 00000000..23276dd5
--- /dev/null
+++ b/csharp/src/AddressBook/AddressBookProtos.cs
@@ -0,0 +1,1160 @@
+// Generated by ProtoGen, Version=2.4.1.555, Culture=neutral, PublicKeyToken=55f7125234beb589. DO NOT EDIT!
+#pragma warning disable 1591, 0612, 3021
+#region Designer generated code
+
+using pb = global::Google.ProtocolBuffers;
+using pbc = global::Google.ProtocolBuffers.Collections;
+using pbd = global::Google.ProtocolBuffers.Descriptors;
+using scg = global::System.Collections.Generic;
+namespace Google.ProtocolBuffers.Examples.AddressBook {
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class AddressBookProtos {
+
+ #region Extension registration
+ public static void RegisterAllExtensions(pb::ExtensionRegistry registry) {
+ }
+ #endregion
+ #region Static variables
+ internal static pbd::MessageDescriptor internal__static_tutorial_Person__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable internal__static_tutorial_Person__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_tutorial_Person_PhoneNumber__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable internal__static_tutorial_Person_PhoneNumber__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_tutorial_AddressBook__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable internal__static_tutorial_AddressBook__FieldAccessorTable;
+ #endregion
+ #region Descriptor
+ public static pbd::FileDescriptor Descriptor {
+ get { return descriptor; }
+ }
+ private static pbd::FileDescriptor descriptor;
+
+ static AddressBookProtos() {
+ byte[] descriptorData = global::System.Convert.FromBase64String(
+ string.Concat(
+ "Chp0dXRvcmlhbC9hZGRyZXNzYm9vay5wcm90bxIIdHV0b3JpYWwaJGdvb2ds",
+ "ZS9wcm90b2J1Zi9jc2hhcnBfb3B0aW9ucy5wcm90byLaAQoGUGVyc29uEgwK",
+ "BG5hbWUYASACKAkSCgoCaWQYAiACKAUSDQoFZW1haWwYAyABKAkSKwoFcGhv",
+ "bmUYBCADKAsyHC50dXRvcmlhbC5QZXJzb24uUGhvbmVOdW1iZXIaTQoLUGhv",
+ "bmVOdW1iZXISDgoGbnVtYmVyGAEgAigJEi4KBHR5cGUYAiABKA4yGi50dXRv",
+ "cmlhbC5QZXJzb24uUGhvbmVUeXBlOgRIT01FIisKCVBob25lVHlwZRIKCgZN",
+ "T0JJTEUQABIICgRIT01FEAESCAoEV09SSxACIi8KC0FkZHJlc3NCb29rEiAK",
+ "BnBlcnNvbhgBIAMoCzIQLnR1dG9yaWFsLlBlcnNvbkJFSAHCPkAKK0dvb2ds",
+ "ZS5Qcm90b2NvbEJ1ZmZlcnMuRXhhbXBsZXMuQWRkcmVzc0Jvb2sSEUFkZHJl",
+ "c3NCb29rUHJvdG9z"));
+ pbd::FileDescriptor.InternalDescriptorAssigner assigner = delegate(pbd::FileDescriptor root) {
+ descriptor = root;
+ internal__static_tutorial_Person__Descriptor = Descriptor.MessageTypes[0];
+ internal__static_tutorial_Person__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable(internal__static_tutorial_Person__Descriptor,
+ new string[] { "Name", "Id", "Email", "Phone", });
+ internal__static_tutorial_Person_PhoneNumber__Descriptor = internal__static_tutorial_Person__Descriptor.NestedTypes[0];
+ internal__static_tutorial_Person_PhoneNumber__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable(internal__static_tutorial_Person_PhoneNumber__Descriptor,
+ new string[] { "Number", "Type", });
+ internal__static_tutorial_AddressBook__Descriptor = Descriptor.MessageTypes[1];
+ internal__static_tutorial_AddressBook__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable(internal__static_tutorial_AddressBook__Descriptor,
+ new string[] { "Person", });
+ pb::ExtensionRegistry registry = pb::ExtensionRegistry.CreateInstance();
+ RegisterAllExtensions(registry);
+ global::Google.ProtocolBuffers.DescriptorProtos.CSharpOptions.RegisterAllExtensions(registry);
+ return registry;
+ };
+ pbd::FileDescriptor.InternalBuildGeneratedFileFrom(descriptorData,
+ new pbd::FileDescriptor[] {
+ global::Google.ProtocolBuffers.DescriptorProtos.CSharpOptions.Descriptor,
+ }, assigner);
+ }
+ #endregion
+
+ }
+ #region Messages
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Person : pb::GeneratedMessage {
+ private Person() { }
+ private static readonly Person defaultInstance = new Person().MakeReadOnly();
+ private static readonly string[] _personFieldNames = new string[] { "email", "id", "name", "phone" };
+ private static readonly uint[] _personFieldTags = new uint[] { 26, 16, 10, 34 };
+ public static Person DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override Person DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override Person ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.Examples.AddressBook.AddressBookProtos.internal__static_tutorial_Person__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.Examples.AddressBook.AddressBookProtos.internal__static_tutorial_Person__FieldAccessorTable; }
+ }
+
+ #region Nested types
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Types {
+ public enum PhoneType {
+ MOBILE = 0,
+ HOME = 1,
+ WORK = 2,
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class PhoneNumber : pb::GeneratedMessage {
+ private PhoneNumber() { }
+ private static readonly PhoneNumber defaultInstance = new PhoneNumber().MakeReadOnly();
+ private static readonly string[] _phoneNumberFieldNames = new string[] { "number", "type" };
+ private static readonly uint[] _phoneNumberFieldTags = new uint[] { 10, 16 };
+ public static PhoneNumber DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override PhoneNumber DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override PhoneNumber ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.Examples.AddressBook.AddressBookProtos.internal__static_tutorial_Person_PhoneNumber__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.Examples.AddressBook.AddressBookProtos.internal__static_tutorial_Person_PhoneNumber__FieldAccessorTable; }
+ }
+
+ public const int NumberFieldNumber = 1;
+ private bool hasNumber;
+ private string number_ = "";
+ public bool HasNumber {
+ get { return hasNumber; }
+ }
+ public string Number {
+ get { return number_; }
+ }
+
+ public const int TypeFieldNumber = 2;
+ private bool hasType;
+ private global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneType type_ = global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneType.HOME;
+ public bool HasType {
+ get { return hasType; }
+ }
+ public global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneType Type {
+ get { return type_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!hasNumber) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _phoneNumberFieldNames;
+ if (hasNumber) {
+ output.WriteString(1, field_names[0], Number);
+ }
+ if (hasType) {
+ output.WriteEnum(2, field_names[1], (int) Type, Type);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasNumber) {
+ size += pb::CodedOutputStream.ComputeStringSize(1, Number);
+ }
+ if (hasType) {
+ size += pb::CodedOutputStream.ComputeEnumSize(2, (int) Type);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static PhoneNumber ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static PhoneNumber ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static PhoneNumber ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static PhoneNumber ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static PhoneNumber ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static PhoneNumber ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static PhoneNumber ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static PhoneNumber ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static PhoneNumber ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static PhoneNumber ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private PhoneNumber MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(PhoneNumber prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(PhoneNumber cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private PhoneNumber result;
+
+ private PhoneNumber PrepareBuilder() {
+ if (resultIsReadOnly) {
+ PhoneNumber original = result;
+ result = new PhoneNumber();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override PhoneNumber MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneNumber.Descriptor; }
+ }
+
+ public override PhoneNumber DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneNumber.DefaultInstance; }
+ }
+
+ public override PhoneNumber BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is PhoneNumber) {
+ return MergeFrom((PhoneNumber) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(PhoneNumber other) {
+ if (other == global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneNumber.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasNumber) {
+ Number = other.Number;
+ }
+ if (other.HasType) {
+ Type = other.Type;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_phoneNumberFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _phoneNumberFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ result.hasNumber = input.ReadString(ref result.number_);
+ break;
+ }
+ case 16: {
+ object unknown;
+ if(input.ReadEnum(ref result.type_, out unknown)) {
+ result.hasType = true;
+ } else if(unknown is int) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(2, (ulong)(int)unknown);
+ }
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasNumber {
+ get { return result.hasNumber; }
+ }
+ public string Number {
+ get { return result.Number; }
+ set { SetNumber(value); }
+ }
+ public Builder SetNumber(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasNumber = true;
+ result.number_ = value;
+ return this;
+ }
+ public Builder ClearNumber() {
+ PrepareBuilder();
+ result.hasNumber = false;
+ result.number_ = "";
+ return this;
+ }
+
+ public bool HasType {
+ get { return result.hasType; }
+ }
+ public global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneType Type {
+ get { return result.Type; }
+ set { SetType(value); }
+ }
+ public Builder SetType(global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneType value) {
+ PrepareBuilder();
+ result.hasType = true;
+ result.type_ = value;
+ return this;
+ }
+ public Builder ClearType() {
+ PrepareBuilder();
+ result.hasType = false;
+ result.type_ = global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneType.HOME;
+ return this;
+ }
+ }
+ static PhoneNumber() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.Examples.AddressBook.AddressBookProtos.Descriptor, null);
+ }
+ }
+
+ }
+ #endregion
+
+ public const int NameFieldNumber = 1;
+ private bool hasName;
+ private string name_ = "";
+ public bool HasName {
+ get { return hasName; }
+ }
+ public string Name {
+ get { return name_; }
+ }
+
+ public const int IdFieldNumber = 2;
+ private bool hasId;
+ private int id_;
+ public bool HasId {
+ get { return hasId; }
+ }
+ public int Id {
+ get { return id_; }
+ }
+
+ public const int EmailFieldNumber = 3;
+ private bool hasEmail;
+ private string email_ = "";
+ public bool HasEmail {
+ get { return hasEmail; }
+ }
+ public string Email {
+ get { return email_; }
+ }
+
+ public const int PhoneFieldNumber = 4;
+ private pbc::PopsicleList phone_ = new pbc::PopsicleList();
+ public scg::IList PhoneList {
+ get { return phone_; }
+ }
+ public int PhoneCount {
+ get { return phone_.Count; }
+ }
+ public global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneNumber GetPhone(int index) {
+ return phone_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!hasName) return false;
+ if (!hasId) return false;
+ foreach (global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneNumber element in PhoneList) {
+ if (!element.IsInitialized) return false;
+ }
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _personFieldNames;
+ if (hasName) {
+ output.WriteString(1, field_names[2], Name);
+ }
+ if (hasId) {
+ output.WriteInt32(2, field_names[1], Id);
+ }
+ if (hasEmail) {
+ output.WriteString(3, field_names[0], Email);
+ }
+ if (phone_.Count > 0) {
+ output.WriteMessageArray(4, field_names[3], phone_);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasName) {
+ size += pb::CodedOutputStream.ComputeStringSize(1, Name);
+ }
+ if (hasId) {
+ size += pb::CodedOutputStream.ComputeInt32Size(2, Id);
+ }
+ if (hasEmail) {
+ size += pb::CodedOutputStream.ComputeStringSize(3, Email);
+ }
+ foreach (global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneNumber element in PhoneList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(4, element);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static Person ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Person ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Person ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Person ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Person ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Person ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Person ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static Person ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static Person ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Person ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private Person MakeReadOnly() {
+ phone_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(Person prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(Person cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private Person result;
+
+ private Person PrepareBuilder() {
+ if (resultIsReadOnly) {
+ Person original = result;
+ result = new Person();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override Person MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.Examples.AddressBook.Person.Descriptor; }
+ }
+
+ public override Person DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.Examples.AddressBook.Person.DefaultInstance; }
+ }
+
+ public override Person BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is Person) {
+ return MergeFrom((Person) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(Person other) {
+ if (other == global::Google.ProtocolBuffers.Examples.AddressBook.Person.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasName) {
+ Name = other.Name;
+ }
+ if (other.HasId) {
+ Id = other.Id;
+ }
+ if (other.HasEmail) {
+ Email = other.Email;
+ }
+ if (other.phone_.Count != 0) {
+ result.phone_.Add(other.phone_);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_personFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _personFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ result.hasName = input.ReadString(ref result.name_);
+ break;
+ }
+ case 16: {
+ result.hasId = input.ReadInt32(ref result.id_);
+ break;
+ }
+ case 26: {
+ result.hasEmail = input.ReadString(ref result.email_);
+ break;
+ }
+ case 34: {
+ input.ReadMessageArray(tag, field_name, result.phone_, global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneNumber.DefaultInstance, extensionRegistry);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasName {
+ get { return result.hasName; }
+ }
+ public string Name {
+ get { return result.Name; }
+ set { SetName(value); }
+ }
+ public Builder SetName(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasName = true;
+ result.name_ = value;
+ return this;
+ }
+ public Builder ClearName() {
+ PrepareBuilder();
+ result.hasName = false;
+ result.name_ = "";
+ return this;
+ }
+
+ public bool HasId {
+ get { return result.hasId; }
+ }
+ public int Id {
+ get { return result.Id; }
+ set { SetId(value); }
+ }
+ public Builder SetId(int value) {
+ PrepareBuilder();
+ result.hasId = true;
+ result.id_ = value;
+ return this;
+ }
+ public Builder ClearId() {
+ PrepareBuilder();
+ result.hasId = false;
+ result.id_ = 0;
+ return this;
+ }
+
+ public bool HasEmail {
+ get { return result.hasEmail; }
+ }
+ public string Email {
+ get { return result.Email; }
+ set { SetEmail(value); }
+ }
+ public Builder SetEmail(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasEmail = true;
+ result.email_ = value;
+ return this;
+ }
+ public Builder ClearEmail() {
+ PrepareBuilder();
+ result.hasEmail = false;
+ result.email_ = "";
+ return this;
+ }
+
+ public pbc::IPopsicleList PhoneList {
+ get { return PrepareBuilder().phone_; }
+ }
+ public int PhoneCount {
+ get { return result.PhoneCount; }
+ }
+ public global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneNumber GetPhone(int index) {
+ return result.GetPhone(index);
+ }
+ public Builder SetPhone(int index, global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneNumber value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.phone_[index] = value;
+ return this;
+ }
+ public Builder SetPhone(int index, global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneNumber.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.phone_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddPhone(global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneNumber value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.phone_.Add(value);
+ return this;
+ }
+ public Builder AddPhone(global::Google.ProtocolBuffers.Examples.AddressBook.Person.Types.PhoneNumber.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.phone_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangePhone(scg::IEnumerable values) {
+ PrepareBuilder();
+ result.phone_.Add(values);
+ return this;
+ }
+ public Builder ClearPhone() {
+ PrepareBuilder();
+ result.phone_.Clear();
+ return this;
+ }
+ }
+ static Person() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.Examples.AddressBook.AddressBookProtos.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class AddressBook : pb::GeneratedMessage {
+ private AddressBook() { }
+ private static readonly AddressBook defaultInstance = new AddressBook().MakeReadOnly();
+ private static readonly string[] _addressBookFieldNames = new string[] { "person" };
+ private static readonly uint[] _addressBookFieldTags = new uint[] { 10 };
+ public static AddressBook DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override AddressBook DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override AddressBook ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.Examples.AddressBook.AddressBookProtos.internal__static_tutorial_AddressBook__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.Examples.AddressBook.AddressBookProtos.internal__static_tutorial_AddressBook__FieldAccessorTable; }
+ }
+
+ public const int PersonFieldNumber = 1;
+ private pbc::PopsicleList person_ = new pbc::PopsicleList();
+ public scg::IList PersonList {
+ get { return person_; }
+ }
+ public int PersonCount {
+ get { return person_.Count; }
+ }
+ public global::Google.ProtocolBuffers.Examples.AddressBook.Person GetPerson(int index) {
+ return person_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ foreach (global::Google.ProtocolBuffers.Examples.AddressBook.Person element in PersonList) {
+ if (!element.IsInitialized) return false;
+ }
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _addressBookFieldNames;
+ if (person_.Count > 0) {
+ output.WriteMessageArray(1, field_names[0], person_);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ foreach (global::Google.ProtocolBuffers.Examples.AddressBook.Person element in PersonList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(1, element);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static AddressBook ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static AddressBook ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static AddressBook ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static AddressBook ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static AddressBook ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static AddressBook ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static AddressBook ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static AddressBook ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static AddressBook ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static AddressBook ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private AddressBook MakeReadOnly() {
+ person_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(AddressBook prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(AddressBook cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private AddressBook result;
+
+ private AddressBook PrepareBuilder() {
+ if (resultIsReadOnly) {
+ AddressBook original = result;
+ result = new AddressBook();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override AddressBook MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.Examples.AddressBook.AddressBook.Descriptor; }
+ }
+
+ public override AddressBook DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.Examples.AddressBook.AddressBook.DefaultInstance; }
+ }
+
+ public override AddressBook BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is AddressBook) {
+ return MergeFrom((AddressBook) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(AddressBook other) {
+ if (other == global::Google.ProtocolBuffers.Examples.AddressBook.AddressBook.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.person_.Count != 0) {
+ result.person_.Add(other.person_);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_addressBookFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _addressBookFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ input.ReadMessageArray(tag, field_name, result.person_, global::Google.ProtocolBuffers.Examples.AddressBook.Person.DefaultInstance, extensionRegistry);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public pbc::IPopsicleList PersonList {
+ get { return PrepareBuilder().person_; }
+ }
+ public int PersonCount {
+ get { return result.PersonCount; }
+ }
+ public global::Google.ProtocolBuffers.Examples.AddressBook.Person GetPerson(int index) {
+ return result.GetPerson(index);
+ }
+ public Builder SetPerson(int index, global::Google.ProtocolBuffers.Examples.AddressBook.Person value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.person_[index] = value;
+ return this;
+ }
+ public Builder SetPerson(int index, global::Google.ProtocolBuffers.Examples.AddressBook.Person.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.person_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddPerson(global::Google.ProtocolBuffers.Examples.AddressBook.Person value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.person_.Add(value);
+ return this;
+ }
+ public Builder AddPerson(global::Google.ProtocolBuffers.Examples.AddressBook.Person.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.person_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangePerson(scg::IEnumerable values) {
+ PrepareBuilder();
+ result.person_.Add(values);
+ return this;
+ }
+ public Builder ClearPerson() {
+ PrepareBuilder();
+ result.person_.Clear();
+ return this;
+ }
+ }
+ static AddressBook() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.Examples.AddressBook.AddressBookProtos.Descriptor, null);
+ }
+ }
+
+ #endregion
+
+}
+
+#endregion Designer generated code
diff --git a/csharp/src/AddressBook/ListPeople.cs b/csharp/src/AddressBook/ListPeople.cs
new file mode 100644
index 00000000..fe6f52d8
--- /dev/null
+++ b/csharp/src/AddressBook/ListPeople.cs
@@ -0,0 +1,103 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using System.IO;
+
+namespace Google.ProtocolBuffers.Examples.AddressBook
+{
+ internal class ListPeople
+ {
+ ///
+ /// Iterates though all people in the AddressBook and prints info about them.
+ ///
+ private static void Print(AddressBook addressBook)
+ {
+ foreach (Person person in addressBook.PersonList)
+ {
+ Console.WriteLine("Person ID: {0}", person.Id);
+ Console.WriteLine(" Name: {0}", person.Name);
+ if (person.HasEmail)
+ {
+ Console.WriteLine(" E-mail address: {0}", person.Email);
+ }
+
+ foreach (Person.Types.PhoneNumber phoneNumber in person.PhoneList)
+ {
+ switch (phoneNumber.Type)
+ {
+ case Person.Types.PhoneType.MOBILE:
+ Console.Write(" Mobile phone #: ");
+ break;
+ case Person.Types.PhoneType.HOME:
+ Console.Write(" Home phone #: ");
+ break;
+ case Person.Types.PhoneType.WORK:
+ Console.Write(" Work phone #: ");
+ break;
+ }
+ Console.WriteLine(phoneNumber.Number);
+ }
+ }
+ }
+
+ ///
+ /// Entry point - loads the addressbook and then displays it.
+ ///
+ public static int Main(string[] args)
+ {
+ if (args.Length != 1)
+ {
+ Console.Error.WriteLine("Usage: ListPeople ADDRESS_BOOK_FILE");
+ return 1;
+ }
+
+ if (!File.Exists(args[0]))
+ {
+ Console.WriteLine("{0} doesn't exist. Add a person to create the file first.", args[0]);
+ return 0;
+ }
+
+ // Read the existing address book.
+ using (Stream stream = File.OpenRead(args[0]))
+ {
+ AddressBook addressBook = AddressBook.ParseFrom(stream);
+ Print(addressBook);
+ }
+ return 0;
+ }
+ }
+}
\ No newline at end of file
diff --git a/csharp/src/AddressBook/Program.cs b/csharp/src/AddressBook/Program.cs
new file mode 100644
index 00000000..e0d6d49b
--- /dev/null
+++ b/csharp/src/AddressBook/Program.cs
@@ -0,0 +1,99 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+
+namespace Google.ProtocolBuffers.Examples.AddressBook
+{
+ ///
+ /// Entry point. Repeatedly prompts user for an action to take, delegating actual behaviour
+ /// to individual actions. Each action has its own Main method, so that it can be used as an
+ /// invidual complete program.
+ ///
+ internal class Program
+ {
+ private static int Main(string[] args)
+ {
+ if (args.Length > 1)
+ {
+ Console.Error.WriteLine("Usage: AddressBook [file]");
+ Console.Error.WriteLine("If the filename isn't specified, \"addressbook.data\" is used instead.");
+ return 1;
+ }
+ string addressBookFile = args.Length > 0 ? args[0] : "addressbook.data";
+
+ bool stopping = false;
+ while (!stopping)
+ {
+ Console.WriteLine("Options:");
+ Console.WriteLine(" L: List contents");
+ Console.WriteLine(" A: Add new person");
+ Console.WriteLine(" Q: Quit");
+ Console.Write("Action? ");
+ Console.Out.Flush();
+ char choice = Console.ReadKey().KeyChar;
+ Console.WriteLine();
+ try
+ {
+ switch (choice)
+ {
+ case 'A':
+ case 'a':
+ AddPerson.Main(new string[] {addressBookFile});
+ break;
+ case 'L':
+ case 'l':
+ ListPeople.Main(new string[] {addressBookFile});
+ break;
+ case 'Q':
+ case 'q':
+ stopping = true;
+ break;
+ default:
+ Console.WriteLine("Unknown option: {0}", choice);
+ break;
+ }
+ }
+ catch (Exception e)
+ {
+ Console.WriteLine("Exception executing action: {0}", e);
+ }
+ Console.WriteLine();
+ }
+ return 0;
+ }
+ }
+}
\ No newline at end of file
diff --git a/csharp/src/AddressBook/Properties/AssemblyInfo.cs b/csharp/src/AddressBook/Properties/AssemblyInfo.cs
new file mode 100644
index 00000000..e9c40dce
--- /dev/null
+++ b/csharp/src/AddressBook/Properties/AssemblyInfo.cs
@@ -0,0 +1,29 @@
+using System.Reflection;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+
+[assembly: AssemblyTitle("AddressBook")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("AddressBook")]
+[assembly: AssemblyCopyright("Copyright © 2008")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("2.4.1.555")]
+
+[assembly: AssemblyVersion("2.4.1.555")]
+[assembly: AssemblyFileVersion("2.4.1.555")]
\ No newline at end of file
diff --git a/csharp/src/AddressBook/SampleUsage.cs b/csharp/src/AddressBook/SampleUsage.cs
new file mode 100644
index 00000000..084b1655
--- /dev/null
+++ b/csharp/src/AddressBook/SampleUsage.cs
@@ -0,0 +1,44 @@
+using System;
+using System.IO;
+
+namespace Google.ProtocolBuffers.Examples.AddressBook
+{
+ internal class SampleUsage
+ {
+ private static void Main()
+ {
+ byte[] bytes;
+ //Create a builder to start building a message
+ Person.Builder newContact = Person.CreateBuilder();
+ //Set the primitive properties
+ newContact.SetId(1)
+ .SetName("Foo")
+ .SetEmail("foo@bar");
+ //Now add an item to a list (repeating) field
+ newContact.AddPhone(
+ //Create the child message inline
+ Person.Types.PhoneNumber.CreateBuilder().SetNumber("555-1212").Build()
+ );
+ //Now build the final message:
+ Person person = newContact.Build();
+ //The builder is no longer valid (at least not now, scheduled for 2.4):
+ newContact = null;
+ using (MemoryStream stream = new MemoryStream())
+ {
+ //Save the person to a stream
+ person.WriteTo(stream);
+ bytes = stream.ToArray();
+ }
+ //Create another builder, merge the byte[], and build the message:
+ Person copy = Person.CreateBuilder().MergeFrom(bytes).Build();
+
+ //A more streamlined approach might look like this:
+ bytes = AddressBook.CreateBuilder().AddPerson(copy).Build().ToByteArray();
+ //And read the address book back again
+ AddressBook restored = AddressBook.CreateBuilder().MergeFrom(bytes).Build();
+ //The message performs a deep-comparison on equality:
+ if (restored.PersonCount != 1 || !person.Equals(restored.PersonList[0]))
+ throw new ApplicationException("There is a bad person in here!");
+ }
+ }
+}
\ No newline at end of file
diff --git a/csharp/src/AddressBook/app.config b/csharp/src/AddressBook/app.config
new file mode 100644
index 00000000..0df7832f
--- /dev/null
+++ b/csharp/src/AddressBook/app.config
@@ -0,0 +1,3 @@
+
+
+
diff --git a/csharp/src/ProtoBench/Program.cs b/csharp/src/ProtoBench/Program.cs
new file mode 100644
index 00000000..820fc124
--- /dev/null
+++ b/csharp/src/ProtoBench/Program.cs
@@ -0,0 +1,538 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.IO;
+using System.Runtime.Serialization.Json;
+using System.Text;
+using System.Threading;
+using System.Xml;
+using Google.ProtocolBuffers.Serialization;
+using Google.ProtocolBuffers.TestProtos;
+
+namespace Google.ProtocolBuffers.ProtoBench
+{
+ ///
+ /// Simple benchmarking of arbitrary messages.
+ ///
+ public sealed class Program
+ {
+ private static TimeSpan MinSampleTime = TimeSpan.FromSeconds(2);
+ private static TimeSpan TargetTime = TimeSpan.FromSeconds(30);
+ private static bool Verbose = false, FastTest = false, OtherFormats = false;
+ // Avoid a .NET 3.5 dependency
+ private delegate void Action();
+
+ private delegate void BenchmarkTest(string name, long dataSize, Action action);
+
+ private static BenchmarkTest RunBenchmark;
+
+ private static string _logFile;
+ static void WriteLine(string format, params object[] arg)
+ {
+ if (arg.Length > 0) format = String.Format(format, arg);
+ Console.Out.WriteLine(format);
+ if (!String.IsNullOrEmpty(_logFile))
+ File.AppendAllText(_logFile, format + Environment.NewLine);
+ }
+
+ [STAThread]
+ public static int Main(string[] args)
+ {
+ List temp = new List(args);
+
+ Verbose = temp.Remove("/verbose") || temp.Remove("-verbose");
+ OtherFormats = temp.Remove("/formats") || temp.Remove("-formats");
+
+ foreach (string arg in temp)
+ {
+ if (arg.StartsWith("/log:", StringComparison.OrdinalIgnoreCase) || arg.StartsWith("-log:", StringComparison.OrdinalIgnoreCase))
+ {
+ _logFile = arg.Substring(5);
+ if (!String.IsNullOrEmpty(_logFile))
+ File.AppendAllText(_logFile, Environment.NewLine + "Started benchmarks at " + DateTime.Now + Environment.NewLine);
+ temp.Remove(arg);
+ break;
+ }
+ }
+
+ if (true == (FastTest = (temp.Remove("/fast") || temp.Remove("-fast"))))
+ {
+ TargetTime = TimeSpan.FromSeconds(10);
+ }
+
+ RunBenchmark = BenchmarkV1;
+ if (temp.Remove("/v2") || temp.Remove("-v2"))
+ {
+ Process.GetCurrentProcess().PriorityClass = ProcessPriorityClass.RealTime;
+ Process.GetCurrentProcess().ProcessorAffinity = new IntPtr(1);
+ RunBenchmark = BenchmarkV2;
+ }
+ if (temp.Remove("/all") || temp.Remove("-all"))
+ {
+ if (FastTest)
+ {
+ TargetTime = TimeSpan.FromSeconds(5);
+ }
+ foreach (KeyValuePair item in MakeTests())
+ {
+ temp.Add(item.Key);
+ temp.Add(item.Value);
+ }
+ }
+ args = temp.ToArray();
+
+ if (args.Length < 2 || (args.Length%2) != 0)
+ {
+ Console.Error.WriteLine("Usage: ProtoBench [/fast] ");
+ Console.Error.WriteLine("The descriptor type name is the fully-qualified message name,");
+ Console.Error.WriteLine(
+ "including assembly - e.g. Google.ProtocolBuffers.BenchmarkProtos.Message1,ProtoBench");
+ Console.Error.WriteLine("(You can specify multiple pairs of descriptor type name and input data.)");
+ return 1;
+ }
+
+ bool success = true;
+ for (int i = 0; i < args.Length; i += 2)
+ {
+ success &= RunTest(args[i], args[i + 1], null);
+ }
+ return success ? 0 : 1;
+ }
+
+ ///
+ /// Runs a single test. Error messages are displayed to Console.Error, and the return value indicates
+ /// general success/failure.
+ ///
+ public static bool RunTest(string typeName, string file, byte[] inputData)
+ {
+ WriteLine("Benchmarking {0} with file {1}", typeName, file);
+ IMessage defaultMessage;
+ try
+ {
+ defaultMessage = MessageUtil.GetDefaultMessage(typeName);
+ }
+ catch (ArgumentException e)
+ {
+ Console.Error.WriteLine(e.Message);
+ return false;
+ }
+ try
+ {
+ ExtensionRegistry registry = ExtensionRegistry.Empty;
+ inputData = inputData ?? File.ReadAllBytes(file);
+ MemoryStream inputStream = new MemoryStream(inputData);
+ ByteString inputString = ByteString.CopyFrom(inputData);
+ IMessage sampleMessage =
+ defaultMessage.WeakCreateBuilderForType().WeakMergeFrom(inputString, registry).WeakBuild();
+
+ IDictionary dictionary = null;
+ byte[] jsonBytes = null, xmlBytes = null; /*no pun intended, well... maybe for xml*/
+ if (OtherFormats)
+ {
+ using (MemoryStream temp = new MemoryStream())
+ {
+ XmlFormatWriter.CreateInstance(temp).WriteMessage(sampleMessage);
+ xmlBytes = temp.ToArray();
+ }
+ using (MemoryStream temp = new MemoryStream())
+ {
+ JsonFormatWriter.CreateInstance(temp).WriteMessage(sampleMessage);
+ jsonBytes = temp.ToArray();
+ }
+ dictionary = new Dictionary(StringComparer.Ordinal);
+ new DictionaryWriter(dictionary).WriteMessage(sampleMessage);
+ }
+
+ //Serializers
+ if (!FastTest)
+ {
+ RunBenchmark("Serialize to byte string", inputData.Length, () => sampleMessage.ToByteString());
+ }
+ RunBenchmark("Serialize to byte array", inputData.Length, () => sampleMessage.ToByteArray());
+ if (!FastTest)
+ {
+ RunBenchmark("Serialize to memory stream", inputData.Length,
+ () => sampleMessage.WriteTo(new MemoryStream()));
+ }
+
+ if (OtherFormats)
+ {
+ RunBenchmark("Serialize to xml", xmlBytes.Length,
+ () =>
+ {
+ XmlFormatWriter.CreateInstance(new MemoryStream(), Encoding.UTF8).WriteMessage(sampleMessage);
+ });
+ RunBenchmark("Serialize to json", jsonBytes.Length,
+ () => { JsonFormatWriter.CreateInstance().WriteMessage(sampleMessage); });
+ RunBenchmark("Serialize to json via xml", jsonBytes.Length,
+ () =>
+ XmlFormatWriter.CreateInstance(
+ JsonReaderWriterFactory.CreateJsonWriter(new MemoryStream(), Encoding.UTF8))
+ .SetOptions(XmlWriterOptions.OutputJsonTypes)
+ .WriteMessage(sampleMessage)
+ );
+
+ RunBenchmark("Serialize to dictionary", sampleMessage.SerializedSize,
+ () => new DictionaryWriter().WriteMessage(sampleMessage));
+ }
+ //Deserializers
+ if (!FastTest)
+ {
+ RunBenchmark("Deserialize from byte string", inputData.Length,
+ () => defaultMessage.WeakCreateBuilderForType()
+ .WeakMergeFrom(inputString, registry)
+ .WeakBuild()
+ );
+ }
+
+ RunBenchmark("Deserialize from byte array", inputData.Length,
+ () => defaultMessage.WeakCreateBuilderForType()
+ .WeakMergeFrom(CodedInputStream.CreateInstance(inputData), registry)
+ .WeakBuild()
+ );
+ if (!FastTest)
+ {
+ RunBenchmark("Deserialize from memory stream", inputData.Length,
+ () =>
+ {
+ inputStream.Position = 0;
+ defaultMessage.WeakCreateBuilderForType().WeakMergeFrom(
+ CodedInputStream.CreateInstance(inputStream), registry)
+ .WeakBuild();
+ });
+ }
+
+ if (OtherFormats)
+ {
+ RunBenchmark("Deserialize from xml", xmlBytes.Length,
+ () =>
+ XmlFormatReader.CreateInstance(xmlBytes).Merge(
+ defaultMessage.WeakCreateBuilderForType()).WeakBuild());
+ RunBenchmark("Deserialize from json", jsonBytes.Length,
+ () =>
+ JsonFormatReader.CreateInstance(jsonBytes).Merge(
+ defaultMessage.WeakCreateBuilderForType()).WeakBuild());
+ RunBenchmark("Deserialize from json via xml", jsonBytes.Length,
+ () =>
+ XmlFormatReader.CreateInstance(JsonReaderWriterFactory.CreateJsonReader(jsonBytes, XmlDictionaryReaderQuotas.Max))
+ .SetOptions(XmlReaderOptions.ReadNestedArrays).Merge(
+ defaultMessage.WeakCreateBuilderForType()).WeakBuild());
+
+ RunBenchmark("Deserialize from dictionary", sampleMessage.SerializedSize,
+ () =>
+ new DictionaryReader(dictionary).Merge(defaultMessage.WeakCreateBuilderForType()).
+ WeakBuild());
+ }
+ WriteLine(String.Empty);
+ return true;
+ }
+ catch (Exception e)
+ {
+ Console.Error.WriteLine("Error: {0}", e.Message);
+ Console.Error.WriteLine();
+ Console.Error.WriteLine("Detailed exception information: {0}", e);
+ return false;
+ }
+ }
+
+ private static void BenchmarkV2(string name, long dataSize, Action action)
+ {
+ Thread.BeginThreadAffinity();
+ TimeSpan elapsed = TimeSpan.Zero;
+ long runs = 0;
+ long totalCount = 0;
+ double best = double.MinValue, worst = double.MaxValue;
+
+ action();
+ // Run it progressively more times until we've got a reasonable sample
+
+ int iterations = 100;
+ elapsed = TimeAction(action, iterations);
+ while (elapsed.TotalMilliseconds < 1000)
+ {
+ elapsed += TimeAction(action, iterations);
+ iterations *= 2;
+ }
+
+ TimeSpan target = TimeSpan.FromSeconds(1);
+
+ elapsed = TimeAction(action, iterations);
+ iterations = (int) ((target.Ticks*iterations)/(double) elapsed.Ticks);
+ elapsed = TimeAction(action, iterations);
+ iterations = (int) ((target.Ticks*iterations)/(double) elapsed.Ticks);
+ elapsed = TimeAction(action, iterations);
+ iterations = (int) ((target.Ticks*iterations)/(double) elapsed.Ticks);
+
+ double first = (iterations*dataSize)/(elapsed.TotalSeconds*1024*1024);
+ if (Verbose)
+ {
+ WriteLine("Round ---: Count = {1,6}, Bps = {2,8:f3}", 0, iterations, first);
+ }
+ elapsed = TimeSpan.Zero;
+ int max = (int) TargetTime.TotalSeconds;
+
+ while (runs < max)
+ {
+ TimeSpan cycle = TimeAction(action, iterations);
+ // Accumulate and scale for next cycle.
+
+ double bps = (iterations*dataSize)/(cycle.TotalSeconds*1024*1024);
+ if (Verbose)
+ {
+ WriteLine("Round {1,3}: Count = {2,6}, Bps = {3,8:f3}",
+ 0, runs, iterations, bps);
+ }
+
+ best = Math.Max(best, bps);
+ worst = Math.Min(worst, bps);
+
+ runs++;
+ elapsed += cycle;
+ totalCount += iterations;
+ iterations = (int) ((target.Ticks*totalCount)/(double) elapsed.Ticks);
+ }
+
+ Thread.EndThreadAffinity();
+ WriteLine(
+ "{1}: averages {2} per {3:f3}s for {4} runs; avg: {5:f3}mbps; best: {6:f3}mbps; worst: {7:f3}mbps",
+ 0, name, totalCount/runs, elapsed.TotalSeconds/runs, runs,
+ (totalCount*dataSize)/(elapsed.TotalSeconds*1024*1024), best, worst);
+ }
+
+ private static void BenchmarkV1(string name, long dataSize, Action action)
+ {
+ // Make sure it's JITted
+ action();
+ // Run it progressively more times until we've got a reasonable sample
+
+ int iterations = 1;
+ TimeSpan elapsed = TimeAction(action, iterations);
+ while (elapsed < MinSampleTime)
+ {
+ iterations *= 2;
+ elapsed = TimeAction(action, iterations);
+ }
+ // Upscale the sample to the target time. Do this in floating point arithmetic
+ // to avoid overflow issues.
+ iterations = (int) ((TargetTime.Ticks/(double) elapsed.Ticks)*iterations);
+ elapsed = TimeAction(action, iterations);
+ WriteLine("{0}: {1} iterations in {2:f3}s; {3:f3}MB/s",
+ name, iterations, elapsed.TotalSeconds,
+ (iterations*dataSize)/(elapsed.TotalSeconds*1024*1024));
+ }
+
+ private static TimeSpan TimeAction(Action action, int iterations)
+ {
+ GC.Collect();
+ GC.GetTotalMemory(true);
+ GC.WaitForPendingFinalizers();
+
+ Stopwatch sw = Stopwatch.StartNew();
+ for (int i = 0; i < iterations; i++)
+ {
+ action();
+ }
+ sw.Stop();
+ return sw.Elapsed;
+ }
+
+ private static IEnumerable> MakeTests()
+ {
+ //Aggregate Tests
+ yield return MakeWorkItem("all-types", MakeTestAllTypes());
+ yield return MakeWorkItem("repeated-100", MakeRepeatedTestAllTypes(100));
+ yield return MakeWorkItem("packed-100", MakeTestPackedTypes(100));
+
+ //Discrete Tests
+ foreach (KeyValuePair> item in MakeTestAllTypes())
+ {
+ yield return MakeWorkItem(item.Key, new[] {item});
+ }
+
+ foreach (KeyValuePair> item in MakeRepeatedTestAllTypes(100))
+ {
+ yield return MakeWorkItem(item.Key, new[] {item});
+ }
+
+ foreach (KeyValuePair> item in MakeTestPackedTypes(100))
+ {
+ yield return MakeWorkItem(item.Key, new[] {item});
+ }
+ }
+
+ private static IEnumerable>> MakeTestAllTypes()
+ {
+ // Many of the raw type serializers below perform poorly due to the numerous fields defined
+ // in TestAllTypes.
+
+ //single values
+ yield return MakeItem("int32", 1, x => x.SetOptionalInt32(1001));
+ yield return MakeItem("int64", 1, x => x.SetOptionalInt64(1001));
+ yield return MakeItem("uint32", 1, x => x.SetOptionalUint32(1001));
+ yield return MakeItem("uint64", 1, x => x.SetOptionalUint64(1001));
+ yield return MakeItem("sint32", 1, x => x.SetOptionalSint32(-1001));
+ yield return MakeItem("sint64", 1, x => x.SetOptionalSint64(-1001));
+ yield return MakeItem("fixed32", 1, x => x.SetOptionalFixed32(1001));
+ yield return MakeItem("fixed64", 1, x => x.SetOptionalFixed64(1001));
+ yield return MakeItem("sfixed32", 1, x => x.SetOptionalSfixed32(-1001));
+ yield return MakeItem("sfixed64", 1, x => x.SetOptionalSfixed64(-1001));
+ yield return MakeItem("float", 1, x => x.SetOptionalFloat(1001.1001f));
+ yield return MakeItem("double", 1, x => x.SetOptionalDouble(1001.1001));
+ yield return MakeItem("bool", 1, x => x.SetOptionalBool(true));
+ yield return MakeItem("string", 1, x => x.SetOptionalString("this is a string value"))
+ ;
+ yield return
+ MakeItem("bytes", 1,
+ x =>
+ x.SetOptionalBytes(ByteString.CopyFromUtf8("this is an array of bytes")))
+ ;
+ yield return
+ MakeItem("group", 1,
+ x =>
+ x.SetOptionalGroup(
+ new TestAllTypes.Types.OptionalGroup.Builder().SetA(1001)));
+ yield return
+ MakeItem("message", 1,
+ x =>
+ x.SetOptionalNestedMessage(
+ new TestAllTypes.Types.NestedMessage.Builder().SetBb(1001)));
+ yield return
+ MakeItem("enum", 1,
+ x => x.SetOptionalNestedEnum(TestAllTypes.Types.NestedEnum.FOO));
+ }
+
+ private static IEnumerable>> MakeRepeatedTestAllTypes(int size)
+ {
+ //repeated values
+ yield return MakeItem("repeated-int32", size, x => x.AddRepeatedInt32(1001));
+ yield return MakeItem("repeated-int64", size, x => x.AddRepeatedInt64(1001));
+ yield return MakeItem("repeated-uint32", size, x => x.AddRepeatedUint32(1001));
+ yield return MakeItem("repeated-uint64", size, x => x.AddRepeatedUint64(1001));
+ yield return MakeItem("repeated-sint32", size, x => x.AddRepeatedSint32(-1001));
+ yield return MakeItem("repeated-sint64", size, x => x.AddRepeatedSint64(-1001));
+ yield return MakeItem("repeated-fixed32", size, x => x.AddRepeatedFixed32(1001));
+ yield return MakeItem("repeated-fixed64", size, x => x.AddRepeatedFixed64(1001));
+ yield return MakeItem("repeated-sfixed32", size, x => x.AddRepeatedSfixed32(-1001));
+ yield return MakeItem("repeated-sfixed64", size, x => x.AddRepeatedSfixed64(-1001));
+ yield return MakeItem("repeated-float", size, x => x.AddRepeatedFloat(1001.1001f));
+ yield return MakeItem("repeated-double", size, x => x.AddRepeatedDouble(1001.1001));
+ yield return MakeItem("repeated-bool", size, x => x.AddRepeatedBool(true));
+ yield return
+ MakeItem("repeated-string", size,
+ x => x.AddRepeatedString("this is a string value"));
+ yield return
+ MakeItem("repeated-bytes", size,
+ x =>
+ x.AddRepeatedBytes(ByteString.CopyFromUtf8("this is an array of bytes")))
+ ;
+ yield return
+ MakeItem("repeated-group", size,
+ x =>
+ x.AddRepeatedGroup(
+ new TestAllTypes.Types.RepeatedGroup.Builder().SetA(1001)));
+ yield return
+ MakeItem("repeated-message", size,
+ x =>
+ x.AddRepeatedNestedMessage(
+ new TestAllTypes.Types.NestedMessage.Builder().SetBb(1001)));
+ yield return
+ MakeItem("repeated-enum", size,
+ x => x.AddRepeatedNestedEnum(TestAllTypes.Types.NestedEnum.FOO));
+ }
+
+ private static IEnumerable>> MakeTestPackedTypes(int size)
+ {
+ //packed values
+ yield return MakeItem("packed-int32", size, x => x.AddPackedInt32(1001));
+ yield return MakeItem("packed-int64", size, x => x.AddPackedInt64(1001));
+ yield return MakeItem("packed-uint32", size, x => x.AddPackedUint32(1001));
+ yield return MakeItem("packed-uint64", size, x => x.AddPackedUint64(1001));
+ yield return MakeItem("packed-sint32", size, x => x.AddPackedSint32(-1001));
+ yield return MakeItem("packed-sint64", size, x => x.AddPackedSint64(-1001));
+ yield return MakeItem("packed-fixed32", size, x => x.AddPackedFixed32(1001));
+ yield return MakeItem("packed-fixed64", size, x => x.AddPackedFixed64(1001));
+ yield return MakeItem("packed-sfixed32", size, x => x.AddPackedSfixed32(-1001));
+ yield return MakeItem("packed-sfixed64", size, x => x.AddPackedSfixed64(-1001));
+ yield return MakeItem("packed-float", size, x => x.AddPackedFloat(1001.1001f));
+ yield return MakeItem("packed-double", size, x => x.AddPackedDouble(1001.1001));
+ yield return MakeItem("packed-bool", size, x => x.AddPackedBool(true));
+ yield return
+ MakeItem("packed-enum", size, x => x.AddPackedEnum(ForeignEnum.FOREIGN_FOO));
+ }
+
+ private static KeyValuePair> MakeItem(string name, int repeated, Action build)
+ where T : IBuilderLite, new()
+ {
+ if (repeated == 1)
+ {
+ return new KeyValuePair>(name, build);
+ }
+
+ return new KeyValuePair>(
+ String.Format("{0}[{1}]", name, repeated),
+ x =>
+ {
+ for (int i = 0; i < repeated; i++)
+ {
+ build(x);
+ }
+ }
+ );
+ }
+
+ private static KeyValuePair MakeWorkItem(string name,
+ IEnumerable>>
+ builders) where T : IBuilderLite, new()
+ {
+ T builder = new T();
+
+ foreach (KeyValuePair> item in builders)
+ {
+ item.Value(builder);
+ }
+
+ IMessageLite msg = builder.WeakBuild();
+ string fname = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "unittest_" + name + ".dat");
+ File.WriteAllBytes(fname, msg.ToByteArray());
+ return
+ new KeyValuePair(
+ String.Format("{0},{1}", msg.GetType().FullName, msg.GetType().Assembly.GetName().Name), fname);
+ }
+ }
+}
\ No newline at end of file
diff --git a/csharp/src/ProtoBench/Properties/AssemblyInfo.cs b/csharp/src/ProtoBench/Properties/AssemblyInfo.cs
new file mode 100644
index 00000000..8600c13e
--- /dev/null
+++ b/csharp/src/ProtoBench/Properties/AssemblyInfo.cs
@@ -0,0 +1,32 @@
+using System;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+
+[assembly: AssemblyTitle("ProtoBench")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("ProtoBench")]
+[assembly: AssemblyCopyright("Copyright © 2009")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+[assembly: CLSCompliant(true)]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("2.4.1.555")]
+
+[assembly: AssemblyVersion("2.4.1.555")]
+[assembly: AssemblyFileVersion("2.4.1.555")]
\ No newline at end of file
diff --git a/csharp/src/ProtoBench/ProtoBench.csproj b/csharp/src/ProtoBench/ProtoBench.csproj
new file mode 100644
index 00000000..9df47745
--- /dev/null
+++ b/csharp/src/ProtoBench/ProtoBench.csproj
@@ -0,0 +1,88 @@
+
+
+
+ CLIENTPROFILE
+ NET35
+ Debug
+ AnyCPU
+ 9.0.30729
+ 2.0
+ {C7A4A435-2813-41C8-AA87-BD914BA5223D}
+ Exe
+ Properties
+ Google.ProtocolBuffers.ProtoBench
+ ProtoBench
+ v3.5
+ 512
+
+
+ true
+ full
+ false
+ bin\NET35\Debug
+ obj\NET35\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+ true
+ true
+ Off
+
+
+ pdbonly
+ true
+ bin\NET35\Release
+ obj\NET35\Release\
+ TRACE
+ prompt
+ 4
+ true
+ true
+ Off
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {231391AF-449C-4a39-986C-AD7F270F4750}
+ ProtocolBuffers.Serialization
+ True
+
+
+ {6908BDCE-D925-43F3-94AC-A531E6DF2591}
+ ProtocolBuffers
+ True
+
+
+
+
+ Always
+
+
+ Always
+
+
+
+
+
\ No newline at end of file
diff --git a/csharp/src/ProtoBench/TestProtos/GoogleSizeProtoFile.cs b/csharp/src/ProtoBench/TestProtos/GoogleSizeProtoFile.cs
new file mode 100644
index 00000000..aa6c5076
--- /dev/null
+++ b/csharp/src/ProtoBench/TestProtos/GoogleSizeProtoFile.cs
@@ -0,0 +1,4572 @@
+// Generated by ProtoGen, Version=2.4.1.555, Culture=neutral, PublicKeyToken=55f7125234beb589. DO NOT EDIT!
+#pragma warning disable 1591, 0612, 3021
+#region Designer generated code
+
+using pb = global::Google.ProtocolBuffers;
+using pbc = global::Google.ProtocolBuffers.Collections;
+using pbd = global::Google.ProtocolBuffers.Descriptors;
+using scg = global::System.Collections.Generic;
+namespace Google.ProtocolBuffers.ProtoBench {
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class GoogleSizeProtoFile {
+
+ #region Extension registration
+ public static void RegisterAllExtensions(pb::ExtensionRegistry registry) {
+ }
+ #endregion
+ #region Static variables
+ internal static pbd::MessageDescriptor internal__static_benchmarks_SizeMessage1__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable internal__static_benchmarks_SizeMessage1__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_benchmarks_SizeMessage1SubMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable internal__static_benchmarks_SizeMessage1SubMessage__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_benchmarks_SizeMessage2__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable internal__static_benchmarks_SizeMessage2__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_benchmarks_SizeMessage2_Group1__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable internal__static_benchmarks_SizeMessage2_Group1__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_benchmarks_SizeMessage2GroupedMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable internal__static_benchmarks_SizeMessage2GroupedMessage__FieldAccessorTable;
+ #endregion
+ #region Descriptor
+ public static pbd::FileDescriptor Descriptor {
+ get { return descriptor; }
+ }
+ private static pbd::FileDescriptor descriptor;
+
+ static GoogleSizeProtoFile() {
+ byte[] descriptorData = global::System.Convert.FromBase64String(
+ string.Concat(
+ "ChxiZW5jaG1hcmtzL2dvb2dsZV9zaXplLnByb3RvEgpiZW5jaG1hcmtzGiRn",
+ "b29nbGUvcHJvdG9idWYvY3NoYXJwX29wdGlvbnMucHJvdG8i9gYKDFNpemVN",
+ "ZXNzYWdlMRIOCgZmaWVsZDEYASACKAkSDgoGZmllbGQ5GAkgASgJEg8KB2Zp",
+ "ZWxkMTgYEiABKAkSFgoHZmllbGQ4MBhQIAEoCDoFZmFsc2USFQoHZmllbGQ4",
+ "MRhRIAEoCDoEdHJ1ZRIOCgZmaWVsZDIYAiACKAUSDgoGZmllbGQzGAMgAigF",
+ "EhEKCGZpZWxkMjgwGJgCIAEoBRIRCgZmaWVsZDYYBiABKAU6ATASDwoHZmll",
+ "bGQyMhgWIAEoAxIOCgZmaWVsZDQYBCABKAkSDgoGZmllbGQ1GAUgAygGEhYK",
+ "B2ZpZWxkNTkYOyABKAg6BWZhbHNlEg4KBmZpZWxkNxgHIAEoCRIPCgdmaWVs",
+ "ZDE2GBAgASgFEhQKCGZpZWxkMTMwGIIBIAEoBToBMBIVCgdmaWVsZDEyGAwg",
+ "ASgIOgR0cnVlEhUKB2ZpZWxkMTcYESABKAg6BHRydWUSFQoHZmllbGQxMxgN",
+ "IAEoCDoEdHJ1ZRIVCgdmaWVsZDE0GA4gASgIOgR0cnVlEhMKCGZpZWxkMTA0",
+ "GGggASgFOgEwEhMKCGZpZWxkMTAwGGQgASgFOgEwEhMKCGZpZWxkMTAxGGUg",
+ "ASgFOgEwEhAKCGZpZWxkMTAyGGYgASgJEhAKCGZpZWxkMTAzGGcgASgJEhIK",
+ "B2ZpZWxkMjkYHSABKAU6ATASFgoHZmllbGQzMBgeIAEoCDoFZmFsc2USEwoH",
+ "ZmllbGQ2MBg8IAEoBToCLTESFQoIZmllbGQyNzEYjwIgASgFOgItMRIVCghm",
+ "aWVsZDI3MhiQAiABKAU6Ai0xEhEKCGZpZWxkMTUwGJYBIAEoBRISCgdmaWVs",
+ "ZDIzGBcgASgFOgEwEhYKB2ZpZWxkMjQYGCABKAg6BWZhbHNlEhIKB2ZpZWxk",
+ "MjUYGSABKAU6ATASMwoHZmllbGQxNRgPIAEoCzIiLmJlbmNobWFya3MuU2l6",
+ "ZU1lc3NhZ2UxU3ViTWVzc2FnZRIPCgdmaWVsZDc4GE4gASgIEhIKB2ZpZWxk",
+ "NjcYQyABKAU6ATASDwoHZmllbGQ2OBhEIAEoBRIUCghmaWVsZDEyOBiAASAB",
+ "KAU6ATASKAoIZmllbGQxMjkYgQEgASgJOhV4eHh4eHh4eHh4eHh4eHh4eHh4",
+ "eHgSFAoIZmllbGQxMzEYgwEgASgFOgEwIqEDChZTaXplTWVzc2FnZTFTdWJN",
+ "ZXNzYWdlEhEKBmZpZWxkMRgBIAEoBToBMBIRCgZmaWVsZDIYAiABKAU6ATAS",
+ "EQoGZmllbGQzGAMgASgFOgEwEg8KB2ZpZWxkMTUYDyABKAkSFQoHZmllbGQx",
+ "MhgMIAEoCDoEdHJ1ZRIPCgdmaWVsZDEzGA0gASgDEg8KB2ZpZWxkMTQYDiAB",
+ "KAMSDwoHZmllbGQxNhgQIAEoBRISCgdmaWVsZDE5GBMgASgFOgEyEhUKB2Zp",
+ "ZWxkMjAYFCABKAg6BHRydWUSFQoHZmllbGQyOBgcIAEoCDoEdHJ1ZRIPCgdm",
+ "aWVsZDIxGBUgASgGEg8KB2ZpZWxkMjIYFiABKAUSFgoHZmllbGQyMxgXIAEo",
+ "CDoFZmFsc2USGAoIZmllbGQyMDYYzgEgASgIOgVmYWxzZRIRCghmaWVsZDIw",
+ "MxjLASABKAcSEQoIZmllbGQyMDQYzAEgASgFEhEKCGZpZWxkMjA1GM0BIAEo",
+ "CRIRCghmaWVsZDIwNxjPASABKAQSEQoIZmllbGQzMDAYrAIgASgEIscHCgxT",
+ "aXplTWVzc2FnZTISDgoGZmllbGQxGAEgASgJEg4KBmZpZWxkMxgDIAEoAxIO",
+ "CgZmaWVsZDQYBCABKAMSDwoHZmllbGQzMBgeIAEoAxIWCgdmaWVsZDc1GEsg",
+ "ASgIOgVmYWxzZRIOCgZmaWVsZDYYBiABKAkSDgoGZmllbGQyGAIgASgMEhIK",
+ "B2ZpZWxkMjEYFSABKAU6ATASDwoHZmllbGQ3MRhHIAEoBRIPCgdmaWVsZDI1",
+ "GBkgASgCEhMKCGZpZWxkMTA5GG0gASgFOgEwEhQKCGZpZWxkMjEwGNIBIAEo",
+ "BToBMBIUCghmaWVsZDIxMRjTASABKAU6ATASFAoIZmllbGQyMTIY1AEgASgF",
+ "OgEwEhQKCGZpZWxkMjEzGNUBIAEoBToBMBIUCghmaWVsZDIxNhjYASABKAU6",
+ "ATASFAoIZmllbGQyMTcY2QEgASgFOgEwEhQKCGZpZWxkMjE4GNoBIAEoBToB",
+ "MBIUCghmaWVsZDIyMBjcASABKAU6ATASFAoIZmllbGQyMjEY3QEgASgFOgEw",
+ "EhQKCGZpZWxkMjIyGN4BIAEoAjoBMBIPCgdmaWVsZDYzGD8gASgFEi8KBmdy",
+ "b3VwMRgKIAMoCjIfLmJlbmNobWFya3MuU2l6ZU1lc3NhZ2UyLkdyb3VwMRIR",
+ "CghmaWVsZDEyOBiAASADKAkSEQoIZmllbGQxMzEYgwEgASgDEhAKCGZpZWxk",
+ "MTI3GH8gAygJEhEKCGZpZWxkMTI5GIEBIAEoBRIRCghmaWVsZDEzMBiCASAD",
+ "KAMSGAoIZmllbGQyMDUYzQEgASgIOgVmYWxzZRIYCghmaWVsZDIwNhjOASAB",
+ "KAg6BWZhbHNlGsICCgZHcm91cDESDwoHZmllbGQxMRgLIAIoAhIPCgdmaWVs",
+ "ZDI2GBogASgCEg8KB2ZpZWxkMTIYDCABKAkSDwoHZmllbGQxMxgNIAEoCRIP",
+ "CgdmaWVsZDE0GA4gAygJEg8KB2ZpZWxkMTUYDyACKAQSDgoGZmllbGQ1GAUg",
+ "ASgFEg8KB2ZpZWxkMjcYGyABKAkSDwoHZmllbGQyOBgcIAEoBRIPCgdmaWVs",
+ "ZDI5GB0gASgJEg8KB2ZpZWxkMTYYECABKAkSDwoHZmllbGQyMhgWIAMoCRIP",
+ "CgdmaWVsZDczGEkgAygFEhIKB2ZpZWxkMjAYFCABKAU6ATASDwoHZmllbGQy",
+ "NBgYIAEoCRI3CgdmaWVsZDMxGB8gASgLMiYuYmVuY2htYXJrcy5TaXplTWVz",
+ "c2FnZTJHcm91cGVkTWVzc2FnZSLeAQoaU2l6ZU1lc3NhZ2UyR3JvdXBlZE1l",
+ "c3NhZ2USDgoGZmllbGQxGAEgASgCEg4KBmZpZWxkMhgCIAEoAhIRCgZmaWVs",
+ "ZDMYAyABKAI6ATASDgoGZmllbGQ0GAQgASgIEg4KBmZpZWxkNRgFIAEoCBIU",
+ "CgZmaWVsZDYYBiABKAg6BHRydWUSFQoGZmllbGQ3GAcgASgIOgVmYWxzZRIO",
+ "CgZmaWVsZDgYCCABKAISDgoGZmllbGQ5GAkgASgIEg8KB2ZpZWxkMTAYCiAB",
+ "KAISDwoHZmllbGQxMRgLIAEoA0JJQgpHb29nbGVTaXplSALCPjgKIUdvb2ds",
+ "ZS5Qcm90b2NvbEJ1ZmZlcnMuUHJvdG9CZW5jaBITR29vZ2xlU2l6ZVByb3Rv",
+ "RmlsZQ=="));
+ pbd::FileDescriptor.InternalDescriptorAssigner assigner = delegate(pbd::FileDescriptor root) {
+ descriptor = root;
+ internal__static_benchmarks_SizeMessage1__Descriptor = Descriptor.MessageTypes[0];
+ internal__static_benchmarks_SizeMessage1__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable(internal__static_benchmarks_SizeMessage1__Descriptor,
+ new string[] { "Field1", "Field9", "Field18", "Field80", "Field81", "Field2", "Field3", "Field280", "Field6", "Field22", "Field4", "Field5", "Field59", "Field7", "Field16", "Field130", "Field12", "Field17", "Field13", "Field14", "Field104", "Field100", "Field101", "Field102", "Field103", "Field29", "Field30", "Field60", "Field271", "Field272", "Field150", "Field23", "Field24", "Field25", "Field15", "Field78", "Field67", "Field68", "Field128", "Field129", "Field131", });
+ internal__static_benchmarks_SizeMessage1SubMessage__Descriptor = Descriptor.MessageTypes[1];
+ internal__static_benchmarks_SizeMessage1SubMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable(internal__static_benchmarks_SizeMessage1SubMessage__Descriptor,
+ new string[] { "Field1", "Field2", "Field3", "Field15", "Field12", "Field13", "Field14", "Field16", "Field19", "Field20", "Field28", "Field21", "Field22", "Field23", "Field206", "Field203", "Field204", "Field205", "Field207", "Field300", });
+ internal__static_benchmarks_SizeMessage2__Descriptor = Descriptor.MessageTypes[2];
+ internal__static_benchmarks_SizeMessage2__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable(internal__static_benchmarks_SizeMessage2__Descriptor,
+ new string[] { "Field1", "Field3", "Field4", "Field30", "Field75", "Field6", "Field2", "Field21", "Field71", "Field25", "Field109", "Field210", "Field211", "Field212", "Field213", "Field216", "Field217", "Field218", "Field220", "Field221", "Field222", "Field63", "Group1", "Field128", "Field131", "Field127", "Field129", "Field130", "Field205", "Field206", });
+ internal__static_benchmarks_SizeMessage2_Group1__Descriptor = internal__static_benchmarks_SizeMessage2__Descriptor.NestedTypes[0];
+ internal__static_benchmarks_SizeMessage2_Group1__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable(internal__static_benchmarks_SizeMessage2_Group1__Descriptor,
+ new string[] { "Field11", "Field26", "Field12", "Field13", "Field14", "Field15", "Field5", "Field27", "Field28", "Field29", "Field16", "Field22", "Field73", "Field20", "Field24", "Field31", });
+ internal__static_benchmarks_SizeMessage2GroupedMessage__Descriptor = Descriptor.MessageTypes[3];
+ internal__static_benchmarks_SizeMessage2GroupedMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable(internal__static_benchmarks_SizeMessage2GroupedMessage__Descriptor,
+ new string[] { "Field1", "Field2", "Field3", "Field4", "Field5", "Field6", "Field7", "Field8", "Field9", "Field10", "Field11", });
+ pb::ExtensionRegistry registry = pb::ExtensionRegistry.CreateInstance();
+ RegisterAllExtensions(registry);
+ global::Google.ProtocolBuffers.DescriptorProtos.CSharpOptions.RegisterAllExtensions(registry);
+ return registry;
+ };
+ pbd::FileDescriptor.InternalBuildGeneratedFileFrom(descriptorData,
+ new pbd::FileDescriptor[] {
+ global::Google.ProtocolBuffers.DescriptorProtos.CSharpOptions.Descriptor,
+ }, assigner);
+ }
+ #endregion
+
+ }
+ #region Messages
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class SizeMessage1 : pb::GeneratedMessage {
+ private SizeMessage1() { }
+ private static readonly SizeMessage1 defaultInstance = new SizeMessage1().MakeReadOnly();
+ public static SizeMessage1 DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override SizeMessage1 DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override SizeMessage1 ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.ProtoBench.GoogleSizeProtoFile.internal__static_benchmarks_SizeMessage1__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.ProtoBench.GoogleSizeProtoFile.internal__static_benchmarks_SizeMessage1__FieldAccessorTable; }
+ }
+
+ public const int Field1FieldNumber = 1;
+ private bool hasField1;
+ private string field1_ = "";
+ public bool HasField1 {
+ get { return hasField1; }
+ }
+ public string Field1 {
+ get { return field1_; }
+ }
+
+ public const int Field9FieldNumber = 9;
+ private bool hasField9;
+ private string field9_ = "";
+ public bool HasField9 {
+ get { return hasField9; }
+ }
+ public string Field9 {
+ get { return field9_; }
+ }
+
+ public const int Field18FieldNumber = 18;
+ private bool hasField18;
+ private string field18_ = "";
+ public bool HasField18 {
+ get { return hasField18; }
+ }
+ public string Field18 {
+ get { return field18_; }
+ }
+
+ public const int Field80FieldNumber = 80;
+ private bool hasField80;
+ private bool field80_;
+ public bool HasField80 {
+ get { return hasField80; }
+ }
+ public bool Field80 {
+ get { return field80_; }
+ }
+
+ public const int Field81FieldNumber = 81;
+ private bool hasField81;
+ private bool field81_ = true;
+ public bool HasField81 {
+ get { return hasField81; }
+ }
+ public bool Field81 {
+ get { return field81_; }
+ }
+
+ public const int Field2FieldNumber = 2;
+ private bool hasField2;
+ private int field2_;
+ public bool HasField2 {
+ get { return hasField2; }
+ }
+ public int Field2 {
+ get { return field2_; }
+ }
+
+ public const int Field3FieldNumber = 3;
+ private bool hasField3;
+ private int field3_;
+ public bool HasField3 {
+ get { return hasField3; }
+ }
+ public int Field3 {
+ get { return field3_; }
+ }
+
+ public const int Field280FieldNumber = 280;
+ private bool hasField280;
+ private int field280_;
+ public bool HasField280 {
+ get { return hasField280; }
+ }
+ public int Field280 {
+ get { return field280_; }
+ }
+
+ public const int Field6FieldNumber = 6;
+ private bool hasField6;
+ private int field6_;
+ public bool HasField6 {
+ get { return hasField6; }
+ }
+ public int Field6 {
+ get { return field6_; }
+ }
+
+ public const int Field22FieldNumber = 22;
+ private bool hasField22;
+ private long field22_;
+ public bool HasField22 {
+ get { return hasField22; }
+ }
+ public long Field22 {
+ get { return field22_; }
+ }
+
+ public const int Field4FieldNumber = 4;
+ private bool hasField4;
+ private string field4_ = "";
+ public bool HasField4 {
+ get { return hasField4; }
+ }
+ public string Field4 {
+ get { return field4_; }
+ }
+
+ public const int Field5FieldNumber = 5;
+ private pbc::PopsicleList field5_ = new pbc::PopsicleList();
+ [global::System.CLSCompliant(false)]
+ public scg::IList Field5List {
+ get { return pbc::Lists.AsReadOnly(field5_); }
+ }
+ public int Field5Count {
+ get { return field5_.Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong GetField5(int index) {
+ return field5_[index];
+ }
+
+ public const int Field59FieldNumber = 59;
+ private bool hasField59;
+ private bool field59_;
+ public bool HasField59 {
+ get { return hasField59; }
+ }
+ public bool Field59 {
+ get { return field59_; }
+ }
+
+ public const int Field7FieldNumber = 7;
+ private bool hasField7;
+ private string field7_ = "";
+ public bool HasField7 {
+ get { return hasField7; }
+ }
+ public string Field7 {
+ get { return field7_; }
+ }
+
+ public const int Field16FieldNumber = 16;
+ private bool hasField16;
+ private int field16_;
+ public bool HasField16 {
+ get { return hasField16; }
+ }
+ public int Field16 {
+ get { return field16_; }
+ }
+
+ public const int Field130FieldNumber = 130;
+ private bool hasField130;
+ private int field130_;
+ public bool HasField130 {
+ get { return hasField130; }
+ }
+ public int Field130 {
+ get { return field130_; }
+ }
+
+ public const int Field12FieldNumber = 12;
+ private bool hasField12;
+ private bool field12_ = true;
+ public bool HasField12 {
+ get { return hasField12; }
+ }
+ public bool Field12 {
+ get { return field12_; }
+ }
+
+ public const int Field17FieldNumber = 17;
+ private bool hasField17;
+ private bool field17_ = true;
+ public bool HasField17 {
+ get { return hasField17; }
+ }
+ public bool Field17 {
+ get { return field17_; }
+ }
+
+ public const int Field13FieldNumber = 13;
+ private bool hasField13;
+ private bool field13_ = true;
+ public bool HasField13 {
+ get { return hasField13; }
+ }
+ public bool Field13 {
+ get { return field13_; }
+ }
+
+ public const int Field14FieldNumber = 14;
+ private bool hasField14;
+ private bool field14_ = true;
+ public bool HasField14 {
+ get { return hasField14; }
+ }
+ public bool Field14 {
+ get { return field14_; }
+ }
+
+ public const int Field104FieldNumber = 104;
+ private bool hasField104;
+ private int field104_;
+ public bool HasField104 {
+ get { return hasField104; }
+ }
+ public int Field104 {
+ get { return field104_; }
+ }
+
+ public const int Field100FieldNumber = 100;
+ private bool hasField100;
+ private int field100_;
+ public bool HasField100 {
+ get { return hasField100; }
+ }
+ public int Field100 {
+ get { return field100_; }
+ }
+
+ public const int Field101FieldNumber = 101;
+ private bool hasField101;
+ private int field101_;
+ public bool HasField101 {
+ get { return hasField101; }
+ }
+ public int Field101 {
+ get { return field101_; }
+ }
+
+ public const int Field102FieldNumber = 102;
+ private bool hasField102;
+ private string field102_ = "";
+ public bool HasField102 {
+ get { return hasField102; }
+ }
+ public string Field102 {
+ get { return field102_; }
+ }
+
+ public const int Field103FieldNumber = 103;
+ private bool hasField103;
+ private string field103_ = "";
+ public bool HasField103 {
+ get { return hasField103; }
+ }
+ public string Field103 {
+ get { return field103_; }
+ }
+
+ public const int Field29FieldNumber = 29;
+ private bool hasField29;
+ private int field29_;
+ public bool HasField29 {
+ get { return hasField29; }
+ }
+ public int Field29 {
+ get { return field29_; }
+ }
+
+ public const int Field30FieldNumber = 30;
+ private bool hasField30;
+ private bool field30_;
+ public bool HasField30 {
+ get { return hasField30; }
+ }
+ public bool Field30 {
+ get { return field30_; }
+ }
+
+ public const int Field60FieldNumber = 60;
+ private bool hasField60;
+ private int field60_ = -1;
+ public bool HasField60 {
+ get { return hasField60; }
+ }
+ public int Field60 {
+ get { return field60_; }
+ }
+
+ public const int Field271FieldNumber = 271;
+ private bool hasField271;
+ private int field271_ = -1;
+ public bool HasField271 {
+ get { return hasField271; }
+ }
+ public int Field271 {
+ get { return field271_; }
+ }
+
+ public const int Field272FieldNumber = 272;
+ private bool hasField272;
+ private int field272_ = -1;
+ public bool HasField272 {
+ get { return hasField272; }
+ }
+ public int Field272 {
+ get { return field272_; }
+ }
+
+ public const int Field150FieldNumber = 150;
+ private bool hasField150;
+ private int field150_;
+ public bool HasField150 {
+ get { return hasField150; }
+ }
+ public int Field150 {
+ get { return field150_; }
+ }
+
+ public const int Field23FieldNumber = 23;
+ private bool hasField23;
+ private int field23_;
+ public bool HasField23 {
+ get { return hasField23; }
+ }
+ public int Field23 {
+ get { return field23_; }
+ }
+
+ public const int Field24FieldNumber = 24;
+ private bool hasField24;
+ private bool field24_;
+ public bool HasField24 {
+ get { return hasField24; }
+ }
+ public bool Field24 {
+ get { return field24_; }
+ }
+
+ public const int Field25FieldNumber = 25;
+ private bool hasField25;
+ private int field25_;
+ public bool HasField25 {
+ get { return hasField25; }
+ }
+ public int Field25 {
+ get { return field25_; }
+ }
+
+ public const int Field15FieldNumber = 15;
+ private bool hasField15;
+ private global::Google.ProtocolBuffers.ProtoBench.SizeMessage1SubMessage field15_;
+ public bool HasField15 {
+ get { return hasField15; }
+ }
+ public global::Google.ProtocolBuffers.ProtoBench.SizeMessage1SubMessage Field15 {
+ get { return field15_ ?? global::Google.ProtocolBuffers.ProtoBench.SizeMessage1SubMessage.DefaultInstance; }
+ }
+
+ public const int Field78FieldNumber = 78;
+ private bool hasField78;
+ private bool field78_;
+ public bool HasField78 {
+ get { return hasField78; }
+ }
+ public bool Field78 {
+ get { return field78_; }
+ }
+
+ public const int Field67FieldNumber = 67;
+ private bool hasField67;
+ private int field67_;
+ public bool HasField67 {
+ get { return hasField67; }
+ }
+ public int Field67 {
+ get { return field67_; }
+ }
+
+ public const int Field68FieldNumber = 68;
+ private bool hasField68;
+ private int field68_;
+ public bool HasField68 {
+ get { return hasField68; }
+ }
+ public int Field68 {
+ get { return field68_; }
+ }
+
+ public const int Field128FieldNumber = 128;
+ private bool hasField128;
+ private int field128_;
+ public bool HasField128 {
+ get { return hasField128; }
+ }
+ public int Field128 {
+ get { return field128_; }
+ }
+
+ public const int Field129FieldNumber = 129;
+ private bool hasField129;
+ private string field129_ = "xxxxxxxxxxxxxxxxxxxxx";
+ public bool HasField129 {
+ get { return hasField129; }
+ }
+ public string Field129 {
+ get { return field129_; }
+ }
+
+ public const int Field131FieldNumber = 131;
+ private bool hasField131;
+ private int field131_;
+ public bool HasField131 {
+ get { return hasField131; }
+ }
+ public int Field131 {
+ get { return field131_; }
+ }
+
+ public static SizeMessage1 ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static SizeMessage1 ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static SizeMessage1 ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static SizeMessage1 ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static SizeMessage1 ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static SizeMessage1 ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static SizeMessage1 ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static SizeMessage1 ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static SizeMessage1 ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static SizeMessage1 ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private SizeMessage1 MakeReadOnly() {
+ field5_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(SizeMessage1 prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(SizeMessage1 cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private SizeMessage1 result;
+
+ private SizeMessage1 PrepareBuilder() {
+ if (resultIsReadOnly) {
+ SizeMessage1 original = result;
+ result = new SizeMessage1();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override SizeMessage1 MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.ProtoBench.SizeMessage1.Descriptor; }
+ }
+
+ public override SizeMessage1 DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.ProtoBench.SizeMessage1.DefaultInstance; }
+ }
+
+ public override SizeMessage1 BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+
+ public bool HasField1 {
+ get { return result.hasField1; }
+ }
+ public string Field1 {
+ get { return result.Field1; }
+ set { SetField1(value); }
+ }
+ public Builder SetField1(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField1 = true;
+ result.field1_ = value;
+ return this;
+ }
+ public Builder ClearField1() {
+ PrepareBuilder();
+ result.hasField1 = false;
+ result.field1_ = "";
+ return this;
+ }
+
+ public bool HasField9 {
+ get { return result.hasField9; }
+ }
+ public string Field9 {
+ get { return result.Field9; }
+ set { SetField9(value); }
+ }
+ public Builder SetField9(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField9 = true;
+ result.field9_ = value;
+ return this;
+ }
+ public Builder ClearField9() {
+ PrepareBuilder();
+ result.hasField9 = false;
+ result.field9_ = "";
+ return this;
+ }
+
+ public bool HasField18 {
+ get { return result.hasField18; }
+ }
+ public string Field18 {
+ get { return result.Field18; }
+ set { SetField18(value); }
+ }
+ public Builder SetField18(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField18 = true;
+ result.field18_ = value;
+ return this;
+ }
+ public Builder ClearField18() {
+ PrepareBuilder();
+ result.hasField18 = false;
+ result.field18_ = "";
+ return this;
+ }
+
+ public bool HasField80 {
+ get { return result.hasField80; }
+ }
+ public bool Field80 {
+ get { return result.Field80; }
+ set { SetField80(value); }
+ }
+ public Builder SetField80(bool value) {
+ PrepareBuilder();
+ result.hasField80 = true;
+ result.field80_ = value;
+ return this;
+ }
+ public Builder ClearField80() {
+ PrepareBuilder();
+ result.hasField80 = false;
+ result.field80_ = false;
+ return this;
+ }
+
+ public bool HasField81 {
+ get { return result.hasField81; }
+ }
+ public bool Field81 {
+ get { return result.Field81; }
+ set { SetField81(value); }
+ }
+ public Builder SetField81(bool value) {
+ PrepareBuilder();
+ result.hasField81 = true;
+ result.field81_ = value;
+ return this;
+ }
+ public Builder ClearField81() {
+ PrepareBuilder();
+ result.hasField81 = false;
+ result.field81_ = true;
+ return this;
+ }
+
+ public bool HasField2 {
+ get { return result.hasField2; }
+ }
+ public int Field2 {
+ get { return result.Field2; }
+ set { SetField2(value); }
+ }
+ public Builder SetField2(int value) {
+ PrepareBuilder();
+ result.hasField2 = true;
+ result.field2_ = value;
+ return this;
+ }
+ public Builder ClearField2() {
+ PrepareBuilder();
+ result.hasField2 = false;
+ result.field2_ = 0;
+ return this;
+ }
+
+ public bool HasField3 {
+ get { return result.hasField3; }
+ }
+ public int Field3 {
+ get { return result.Field3; }
+ set { SetField3(value); }
+ }
+ public Builder SetField3(int value) {
+ PrepareBuilder();
+ result.hasField3 = true;
+ result.field3_ = value;
+ return this;
+ }
+ public Builder ClearField3() {
+ PrepareBuilder();
+ result.hasField3 = false;
+ result.field3_ = 0;
+ return this;
+ }
+
+ public bool HasField280 {
+ get { return result.hasField280; }
+ }
+ public int Field280 {
+ get { return result.Field280; }
+ set { SetField280(value); }
+ }
+ public Builder SetField280(int value) {
+ PrepareBuilder();
+ result.hasField280 = true;
+ result.field280_ = value;
+ return this;
+ }
+ public Builder ClearField280() {
+ PrepareBuilder();
+ result.hasField280 = false;
+ result.field280_ = 0;
+ return this;
+ }
+
+ public bool HasField6 {
+ get { return result.hasField6; }
+ }
+ public int Field6 {
+ get { return result.Field6; }
+ set { SetField6(value); }
+ }
+ public Builder SetField6(int value) {
+ PrepareBuilder();
+ result.hasField6 = true;
+ result.field6_ = value;
+ return this;
+ }
+ public Builder ClearField6() {
+ PrepareBuilder();
+ result.hasField6 = false;
+ result.field6_ = 0;
+ return this;
+ }
+
+ public bool HasField22 {
+ get { return result.hasField22; }
+ }
+ public long Field22 {
+ get { return result.Field22; }
+ set { SetField22(value); }
+ }
+ public Builder SetField22(long value) {
+ PrepareBuilder();
+ result.hasField22 = true;
+ result.field22_ = value;
+ return this;
+ }
+ public Builder ClearField22() {
+ PrepareBuilder();
+ result.hasField22 = false;
+ result.field22_ = 0L;
+ return this;
+ }
+
+ public bool HasField4 {
+ get { return result.hasField4; }
+ }
+ public string Field4 {
+ get { return result.Field4; }
+ set { SetField4(value); }
+ }
+ public Builder SetField4(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField4 = true;
+ result.field4_ = value;
+ return this;
+ }
+ public Builder ClearField4() {
+ PrepareBuilder();
+ result.hasField4 = false;
+ result.field4_ = "";
+ return this;
+ }
+
+ [global::System.CLSCompliant(false)]
+ public pbc::IPopsicleList Field5List {
+ get { return PrepareBuilder().field5_; }
+ }
+ public int Field5Count {
+ get { return result.Field5Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong GetField5(int index) {
+ return result.GetField5(index);
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetField5(int index, ulong value) {
+ PrepareBuilder();
+ result.field5_[index] = value;
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddField5(ulong value) {
+ PrepareBuilder();
+ result.field5_.Add(value);
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRangeField5(scg::IEnumerable values) {
+ PrepareBuilder();
+ result.field5_.Add(values);
+ return this;
+ }
+ public Builder ClearField5() {
+ PrepareBuilder();
+ result.field5_.Clear();
+ return this;
+ }
+
+ public bool HasField59 {
+ get { return result.hasField59; }
+ }
+ public bool Field59 {
+ get { return result.Field59; }
+ set { SetField59(value); }
+ }
+ public Builder SetField59(bool value) {
+ PrepareBuilder();
+ result.hasField59 = true;
+ result.field59_ = value;
+ return this;
+ }
+ public Builder ClearField59() {
+ PrepareBuilder();
+ result.hasField59 = false;
+ result.field59_ = false;
+ return this;
+ }
+
+ public bool HasField7 {
+ get { return result.hasField7; }
+ }
+ public string Field7 {
+ get { return result.Field7; }
+ set { SetField7(value); }
+ }
+ public Builder SetField7(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField7 = true;
+ result.field7_ = value;
+ return this;
+ }
+ public Builder ClearField7() {
+ PrepareBuilder();
+ result.hasField7 = false;
+ result.field7_ = "";
+ return this;
+ }
+
+ public bool HasField16 {
+ get { return result.hasField16; }
+ }
+ public int Field16 {
+ get { return result.Field16; }
+ set { SetField16(value); }
+ }
+ public Builder SetField16(int value) {
+ PrepareBuilder();
+ result.hasField16 = true;
+ result.field16_ = value;
+ return this;
+ }
+ public Builder ClearField16() {
+ PrepareBuilder();
+ result.hasField16 = false;
+ result.field16_ = 0;
+ return this;
+ }
+
+ public bool HasField130 {
+ get { return result.hasField130; }
+ }
+ public int Field130 {
+ get { return result.Field130; }
+ set { SetField130(value); }
+ }
+ public Builder SetField130(int value) {
+ PrepareBuilder();
+ result.hasField130 = true;
+ result.field130_ = value;
+ return this;
+ }
+ public Builder ClearField130() {
+ PrepareBuilder();
+ result.hasField130 = false;
+ result.field130_ = 0;
+ return this;
+ }
+
+ public bool HasField12 {
+ get { return result.hasField12; }
+ }
+ public bool Field12 {
+ get { return result.Field12; }
+ set { SetField12(value); }
+ }
+ public Builder SetField12(bool value) {
+ PrepareBuilder();
+ result.hasField12 = true;
+ result.field12_ = value;
+ return this;
+ }
+ public Builder ClearField12() {
+ PrepareBuilder();
+ result.hasField12 = false;
+ result.field12_ = true;
+ return this;
+ }
+
+ public bool HasField17 {
+ get { return result.hasField17; }
+ }
+ public bool Field17 {
+ get { return result.Field17; }
+ set { SetField17(value); }
+ }
+ public Builder SetField17(bool value) {
+ PrepareBuilder();
+ result.hasField17 = true;
+ result.field17_ = value;
+ return this;
+ }
+ public Builder ClearField17() {
+ PrepareBuilder();
+ result.hasField17 = false;
+ result.field17_ = true;
+ return this;
+ }
+
+ public bool HasField13 {
+ get { return result.hasField13; }
+ }
+ public bool Field13 {
+ get { return result.Field13; }
+ set { SetField13(value); }
+ }
+ public Builder SetField13(bool value) {
+ PrepareBuilder();
+ result.hasField13 = true;
+ result.field13_ = value;
+ return this;
+ }
+ public Builder ClearField13() {
+ PrepareBuilder();
+ result.hasField13 = false;
+ result.field13_ = true;
+ return this;
+ }
+
+ public bool HasField14 {
+ get { return result.hasField14; }
+ }
+ public bool Field14 {
+ get { return result.Field14; }
+ set { SetField14(value); }
+ }
+ public Builder SetField14(bool value) {
+ PrepareBuilder();
+ result.hasField14 = true;
+ result.field14_ = value;
+ return this;
+ }
+ public Builder ClearField14() {
+ PrepareBuilder();
+ result.hasField14 = false;
+ result.field14_ = true;
+ return this;
+ }
+
+ public bool HasField104 {
+ get { return result.hasField104; }
+ }
+ public int Field104 {
+ get { return result.Field104; }
+ set { SetField104(value); }
+ }
+ public Builder SetField104(int value) {
+ PrepareBuilder();
+ result.hasField104 = true;
+ result.field104_ = value;
+ return this;
+ }
+ public Builder ClearField104() {
+ PrepareBuilder();
+ result.hasField104 = false;
+ result.field104_ = 0;
+ return this;
+ }
+
+ public bool HasField100 {
+ get { return result.hasField100; }
+ }
+ public int Field100 {
+ get { return result.Field100; }
+ set { SetField100(value); }
+ }
+ public Builder SetField100(int value) {
+ PrepareBuilder();
+ result.hasField100 = true;
+ result.field100_ = value;
+ return this;
+ }
+ public Builder ClearField100() {
+ PrepareBuilder();
+ result.hasField100 = false;
+ result.field100_ = 0;
+ return this;
+ }
+
+ public bool HasField101 {
+ get { return result.hasField101; }
+ }
+ public int Field101 {
+ get { return result.Field101; }
+ set { SetField101(value); }
+ }
+ public Builder SetField101(int value) {
+ PrepareBuilder();
+ result.hasField101 = true;
+ result.field101_ = value;
+ return this;
+ }
+ public Builder ClearField101() {
+ PrepareBuilder();
+ result.hasField101 = false;
+ result.field101_ = 0;
+ return this;
+ }
+
+ public bool HasField102 {
+ get { return result.hasField102; }
+ }
+ public string Field102 {
+ get { return result.Field102; }
+ set { SetField102(value); }
+ }
+ public Builder SetField102(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField102 = true;
+ result.field102_ = value;
+ return this;
+ }
+ public Builder ClearField102() {
+ PrepareBuilder();
+ result.hasField102 = false;
+ result.field102_ = "";
+ return this;
+ }
+
+ public bool HasField103 {
+ get { return result.hasField103; }
+ }
+ public string Field103 {
+ get { return result.Field103; }
+ set { SetField103(value); }
+ }
+ public Builder SetField103(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField103 = true;
+ result.field103_ = value;
+ return this;
+ }
+ public Builder ClearField103() {
+ PrepareBuilder();
+ result.hasField103 = false;
+ result.field103_ = "";
+ return this;
+ }
+
+ public bool HasField29 {
+ get { return result.hasField29; }
+ }
+ public int Field29 {
+ get { return result.Field29; }
+ set { SetField29(value); }
+ }
+ public Builder SetField29(int value) {
+ PrepareBuilder();
+ result.hasField29 = true;
+ result.field29_ = value;
+ return this;
+ }
+ public Builder ClearField29() {
+ PrepareBuilder();
+ result.hasField29 = false;
+ result.field29_ = 0;
+ return this;
+ }
+
+ public bool HasField30 {
+ get { return result.hasField30; }
+ }
+ public bool Field30 {
+ get { return result.Field30; }
+ set { SetField30(value); }
+ }
+ public Builder SetField30(bool value) {
+ PrepareBuilder();
+ result.hasField30 = true;
+ result.field30_ = value;
+ return this;
+ }
+ public Builder ClearField30() {
+ PrepareBuilder();
+ result.hasField30 = false;
+ result.field30_ = false;
+ return this;
+ }
+
+ public bool HasField60 {
+ get { return result.hasField60; }
+ }
+ public int Field60 {
+ get { return result.Field60; }
+ set { SetField60(value); }
+ }
+ public Builder SetField60(int value) {
+ PrepareBuilder();
+ result.hasField60 = true;
+ result.field60_ = value;
+ return this;
+ }
+ public Builder ClearField60() {
+ PrepareBuilder();
+ result.hasField60 = false;
+ result.field60_ = -1;
+ return this;
+ }
+
+ public bool HasField271 {
+ get { return result.hasField271; }
+ }
+ public int Field271 {
+ get { return result.Field271; }
+ set { SetField271(value); }
+ }
+ public Builder SetField271(int value) {
+ PrepareBuilder();
+ result.hasField271 = true;
+ result.field271_ = value;
+ return this;
+ }
+ public Builder ClearField271() {
+ PrepareBuilder();
+ result.hasField271 = false;
+ result.field271_ = -1;
+ return this;
+ }
+
+ public bool HasField272 {
+ get { return result.hasField272; }
+ }
+ public int Field272 {
+ get { return result.Field272; }
+ set { SetField272(value); }
+ }
+ public Builder SetField272(int value) {
+ PrepareBuilder();
+ result.hasField272 = true;
+ result.field272_ = value;
+ return this;
+ }
+ public Builder ClearField272() {
+ PrepareBuilder();
+ result.hasField272 = false;
+ result.field272_ = -1;
+ return this;
+ }
+
+ public bool HasField150 {
+ get { return result.hasField150; }
+ }
+ public int Field150 {
+ get { return result.Field150; }
+ set { SetField150(value); }
+ }
+ public Builder SetField150(int value) {
+ PrepareBuilder();
+ result.hasField150 = true;
+ result.field150_ = value;
+ return this;
+ }
+ public Builder ClearField150() {
+ PrepareBuilder();
+ result.hasField150 = false;
+ result.field150_ = 0;
+ return this;
+ }
+
+ public bool HasField23 {
+ get { return result.hasField23; }
+ }
+ public int Field23 {
+ get { return result.Field23; }
+ set { SetField23(value); }
+ }
+ public Builder SetField23(int value) {
+ PrepareBuilder();
+ result.hasField23 = true;
+ result.field23_ = value;
+ return this;
+ }
+ public Builder ClearField23() {
+ PrepareBuilder();
+ result.hasField23 = false;
+ result.field23_ = 0;
+ return this;
+ }
+
+ public bool HasField24 {
+ get { return result.hasField24; }
+ }
+ public bool Field24 {
+ get { return result.Field24; }
+ set { SetField24(value); }
+ }
+ public Builder SetField24(bool value) {
+ PrepareBuilder();
+ result.hasField24 = true;
+ result.field24_ = value;
+ return this;
+ }
+ public Builder ClearField24() {
+ PrepareBuilder();
+ result.hasField24 = false;
+ result.field24_ = false;
+ return this;
+ }
+
+ public bool HasField25 {
+ get { return result.hasField25; }
+ }
+ public int Field25 {
+ get { return result.Field25; }
+ set { SetField25(value); }
+ }
+ public Builder SetField25(int value) {
+ PrepareBuilder();
+ result.hasField25 = true;
+ result.field25_ = value;
+ return this;
+ }
+ public Builder ClearField25() {
+ PrepareBuilder();
+ result.hasField25 = false;
+ result.field25_ = 0;
+ return this;
+ }
+
+ public bool HasField15 {
+ get { return result.hasField15; }
+ }
+ public global::Google.ProtocolBuffers.ProtoBench.SizeMessage1SubMessage Field15 {
+ get { return result.Field15; }
+ set { SetField15(value); }
+ }
+ public Builder SetField15(global::Google.ProtocolBuffers.ProtoBench.SizeMessage1SubMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField15 = true;
+ result.field15_ = value;
+ return this;
+ }
+ public Builder SetField15(global::Google.ProtocolBuffers.ProtoBench.SizeMessage1SubMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasField15 = true;
+ result.field15_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeField15(global::Google.ProtocolBuffers.ProtoBench.SizeMessage1SubMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasField15 &&
+ result.field15_ != global::Google.ProtocolBuffers.ProtoBench.SizeMessage1SubMessage.DefaultInstance) {
+ result.field15_ = global::Google.ProtocolBuffers.ProtoBench.SizeMessage1SubMessage.CreateBuilder(result.field15_).MergeFrom(value).BuildPartial();
+ } else {
+ result.field15_ = value;
+ }
+ result.hasField15 = true;
+ return this;
+ }
+ public Builder ClearField15() {
+ PrepareBuilder();
+ result.hasField15 = false;
+ result.field15_ = null;
+ return this;
+ }
+
+ public bool HasField78 {
+ get { return result.hasField78; }
+ }
+ public bool Field78 {
+ get { return result.Field78; }
+ set { SetField78(value); }
+ }
+ public Builder SetField78(bool value) {
+ PrepareBuilder();
+ result.hasField78 = true;
+ result.field78_ = value;
+ return this;
+ }
+ public Builder ClearField78() {
+ PrepareBuilder();
+ result.hasField78 = false;
+ result.field78_ = false;
+ return this;
+ }
+
+ public bool HasField67 {
+ get { return result.hasField67; }
+ }
+ public int Field67 {
+ get { return result.Field67; }
+ set { SetField67(value); }
+ }
+ public Builder SetField67(int value) {
+ PrepareBuilder();
+ result.hasField67 = true;
+ result.field67_ = value;
+ return this;
+ }
+ public Builder ClearField67() {
+ PrepareBuilder();
+ result.hasField67 = false;
+ result.field67_ = 0;
+ return this;
+ }
+
+ public bool HasField68 {
+ get { return result.hasField68; }
+ }
+ public int Field68 {
+ get { return result.Field68; }
+ set { SetField68(value); }
+ }
+ public Builder SetField68(int value) {
+ PrepareBuilder();
+ result.hasField68 = true;
+ result.field68_ = value;
+ return this;
+ }
+ public Builder ClearField68() {
+ PrepareBuilder();
+ result.hasField68 = false;
+ result.field68_ = 0;
+ return this;
+ }
+
+ public bool HasField128 {
+ get { return result.hasField128; }
+ }
+ public int Field128 {
+ get { return result.Field128; }
+ set { SetField128(value); }
+ }
+ public Builder SetField128(int value) {
+ PrepareBuilder();
+ result.hasField128 = true;
+ result.field128_ = value;
+ return this;
+ }
+ public Builder ClearField128() {
+ PrepareBuilder();
+ result.hasField128 = false;
+ result.field128_ = 0;
+ return this;
+ }
+
+ public bool HasField129 {
+ get { return result.hasField129; }
+ }
+ public string Field129 {
+ get { return result.Field129; }
+ set { SetField129(value); }
+ }
+ public Builder SetField129(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField129 = true;
+ result.field129_ = value;
+ return this;
+ }
+ public Builder ClearField129() {
+ PrepareBuilder();
+ result.hasField129 = false;
+ result.field129_ = "xxxxxxxxxxxxxxxxxxxxx";
+ return this;
+ }
+
+ public bool HasField131 {
+ get { return result.hasField131; }
+ }
+ public int Field131 {
+ get { return result.Field131; }
+ set { SetField131(value); }
+ }
+ public Builder SetField131(int value) {
+ PrepareBuilder();
+ result.hasField131 = true;
+ result.field131_ = value;
+ return this;
+ }
+ public Builder ClearField131() {
+ PrepareBuilder();
+ result.hasField131 = false;
+ result.field131_ = 0;
+ return this;
+ }
+ }
+ static SizeMessage1() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.ProtoBench.GoogleSizeProtoFile.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class SizeMessage1SubMessage : pb::GeneratedMessage {
+ private SizeMessage1SubMessage() { }
+ private static readonly SizeMessage1SubMessage defaultInstance = new SizeMessage1SubMessage().MakeReadOnly();
+ public static SizeMessage1SubMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override SizeMessage1SubMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override SizeMessage1SubMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.ProtoBench.GoogleSizeProtoFile.internal__static_benchmarks_SizeMessage1SubMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.ProtoBench.GoogleSizeProtoFile.internal__static_benchmarks_SizeMessage1SubMessage__FieldAccessorTable; }
+ }
+
+ public const int Field1FieldNumber = 1;
+ private bool hasField1;
+ private int field1_;
+ public bool HasField1 {
+ get { return hasField1; }
+ }
+ public int Field1 {
+ get { return field1_; }
+ }
+
+ public const int Field2FieldNumber = 2;
+ private bool hasField2;
+ private int field2_;
+ public bool HasField2 {
+ get { return hasField2; }
+ }
+ public int Field2 {
+ get { return field2_; }
+ }
+
+ public const int Field3FieldNumber = 3;
+ private bool hasField3;
+ private int field3_;
+ public bool HasField3 {
+ get { return hasField3; }
+ }
+ public int Field3 {
+ get { return field3_; }
+ }
+
+ public const int Field15FieldNumber = 15;
+ private bool hasField15;
+ private string field15_ = "";
+ public bool HasField15 {
+ get { return hasField15; }
+ }
+ public string Field15 {
+ get { return field15_; }
+ }
+
+ public const int Field12FieldNumber = 12;
+ private bool hasField12;
+ private bool field12_ = true;
+ public bool HasField12 {
+ get { return hasField12; }
+ }
+ public bool Field12 {
+ get { return field12_; }
+ }
+
+ public const int Field13FieldNumber = 13;
+ private bool hasField13;
+ private long field13_;
+ public bool HasField13 {
+ get { return hasField13; }
+ }
+ public long Field13 {
+ get { return field13_; }
+ }
+
+ public const int Field14FieldNumber = 14;
+ private bool hasField14;
+ private long field14_;
+ public bool HasField14 {
+ get { return hasField14; }
+ }
+ public long Field14 {
+ get { return field14_; }
+ }
+
+ public const int Field16FieldNumber = 16;
+ private bool hasField16;
+ private int field16_;
+ public bool HasField16 {
+ get { return hasField16; }
+ }
+ public int Field16 {
+ get { return field16_; }
+ }
+
+ public const int Field19FieldNumber = 19;
+ private bool hasField19;
+ private int field19_ = 2;
+ public bool HasField19 {
+ get { return hasField19; }
+ }
+ public int Field19 {
+ get { return field19_; }
+ }
+
+ public const int Field20FieldNumber = 20;
+ private bool hasField20;
+ private bool field20_ = true;
+ public bool HasField20 {
+ get { return hasField20; }
+ }
+ public bool Field20 {
+ get { return field20_; }
+ }
+
+ public const int Field28FieldNumber = 28;
+ private bool hasField28;
+ private bool field28_ = true;
+ public bool HasField28 {
+ get { return hasField28; }
+ }
+ public bool Field28 {
+ get { return field28_; }
+ }
+
+ public const int Field21FieldNumber = 21;
+ private bool hasField21;
+ private ulong field21_;
+ public bool HasField21 {
+ get { return hasField21; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong Field21 {
+ get { return field21_; }
+ }
+
+ public const int Field22FieldNumber = 22;
+ private bool hasField22;
+ private int field22_;
+ public bool HasField22 {
+ get { return hasField22; }
+ }
+ public int Field22 {
+ get { return field22_; }
+ }
+
+ public const int Field23FieldNumber = 23;
+ private bool hasField23;
+ private bool field23_;
+ public bool HasField23 {
+ get { return hasField23; }
+ }
+ public bool Field23 {
+ get { return field23_; }
+ }
+
+ public const int Field206FieldNumber = 206;
+ private bool hasField206;
+ private bool field206_;
+ public bool HasField206 {
+ get { return hasField206; }
+ }
+ public bool Field206 {
+ get { return field206_; }
+ }
+
+ public const int Field203FieldNumber = 203;
+ private bool hasField203;
+ private uint field203_;
+ public bool HasField203 {
+ get { return hasField203; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint Field203 {
+ get { return field203_; }
+ }
+
+ public const int Field204FieldNumber = 204;
+ private bool hasField204;
+ private int field204_;
+ public bool HasField204 {
+ get { return hasField204; }
+ }
+ public int Field204 {
+ get { return field204_; }
+ }
+
+ public const int Field205FieldNumber = 205;
+ private bool hasField205;
+ private string field205_ = "";
+ public bool HasField205 {
+ get { return hasField205; }
+ }
+ public string Field205 {
+ get { return field205_; }
+ }
+
+ public const int Field207FieldNumber = 207;
+ private bool hasField207;
+ private ulong field207_;
+ public bool HasField207 {
+ get { return hasField207; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong Field207 {
+ get { return field207_; }
+ }
+
+ public const int Field300FieldNumber = 300;
+ private bool hasField300;
+ private ulong field300_;
+ public bool HasField300 {
+ get { return hasField300; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong Field300 {
+ get { return field300_; }
+ }
+
+ public static SizeMessage1SubMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static SizeMessage1SubMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static SizeMessage1SubMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static SizeMessage1SubMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static SizeMessage1SubMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static SizeMessage1SubMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static SizeMessage1SubMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static SizeMessage1SubMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static SizeMessage1SubMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static SizeMessage1SubMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private SizeMessage1SubMessage MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(SizeMessage1SubMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(SizeMessage1SubMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private SizeMessage1SubMessage result;
+
+ private SizeMessage1SubMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ SizeMessage1SubMessage original = result;
+ result = new SizeMessage1SubMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override SizeMessage1SubMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.ProtoBench.SizeMessage1SubMessage.Descriptor; }
+ }
+
+ public override SizeMessage1SubMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.ProtoBench.SizeMessage1SubMessage.DefaultInstance; }
+ }
+
+ public override SizeMessage1SubMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+
+ public bool HasField1 {
+ get { return result.hasField1; }
+ }
+ public int Field1 {
+ get { return result.Field1; }
+ set { SetField1(value); }
+ }
+ public Builder SetField1(int value) {
+ PrepareBuilder();
+ result.hasField1 = true;
+ result.field1_ = value;
+ return this;
+ }
+ public Builder ClearField1() {
+ PrepareBuilder();
+ result.hasField1 = false;
+ result.field1_ = 0;
+ return this;
+ }
+
+ public bool HasField2 {
+ get { return result.hasField2; }
+ }
+ public int Field2 {
+ get { return result.Field2; }
+ set { SetField2(value); }
+ }
+ public Builder SetField2(int value) {
+ PrepareBuilder();
+ result.hasField2 = true;
+ result.field2_ = value;
+ return this;
+ }
+ public Builder ClearField2() {
+ PrepareBuilder();
+ result.hasField2 = false;
+ result.field2_ = 0;
+ return this;
+ }
+
+ public bool HasField3 {
+ get { return result.hasField3; }
+ }
+ public int Field3 {
+ get { return result.Field3; }
+ set { SetField3(value); }
+ }
+ public Builder SetField3(int value) {
+ PrepareBuilder();
+ result.hasField3 = true;
+ result.field3_ = value;
+ return this;
+ }
+ public Builder ClearField3() {
+ PrepareBuilder();
+ result.hasField3 = false;
+ result.field3_ = 0;
+ return this;
+ }
+
+ public bool HasField15 {
+ get { return result.hasField15; }
+ }
+ public string Field15 {
+ get { return result.Field15; }
+ set { SetField15(value); }
+ }
+ public Builder SetField15(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField15 = true;
+ result.field15_ = value;
+ return this;
+ }
+ public Builder ClearField15() {
+ PrepareBuilder();
+ result.hasField15 = false;
+ result.field15_ = "";
+ return this;
+ }
+
+ public bool HasField12 {
+ get { return result.hasField12; }
+ }
+ public bool Field12 {
+ get { return result.Field12; }
+ set { SetField12(value); }
+ }
+ public Builder SetField12(bool value) {
+ PrepareBuilder();
+ result.hasField12 = true;
+ result.field12_ = value;
+ return this;
+ }
+ public Builder ClearField12() {
+ PrepareBuilder();
+ result.hasField12 = false;
+ result.field12_ = true;
+ return this;
+ }
+
+ public bool HasField13 {
+ get { return result.hasField13; }
+ }
+ public long Field13 {
+ get { return result.Field13; }
+ set { SetField13(value); }
+ }
+ public Builder SetField13(long value) {
+ PrepareBuilder();
+ result.hasField13 = true;
+ result.field13_ = value;
+ return this;
+ }
+ public Builder ClearField13() {
+ PrepareBuilder();
+ result.hasField13 = false;
+ result.field13_ = 0L;
+ return this;
+ }
+
+ public bool HasField14 {
+ get { return result.hasField14; }
+ }
+ public long Field14 {
+ get { return result.Field14; }
+ set { SetField14(value); }
+ }
+ public Builder SetField14(long value) {
+ PrepareBuilder();
+ result.hasField14 = true;
+ result.field14_ = value;
+ return this;
+ }
+ public Builder ClearField14() {
+ PrepareBuilder();
+ result.hasField14 = false;
+ result.field14_ = 0L;
+ return this;
+ }
+
+ public bool HasField16 {
+ get { return result.hasField16; }
+ }
+ public int Field16 {
+ get { return result.Field16; }
+ set { SetField16(value); }
+ }
+ public Builder SetField16(int value) {
+ PrepareBuilder();
+ result.hasField16 = true;
+ result.field16_ = value;
+ return this;
+ }
+ public Builder ClearField16() {
+ PrepareBuilder();
+ result.hasField16 = false;
+ result.field16_ = 0;
+ return this;
+ }
+
+ public bool HasField19 {
+ get { return result.hasField19; }
+ }
+ public int Field19 {
+ get { return result.Field19; }
+ set { SetField19(value); }
+ }
+ public Builder SetField19(int value) {
+ PrepareBuilder();
+ result.hasField19 = true;
+ result.field19_ = value;
+ return this;
+ }
+ public Builder ClearField19() {
+ PrepareBuilder();
+ result.hasField19 = false;
+ result.field19_ = 2;
+ return this;
+ }
+
+ public bool HasField20 {
+ get { return result.hasField20; }
+ }
+ public bool Field20 {
+ get { return result.Field20; }
+ set { SetField20(value); }
+ }
+ public Builder SetField20(bool value) {
+ PrepareBuilder();
+ result.hasField20 = true;
+ result.field20_ = value;
+ return this;
+ }
+ public Builder ClearField20() {
+ PrepareBuilder();
+ result.hasField20 = false;
+ result.field20_ = true;
+ return this;
+ }
+
+ public bool HasField28 {
+ get { return result.hasField28; }
+ }
+ public bool Field28 {
+ get { return result.Field28; }
+ set { SetField28(value); }
+ }
+ public Builder SetField28(bool value) {
+ PrepareBuilder();
+ result.hasField28 = true;
+ result.field28_ = value;
+ return this;
+ }
+ public Builder ClearField28() {
+ PrepareBuilder();
+ result.hasField28 = false;
+ result.field28_ = true;
+ return this;
+ }
+
+ public bool HasField21 {
+ get { return result.hasField21; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong Field21 {
+ get { return result.Field21; }
+ set { SetField21(value); }
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetField21(ulong value) {
+ PrepareBuilder();
+ result.hasField21 = true;
+ result.field21_ = value;
+ return this;
+ }
+ public Builder ClearField21() {
+ PrepareBuilder();
+ result.hasField21 = false;
+ result.field21_ = 0;
+ return this;
+ }
+
+ public bool HasField22 {
+ get { return result.hasField22; }
+ }
+ public int Field22 {
+ get { return result.Field22; }
+ set { SetField22(value); }
+ }
+ public Builder SetField22(int value) {
+ PrepareBuilder();
+ result.hasField22 = true;
+ result.field22_ = value;
+ return this;
+ }
+ public Builder ClearField22() {
+ PrepareBuilder();
+ result.hasField22 = false;
+ result.field22_ = 0;
+ return this;
+ }
+
+ public bool HasField23 {
+ get { return result.hasField23; }
+ }
+ public bool Field23 {
+ get { return result.Field23; }
+ set { SetField23(value); }
+ }
+ public Builder SetField23(bool value) {
+ PrepareBuilder();
+ result.hasField23 = true;
+ result.field23_ = value;
+ return this;
+ }
+ public Builder ClearField23() {
+ PrepareBuilder();
+ result.hasField23 = false;
+ result.field23_ = false;
+ return this;
+ }
+
+ public bool HasField206 {
+ get { return result.hasField206; }
+ }
+ public bool Field206 {
+ get { return result.Field206; }
+ set { SetField206(value); }
+ }
+ public Builder SetField206(bool value) {
+ PrepareBuilder();
+ result.hasField206 = true;
+ result.field206_ = value;
+ return this;
+ }
+ public Builder ClearField206() {
+ PrepareBuilder();
+ result.hasField206 = false;
+ result.field206_ = false;
+ return this;
+ }
+
+ public bool HasField203 {
+ get { return result.hasField203; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint Field203 {
+ get { return result.Field203; }
+ set { SetField203(value); }
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetField203(uint value) {
+ PrepareBuilder();
+ result.hasField203 = true;
+ result.field203_ = value;
+ return this;
+ }
+ public Builder ClearField203() {
+ PrepareBuilder();
+ result.hasField203 = false;
+ result.field203_ = 0;
+ return this;
+ }
+
+ public bool HasField204 {
+ get { return result.hasField204; }
+ }
+ public int Field204 {
+ get { return result.Field204; }
+ set { SetField204(value); }
+ }
+ public Builder SetField204(int value) {
+ PrepareBuilder();
+ result.hasField204 = true;
+ result.field204_ = value;
+ return this;
+ }
+ public Builder ClearField204() {
+ PrepareBuilder();
+ result.hasField204 = false;
+ result.field204_ = 0;
+ return this;
+ }
+
+ public bool HasField205 {
+ get { return result.hasField205; }
+ }
+ public string Field205 {
+ get { return result.Field205; }
+ set { SetField205(value); }
+ }
+ public Builder SetField205(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField205 = true;
+ result.field205_ = value;
+ return this;
+ }
+ public Builder ClearField205() {
+ PrepareBuilder();
+ result.hasField205 = false;
+ result.field205_ = "";
+ return this;
+ }
+
+ public bool HasField207 {
+ get { return result.hasField207; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong Field207 {
+ get { return result.Field207; }
+ set { SetField207(value); }
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetField207(ulong value) {
+ PrepareBuilder();
+ result.hasField207 = true;
+ result.field207_ = value;
+ return this;
+ }
+ public Builder ClearField207() {
+ PrepareBuilder();
+ result.hasField207 = false;
+ result.field207_ = 0UL;
+ return this;
+ }
+
+ public bool HasField300 {
+ get { return result.hasField300; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong Field300 {
+ get { return result.Field300; }
+ set { SetField300(value); }
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetField300(ulong value) {
+ PrepareBuilder();
+ result.hasField300 = true;
+ result.field300_ = value;
+ return this;
+ }
+ public Builder ClearField300() {
+ PrepareBuilder();
+ result.hasField300 = false;
+ result.field300_ = 0UL;
+ return this;
+ }
+ }
+ static SizeMessage1SubMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.ProtoBench.GoogleSizeProtoFile.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class SizeMessage2 : pb::GeneratedMessage {
+ private SizeMessage2() { }
+ private static readonly SizeMessage2 defaultInstance = new SizeMessage2().MakeReadOnly();
+ public static SizeMessage2 DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override SizeMessage2 DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override SizeMessage2 ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.ProtoBench.GoogleSizeProtoFile.internal__static_benchmarks_SizeMessage2__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.ProtoBench.GoogleSizeProtoFile.internal__static_benchmarks_SizeMessage2__FieldAccessorTable; }
+ }
+
+ #region Nested types
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Types {
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Group1 : pb::GeneratedMessage {
+ private Group1() { }
+ private static readonly Group1 defaultInstance = new Group1().MakeReadOnly();
+ public static Group1 DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override Group1 DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override Group1 ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.ProtoBench.GoogleSizeProtoFile.internal__static_benchmarks_SizeMessage2_Group1__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.ProtoBench.GoogleSizeProtoFile.internal__static_benchmarks_SizeMessage2_Group1__FieldAccessorTable; }
+ }
+
+ public const int Field11FieldNumber = 11;
+ private bool hasField11;
+ private float field11_;
+ public bool HasField11 {
+ get { return hasField11; }
+ }
+ public float Field11 {
+ get { return field11_; }
+ }
+
+ public const int Field26FieldNumber = 26;
+ private bool hasField26;
+ private float field26_;
+ public bool HasField26 {
+ get { return hasField26; }
+ }
+ public float Field26 {
+ get { return field26_; }
+ }
+
+ public const int Field12FieldNumber = 12;
+ private bool hasField12;
+ private string field12_ = "";
+ public bool HasField12 {
+ get { return hasField12; }
+ }
+ public string Field12 {
+ get { return field12_; }
+ }
+
+ public const int Field13FieldNumber = 13;
+ private bool hasField13;
+ private string field13_ = "";
+ public bool HasField13 {
+ get { return hasField13; }
+ }
+ public string Field13 {
+ get { return field13_; }
+ }
+
+ public const int Field14FieldNumber = 14;
+ private pbc::PopsicleList field14_ = new pbc::PopsicleList();
+ public scg::IList Field14List {
+ get { return pbc::Lists.AsReadOnly(field14_); }
+ }
+ public int Field14Count {
+ get { return field14_.Count; }
+ }
+ public string GetField14(int index) {
+ return field14_[index];
+ }
+
+ public const int Field15FieldNumber = 15;
+ private bool hasField15;
+ private ulong field15_;
+ public bool HasField15 {
+ get { return hasField15; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong Field15 {
+ get { return field15_; }
+ }
+
+ public const int Field5FieldNumber = 5;
+ private bool hasField5;
+ private int field5_;
+ public bool HasField5 {
+ get { return hasField5; }
+ }
+ public int Field5 {
+ get { return field5_; }
+ }
+
+ public const int Field27FieldNumber = 27;
+ private bool hasField27;
+ private string field27_ = "";
+ public bool HasField27 {
+ get { return hasField27; }
+ }
+ public string Field27 {
+ get { return field27_; }
+ }
+
+ public const int Field28FieldNumber = 28;
+ private bool hasField28;
+ private int field28_;
+ public bool HasField28 {
+ get { return hasField28; }
+ }
+ public int Field28 {
+ get { return field28_; }
+ }
+
+ public const int Field29FieldNumber = 29;
+ private bool hasField29;
+ private string field29_ = "";
+ public bool HasField29 {
+ get { return hasField29; }
+ }
+ public string Field29 {
+ get { return field29_; }
+ }
+
+ public const int Field16FieldNumber = 16;
+ private bool hasField16;
+ private string field16_ = "";
+ public bool HasField16 {
+ get { return hasField16; }
+ }
+ public string Field16 {
+ get { return field16_; }
+ }
+
+ public const int Field22FieldNumber = 22;
+ private pbc::PopsicleList field22_ = new pbc::PopsicleList();
+ public scg::IList Field22List {
+ get { return pbc::Lists.AsReadOnly(field22_); }
+ }
+ public int Field22Count {
+ get { return field22_.Count; }
+ }
+ public string GetField22(int index) {
+ return field22_[index];
+ }
+
+ public const int Field73FieldNumber = 73;
+ private pbc::PopsicleList field73_ = new pbc::PopsicleList();
+ public scg::IList Field73List {
+ get { return pbc::Lists.AsReadOnly(field73_); }
+ }
+ public int Field73Count {
+ get { return field73_.Count; }
+ }
+ public int GetField73(int index) {
+ return field73_[index];
+ }
+
+ public const int Field20FieldNumber = 20;
+ private bool hasField20;
+ private int field20_;
+ public bool HasField20 {
+ get { return hasField20; }
+ }
+ public int Field20 {
+ get { return field20_; }
+ }
+
+ public const int Field24FieldNumber = 24;
+ private bool hasField24;
+ private string field24_ = "";
+ public bool HasField24 {
+ get { return hasField24; }
+ }
+ public string Field24 {
+ get { return field24_; }
+ }
+
+ public const int Field31FieldNumber = 31;
+ private bool hasField31;
+ private global::Google.ProtocolBuffers.ProtoBench.SizeMessage2GroupedMessage field31_;
+ public bool HasField31 {
+ get { return hasField31; }
+ }
+ public global::Google.ProtocolBuffers.ProtoBench.SizeMessage2GroupedMessage Field31 {
+ get { return field31_ ?? global::Google.ProtocolBuffers.ProtoBench.SizeMessage2GroupedMessage.DefaultInstance; }
+ }
+
+ public static Group1 ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Group1 ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Group1 ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Group1 ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Group1 ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Group1 ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Group1 ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static Group1 ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static Group1 ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Group1 ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private Group1 MakeReadOnly() {
+ field14_.MakeReadOnly();
+ field22_.MakeReadOnly();
+ field73_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(Group1 prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(Group1 cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private Group1 result;
+
+ private Group1 PrepareBuilder() {
+ if (resultIsReadOnly) {
+ Group1 original = result;
+ result = new Group1();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override Group1 MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.ProtoBench.SizeMessage2.Types.Group1.Descriptor; }
+ }
+
+ public override Group1 DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.ProtoBench.SizeMessage2.Types.Group1.DefaultInstance; }
+ }
+
+ public override Group1 BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+
+ public bool HasField11 {
+ get { return result.hasField11; }
+ }
+ public float Field11 {
+ get { return result.Field11; }
+ set { SetField11(value); }
+ }
+ public Builder SetField11(float value) {
+ PrepareBuilder();
+ result.hasField11 = true;
+ result.field11_ = value;
+ return this;
+ }
+ public Builder ClearField11() {
+ PrepareBuilder();
+ result.hasField11 = false;
+ result.field11_ = 0F;
+ return this;
+ }
+
+ public bool HasField26 {
+ get { return result.hasField26; }
+ }
+ public float Field26 {
+ get { return result.Field26; }
+ set { SetField26(value); }
+ }
+ public Builder SetField26(float value) {
+ PrepareBuilder();
+ result.hasField26 = true;
+ result.field26_ = value;
+ return this;
+ }
+ public Builder ClearField26() {
+ PrepareBuilder();
+ result.hasField26 = false;
+ result.field26_ = 0F;
+ return this;
+ }
+
+ public bool HasField12 {
+ get { return result.hasField12; }
+ }
+ public string Field12 {
+ get { return result.Field12; }
+ set { SetField12(value); }
+ }
+ public Builder SetField12(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField12 = true;
+ result.field12_ = value;
+ return this;
+ }
+ public Builder ClearField12() {
+ PrepareBuilder();
+ result.hasField12 = false;
+ result.field12_ = "";
+ return this;
+ }
+
+ public bool HasField13 {
+ get { return result.hasField13; }
+ }
+ public string Field13 {
+ get { return result.Field13; }
+ set { SetField13(value); }
+ }
+ public Builder SetField13(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField13 = true;
+ result.field13_ = value;
+ return this;
+ }
+ public Builder ClearField13() {
+ PrepareBuilder();
+ result.hasField13 = false;
+ result.field13_ = "";
+ return this;
+ }
+
+ public pbc::IPopsicleList Field14List {
+ get { return PrepareBuilder().field14_; }
+ }
+ public int Field14Count {
+ get { return result.Field14Count; }
+ }
+ public string GetField14(int index) {
+ return result.GetField14(index);
+ }
+ public Builder SetField14(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field14_[index] = value;
+ return this;
+ }
+ public Builder AddField14(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field14_.Add(value);
+ return this;
+ }
+ public Builder AddRangeField14(scg::IEnumerable values) {
+ PrepareBuilder();
+ result.field14_.Add(values);
+ return this;
+ }
+ public Builder ClearField14() {
+ PrepareBuilder();
+ result.field14_.Clear();
+ return this;
+ }
+
+ public bool HasField15 {
+ get { return result.hasField15; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong Field15 {
+ get { return result.Field15; }
+ set { SetField15(value); }
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetField15(ulong value) {
+ PrepareBuilder();
+ result.hasField15 = true;
+ result.field15_ = value;
+ return this;
+ }
+ public Builder ClearField15() {
+ PrepareBuilder();
+ result.hasField15 = false;
+ result.field15_ = 0UL;
+ return this;
+ }
+
+ public bool HasField5 {
+ get { return result.hasField5; }
+ }
+ public int Field5 {
+ get { return result.Field5; }
+ set { SetField5(value); }
+ }
+ public Builder SetField5(int value) {
+ PrepareBuilder();
+ result.hasField5 = true;
+ result.field5_ = value;
+ return this;
+ }
+ public Builder ClearField5() {
+ PrepareBuilder();
+ result.hasField5 = false;
+ result.field5_ = 0;
+ return this;
+ }
+
+ public bool HasField27 {
+ get { return result.hasField27; }
+ }
+ public string Field27 {
+ get { return result.Field27; }
+ set { SetField27(value); }
+ }
+ public Builder SetField27(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField27 = true;
+ result.field27_ = value;
+ return this;
+ }
+ public Builder ClearField27() {
+ PrepareBuilder();
+ result.hasField27 = false;
+ result.field27_ = "";
+ return this;
+ }
+
+ public bool HasField28 {
+ get { return result.hasField28; }
+ }
+ public int Field28 {
+ get { return result.Field28; }
+ set { SetField28(value); }
+ }
+ public Builder SetField28(int value) {
+ PrepareBuilder();
+ result.hasField28 = true;
+ result.field28_ = value;
+ return this;
+ }
+ public Builder ClearField28() {
+ PrepareBuilder();
+ result.hasField28 = false;
+ result.field28_ = 0;
+ return this;
+ }
+
+ public bool HasField29 {
+ get { return result.hasField29; }
+ }
+ public string Field29 {
+ get { return result.Field29; }
+ set { SetField29(value); }
+ }
+ public Builder SetField29(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField29 = true;
+ result.field29_ = value;
+ return this;
+ }
+ public Builder ClearField29() {
+ PrepareBuilder();
+ result.hasField29 = false;
+ result.field29_ = "";
+ return this;
+ }
+
+ public bool HasField16 {
+ get { return result.hasField16; }
+ }
+ public string Field16 {
+ get { return result.Field16; }
+ set { SetField16(value); }
+ }
+ public Builder SetField16(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField16 = true;
+ result.field16_ = value;
+ return this;
+ }
+ public Builder ClearField16() {
+ PrepareBuilder();
+ result.hasField16 = false;
+ result.field16_ = "";
+ return this;
+ }
+
+ public pbc::IPopsicleList Field22List {
+ get { return PrepareBuilder().field22_; }
+ }
+ public int Field22Count {
+ get { return result.Field22Count; }
+ }
+ public string GetField22(int index) {
+ return result.GetField22(index);
+ }
+ public Builder SetField22(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field22_[index] = value;
+ return this;
+ }
+ public Builder AddField22(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field22_.Add(value);
+ return this;
+ }
+ public Builder AddRangeField22(scg::IEnumerable values) {
+ PrepareBuilder();
+ result.field22_.Add(values);
+ return this;
+ }
+ public Builder ClearField22() {
+ PrepareBuilder();
+ result.field22_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList Field73List {
+ get { return PrepareBuilder().field73_; }
+ }
+ public int Field73Count {
+ get { return result.Field73Count; }
+ }
+ public int GetField73(int index) {
+ return result.GetField73(index);
+ }
+ public Builder SetField73(int index, int value) {
+ PrepareBuilder();
+ result.field73_[index] = value;
+ return this;
+ }
+ public Builder AddField73(int value) {
+ PrepareBuilder();
+ result.field73_.Add(value);
+ return this;
+ }
+ public Builder AddRangeField73(scg::IEnumerable values) {
+ PrepareBuilder();
+ result.field73_.Add(values);
+ return this;
+ }
+ public Builder ClearField73() {
+ PrepareBuilder();
+ result.field73_.Clear();
+ return this;
+ }
+
+ public bool HasField20 {
+ get { return result.hasField20; }
+ }
+ public int Field20 {
+ get { return result.Field20; }
+ set { SetField20(value); }
+ }
+ public Builder SetField20(int value) {
+ PrepareBuilder();
+ result.hasField20 = true;
+ result.field20_ = value;
+ return this;
+ }
+ public Builder ClearField20() {
+ PrepareBuilder();
+ result.hasField20 = false;
+ result.field20_ = 0;
+ return this;
+ }
+
+ public bool HasField24 {
+ get { return result.hasField24; }
+ }
+ public string Field24 {
+ get { return result.Field24; }
+ set { SetField24(value); }
+ }
+ public Builder SetField24(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField24 = true;
+ result.field24_ = value;
+ return this;
+ }
+ public Builder ClearField24() {
+ PrepareBuilder();
+ result.hasField24 = false;
+ result.field24_ = "";
+ return this;
+ }
+
+ public bool HasField31 {
+ get { return result.hasField31; }
+ }
+ public global::Google.ProtocolBuffers.ProtoBench.SizeMessage2GroupedMessage Field31 {
+ get { return result.Field31; }
+ set { SetField31(value); }
+ }
+ public Builder SetField31(global::Google.ProtocolBuffers.ProtoBench.SizeMessage2GroupedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField31 = true;
+ result.field31_ = value;
+ return this;
+ }
+ public Builder SetField31(global::Google.ProtocolBuffers.ProtoBench.SizeMessage2GroupedMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasField31 = true;
+ result.field31_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeField31(global::Google.ProtocolBuffers.ProtoBench.SizeMessage2GroupedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasField31 &&
+ result.field31_ != global::Google.ProtocolBuffers.ProtoBench.SizeMessage2GroupedMessage.DefaultInstance) {
+ result.field31_ = global::Google.ProtocolBuffers.ProtoBench.SizeMessage2GroupedMessage.CreateBuilder(result.field31_).MergeFrom(value).BuildPartial();
+ } else {
+ result.field31_ = value;
+ }
+ result.hasField31 = true;
+ return this;
+ }
+ public Builder ClearField31() {
+ PrepareBuilder();
+ result.hasField31 = false;
+ result.field31_ = null;
+ return this;
+ }
+ }
+ static Group1() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.ProtoBench.GoogleSizeProtoFile.Descriptor, null);
+ }
+ }
+
+ }
+ #endregion
+
+ public const int Field1FieldNumber = 1;
+ private bool hasField1;
+ private string field1_ = "";
+ public bool HasField1 {
+ get { return hasField1; }
+ }
+ public string Field1 {
+ get { return field1_; }
+ }
+
+ public const int Field3FieldNumber = 3;
+ private bool hasField3;
+ private long field3_;
+ public bool HasField3 {
+ get { return hasField3; }
+ }
+ public long Field3 {
+ get { return field3_; }
+ }
+
+ public const int Field4FieldNumber = 4;
+ private bool hasField4;
+ private long field4_;
+ public bool HasField4 {
+ get { return hasField4; }
+ }
+ public long Field4 {
+ get { return field4_; }
+ }
+
+ public const int Field30FieldNumber = 30;
+ private bool hasField30;
+ private long field30_;
+ public bool HasField30 {
+ get { return hasField30; }
+ }
+ public long Field30 {
+ get { return field30_; }
+ }
+
+ public const int Field75FieldNumber = 75;
+ private bool hasField75;
+ private bool field75_;
+ public bool HasField75 {
+ get { return hasField75; }
+ }
+ public bool Field75 {
+ get { return field75_; }
+ }
+
+ public const int Field6FieldNumber = 6;
+ private bool hasField6;
+ private string field6_ = "";
+ public bool HasField6 {
+ get { return hasField6; }
+ }
+ public string Field6 {
+ get { return field6_; }
+ }
+
+ public const int Field2FieldNumber = 2;
+ private bool hasField2;
+ private pb::ByteString field2_ = pb::ByteString.Empty;
+ public bool HasField2 {
+ get { return hasField2; }
+ }
+ public pb::ByteString Field2 {
+ get { return field2_; }
+ }
+
+ public const int Field21FieldNumber = 21;
+ private bool hasField21;
+ private int field21_;
+ public bool HasField21 {
+ get { return hasField21; }
+ }
+ public int Field21 {
+ get { return field21_; }
+ }
+
+ public const int Field71FieldNumber = 71;
+ private bool hasField71;
+ private int field71_;
+ public bool HasField71 {
+ get { return hasField71; }
+ }
+ public int Field71 {
+ get { return field71_; }
+ }
+
+ public const int Field25FieldNumber = 25;
+ private bool hasField25;
+ private float field25_;
+ public bool HasField25 {
+ get { return hasField25; }
+ }
+ public float Field25 {
+ get { return field25_; }
+ }
+
+ public const int Field109FieldNumber = 109;
+ private bool hasField109;
+ private int field109_;
+ public bool HasField109 {
+ get { return hasField109; }
+ }
+ public int Field109 {
+ get { return field109_; }
+ }
+
+ public const int Field210FieldNumber = 210;
+ private bool hasField210;
+ private int field210_;
+ public bool HasField210 {
+ get { return hasField210; }
+ }
+ public int Field210 {
+ get { return field210_; }
+ }
+
+ public const int Field211FieldNumber = 211;
+ private bool hasField211;
+ private int field211_;
+ public bool HasField211 {
+ get { return hasField211; }
+ }
+ public int Field211 {
+ get { return field211_; }
+ }
+
+ public const int Field212FieldNumber = 212;
+ private bool hasField212;
+ private int field212_;
+ public bool HasField212 {
+ get { return hasField212; }
+ }
+ public int Field212 {
+ get { return field212_; }
+ }
+
+ public const int Field213FieldNumber = 213;
+ private bool hasField213;
+ private int field213_;
+ public bool HasField213 {
+ get { return hasField213; }
+ }
+ public int Field213 {
+ get { return field213_; }
+ }
+
+ public const int Field216FieldNumber = 216;
+ private bool hasField216;
+ private int field216_;
+ public bool HasField216 {
+ get { return hasField216; }
+ }
+ public int Field216 {
+ get { return field216_; }
+ }
+
+ public const int Field217FieldNumber = 217;
+ private bool hasField217;
+ private int field217_;
+ public bool HasField217 {
+ get { return hasField217; }
+ }
+ public int Field217 {
+ get { return field217_; }
+ }
+
+ public const int Field218FieldNumber = 218;
+ private bool hasField218;
+ private int field218_;
+ public bool HasField218 {
+ get { return hasField218; }
+ }
+ public int Field218 {
+ get { return field218_; }
+ }
+
+ public const int Field220FieldNumber = 220;
+ private bool hasField220;
+ private int field220_;
+ public bool HasField220 {
+ get { return hasField220; }
+ }
+ public int Field220 {
+ get { return field220_; }
+ }
+
+ public const int Field221FieldNumber = 221;
+ private bool hasField221;
+ private int field221_;
+ public bool HasField221 {
+ get { return hasField221; }
+ }
+ public int Field221 {
+ get { return field221_; }
+ }
+
+ public const int Field222FieldNumber = 222;
+ private bool hasField222;
+ private float field222_;
+ public bool HasField222 {
+ get { return hasField222; }
+ }
+ public float Field222 {
+ get { return field222_; }
+ }
+
+ public const int Field63FieldNumber = 63;
+ private bool hasField63;
+ private int field63_;
+ public bool HasField63 {
+ get { return hasField63; }
+ }
+ public int Field63 {
+ get { return field63_; }
+ }
+
+ public const int Group1FieldNumber = 10;
+ private pbc::PopsicleList group1_ = new pbc::PopsicleList();
+ public scg::IList Group1List {
+ get { return group1_; }
+ }
+ public int Group1Count {
+ get { return group1_.Count; }
+ }
+ public global::Google.ProtocolBuffers.ProtoBench.SizeMessage2.Types.Group1 GetGroup1(int index) {
+ return group1_[index];
+ }
+
+ public const int Field128FieldNumber = 128;
+ private pbc::PopsicleList field128_ = new pbc::PopsicleList();
+ public scg::IList Field128List {
+ get { return pbc::Lists.AsReadOnly(field128_); }
+ }
+ public int Field128Count {
+ get { return field128_.Count; }
+ }
+ public string GetField128(int index) {
+ return field128_[index];
+ }
+
+ public const int Field131FieldNumber = 131;
+ private bool hasField131;
+ private long field131_;
+ public bool HasField131 {
+ get { return hasField131; }
+ }
+ public long Field131 {
+ get { return field131_; }
+ }
+
+ public const int Field127FieldNumber = 127;
+ private pbc::PopsicleList field127_ = new pbc::PopsicleList();
+ public scg::IList Field127List {
+ get { return pbc::Lists.AsReadOnly(field127_); }
+ }
+ public int Field127Count {
+ get { return field127_.Count; }
+ }
+ public string GetField127(int index) {
+ return field127_[index];
+ }
+
+ public const int Field129FieldNumber = 129;
+ private bool hasField129;
+ private int field129_;
+ public bool HasField129 {
+ get { return hasField129; }
+ }
+ public int Field129 {
+ get { return field129_; }
+ }
+
+ public const int Field130FieldNumber = 130;
+ private pbc::PopsicleList field130_ = new pbc::PopsicleList();
+ public scg::IList Field130List {
+ get { return pbc::Lists.AsReadOnly(field130_); }
+ }
+ public int Field130Count {
+ get { return field130_.Count; }
+ }
+ public long GetField130(int index) {
+ return field130_[index];
+ }
+
+ public const int Field205FieldNumber = 205;
+ private bool hasField205;
+ private bool field205_;
+ public bool HasField205 {
+ get { return hasField205; }
+ }
+ public bool Field205 {
+ get { return field205_; }
+ }
+
+ public const int Field206FieldNumber = 206;
+ private bool hasField206;
+ private bool field206_;
+ public bool HasField206 {
+ get { return hasField206; }
+ }
+ public bool Field206 {
+ get { return field206_; }
+ }
+
+ public static SizeMessage2 ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static SizeMessage2 ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static SizeMessage2 ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static SizeMessage2 ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static SizeMessage2 ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static SizeMessage2 ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static SizeMessage2 ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static SizeMessage2 ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static SizeMessage2 ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static SizeMessage2 ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private SizeMessage2 MakeReadOnly() {
+ group1_.MakeReadOnly();
+ field128_.MakeReadOnly();
+ field127_.MakeReadOnly();
+ field130_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(SizeMessage2 prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(SizeMessage2 cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private SizeMessage2 result;
+
+ private SizeMessage2 PrepareBuilder() {
+ if (resultIsReadOnly) {
+ SizeMessage2 original = result;
+ result = new SizeMessage2();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override SizeMessage2 MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.ProtoBench.SizeMessage2.Descriptor; }
+ }
+
+ public override SizeMessage2 DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.ProtoBench.SizeMessage2.DefaultInstance; }
+ }
+
+ public override SizeMessage2 BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+
+ public bool HasField1 {
+ get { return result.hasField1; }
+ }
+ public string Field1 {
+ get { return result.Field1; }
+ set { SetField1(value); }
+ }
+ public Builder SetField1(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField1 = true;
+ result.field1_ = value;
+ return this;
+ }
+ public Builder ClearField1() {
+ PrepareBuilder();
+ result.hasField1 = false;
+ result.field1_ = "";
+ return this;
+ }
+
+ public bool HasField3 {
+ get { return result.hasField3; }
+ }
+ public long Field3 {
+ get { return result.Field3; }
+ set { SetField3(value); }
+ }
+ public Builder SetField3(long value) {
+ PrepareBuilder();
+ result.hasField3 = true;
+ result.field3_ = value;
+ return this;
+ }
+ public Builder ClearField3() {
+ PrepareBuilder();
+ result.hasField3 = false;
+ result.field3_ = 0L;
+ return this;
+ }
+
+ public bool HasField4 {
+ get { return result.hasField4; }
+ }
+ public long Field4 {
+ get { return result.Field4; }
+ set { SetField4(value); }
+ }
+ public Builder SetField4(long value) {
+ PrepareBuilder();
+ result.hasField4 = true;
+ result.field4_ = value;
+ return this;
+ }
+ public Builder ClearField4() {
+ PrepareBuilder();
+ result.hasField4 = false;
+ result.field4_ = 0L;
+ return this;
+ }
+
+ public bool HasField30 {
+ get { return result.hasField30; }
+ }
+ public long Field30 {
+ get { return result.Field30; }
+ set { SetField30(value); }
+ }
+ public Builder SetField30(long value) {
+ PrepareBuilder();
+ result.hasField30 = true;
+ result.field30_ = value;
+ return this;
+ }
+ public Builder ClearField30() {
+ PrepareBuilder();
+ result.hasField30 = false;
+ result.field30_ = 0L;
+ return this;
+ }
+
+ public bool HasField75 {
+ get { return result.hasField75; }
+ }
+ public bool Field75 {
+ get { return result.Field75; }
+ set { SetField75(value); }
+ }
+ public Builder SetField75(bool value) {
+ PrepareBuilder();
+ result.hasField75 = true;
+ result.field75_ = value;
+ return this;
+ }
+ public Builder ClearField75() {
+ PrepareBuilder();
+ result.hasField75 = false;
+ result.field75_ = false;
+ return this;
+ }
+
+ public bool HasField6 {
+ get { return result.hasField6; }
+ }
+ public string Field6 {
+ get { return result.Field6; }
+ set { SetField6(value); }
+ }
+ public Builder SetField6(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField6 = true;
+ result.field6_ = value;
+ return this;
+ }
+ public Builder ClearField6() {
+ PrepareBuilder();
+ result.hasField6 = false;
+ result.field6_ = "";
+ return this;
+ }
+
+ public bool HasField2 {
+ get { return result.hasField2; }
+ }
+ public pb::ByteString Field2 {
+ get { return result.Field2; }
+ set { SetField2(value); }
+ }
+ public Builder SetField2(pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField2 = true;
+ result.field2_ = value;
+ return this;
+ }
+ public Builder ClearField2() {
+ PrepareBuilder();
+ result.hasField2 = false;
+ result.field2_ = pb::ByteString.Empty;
+ return this;
+ }
+
+ public bool HasField21 {
+ get { return result.hasField21; }
+ }
+ public int Field21 {
+ get { return result.Field21; }
+ set { SetField21(value); }
+ }
+ public Builder SetField21(int value) {
+ PrepareBuilder();
+ result.hasField21 = true;
+ result.field21_ = value;
+ return this;
+ }
+ public Builder ClearField21() {
+ PrepareBuilder();
+ result.hasField21 = false;
+ result.field21_ = 0;
+ return this;
+ }
+
+ public bool HasField71 {
+ get { return result.hasField71; }
+ }
+ public int Field71 {
+ get { return result.Field71; }
+ set { SetField71(value); }
+ }
+ public Builder SetField71(int value) {
+ PrepareBuilder();
+ result.hasField71 = true;
+ result.field71_ = value;
+ return this;
+ }
+ public Builder ClearField71() {
+ PrepareBuilder();
+ result.hasField71 = false;
+ result.field71_ = 0;
+ return this;
+ }
+
+ public bool HasField25 {
+ get { return result.hasField25; }
+ }
+ public float Field25 {
+ get { return result.Field25; }
+ set { SetField25(value); }
+ }
+ public Builder SetField25(float value) {
+ PrepareBuilder();
+ result.hasField25 = true;
+ result.field25_ = value;
+ return this;
+ }
+ public Builder ClearField25() {
+ PrepareBuilder();
+ result.hasField25 = false;
+ result.field25_ = 0F;
+ return this;
+ }
+
+ public bool HasField109 {
+ get { return result.hasField109; }
+ }
+ public int Field109 {
+ get { return result.Field109; }
+ set { SetField109(value); }
+ }
+ public Builder SetField109(int value) {
+ PrepareBuilder();
+ result.hasField109 = true;
+ result.field109_ = value;
+ return this;
+ }
+ public Builder ClearField109() {
+ PrepareBuilder();
+ result.hasField109 = false;
+ result.field109_ = 0;
+ return this;
+ }
+
+ public bool HasField210 {
+ get { return result.hasField210; }
+ }
+ public int Field210 {
+ get { return result.Field210; }
+ set { SetField210(value); }
+ }
+ public Builder SetField210(int value) {
+ PrepareBuilder();
+ result.hasField210 = true;
+ result.field210_ = value;
+ return this;
+ }
+ public Builder ClearField210() {
+ PrepareBuilder();
+ result.hasField210 = false;
+ result.field210_ = 0;
+ return this;
+ }
+
+ public bool HasField211 {
+ get { return result.hasField211; }
+ }
+ public int Field211 {
+ get { return result.Field211; }
+ set { SetField211(value); }
+ }
+ public Builder SetField211(int value) {
+ PrepareBuilder();
+ result.hasField211 = true;
+ result.field211_ = value;
+ return this;
+ }
+ public Builder ClearField211() {
+ PrepareBuilder();
+ result.hasField211 = false;
+ result.field211_ = 0;
+ return this;
+ }
+
+ public bool HasField212 {
+ get { return result.hasField212; }
+ }
+ public int Field212 {
+ get { return result.Field212; }
+ set { SetField212(value); }
+ }
+ public Builder SetField212(int value) {
+ PrepareBuilder();
+ result.hasField212 = true;
+ result.field212_ = value;
+ return this;
+ }
+ public Builder ClearField212() {
+ PrepareBuilder();
+ result.hasField212 = false;
+ result.field212_ = 0;
+ return this;
+ }
+
+ public bool HasField213 {
+ get { return result.hasField213; }
+ }
+ public int Field213 {
+ get { return result.Field213; }
+ set { SetField213(value); }
+ }
+ public Builder SetField213(int value) {
+ PrepareBuilder();
+ result.hasField213 = true;
+ result.field213_ = value;
+ return this;
+ }
+ public Builder ClearField213() {
+ PrepareBuilder();
+ result.hasField213 = false;
+ result.field213_ = 0;
+ return this;
+ }
+
+ public bool HasField216 {
+ get { return result.hasField216; }
+ }
+ public int Field216 {
+ get { return result.Field216; }
+ set { SetField216(value); }
+ }
+ public Builder SetField216(int value) {
+ PrepareBuilder();
+ result.hasField216 = true;
+ result.field216_ = value;
+ return this;
+ }
+ public Builder ClearField216() {
+ PrepareBuilder();
+ result.hasField216 = false;
+ result.field216_ = 0;
+ return this;
+ }
+
+ public bool HasField217 {
+ get { return result.hasField217; }
+ }
+ public int Field217 {
+ get { return result.Field217; }
+ set { SetField217(value); }
+ }
+ public Builder SetField217(int value) {
+ PrepareBuilder();
+ result.hasField217 = true;
+ result.field217_ = value;
+ return this;
+ }
+ public Builder ClearField217() {
+ PrepareBuilder();
+ result.hasField217 = false;
+ result.field217_ = 0;
+ return this;
+ }
+
+ public bool HasField218 {
+ get { return result.hasField218; }
+ }
+ public int Field218 {
+ get { return result.Field218; }
+ set { SetField218(value); }
+ }
+ public Builder SetField218(int value) {
+ PrepareBuilder();
+ result.hasField218 = true;
+ result.field218_ = value;
+ return this;
+ }
+ public Builder ClearField218() {
+ PrepareBuilder();
+ result.hasField218 = false;
+ result.field218_ = 0;
+ return this;
+ }
+
+ public bool HasField220 {
+ get { return result.hasField220; }
+ }
+ public int Field220 {
+ get { return result.Field220; }
+ set { SetField220(value); }
+ }
+ public Builder SetField220(int value) {
+ PrepareBuilder();
+ result.hasField220 = true;
+ result.field220_ = value;
+ return this;
+ }
+ public Builder ClearField220() {
+ PrepareBuilder();
+ result.hasField220 = false;
+ result.field220_ = 0;
+ return this;
+ }
+
+ public bool HasField221 {
+ get { return result.hasField221; }
+ }
+ public int Field221 {
+ get { return result.Field221; }
+ set { SetField221(value); }
+ }
+ public Builder SetField221(int value) {
+ PrepareBuilder();
+ result.hasField221 = true;
+ result.field221_ = value;
+ return this;
+ }
+ public Builder ClearField221() {
+ PrepareBuilder();
+ result.hasField221 = false;
+ result.field221_ = 0;
+ return this;
+ }
+
+ public bool HasField222 {
+ get { return result.hasField222; }
+ }
+ public float Field222 {
+ get { return result.Field222; }
+ set { SetField222(value); }
+ }
+ public Builder SetField222(float value) {
+ PrepareBuilder();
+ result.hasField222 = true;
+ result.field222_ = value;
+ return this;
+ }
+ public Builder ClearField222() {
+ PrepareBuilder();
+ result.hasField222 = false;
+ result.field222_ = 0F;
+ return this;
+ }
+
+ public bool HasField63 {
+ get { return result.hasField63; }
+ }
+ public int Field63 {
+ get { return result.Field63; }
+ set { SetField63(value); }
+ }
+ public Builder SetField63(int value) {
+ PrepareBuilder();
+ result.hasField63 = true;
+ result.field63_ = value;
+ return this;
+ }
+ public Builder ClearField63() {
+ PrepareBuilder();
+ result.hasField63 = false;
+ result.field63_ = 0;
+ return this;
+ }
+
+ public pbc::IPopsicleList Group1List {
+ get { return PrepareBuilder().group1_; }
+ }
+ public int Group1Count {
+ get { return result.Group1Count; }
+ }
+ public global::Google.ProtocolBuffers.ProtoBench.SizeMessage2.Types.Group1 GetGroup1(int index) {
+ return result.GetGroup1(index);
+ }
+ public Builder SetGroup1(int index, global::Google.ProtocolBuffers.ProtoBench.SizeMessage2.Types.Group1 value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.group1_[index] = value;
+ return this;
+ }
+ public Builder SetGroup1(int index, global::Google.ProtocolBuffers.ProtoBench.SizeMessage2.Types.Group1.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.group1_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddGroup1(global::Google.ProtocolBuffers.ProtoBench.SizeMessage2.Types.Group1 value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.group1_.Add(value);
+ return this;
+ }
+ public Builder AddGroup1(global::Google.ProtocolBuffers.ProtoBench.SizeMessage2.Types.Group1.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.group1_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeGroup1(scg::IEnumerable values) {
+ PrepareBuilder();
+ result.group1_.Add(values);
+ return this;
+ }
+ public Builder ClearGroup1() {
+ PrepareBuilder();
+ result.group1_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList Field128List {
+ get { return PrepareBuilder().field128_; }
+ }
+ public int Field128Count {
+ get { return result.Field128Count; }
+ }
+ public string GetField128(int index) {
+ return result.GetField128(index);
+ }
+ public Builder SetField128(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field128_[index] = value;
+ return this;
+ }
+ public Builder AddField128(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field128_.Add(value);
+ return this;
+ }
+ public Builder AddRangeField128(scg::IEnumerable values) {
+ PrepareBuilder();
+ result.field128_.Add(values);
+ return this;
+ }
+ public Builder ClearField128() {
+ PrepareBuilder();
+ result.field128_.Clear();
+ return this;
+ }
+
+ public bool HasField131 {
+ get { return result.hasField131; }
+ }
+ public long Field131 {
+ get { return result.Field131; }
+ set { SetField131(value); }
+ }
+ public Builder SetField131(long value) {
+ PrepareBuilder();
+ result.hasField131 = true;
+ result.field131_ = value;
+ return this;
+ }
+ public Builder ClearField131() {
+ PrepareBuilder();
+ result.hasField131 = false;
+ result.field131_ = 0L;
+ return this;
+ }
+
+ public pbc::IPopsicleList Field127List {
+ get { return PrepareBuilder().field127_; }
+ }
+ public int Field127Count {
+ get { return result.Field127Count; }
+ }
+ public string GetField127(int index) {
+ return result.GetField127(index);
+ }
+ public Builder SetField127(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field127_[index] = value;
+ return this;
+ }
+ public Builder AddField127(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field127_.Add(value);
+ return this;
+ }
+ public Builder AddRangeField127(scg::IEnumerable values) {
+ PrepareBuilder();
+ result.field127_.Add(values);
+ return this;
+ }
+ public Builder ClearField127() {
+ PrepareBuilder();
+ result.field127_.Clear();
+ return this;
+ }
+
+ public bool HasField129 {
+ get { return result.hasField129; }
+ }
+ public int Field129 {
+ get { return result.Field129; }
+ set { SetField129(value); }
+ }
+ public Builder SetField129(int value) {
+ PrepareBuilder();
+ result.hasField129 = true;
+ result.field129_ = value;
+ return this;
+ }
+ public Builder ClearField129() {
+ PrepareBuilder();
+ result.hasField129 = false;
+ result.field129_ = 0;
+ return this;
+ }
+
+ public pbc::IPopsicleList Field130List {
+ get { return PrepareBuilder().field130_; }
+ }
+ public int Field130Count {
+ get { return result.Field130Count; }
+ }
+ public long GetField130(int index) {
+ return result.GetField130(index);
+ }
+ public Builder SetField130(int index, long value) {
+ PrepareBuilder();
+ result.field130_[index] = value;
+ return this;
+ }
+ public Builder AddField130(long value) {
+ PrepareBuilder();
+ result.field130_.Add(value);
+ return this;
+ }
+ public Builder AddRangeField130(scg::IEnumerable values) {
+ PrepareBuilder();
+ result.field130_.Add(values);
+ return this;
+ }
+ public Builder ClearField130() {
+ PrepareBuilder();
+ result.field130_.Clear();
+ return this;
+ }
+
+ public bool HasField205 {
+ get { return result.hasField205; }
+ }
+ public bool Field205 {
+ get { return result.Field205; }
+ set { SetField205(value); }
+ }
+ public Builder SetField205(bool value) {
+ PrepareBuilder();
+ result.hasField205 = true;
+ result.field205_ = value;
+ return this;
+ }
+ public Builder ClearField205() {
+ PrepareBuilder();
+ result.hasField205 = false;
+ result.field205_ = false;
+ return this;
+ }
+
+ public bool HasField206 {
+ get { return result.hasField206; }
+ }
+ public bool Field206 {
+ get { return result.Field206; }
+ set { SetField206(value); }
+ }
+ public Builder SetField206(bool value) {
+ PrepareBuilder();
+ result.hasField206 = true;
+ result.field206_ = value;
+ return this;
+ }
+ public Builder ClearField206() {
+ PrepareBuilder();
+ result.hasField206 = false;
+ result.field206_ = false;
+ return this;
+ }
+ }
+ static SizeMessage2() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.ProtoBench.GoogleSizeProtoFile.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class SizeMessage2GroupedMessage : pb::GeneratedMessage {
+ private SizeMessage2GroupedMessage() { }
+ private static readonly SizeMessage2GroupedMessage defaultInstance = new SizeMessage2GroupedMessage().MakeReadOnly();
+ public static SizeMessage2GroupedMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override SizeMessage2GroupedMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override SizeMessage2GroupedMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.ProtoBench.GoogleSizeProtoFile.internal__static_benchmarks_SizeMessage2GroupedMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.ProtoBench.GoogleSizeProtoFile.internal__static_benchmarks_SizeMessage2GroupedMessage__FieldAccessorTable; }
+ }
+
+ public const int Field1FieldNumber = 1;
+ private bool hasField1;
+ private float field1_;
+ public bool HasField1 {
+ get { return hasField1; }
+ }
+ public float Field1 {
+ get { return field1_; }
+ }
+
+ public const int Field2FieldNumber = 2;
+ private bool hasField2;
+ private float field2_;
+ public bool HasField2 {
+ get { return hasField2; }
+ }
+ public float Field2 {
+ get { return field2_; }
+ }
+
+ public const int Field3FieldNumber = 3;
+ private bool hasField3;
+ private float field3_;
+ public bool HasField3 {
+ get { return hasField3; }
+ }
+ public float Field3 {
+ get { return field3_; }
+ }
+
+ public const int Field4FieldNumber = 4;
+ private bool hasField4;
+ private bool field4_;
+ public bool HasField4 {
+ get { return hasField4; }
+ }
+ public bool Field4 {
+ get { return field4_; }
+ }
+
+ public const int Field5FieldNumber = 5;
+ private bool hasField5;
+ private bool field5_;
+ public bool HasField5 {
+ get { return hasField5; }
+ }
+ public bool Field5 {
+ get { return field5_; }
+ }
+
+ public const int Field6FieldNumber = 6;
+ private bool hasField6;
+ private bool field6_ = true;
+ public bool HasField6 {
+ get { return hasField6; }
+ }
+ public bool Field6 {
+ get { return field6_; }
+ }
+
+ public const int Field7FieldNumber = 7;
+ private bool hasField7;
+ private bool field7_;
+ public bool HasField7 {
+ get { return hasField7; }
+ }
+ public bool Field7 {
+ get { return field7_; }
+ }
+
+ public const int Field8FieldNumber = 8;
+ private bool hasField8;
+ private float field8_;
+ public bool HasField8 {
+ get { return hasField8; }
+ }
+ public float Field8 {
+ get { return field8_; }
+ }
+
+ public const int Field9FieldNumber = 9;
+ private bool hasField9;
+ private bool field9_;
+ public bool HasField9 {
+ get { return hasField9; }
+ }
+ public bool Field9 {
+ get { return field9_; }
+ }
+
+ public const int Field10FieldNumber = 10;
+ private bool hasField10;
+ private float field10_;
+ public bool HasField10 {
+ get { return hasField10; }
+ }
+ public float Field10 {
+ get { return field10_; }
+ }
+
+ public const int Field11FieldNumber = 11;
+ private bool hasField11;
+ private long field11_;
+ public bool HasField11 {
+ get { return hasField11; }
+ }
+ public long Field11 {
+ get { return field11_; }
+ }
+
+ public static SizeMessage2GroupedMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static SizeMessage2GroupedMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static SizeMessage2GroupedMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static SizeMessage2GroupedMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static SizeMessage2GroupedMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static SizeMessage2GroupedMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static SizeMessage2GroupedMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static SizeMessage2GroupedMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static SizeMessage2GroupedMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static SizeMessage2GroupedMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private SizeMessage2GroupedMessage MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(SizeMessage2GroupedMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(SizeMessage2GroupedMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private SizeMessage2GroupedMessage result;
+
+ private SizeMessage2GroupedMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ SizeMessage2GroupedMessage original = result;
+ result = new SizeMessage2GroupedMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override SizeMessage2GroupedMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.ProtoBench.SizeMessage2GroupedMessage.Descriptor; }
+ }
+
+ public override SizeMessage2GroupedMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.ProtoBench.SizeMessage2GroupedMessage.DefaultInstance; }
+ }
+
+ public override SizeMessage2GroupedMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+
+ public bool HasField1 {
+ get { return result.hasField1; }
+ }
+ public float Field1 {
+ get { return result.Field1; }
+ set { SetField1(value); }
+ }
+ public Builder SetField1(float value) {
+ PrepareBuilder();
+ result.hasField1 = true;
+ result.field1_ = value;
+ return this;
+ }
+ public Builder ClearField1() {
+ PrepareBuilder();
+ result.hasField1 = false;
+ result.field1_ = 0F;
+ return this;
+ }
+
+ public bool HasField2 {
+ get { return result.hasField2; }
+ }
+ public float Field2 {
+ get { return result.Field2; }
+ set { SetField2(value); }
+ }
+ public Builder SetField2(float value) {
+ PrepareBuilder();
+ result.hasField2 = true;
+ result.field2_ = value;
+ return this;
+ }
+ public Builder ClearField2() {
+ PrepareBuilder();
+ result.hasField2 = false;
+ result.field2_ = 0F;
+ return this;
+ }
+
+ public bool HasField3 {
+ get { return result.hasField3; }
+ }
+ public float Field3 {
+ get { return result.Field3; }
+ set { SetField3(value); }
+ }
+ public Builder SetField3(float value) {
+ PrepareBuilder();
+ result.hasField3 = true;
+ result.field3_ = value;
+ return this;
+ }
+ public Builder ClearField3() {
+ PrepareBuilder();
+ result.hasField3 = false;
+ result.field3_ = 0F;
+ return this;
+ }
+
+ public bool HasField4 {
+ get { return result.hasField4; }
+ }
+ public bool Field4 {
+ get { return result.Field4; }
+ set { SetField4(value); }
+ }
+ public Builder SetField4(bool value) {
+ PrepareBuilder();
+ result.hasField4 = true;
+ result.field4_ = value;
+ return this;
+ }
+ public Builder ClearField4() {
+ PrepareBuilder();
+ result.hasField4 = false;
+ result.field4_ = false;
+ return this;
+ }
+
+ public bool HasField5 {
+ get { return result.hasField5; }
+ }
+ public bool Field5 {
+ get { return result.Field5; }
+ set { SetField5(value); }
+ }
+ public Builder SetField5(bool value) {
+ PrepareBuilder();
+ result.hasField5 = true;
+ result.field5_ = value;
+ return this;
+ }
+ public Builder ClearField5() {
+ PrepareBuilder();
+ result.hasField5 = false;
+ result.field5_ = false;
+ return this;
+ }
+
+ public bool HasField6 {
+ get { return result.hasField6; }
+ }
+ public bool Field6 {
+ get { return result.Field6; }
+ set { SetField6(value); }
+ }
+ public Builder SetField6(bool value) {
+ PrepareBuilder();
+ result.hasField6 = true;
+ result.field6_ = value;
+ return this;
+ }
+ public Builder ClearField6() {
+ PrepareBuilder();
+ result.hasField6 = false;
+ result.field6_ = true;
+ return this;
+ }
+
+ public bool HasField7 {
+ get { return result.hasField7; }
+ }
+ public bool Field7 {
+ get { return result.Field7; }
+ set { SetField7(value); }
+ }
+ public Builder SetField7(bool value) {
+ PrepareBuilder();
+ result.hasField7 = true;
+ result.field7_ = value;
+ return this;
+ }
+ public Builder ClearField7() {
+ PrepareBuilder();
+ result.hasField7 = false;
+ result.field7_ = false;
+ return this;
+ }
+
+ public bool HasField8 {
+ get { return result.hasField8; }
+ }
+ public float Field8 {
+ get { return result.Field8; }
+ set { SetField8(value); }
+ }
+ public Builder SetField8(float value) {
+ PrepareBuilder();
+ result.hasField8 = true;
+ result.field8_ = value;
+ return this;
+ }
+ public Builder ClearField8() {
+ PrepareBuilder();
+ result.hasField8 = false;
+ result.field8_ = 0F;
+ return this;
+ }
+
+ public bool HasField9 {
+ get { return result.hasField9; }
+ }
+ public bool Field9 {
+ get { return result.Field9; }
+ set { SetField9(value); }
+ }
+ public Builder SetField9(bool value) {
+ PrepareBuilder();
+ result.hasField9 = true;
+ result.field9_ = value;
+ return this;
+ }
+ public Builder ClearField9() {
+ PrepareBuilder();
+ result.hasField9 = false;
+ result.field9_ = false;
+ return this;
+ }
+
+ public bool HasField10 {
+ get { return result.hasField10; }
+ }
+ public float Field10 {
+ get { return result.Field10; }
+ set { SetField10(value); }
+ }
+ public Builder SetField10(float value) {
+ PrepareBuilder();
+ result.hasField10 = true;
+ result.field10_ = value;
+ return this;
+ }
+ public Builder ClearField10() {
+ PrepareBuilder();
+ result.hasField10 = false;
+ result.field10_ = 0F;
+ return this;
+ }
+
+ public bool HasField11 {
+ get { return result.hasField11; }
+ }
+ public long Field11 {
+ get { return result.Field11; }
+ set { SetField11(value); }
+ }
+ public Builder SetField11(long value) {
+ PrepareBuilder();
+ result.hasField11 = true;
+ result.field11_ = value;
+ return this;
+ }
+ public Builder ClearField11() {
+ PrepareBuilder();
+ result.hasField11 = false;
+ result.field11_ = 0L;
+ return this;
+ }
+ }
+ static SizeMessage2GroupedMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.ProtoBench.GoogleSizeProtoFile.Descriptor, null);
+ }
+ }
+
+ #endregion
+
+}
+
+#endregion Designer generated code
diff --git a/csharp/src/ProtoBench/TestProtos/GoogleSpeedProtoFile.cs b/csharp/src/ProtoBench/TestProtos/GoogleSpeedProtoFile.cs
new file mode 100644
index 00000000..3a18950f
--- /dev/null
+++ b/csharp/src/ProtoBench/TestProtos/GoogleSpeedProtoFile.cs
@@ -0,0 +1,6637 @@
+// Generated by ProtoGen, Version=2.4.1.555, Culture=neutral, PublicKeyToken=55f7125234beb589. DO NOT EDIT!
+#pragma warning disable 1591, 0612, 3021
+#region Designer generated code
+
+using pb = global::Google.ProtocolBuffers;
+using pbc = global::Google.ProtocolBuffers.Collections;
+using pbd = global::Google.ProtocolBuffers.Descriptors;
+using scg = global::System.Collections.Generic;
+namespace Google.ProtocolBuffers.ProtoBench {
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class GoogleSpeedProtoFile {
+
+ #region Extension registration
+ public static void RegisterAllExtensions(pb::ExtensionRegistry registry) {
+ }
+ #endregion
+ #region Static variables
+ internal static pbd::MessageDescriptor internal__static_benchmarks_SpeedMessage1__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable internal__static_benchmarks_SpeedMessage1__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_benchmarks_SpeedMessage1SubMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable internal__static_benchmarks_SpeedMessage1SubMessage__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_benchmarks_SpeedMessage2__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable internal__static_benchmarks_SpeedMessage2__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_benchmarks_SpeedMessage2_Group1__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable internal__static_benchmarks_SpeedMessage2_Group1__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_benchmarks_SpeedMessage2GroupedMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable internal__static_benchmarks_SpeedMessage2GroupedMessage__FieldAccessorTable;
+ #endregion
+ #region Descriptor
+ public static pbd::FileDescriptor Descriptor {
+ get { return descriptor; }
+ }
+ private static pbd::FileDescriptor descriptor;
+
+ static GoogleSpeedProtoFile() {
+ byte[] descriptorData = global::System.Convert.FromBase64String(
+ string.Concat(
+ "Ch1iZW5jaG1hcmtzL2dvb2dsZV9zcGVlZC5wcm90bxIKYmVuY2htYXJrcxok",
+ "Z29vZ2xlL3Byb3RvYnVmL2NzaGFycF9vcHRpb25zLnByb3RvIvgGCg1TcGVl",
+ "ZE1lc3NhZ2UxEg4KBmZpZWxkMRgBIAIoCRIOCgZmaWVsZDkYCSABKAkSDwoH",
+ "ZmllbGQxOBgSIAEoCRIWCgdmaWVsZDgwGFAgASgIOgVmYWxzZRIVCgdmaWVs",
+ "ZDgxGFEgASgIOgR0cnVlEg4KBmZpZWxkMhgCIAIoBRIOCgZmaWVsZDMYAyAC",
+ "KAUSEQoIZmllbGQyODAYmAIgASgFEhEKBmZpZWxkNhgGIAEoBToBMBIPCgdm",
+ "aWVsZDIyGBYgASgDEg4KBmZpZWxkNBgEIAEoCRIOCgZmaWVsZDUYBSADKAYS",
+ "FgoHZmllbGQ1ORg7IAEoCDoFZmFsc2USDgoGZmllbGQ3GAcgASgJEg8KB2Zp",
+ "ZWxkMTYYECABKAUSFAoIZmllbGQxMzAYggEgASgFOgEwEhUKB2ZpZWxkMTIY",
+ "DCABKAg6BHRydWUSFQoHZmllbGQxNxgRIAEoCDoEdHJ1ZRIVCgdmaWVsZDEz",
+ "GA0gASgIOgR0cnVlEhUKB2ZpZWxkMTQYDiABKAg6BHRydWUSEwoIZmllbGQx",
+ "MDQYaCABKAU6ATASEwoIZmllbGQxMDAYZCABKAU6ATASEwoIZmllbGQxMDEY",
+ "ZSABKAU6ATASEAoIZmllbGQxMDIYZiABKAkSEAoIZmllbGQxMDMYZyABKAkS",
+ "EgoHZmllbGQyORgdIAEoBToBMBIWCgdmaWVsZDMwGB4gASgIOgVmYWxzZRIT",
+ "CgdmaWVsZDYwGDwgASgFOgItMRIVCghmaWVsZDI3MRiPAiABKAU6Ai0xEhUK",
+ "CGZpZWxkMjcyGJACIAEoBToCLTESEQoIZmllbGQxNTAYlgEgASgFEhIKB2Zp",
+ "ZWxkMjMYFyABKAU6ATASFgoHZmllbGQyNBgYIAEoCDoFZmFsc2USEgoHZmll",
+ "bGQyNRgZIAEoBToBMBI0CgdmaWVsZDE1GA8gASgLMiMuYmVuY2htYXJrcy5T",
+ "cGVlZE1lc3NhZ2UxU3ViTWVzc2FnZRIPCgdmaWVsZDc4GE4gASgIEhIKB2Zp",
+ "ZWxkNjcYQyABKAU6ATASDwoHZmllbGQ2OBhEIAEoBRIUCghmaWVsZDEyOBiA",
+ "ASABKAU6ATASKAoIZmllbGQxMjkYgQEgASgJOhV4eHh4eHh4eHh4eHh4eHh4",
+ "eHh4eHgSFAoIZmllbGQxMzEYgwEgASgFOgEwIqIDChdTcGVlZE1lc3NhZ2Ux",
+ "U3ViTWVzc2FnZRIRCgZmaWVsZDEYASABKAU6ATASEQoGZmllbGQyGAIgASgF",
+ "OgEwEhEKBmZpZWxkMxgDIAEoBToBMBIPCgdmaWVsZDE1GA8gASgJEhUKB2Zp",
+ "ZWxkMTIYDCABKAg6BHRydWUSDwoHZmllbGQxMxgNIAEoAxIPCgdmaWVsZDE0",
+ "GA4gASgDEg8KB2ZpZWxkMTYYECABKAUSEgoHZmllbGQxORgTIAEoBToBMhIV",
+ "CgdmaWVsZDIwGBQgASgIOgR0cnVlEhUKB2ZpZWxkMjgYHCABKAg6BHRydWUS",
+ "DwoHZmllbGQyMRgVIAEoBhIPCgdmaWVsZDIyGBYgASgFEhYKB2ZpZWxkMjMY",
+ "FyABKAg6BWZhbHNlEhgKCGZpZWxkMjA2GM4BIAEoCDoFZmFsc2USEQoIZmll",
+ "bGQyMDMYywEgASgHEhEKCGZpZWxkMjA0GMwBIAEoBRIRCghmaWVsZDIwNRjN",
+ "ASABKAkSEQoIZmllbGQyMDcYzwEgASgEEhEKCGZpZWxkMzAwGKwCIAEoBCLK",
+ "BwoNU3BlZWRNZXNzYWdlMhIOCgZmaWVsZDEYASABKAkSDgoGZmllbGQzGAMg",
+ "ASgDEg4KBmZpZWxkNBgEIAEoAxIPCgdmaWVsZDMwGB4gASgDEhYKB2ZpZWxk",
+ "NzUYSyABKAg6BWZhbHNlEg4KBmZpZWxkNhgGIAEoCRIOCgZmaWVsZDIYAiAB",
+ "KAwSEgoHZmllbGQyMRgVIAEoBToBMBIPCgdmaWVsZDcxGEcgASgFEg8KB2Zp",
+ "ZWxkMjUYGSABKAISEwoIZmllbGQxMDkYbSABKAU6ATASFAoIZmllbGQyMTAY",
+ "0gEgASgFOgEwEhQKCGZpZWxkMjExGNMBIAEoBToBMBIUCghmaWVsZDIxMhjU",
+ "ASABKAU6ATASFAoIZmllbGQyMTMY1QEgASgFOgEwEhQKCGZpZWxkMjE2GNgB",
+ "IAEoBToBMBIUCghmaWVsZDIxNxjZASABKAU6ATASFAoIZmllbGQyMTgY2gEg",
+ "ASgFOgEwEhQKCGZpZWxkMjIwGNwBIAEoBToBMBIUCghmaWVsZDIyMRjdASAB",
+ "KAU6ATASFAoIZmllbGQyMjIY3gEgASgCOgEwEg8KB2ZpZWxkNjMYPyABKAUS",
+ "MAoGZ3JvdXAxGAogAygKMiAuYmVuY2htYXJrcy5TcGVlZE1lc3NhZ2UyLkdy",
+ "b3VwMRIRCghmaWVsZDEyOBiAASADKAkSEQoIZmllbGQxMzEYgwEgASgDEhAK",
+ "CGZpZWxkMTI3GH8gAygJEhEKCGZpZWxkMTI5GIEBIAEoBRIRCghmaWVsZDEz",
+ "MBiCASADKAMSGAoIZmllbGQyMDUYzQEgASgIOgVmYWxzZRIYCghmaWVsZDIw",
+ "NhjOASABKAg6BWZhbHNlGsMCCgZHcm91cDESDwoHZmllbGQxMRgLIAIoAhIP",
+ "CgdmaWVsZDI2GBogASgCEg8KB2ZpZWxkMTIYDCABKAkSDwoHZmllbGQxMxgN",
+ "IAEoCRIPCgdmaWVsZDE0GA4gAygJEg8KB2ZpZWxkMTUYDyACKAQSDgoGZmll",
+ "bGQ1GAUgASgFEg8KB2ZpZWxkMjcYGyABKAkSDwoHZmllbGQyOBgcIAEoBRIP",
+ "CgdmaWVsZDI5GB0gASgJEg8KB2ZpZWxkMTYYECABKAkSDwoHZmllbGQyMhgW",
+ "IAMoCRIPCgdmaWVsZDczGEkgAygFEhIKB2ZpZWxkMjAYFCABKAU6ATASDwoH",
+ "ZmllbGQyNBgYIAEoCRI4CgdmaWVsZDMxGB8gASgLMicuYmVuY2htYXJrcy5T",
+ "cGVlZE1lc3NhZ2UyR3JvdXBlZE1lc3NhZ2Ui3wEKG1NwZWVkTWVzc2FnZTJH",
+ "cm91cGVkTWVzc2FnZRIOCgZmaWVsZDEYASABKAISDgoGZmllbGQyGAIgASgC",
+ "EhEKBmZpZWxkMxgDIAEoAjoBMBIOCgZmaWVsZDQYBCABKAgSDgoGZmllbGQ1",
+ "GAUgASgIEhQKBmZpZWxkNhgGIAEoCDoEdHJ1ZRIVCgZmaWVsZDcYByABKAg6",
+ "BWZhbHNlEg4KBmZpZWxkOBgIIAEoAhIOCgZmaWVsZDkYCSABKAgSDwoHZmll",
+ "bGQxMBgKIAEoAhIPCgdmaWVsZDExGAsgASgDQktCC0dvb2dsZVNwZWVkSAHC",
+ "PjkKIUdvb2dsZS5Qcm90b2NvbEJ1ZmZlcnMuUHJvdG9CZW5jaBIUR29vZ2xl",
+ "U3BlZWRQcm90b0ZpbGU="));
+ pbd::FileDescriptor.InternalDescriptorAssigner assigner = delegate(pbd::FileDescriptor root) {
+ descriptor = root;
+ internal__static_benchmarks_SpeedMessage1__Descriptor = Descriptor.MessageTypes[0];
+ internal__static_benchmarks_SpeedMessage1__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable(internal__static_benchmarks_SpeedMessage1__Descriptor,
+ new string[] { "Field1", "Field9", "Field18", "Field80", "Field81", "Field2", "Field3", "Field280", "Field6", "Field22", "Field4", "Field5", "Field59", "Field7", "Field16", "Field130", "Field12", "Field17", "Field13", "Field14", "Field104", "Field100", "Field101", "Field102", "Field103", "Field29", "Field30", "Field60", "Field271", "Field272", "Field150", "Field23", "Field24", "Field25", "Field15", "Field78", "Field67", "Field68", "Field128", "Field129", "Field131", });
+ internal__static_benchmarks_SpeedMessage1SubMessage__Descriptor = Descriptor.MessageTypes[1];
+ internal__static_benchmarks_SpeedMessage1SubMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable(internal__static_benchmarks_SpeedMessage1SubMessage__Descriptor,
+ new string[] { "Field1", "Field2", "Field3", "Field15", "Field12", "Field13", "Field14", "Field16", "Field19", "Field20", "Field28", "Field21", "Field22", "Field23", "Field206", "Field203", "Field204", "Field205", "Field207", "Field300", });
+ internal__static_benchmarks_SpeedMessage2__Descriptor = Descriptor.MessageTypes[2];
+ internal__static_benchmarks_SpeedMessage2__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable(internal__static_benchmarks_SpeedMessage2__Descriptor,
+ new string[] { "Field1", "Field3", "Field4", "Field30", "Field75", "Field6", "Field2", "Field21", "Field71", "Field25", "Field109", "Field210", "Field211", "Field212", "Field213", "Field216", "Field217", "Field218", "Field220", "Field221", "Field222", "Field63", "Group1", "Field128", "Field131", "Field127", "Field129", "Field130", "Field205", "Field206", });
+ internal__static_benchmarks_SpeedMessage2_Group1__Descriptor = internal__static_benchmarks_SpeedMessage2__Descriptor.NestedTypes[0];
+ internal__static_benchmarks_SpeedMessage2_Group1__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable(internal__static_benchmarks_SpeedMessage2_Group1__Descriptor,
+ new string[] { "Field11", "Field26", "Field12", "Field13", "Field14", "Field15", "Field5", "Field27", "Field28", "Field29", "Field16", "Field22", "Field73", "Field20", "Field24", "Field31", });
+ internal__static_benchmarks_SpeedMessage2GroupedMessage__Descriptor = Descriptor.MessageTypes[3];
+ internal__static_benchmarks_SpeedMessage2GroupedMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable(internal__static_benchmarks_SpeedMessage2GroupedMessage__Descriptor,
+ new string[] { "Field1", "Field2", "Field3", "Field4", "Field5", "Field6", "Field7", "Field8", "Field9", "Field10", "Field11", });
+ pb::ExtensionRegistry registry = pb::ExtensionRegistry.CreateInstance();
+ RegisterAllExtensions(registry);
+ global::Google.ProtocolBuffers.DescriptorProtos.CSharpOptions.RegisterAllExtensions(registry);
+ return registry;
+ };
+ pbd::FileDescriptor.InternalBuildGeneratedFileFrom(descriptorData,
+ new pbd::FileDescriptor[] {
+ global::Google.ProtocolBuffers.DescriptorProtos.CSharpOptions.Descriptor,
+ }, assigner);
+ }
+ #endregion
+
+ }
+ #region Messages
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class SpeedMessage1 : pb::GeneratedMessage {
+ private SpeedMessage1() { }
+ private static readonly SpeedMessage1 defaultInstance = new SpeedMessage1().MakeReadOnly();
+ private static readonly string[] _speedMessage1FieldNames = new string[] { "field1", "field100", "field101", "field102", "field103", "field104", "field12", "field128", "field129", "field13", "field130", "field131", "field14", "field15", "field150", "field16", "field17", "field18", "field2", "field22", "field23", "field24", "field25", "field271", "field272", "field280", "field29", "field3", "field30", "field4", "field5", "field59", "field6", "field60", "field67", "field68", "field7", "field78", "field80", "field81", "field9" };
+ private static readonly uint[] _speedMessage1FieldTags = new uint[] { 10, 800, 808, 818, 826, 832, 96, 1024, 1034, 104, 1040, 1048, 112, 122, 1200, 128, 136, 146, 16, 176, 184, 192, 200, 2168, 2176, 2240, 232, 24, 240, 34, 41, 472, 48, 480, 536, 544, 58, 624, 640, 648, 74 };
+ public static SpeedMessage1 DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override SpeedMessage1 DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override SpeedMessage1 ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.ProtoBench.GoogleSpeedProtoFile.internal__static_benchmarks_SpeedMessage1__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.ProtoBench.GoogleSpeedProtoFile.internal__static_benchmarks_SpeedMessage1__FieldAccessorTable; }
+ }
+
+ public const int Field1FieldNumber = 1;
+ private bool hasField1;
+ private string field1_ = "";
+ public bool HasField1 {
+ get { return hasField1; }
+ }
+ public string Field1 {
+ get { return field1_; }
+ }
+
+ public const int Field9FieldNumber = 9;
+ private bool hasField9;
+ private string field9_ = "";
+ public bool HasField9 {
+ get { return hasField9; }
+ }
+ public string Field9 {
+ get { return field9_; }
+ }
+
+ public const int Field18FieldNumber = 18;
+ private bool hasField18;
+ private string field18_ = "";
+ public bool HasField18 {
+ get { return hasField18; }
+ }
+ public string Field18 {
+ get { return field18_; }
+ }
+
+ public const int Field80FieldNumber = 80;
+ private bool hasField80;
+ private bool field80_;
+ public bool HasField80 {
+ get { return hasField80; }
+ }
+ public bool Field80 {
+ get { return field80_; }
+ }
+
+ public const int Field81FieldNumber = 81;
+ private bool hasField81;
+ private bool field81_ = true;
+ public bool HasField81 {
+ get { return hasField81; }
+ }
+ public bool Field81 {
+ get { return field81_; }
+ }
+
+ public const int Field2FieldNumber = 2;
+ private bool hasField2;
+ private int field2_;
+ public bool HasField2 {
+ get { return hasField2; }
+ }
+ public int Field2 {
+ get { return field2_; }
+ }
+
+ public const int Field3FieldNumber = 3;
+ private bool hasField3;
+ private int field3_;
+ public bool HasField3 {
+ get { return hasField3; }
+ }
+ public int Field3 {
+ get { return field3_; }
+ }
+
+ public const int Field280FieldNumber = 280;
+ private bool hasField280;
+ private int field280_;
+ public bool HasField280 {
+ get { return hasField280; }
+ }
+ public int Field280 {
+ get { return field280_; }
+ }
+
+ public const int Field6FieldNumber = 6;
+ private bool hasField6;
+ private int field6_;
+ public bool HasField6 {
+ get { return hasField6; }
+ }
+ public int Field6 {
+ get { return field6_; }
+ }
+
+ public const int Field22FieldNumber = 22;
+ private bool hasField22;
+ private long field22_;
+ public bool HasField22 {
+ get { return hasField22; }
+ }
+ public long Field22 {
+ get { return field22_; }
+ }
+
+ public const int Field4FieldNumber = 4;
+ private bool hasField4;
+ private string field4_ = "";
+ public bool HasField4 {
+ get { return hasField4; }
+ }
+ public string Field4 {
+ get { return field4_; }
+ }
+
+ public const int Field5FieldNumber = 5;
+ private pbc::PopsicleList field5_ = new pbc::PopsicleList();
+ [global::System.CLSCompliant(false)]
+ public scg::IList Field5List {
+ get { return pbc::Lists.AsReadOnly(field5_); }
+ }
+ public int Field5Count {
+ get { return field5_.Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong GetField5(int index) {
+ return field5_[index];
+ }
+
+ public const int Field59FieldNumber = 59;
+ private bool hasField59;
+ private bool field59_;
+ public bool HasField59 {
+ get { return hasField59; }
+ }
+ public bool Field59 {
+ get { return field59_; }
+ }
+
+ public const int Field7FieldNumber = 7;
+ private bool hasField7;
+ private string field7_ = "";
+ public bool HasField7 {
+ get { return hasField7; }
+ }
+ public string Field7 {
+ get { return field7_; }
+ }
+
+ public const int Field16FieldNumber = 16;
+ private bool hasField16;
+ private int field16_;
+ public bool HasField16 {
+ get { return hasField16; }
+ }
+ public int Field16 {
+ get { return field16_; }
+ }
+
+ public const int Field130FieldNumber = 130;
+ private bool hasField130;
+ private int field130_;
+ public bool HasField130 {
+ get { return hasField130; }
+ }
+ public int Field130 {
+ get { return field130_; }
+ }
+
+ public const int Field12FieldNumber = 12;
+ private bool hasField12;
+ private bool field12_ = true;
+ public bool HasField12 {
+ get { return hasField12; }
+ }
+ public bool Field12 {
+ get { return field12_; }
+ }
+
+ public const int Field17FieldNumber = 17;
+ private bool hasField17;
+ private bool field17_ = true;
+ public bool HasField17 {
+ get { return hasField17; }
+ }
+ public bool Field17 {
+ get { return field17_; }
+ }
+
+ public const int Field13FieldNumber = 13;
+ private bool hasField13;
+ private bool field13_ = true;
+ public bool HasField13 {
+ get { return hasField13; }
+ }
+ public bool Field13 {
+ get { return field13_; }
+ }
+
+ public const int Field14FieldNumber = 14;
+ private bool hasField14;
+ private bool field14_ = true;
+ public bool HasField14 {
+ get { return hasField14; }
+ }
+ public bool Field14 {
+ get { return field14_; }
+ }
+
+ public const int Field104FieldNumber = 104;
+ private bool hasField104;
+ private int field104_;
+ public bool HasField104 {
+ get { return hasField104; }
+ }
+ public int Field104 {
+ get { return field104_; }
+ }
+
+ public const int Field100FieldNumber = 100;
+ private bool hasField100;
+ private int field100_;
+ public bool HasField100 {
+ get { return hasField100; }
+ }
+ public int Field100 {
+ get { return field100_; }
+ }
+
+ public const int Field101FieldNumber = 101;
+ private bool hasField101;
+ private int field101_;
+ public bool HasField101 {
+ get { return hasField101; }
+ }
+ public int Field101 {
+ get { return field101_; }
+ }
+
+ public const int Field102FieldNumber = 102;
+ private bool hasField102;
+ private string field102_ = "";
+ public bool HasField102 {
+ get { return hasField102; }
+ }
+ public string Field102 {
+ get { return field102_; }
+ }
+
+ public const int Field103FieldNumber = 103;
+ private bool hasField103;
+ private string field103_ = "";
+ public bool HasField103 {
+ get { return hasField103; }
+ }
+ public string Field103 {
+ get { return field103_; }
+ }
+
+ public const int Field29FieldNumber = 29;
+ private bool hasField29;
+ private int field29_;
+ public bool HasField29 {
+ get { return hasField29; }
+ }
+ public int Field29 {
+ get { return field29_; }
+ }
+
+ public const int Field30FieldNumber = 30;
+ private bool hasField30;
+ private bool field30_;
+ public bool HasField30 {
+ get { return hasField30; }
+ }
+ public bool Field30 {
+ get { return field30_; }
+ }
+
+ public const int Field60FieldNumber = 60;
+ private bool hasField60;
+ private int field60_ = -1;
+ public bool HasField60 {
+ get { return hasField60; }
+ }
+ public int Field60 {
+ get { return field60_; }
+ }
+
+ public const int Field271FieldNumber = 271;
+ private bool hasField271;
+ private int field271_ = -1;
+ public bool HasField271 {
+ get { return hasField271; }
+ }
+ public int Field271 {
+ get { return field271_; }
+ }
+
+ public const int Field272FieldNumber = 272;
+ private bool hasField272;
+ private int field272_ = -1;
+ public bool HasField272 {
+ get { return hasField272; }
+ }
+ public int Field272 {
+ get { return field272_; }
+ }
+
+ public const int Field150FieldNumber = 150;
+ private bool hasField150;
+ private int field150_;
+ public bool HasField150 {
+ get { return hasField150; }
+ }
+ public int Field150 {
+ get { return field150_; }
+ }
+
+ public const int Field23FieldNumber = 23;
+ private bool hasField23;
+ private int field23_;
+ public bool HasField23 {
+ get { return hasField23; }
+ }
+ public int Field23 {
+ get { return field23_; }
+ }
+
+ public const int Field24FieldNumber = 24;
+ private bool hasField24;
+ private bool field24_;
+ public bool HasField24 {
+ get { return hasField24; }
+ }
+ public bool Field24 {
+ get { return field24_; }
+ }
+
+ public const int Field25FieldNumber = 25;
+ private bool hasField25;
+ private int field25_;
+ public bool HasField25 {
+ get { return hasField25; }
+ }
+ public int Field25 {
+ get { return field25_; }
+ }
+
+ public const int Field15FieldNumber = 15;
+ private bool hasField15;
+ private global::Google.ProtocolBuffers.ProtoBench.SpeedMessage1SubMessage field15_;
+ public bool HasField15 {
+ get { return hasField15; }
+ }
+ public global::Google.ProtocolBuffers.ProtoBench.SpeedMessage1SubMessage Field15 {
+ get { return field15_ ?? global::Google.ProtocolBuffers.ProtoBench.SpeedMessage1SubMessage.DefaultInstance; }
+ }
+
+ public const int Field78FieldNumber = 78;
+ private bool hasField78;
+ private bool field78_;
+ public bool HasField78 {
+ get { return hasField78; }
+ }
+ public bool Field78 {
+ get { return field78_; }
+ }
+
+ public const int Field67FieldNumber = 67;
+ private bool hasField67;
+ private int field67_;
+ public bool HasField67 {
+ get { return hasField67; }
+ }
+ public int Field67 {
+ get { return field67_; }
+ }
+
+ public const int Field68FieldNumber = 68;
+ private bool hasField68;
+ private int field68_;
+ public bool HasField68 {
+ get { return hasField68; }
+ }
+ public int Field68 {
+ get { return field68_; }
+ }
+
+ public const int Field128FieldNumber = 128;
+ private bool hasField128;
+ private int field128_;
+ public bool HasField128 {
+ get { return hasField128; }
+ }
+ public int Field128 {
+ get { return field128_; }
+ }
+
+ public const int Field129FieldNumber = 129;
+ private bool hasField129;
+ private string field129_ = "xxxxxxxxxxxxxxxxxxxxx";
+ public bool HasField129 {
+ get { return hasField129; }
+ }
+ public string Field129 {
+ get { return field129_; }
+ }
+
+ public const int Field131FieldNumber = 131;
+ private bool hasField131;
+ private int field131_;
+ public bool HasField131 {
+ get { return hasField131; }
+ }
+ public int Field131 {
+ get { return field131_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!hasField1) return false;
+ if (!hasField2) return false;
+ if (!hasField3) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _speedMessage1FieldNames;
+ if (hasField1) {
+ output.WriteString(1, field_names[0], Field1);
+ }
+ if (hasField2) {
+ output.WriteInt32(2, field_names[18], Field2);
+ }
+ if (hasField3) {
+ output.WriteInt32(3, field_names[27], Field3);
+ }
+ if (hasField4) {
+ output.WriteString(4, field_names[29], Field4);
+ }
+ if (field5_.Count > 0) {
+ output.WriteFixed64Array(5, field_names[30], field5_);
+ }
+ if (hasField6) {
+ output.WriteInt32(6, field_names[32], Field6);
+ }
+ if (hasField7) {
+ output.WriteString(7, field_names[36], Field7);
+ }
+ if (hasField9) {
+ output.WriteString(9, field_names[40], Field9);
+ }
+ if (hasField12) {
+ output.WriteBool(12, field_names[6], Field12);
+ }
+ if (hasField13) {
+ output.WriteBool(13, field_names[9], Field13);
+ }
+ if (hasField14) {
+ output.WriteBool(14, field_names[12], Field14);
+ }
+ if (hasField15) {
+ output.WriteMessage(15, field_names[13], Field15);
+ }
+ if (hasField16) {
+ output.WriteInt32(16, field_names[15], Field16);
+ }
+ if (hasField17) {
+ output.WriteBool(17, field_names[16], Field17);
+ }
+ if (hasField18) {
+ output.WriteString(18, field_names[17], Field18);
+ }
+ if (hasField22) {
+ output.WriteInt64(22, field_names[19], Field22);
+ }
+ if (hasField23) {
+ output.WriteInt32(23, field_names[20], Field23);
+ }
+ if (hasField24) {
+ output.WriteBool(24, field_names[21], Field24);
+ }
+ if (hasField25) {
+ output.WriteInt32(25, field_names[22], Field25);
+ }
+ if (hasField29) {
+ output.WriteInt32(29, field_names[26], Field29);
+ }
+ if (hasField30) {
+ output.WriteBool(30, field_names[28], Field30);
+ }
+ if (hasField59) {
+ output.WriteBool(59, field_names[31], Field59);
+ }
+ if (hasField60) {
+ output.WriteInt32(60, field_names[33], Field60);
+ }
+ if (hasField67) {
+ output.WriteInt32(67, field_names[34], Field67);
+ }
+ if (hasField68) {
+ output.WriteInt32(68, field_names[35], Field68);
+ }
+ if (hasField78) {
+ output.WriteBool(78, field_names[37], Field78);
+ }
+ if (hasField80) {
+ output.WriteBool(80, field_names[38], Field80);
+ }
+ if (hasField81) {
+ output.WriteBool(81, field_names[39], Field81);
+ }
+ if (hasField100) {
+ output.WriteInt32(100, field_names[1], Field100);
+ }
+ if (hasField101) {
+ output.WriteInt32(101, field_names[2], Field101);
+ }
+ if (hasField102) {
+ output.WriteString(102, field_names[3], Field102);
+ }
+ if (hasField103) {
+ output.WriteString(103, field_names[4], Field103);
+ }
+ if (hasField104) {
+ output.WriteInt32(104, field_names[5], Field104);
+ }
+ if (hasField128) {
+ output.WriteInt32(128, field_names[7], Field128);
+ }
+ if (hasField129) {
+ output.WriteString(129, field_names[8], Field129);
+ }
+ if (hasField130) {
+ output.WriteInt32(130, field_names[10], Field130);
+ }
+ if (hasField131) {
+ output.WriteInt32(131, field_names[11], Field131);
+ }
+ if (hasField150) {
+ output.WriteInt32(150, field_names[14], Field150);
+ }
+ if (hasField271) {
+ output.WriteInt32(271, field_names[23], Field271);
+ }
+ if (hasField272) {
+ output.WriteInt32(272, field_names[24], Field272);
+ }
+ if (hasField280) {
+ output.WriteInt32(280, field_names[25], Field280);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasField1) {
+ size += pb::CodedOutputStream.ComputeStringSize(1, Field1);
+ }
+ if (hasField9) {
+ size += pb::CodedOutputStream.ComputeStringSize(9, Field9);
+ }
+ if (hasField18) {
+ size += pb::CodedOutputStream.ComputeStringSize(18, Field18);
+ }
+ if (hasField80) {
+ size += pb::CodedOutputStream.ComputeBoolSize(80, Field80);
+ }
+ if (hasField81) {
+ size += pb::CodedOutputStream.ComputeBoolSize(81, Field81);
+ }
+ if (hasField2) {
+ size += pb::CodedOutputStream.ComputeInt32Size(2, Field2);
+ }
+ if (hasField3) {
+ size += pb::CodedOutputStream.ComputeInt32Size(3, Field3);
+ }
+ if (hasField280) {
+ size += pb::CodedOutputStream.ComputeInt32Size(280, Field280);
+ }
+ if (hasField6) {
+ size += pb::CodedOutputStream.ComputeInt32Size(6, Field6);
+ }
+ if (hasField22) {
+ size += pb::CodedOutputStream.ComputeInt64Size(22, Field22);
+ }
+ if (hasField4) {
+ size += pb::CodedOutputStream.ComputeStringSize(4, Field4);
+ }
+ {
+ int dataSize = 0;
+ dataSize = 8 * field5_.Count;
+ size += dataSize;
+ size += 1 * field5_.Count;
+ }
+ if (hasField59) {
+ size += pb::CodedOutputStream.ComputeBoolSize(59, Field59);
+ }
+ if (hasField7) {
+ size += pb::CodedOutputStream.ComputeStringSize(7, Field7);
+ }
+ if (hasField16) {
+ size += pb::CodedOutputStream.ComputeInt32Size(16, Field16);
+ }
+ if (hasField130) {
+ size += pb::CodedOutputStream.ComputeInt32Size(130, Field130);
+ }
+ if (hasField12) {
+ size += pb::CodedOutputStream.ComputeBoolSize(12, Field12);
+ }
+ if (hasField17) {
+ size += pb::CodedOutputStream.ComputeBoolSize(17, Field17);
+ }
+ if (hasField13) {
+ size += pb::CodedOutputStream.ComputeBoolSize(13, Field13);
+ }
+ if (hasField14) {
+ size += pb::CodedOutputStream.ComputeBoolSize(14, Field14);
+ }
+ if (hasField104) {
+ size += pb::CodedOutputStream.ComputeInt32Size(104, Field104);
+ }
+ if (hasField100) {
+ size += pb::CodedOutputStream.ComputeInt32Size(100, Field100);
+ }
+ if (hasField101) {
+ size += pb::CodedOutputStream.ComputeInt32Size(101, Field101);
+ }
+ if (hasField102) {
+ size += pb::CodedOutputStream.ComputeStringSize(102, Field102);
+ }
+ if (hasField103) {
+ size += pb::CodedOutputStream.ComputeStringSize(103, Field103);
+ }
+ if (hasField29) {
+ size += pb::CodedOutputStream.ComputeInt32Size(29, Field29);
+ }
+ if (hasField30) {
+ size += pb::CodedOutputStream.ComputeBoolSize(30, Field30);
+ }
+ if (hasField60) {
+ size += pb::CodedOutputStream.ComputeInt32Size(60, Field60);
+ }
+ if (hasField271) {
+ size += pb::CodedOutputStream.ComputeInt32Size(271, Field271);
+ }
+ if (hasField272) {
+ size += pb::CodedOutputStream.ComputeInt32Size(272, Field272);
+ }
+ if (hasField150) {
+ size += pb::CodedOutputStream.ComputeInt32Size(150, Field150);
+ }
+ if (hasField23) {
+ size += pb::CodedOutputStream.ComputeInt32Size(23, Field23);
+ }
+ if (hasField24) {
+ size += pb::CodedOutputStream.ComputeBoolSize(24, Field24);
+ }
+ if (hasField25) {
+ size += pb::CodedOutputStream.ComputeInt32Size(25, Field25);
+ }
+ if (hasField15) {
+ size += pb::CodedOutputStream.ComputeMessageSize(15, Field15);
+ }
+ if (hasField78) {
+ size += pb::CodedOutputStream.ComputeBoolSize(78, Field78);
+ }
+ if (hasField67) {
+ size += pb::CodedOutputStream.ComputeInt32Size(67, Field67);
+ }
+ if (hasField68) {
+ size += pb::CodedOutputStream.ComputeInt32Size(68, Field68);
+ }
+ if (hasField128) {
+ size += pb::CodedOutputStream.ComputeInt32Size(128, Field128);
+ }
+ if (hasField129) {
+ size += pb::CodedOutputStream.ComputeStringSize(129, Field129);
+ }
+ if (hasField131) {
+ size += pb::CodedOutputStream.ComputeInt32Size(131, Field131);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static SpeedMessage1 ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static SpeedMessage1 ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static SpeedMessage1 ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static SpeedMessage1 ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static SpeedMessage1 ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static SpeedMessage1 ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static SpeedMessage1 ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static SpeedMessage1 ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static SpeedMessage1 ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static SpeedMessage1 ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private SpeedMessage1 MakeReadOnly() {
+ field5_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(SpeedMessage1 prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(SpeedMessage1 cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private SpeedMessage1 result;
+
+ private SpeedMessage1 PrepareBuilder() {
+ if (resultIsReadOnly) {
+ SpeedMessage1 original = result;
+ result = new SpeedMessage1();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override SpeedMessage1 MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.ProtoBench.SpeedMessage1.Descriptor; }
+ }
+
+ public override SpeedMessage1 DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.ProtoBench.SpeedMessage1.DefaultInstance; }
+ }
+
+ public override SpeedMessage1 BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is SpeedMessage1) {
+ return MergeFrom((SpeedMessage1) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(SpeedMessage1 other) {
+ if (other == global::Google.ProtocolBuffers.ProtoBench.SpeedMessage1.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasField1) {
+ Field1 = other.Field1;
+ }
+ if (other.HasField9) {
+ Field9 = other.Field9;
+ }
+ if (other.HasField18) {
+ Field18 = other.Field18;
+ }
+ if (other.HasField80) {
+ Field80 = other.Field80;
+ }
+ if (other.HasField81) {
+ Field81 = other.Field81;
+ }
+ if (other.HasField2) {
+ Field2 = other.Field2;
+ }
+ if (other.HasField3) {
+ Field3 = other.Field3;
+ }
+ if (other.HasField280) {
+ Field280 = other.Field280;
+ }
+ if (other.HasField6) {
+ Field6 = other.Field6;
+ }
+ if (other.HasField22) {
+ Field22 = other.Field22;
+ }
+ if (other.HasField4) {
+ Field4 = other.Field4;
+ }
+ if (other.field5_.Count != 0) {
+ result.field5_.Add(other.field5_);
+ }
+ if (other.HasField59) {
+ Field59 = other.Field59;
+ }
+ if (other.HasField7) {
+ Field7 = other.Field7;
+ }
+ if (other.HasField16) {
+ Field16 = other.Field16;
+ }
+ if (other.HasField130) {
+ Field130 = other.Field130;
+ }
+ if (other.HasField12) {
+ Field12 = other.Field12;
+ }
+ if (other.HasField17) {
+ Field17 = other.Field17;
+ }
+ if (other.HasField13) {
+ Field13 = other.Field13;
+ }
+ if (other.HasField14) {
+ Field14 = other.Field14;
+ }
+ if (other.HasField104) {
+ Field104 = other.Field104;
+ }
+ if (other.HasField100) {
+ Field100 = other.Field100;
+ }
+ if (other.HasField101) {
+ Field101 = other.Field101;
+ }
+ if (other.HasField102) {
+ Field102 = other.Field102;
+ }
+ if (other.HasField103) {
+ Field103 = other.Field103;
+ }
+ if (other.HasField29) {
+ Field29 = other.Field29;
+ }
+ if (other.HasField30) {
+ Field30 = other.Field30;
+ }
+ if (other.HasField60) {
+ Field60 = other.Field60;
+ }
+ if (other.HasField271) {
+ Field271 = other.Field271;
+ }
+ if (other.HasField272) {
+ Field272 = other.Field272;
+ }
+ if (other.HasField150) {
+ Field150 = other.Field150;
+ }
+ if (other.HasField23) {
+ Field23 = other.Field23;
+ }
+ if (other.HasField24) {
+ Field24 = other.Field24;
+ }
+ if (other.HasField25) {
+ Field25 = other.Field25;
+ }
+ if (other.HasField15) {
+ MergeField15(other.Field15);
+ }
+ if (other.HasField78) {
+ Field78 = other.Field78;
+ }
+ if (other.HasField67) {
+ Field67 = other.Field67;
+ }
+ if (other.HasField68) {
+ Field68 = other.Field68;
+ }
+ if (other.HasField128) {
+ Field128 = other.Field128;
+ }
+ if (other.HasField129) {
+ Field129 = other.Field129;
+ }
+ if (other.HasField131) {
+ Field131 = other.Field131;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_speedMessage1FieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _speedMessage1FieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ result.hasField1 = input.ReadString(ref result.field1_);
+ break;
+ }
+ case 16: {
+ result.hasField2 = input.ReadInt32(ref result.field2_);
+ break;
+ }
+ case 24: {
+ result.hasField3 = input.ReadInt32(ref result.field3_);
+ break;
+ }
+ case 34: {
+ result.hasField4 = input.ReadString(ref result.field4_);
+ break;
+ }
+ case 42:
+ case 41: {
+ input.ReadFixed64Array(tag, field_name, result.field5_);
+ break;
+ }
+ case 48: {
+ result.hasField6 = input.ReadInt32(ref result.field6_);
+ break;
+ }
+ case 58: {
+ result.hasField7 = input.ReadString(ref result.field7_);
+ break;
+ }
+ case 74: {
+ result.hasField9 = input.ReadString(ref result.field9_);
+ break;
+ }
+ case 96: {
+ result.hasField12 = input.ReadBool(ref result.field12_);
+ break;
+ }
+ case 104: {
+ result.hasField13 = input.ReadBool(ref result.field13_);
+ break;
+ }
+ case 112: {
+ result.hasField14 = input.ReadBool(ref result.field14_);
+ break;
+ }
+ case 122: {
+ global::Google.ProtocolBuffers.ProtoBench.SpeedMessage1SubMessage.Builder subBuilder = global::Google.ProtocolBuffers.ProtoBench.SpeedMessage1SubMessage.CreateBuilder();
+ if (result.hasField15) {
+ subBuilder.MergeFrom(Field15);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ Field15 = subBuilder.BuildPartial();
+ break;
+ }
+ case 128: {
+ result.hasField16 = input.ReadInt32(ref result.field16_);
+ break;
+ }
+ case 136: {
+ result.hasField17 = input.ReadBool(ref result.field17_);
+ break;
+ }
+ case 146: {
+ result.hasField18 = input.ReadString(ref result.field18_);
+ break;
+ }
+ case 176: {
+ result.hasField22 = input.ReadInt64(ref result.field22_);
+ break;
+ }
+ case 184: {
+ result.hasField23 = input.ReadInt32(ref result.field23_);
+ break;
+ }
+ case 192: {
+ result.hasField24 = input.ReadBool(ref result.field24_);
+ break;
+ }
+ case 200: {
+ result.hasField25 = input.ReadInt32(ref result.field25_);
+ break;
+ }
+ case 232: {
+ result.hasField29 = input.ReadInt32(ref result.field29_);
+ break;
+ }
+ case 240: {
+ result.hasField30 = input.ReadBool(ref result.field30_);
+ break;
+ }
+ case 472: {
+ result.hasField59 = input.ReadBool(ref result.field59_);
+ break;
+ }
+ case 480: {
+ result.hasField60 = input.ReadInt32(ref result.field60_);
+ break;
+ }
+ case 536: {
+ result.hasField67 = input.ReadInt32(ref result.field67_);
+ break;
+ }
+ case 544: {
+ result.hasField68 = input.ReadInt32(ref result.field68_);
+ break;
+ }
+ case 624: {
+ result.hasField78 = input.ReadBool(ref result.field78_);
+ break;
+ }
+ case 640: {
+ result.hasField80 = input.ReadBool(ref result.field80_);
+ break;
+ }
+ case 648: {
+ result.hasField81 = input.ReadBool(ref result.field81_);
+ break;
+ }
+ case 800: {
+ result.hasField100 = input.ReadInt32(ref result.field100_);
+ break;
+ }
+ case 808: {
+ result.hasField101 = input.ReadInt32(ref result.field101_);
+ break;
+ }
+ case 818: {
+ result.hasField102 = input.ReadString(ref result.field102_);
+ break;
+ }
+ case 826: {
+ result.hasField103 = input.ReadString(ref result.field103_);
+ break;
+ }
+ case 832: {
+ result.hasField104 = input.ReadInt32(ref result.field104_);
+ break;
+ }
+ case 1024: {
+ result.hasField128 = input.ReadInt32(ref result.field128_);
+ break;
+ }
+ case 1034: {
+ result.hasField129 = input.ReadString(ref result.field129_);
+ break;
+ }
+ case 1040: {
+ result.hasField130 = input.ReadInt32(ref result.field130_);
+ break;
+ }
+ case 1048: {
+ result.hasField131 = input.ReadInt32(ref result.field131_);
+ break;
+ }
+ case 1200: {
+ result.hasField150 = input.ReadInt32(ref result.field150_);
+ break;
+ }
+ case 2168: {
+ result.hasField271 = input.ReadInt32(ref result.field271_);
+ break;
+ }
+ case 2176: {
+ result.hasField272 = input.ReadInt32(ref result.field272_);
+ break;
+ }
+ case 2240: {
+ result.hasField280 = input.ReadInt32(ref result.field280_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasField1 {
+ get { return result.hasField1; }
+ }
+ public string Field1 {
+ get { return result.Field1; }
+ set { SetField1(value); }
+ }
+ public Builder SetField1(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField1 = true;
+ result.field1_ = value;
+ return this;
+ }
+ public Builder ClearField1() {
+ PrepareBuilder();
+ result.hasField1 = false;
+ result.field1_ = "";
+ return this;
+ }
+
+ public bool HasField9 {
+ get { return result.hasField9; }
+ }
+ public string Field9 {
+ get { return result.Field9; }
+ set { SetField9(value); }
+ }
+ public Builder SetField9(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField9 = true;
+ result.field9_ = value;
+ return this;
+ }
+ public Builder ClearField9() {
+ PrepareBuilder();
+ result.hasField9 = false;
+ result.field9_ = "";
+ return this;
+ }
+
+ public bool HasField18 {
+ get { return result.hasField18; }
+ }
+ public string Field18 {
+ get { return result.Field18; }
+ set { SetField18(value); }
+ }
+ public Builder SetField18(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField18 = true;
+ result.field18_ = value;
+ return this;
+ }
+ public Builder ClearField18() {
+ PrepareBuilder();
+ result.hasField18 = false;
+ result.field18_ = "";
+ return this;
+ }
+
+ public bool HasField80 {
+ get { return result.hasField80; }
+ }
+ public bool Field80 {
+ get { return result.Field80; }
+ set { SetField80(value); }
+ }
+ public Builder SetField80(bool value) {
+ PrepareBuilder();
+ result.hasField80 = true;
+ result.field80_ = value;
+ return this;
+ }
+ public Builder ClearField80() {
+ PrepareBuilder();
+ result.hasField80 = false;
+ result.field80_ = false;
+ return this;
+ }
+
+ public bool HasField81 {
+ get { return result.hasField81; }
+ }
+ public bool Field81 {
+ get { return result.Field81; }
+ set { SetField81(value); }
+ }
+ public Builder SetField81(bool value) {
+ PrepareBuilder();
+ result.hasField81 = true;
+ result.field81_ = value;
+ return this;
+ }
+ public Builder ClearField81() {
+ PrepareBuilder();
+ result.hasField81 = false;
+ result.field81_ = true;
+ return this;
+ }
+
+ public bool HasField2 {
+ get { return result.hasField2; }
+ }
+ public int Field2 {
+ get { return result.Field2; }
+ set { SetField2(value); }
+ }
+ public Builder SetField2(int value) {
+ PrepareBuilder();
+ result.hasField2 = true;
+ result.field2_ = value;
+ return this;
+ }
+ public Builder ClearField2() {
+ PrepareBuilder();
+ result.hasField2 = false;
+ result.field2_ = 0;
+ return this;
+ }
+
+ public bool HasField3 {
+ get { return result.hasField3; }
+ }
+ public int Field3 {
+ get { return result.Field3; }
+ set { SetField3(value); }
+ }
+ public Builder SetField3(int value) {
+ PrepareBuilder();
+ result.hasField3 = true;
+ result.field3_ = value;
+ return this;
+ }
+ public Builder ClearField3() {
+ PrepareBuilder();
+ result.hasField3 = false;
+ result.field3_ = 0;
+ return this;
+ }
+
+ public bool HasField280 {
+ get { return result.hasField280; }
+ }
+ public int Field280 {
+ get { return result.Field280; }
+ set { SetField280(value); }
+ }
+ public Builder SetField280(int value) {
+ PrepareBuilder();
+ result.hasField280 = true;
+ result.field280_ = value;
+ return this;
+ }
+ public Builder ClearField280() {
+ PrepareBuilder();
+ result.hasField280 = false;
+ result.field280_ = 0;
+ return this;
+ }
+
+ public bool HasField6 {
+ get { return result.hasField6; }
+ }
+ public int Field6 {
+ get { return result.Field6; }
+ set { SetField6(value); }
+ }
+ public Builder SetField6(int value) {
+ PrepareBuilder();
+ result.hasField6 = true;
+ result.field6_ = value;
+ return this;
+ }
+ public Builder ClearField6() {
+ PrepareBuilder();
+ result.hasField6 = false;
+ result.field6_ = 0;
+ return this;
+ }
+
+ public bool HasField22 {
+ get { return result.hasField22; }
+ }
+ public long Field22 {
+ get { return result.Field22; }
+ set { SetField22(value); }
+ }
+ public Builder SetField22(long value) {
+ PrepareBuilder();
+ result.hasField22 = true;
+ result.field22_ = value;
+ return this;
+ }
+ public Builder ClearField22() {
+ PrepareBuilder();
+ result.hasField22 = false;
+ result.field22_ = 0L;
+ return this;
+ }
+
+ public bool HasField4 {
+ get { return result.hasField4; }
+ }
+ public string Field4 {
+ get { return result.Field4; }
+ set { SetField4(value); }
+ }
+ public Builder SetField4(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField4 = true;
+ result.field4_ = value;
+ return this;
+ }
+ public Builder ClearField4() {
+ PrepareBuilder();
+ result.hasField4 = false;
+ result.field4_ = "";
+ return this;
+ }
+
+ [global::System.CLSCompliant(false)]
+ public pbc::IPopsicleList Field5List {
+ get { return PrepareBuilder().field5_; }
+ }
+ public int Field5Count {
+ get { return result.Field5Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong GetField5(int index) {
+ return result.GetField5(index);
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetField5(int index, ulong value) {
+ PrepareBuilder();
+ result.field5_[index] = value;
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddField5(ulong value) {
+ PrepareBuilder();
+ result.field5_.Add(value);
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRangeField5(scg::IEnumerable values) {
+ PrepareBuilder();
+ result.field5_.Add(values);
+ return this;
+ }
+ public Builder ClearField5() {
+ PrepareBuilder();
+ result.field5_.Clear();
+ return this;
+ }
+
+ public bool HasField59 {
+ get { return result.hasField59; }
+ }
+ public bool Field59 {
+ get { return result.Field59; }
+ set { SetField59(value); }
+ }
+ public Builder SetField59(bool value) {
+ PrepareBuilder();
+ result.hasField59 = true;
+ result.field59_ = value;
+ return this;
+ }
+ public Builder ClearField59() {
+ PrepareBuilder();
+ result.hasField59 = false;
+ result.field59_ = false;
+ return this;
+ }
+
+ public bool HasField7 {
+ get { return result.hasField7; }
+ }
+ public string Field7 {
+ get { return result.Field7; }
+ set { SetField7(value); }
+ }
+ public Builder SetField7(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField7 = true;
+ result.field7_ = value;
+ return this;
+ }
+ public Builder ClearField7() {
+ PrepareBuilder();
+ result.hasField7 = false;
+ result.field7_ = "";
+ return this;
+ }
+
+ public bool HasField16 {
+ get { return result.hasField16; }
+ }
+ public int Field16 {
+ get { return result.Field16; }
+ set { SetField16(value); }
+ }
+ public Builder SetField16(int value) {
+ PrepareBuilder();
+ result.hasField16 = true;
+ result.field16_ = value;
+ return this;
+ }
+ public Builder ClearField16() {
+ PrepareBuilder();
+ result.hasField16 = false;
+ result.field16_ = 0;
+ return this;
+ }
+
+ public bool HasField130 {
+ get { return result.hasField130; }
+ }
+ public int Field130 {
+ get { return result.Field130; }
+ set { SetField130(value); }
+ }
+ public Builder SetField130(int value) {
+ PrepareBuilder();
+ result.hasField130 = true;
+ result.field130_ = value;
+ return this;
+ }
+ public Builder ClearField130() {
+ PrepareBuilder();
+ result.hasField130 = false;
+ result.field130_ = 0;
+ return this;
+ }
+
+ public bool HasField12 {
+ get { return result.hasField12; }
+ }
+ public bool Field12 {
+ get { return result.Field12; }
+ set { SetField12(value); }
+ }
+ public Builder SetField12(bool value) {
+ PrepareBuilder();
+ result.hasField12 = true;
+ result.field12_ = value;
+ return this;
+ }
+ public Builder ClearField12() {
+ PrepareBuilder();
+ result.hasField12 = false;
+ result.field12_ = true;
+ return this;
+ }
+
+ public bool HasField17 {
+ get { return result.hasField17; }
+ }
+ public bool Field17 {
+ get { return result.Field17; }
+ set { SetField17(value); }
+ }
+ public Builder SetField17(bool value) {
+ PrepareBuilder();
+ result.hasField17 = true;
+ result.field17_ = value;
+ return this;
+ }
+ public Builder ClearField17() {
+ PrepareBuilder();
+ result.hasField17 = false;
+ result.field17_ = true;
+ return this;
+ }
+
+ public bool HasField13 {
+ get { return result.hasField13; }
+ }
+ public bool Field13 {
+ get { return result.Field13; }
+ set { SetField13(value); }
+ }
+ public Builder SetField13(bool value) {
+ PrepareBuilder();
+ result.hasField13 = true;
+ result.field13_ = value;
+ return this;
+ }
+ public Builder ClearField13() {
+ PrepareBuilder();
+ result.hasField13 = false;
+ result.field13_ = true;
+ return this;
+ }
+
+ public bool HasField14 {
+ get { return result.hasField14; }
+ }
+ public bool Field14 {
+ get { return result.Field14; }
+ set { SetField14(value); }
+ }
+ public Builder SetField14(bool value) {
+ PrepareBuilder();
+ result.hasField14 = true;
+ result.field14_ = value;
+ return this;
+ }
+ public Builder ClearField14() {
+ PrepareBuilder();
+ result.hasField14 = false;
+ result.field14_ = true;
+ return this;
+ }
+
+ public bool HasField104 {
+ get { return result.hasField104; }
+ }
+ public int Field104 {
+ get { return result.Field104; }
+ set { SetField104(value); }
+ }
+ public Builder SetField104(int value) {
+ PrepareBuilder();
+ result.hasField104 = true;
+ result.field104_ = value;
+ return this;
+ }
+ public Builder ClearField104() {
+ PrepareBuilder();
+ result.hasField104 = false;
+ result.field104_ = 0;
+ return this;
+ }
+
+ public bool HasField100 {
+ get { return result.hasField100; }
+ }
+ public int Field100 {
+ get { return result.Field100; }
+ set { SetField100(value); }
+ }
+ public Builder SetField100(int value) {
+ PrepareBuilder();
+ result.hasField100 = true;
+ result.field100_ = value;
+ return this;
+ }
+ public Builder ClearField100() {
+ PrepareBuilder();
+ result.hasField100 = false;
+ result.field100_ = 0;
+ return this;
+ }
+
+ public bool HasField101 {
+ get { return result.hasField101; }
+ }
+ public int Field101 {
+ get { return result.Field101; }
+ set { SetField101(value); }
+ }
+ public Builder SetField101(int value) {
+ PrepareBuilder();
+ result.hasField101 = true;
+ result.field101_ = value;
+ return this;
+ }
+ public Builder ClearField101() {
+ PrepareBuilder();
+ result.hasField101 = false;
+ result.field101_ = 0;
+ return this;
+ }
+
+ public bool HasField102 {
+ get { return result.hasField102; }
+ }
+ public string Field102 {
+ get { return result.Field102; }
+ set { SetField102(value); }
+ }
+ public Builder SetField102(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField102 = true;
+ result.field102_ = value;
+ return this;
+ }
+ public Builder ClearField102() {
+ PrepareBuilder();
+ result.hasField102 = false;
+ result.field102_ = "";
+ return this;
+ }
+
+ public bool HasField103 {
+ get { return result.hasField103; }
+ }
+ public string Field103 {
+ get { return result.Field103; }
+ set { SetField103(value); }
+ }
+ public Builder SetField103(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField103 = true;
+ result.field103_ = value;
+ return this;
+ }
+ public Builder ClearField103() {
+ PrepareBuilder();
+ result.hasField103 = false;
+ result.field103_ = "";
+ return this;
+ }
+
+ public bool HasField29 {
+ get { return result.hasField29; }
+ }
+ public int Field29 {
+ get { return result.Field29; }
+ set { SetField29(value); }
+ }
+ public Builder SetField29(int value) {
+ PrepareBuilder();
+ result.hasField29 = true;
+ result.field29_ = value;
+ return this;
+ }
+ public Builder ClearField29() {
+ PrepareBuilder();
+ result.hasField29 = false;
+ result.field29_ = 0;
+ return this;
+ }
+
+ public bool HasField30 {
+ get { return result.hasField30; }
+ }
+ public bool Field30 {
+ get { return result.Field30; }
+ set { SetField30(value); }
+ }
+ public Builder SetField30(bool value) {
+ PrepareBuilder();
+ result.hasField30 = true;
+ result.field30_ = value;
+ return this;
+ }
+ public Builder ClearField30() {
+ PrepareBuilder();
+ result.hasField30 = false;
+ result.field30_ = false;
+ return this;
+ }
+
+ public bool HasField60 {
+ get { return result.hasField60; }
+ }
+ public int Field60 {
+ get { return result.Field60; }
+ set { SetField60(value); }
+ }
+ public Builder SetField60(int value) {
+ PrepareBuilder();
+ result.hasField60 = true;
+ result.field60_ = value;
+ return this;
+ }
+ public Builder ClearField60() {
+ PrepareBuilder();
+ result.hasField60 = false;
+ result.field60_ = -1;
+ return this;
+ }
+
+ public bool HasField271 {
+ get { return result.hasField271; }
+ }
+ public int Field271 {
+ get { return result.Field271; }
+ set { SetField271(value); }
+ }
+ public Builder SetField271(int value) {
+ PrepareBuilder();
+ result.hasField271 = true;
+ result.field271_ = value;
+ return this;
+ }
+ public Builder ClearField271() {
+ PrepareBuilder();
+ result.hasField271 = false;
+ result.field271_ = -1;
+ return this;
+ }
+
+ public bool HasField272 {
+ get { return result.hasField272; }
+ }
+ public int Field272 {
+ get { return result.Field272; }
+ set { SetField272(value); }
+ }
+ public Builder SetField272(int value) {
+ PrepareBuilder();
+ result.hasField272 = true;
+ result.field272_ = value;
+ return this;
+ }
+ public Builder ClearField272() {
+ PrepareBuilder();
+ result.hasField272 = false;
+ result.field272_ = -1;
+ return this;
+ }
+
+ public bool HasField150 {
+ get { return result.hasField150; }
+ }
+ public int Field150 {
+ get { return result.Field150; }
+ set { SetField150(value); }
+ }
+ public Builder SetField150(int value) {
+ PrepareBuilder();
+ result.hasField150 = true;
+ result.field150_ = value;
+ return this;
+ }
+ public Builder ClearField150() {
+ PrepareBuilder();
+ result.hasField150 = false;
+ result.field150_ = 0;
+ return this;
+ }
+
+ public bool HasField23 {
+ get { return result.hasField23; }
+ }
+ public int Field23 {
+ get { return result.Field23; }
+ set { SetField23(value); }
+ }
+ public Builder SetField23(int value) {
+ PrepareBuilder();
+ result.hasField23 = true;
+ result.field23_ = value;
+ return this;
+ }
+ public Builder ClearField23() {
+ PrepareBuilder();
+ result.hasField23 = false;
+ result.field23_ = 0;
+ return this;
+ }
+
+ public bool HasField24 {
+ get { return result.hasField24; }
+ }
+ public bool Field24 {
+ get { return result.Field24; }
+ set { SetField24(value); }
+ }
+ public Builder SetField24(bool value) {
+ PrepareBuilder();
+ result.hasField24 = true;
+ result.field24_ = value;
+ return this;
+ }
+ public Builder ClearField24() {
+ PrepareBuilder();
+ result.hasField24 = false;
+ result.field24_ = false;
+ return this;
+ }
+
+ public bool HasField25 {
+ get { return result.hasField25; }
+ }
+ public int Field25 {
+ get { return result.Field25; }
+ set { SetField25(value); }
+ }
+ public Builder SetField25(int value) {
+ PrepareBuilder();
+ result.hasField25 = true;
+ result.field25_ = value;
+ return this;
+ }
+ public Builder ClearField25() {
+ PrepareBuilder();
+ result.hasField25 = false;
+ result.field25_ = 0;
+ return this;
+ }
+
+ public bool HasField15 {
+ get { return result.hasField15; }
+ }
+ public global::Google.ProtocolBuffers.ProtoBench.SpeedMessage1SubMessage Field15 {
+ get { return result.Field15; }
+ set { SetField15(value); }
+ }
+ public Builder SetField15(global::Google.ProtocolBuffers.ProtoBench.SpeedMessage1SubMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField15 = true;
+ result.field15_ = value;
+ return this;
+ }
+ public Builder SetField15(global::Google.ProtocolBuffers.ProtoBench.SpeedMessage1SubMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasField15 = true;
+ result.field15_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeField15(global::Google.ProtocolBuffers.ProtoBench.SpeedMessage1SubMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasField15 &&
+ result.field15_ != global::Google.ProtocolBuffers.ProtoBench.SpeedMessage1SubMessage.DefaultInstance) {
+ result.field15_ = global::Google.ProtocolBuffers.ProtoBench.SpeedMessage1SubMessage.CreateBuilder(result.field15_).MergeFrom(value).BuildPartial();
+ } else {
+ result.field15_ = value;
+ }
+ result.hasField15 = true;
+ return this;
+ }
+ public Builder ClearField15() {
+ PrepareBuilder();
+ result.hasField15 = false;
+ result.field15_ = null;
+ return this;
+ }
+
+ public bool HasField78 {
+ get { return result.hasField78; }
+ }
+ public bool Field78 {
+ get { return result.Field78; }
+ set { SetField78(value); }
+ }
+ public Builder SetField78(bool value) {
+ PrepareBuilder();
+ result.hasField78 = true;
+ result.field78_ = value;
+ return this;
+ }
+ public Builder ClearField78() {
+ PrepareBuilder();
+ result.hasField78 = false;
+ result.field78_ = false;
+ return this;
+ }
+
+ public bool HasField67 {
+ get { return result.hasField67; }
+ }
+ public int Field67 {
+ get { return result.Field67; }
+ set { SetField67(value); }
+ }
+ public Builder SetField67(int value) {
+ PrepareBuilder();
+ result.hasField67 = true;
+ result.field67_ = value;
+ return this;
+ }
+ public Builder ClearField67() {
+ PrepareBuilder();
+ result.hasField67 = false;
+ result.field67_ = 0;
+ return this;
+ }
+
+ public bool HasField68 {
+ get { return result.hasField68; }
+ }
+ public int Field68 {
+ get { return result.Field68; }
+ set { SetField68(value); }
+ }
+ public Builder SetField68(int value) {
+ PrepareBuilder();
+ result.hasField68 = true;
+ result.field68_ = value;
+ return this;
+ }
+ public Builder ClearField68() {
+ PrepareBuilder();
+ result.hasField68 = false;
+ result.field68_ = 0;
+ return this;
+ }
+
+ public bool HasField128 {
+ get { return result.hasField128; }
+ }
+ public int Field128 {
+ get { return result.Field128; }
+ set { SetField128(value); }
+ }
+ public Builder SetField128(int value) {
+ PrepareBuilder();
+ result.hasField128 = true;
+ result.field128_ = value;
+ return this;
+ }
+ public Builder ClearField128() {
+ PrepareBuilder();
+ result.hasField128 = false;
+ result.field128_ = 0;
+ return this;
+ }
+
+ public bool HasField129 {
+ get { return result.hasField129; }
+ }
+ public string Field129 {
+ get { return result.Field129; }
+ set { SetField129(value); }
+ }
+ public Builder SetField129(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField129 = true;
+ result.field129_ = value;
+ return this;
+ }
+ public Builder ClearField129() {
+ PrepareBuilder();
+ result.hasField129 = false;
+ result.field129_ = "xxxxxxxxxxxxxxxxxxxxx";
+ return this;
+ }
+
+ public bool HasField131 {
+ get { return result.hasField131; }
+ }
+ public int Field131 {
+ get { return result.Field131; }
+ set { SetField131(value); }
+ }
+ public Builder SetField131(int value) {
+ PrepareBuilder();
+ result.hasField131 = true;
+ result.field131_ = value;
+ return this;
+ }
+ public Builder ClearField131() {
+ PrepareBuilder();
+ result.hasField131 = false;
+ result.field131_ = 0;
+ return this;
+ }
+ }
+ static SpeedMessage1() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.ProtoBench.GoogleSpeedProtoFile.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class SpeedMessage1SubMessage : pb::GeneratedMessage {
+ private SpeedMessage1SubMessage() { }
+ private static readonly SpeedMessage1SubMessage defaultInstance = new SpeedMessage1SubMessage().MakeReadOnly();
+ private static readonly string[] _speedMessage1SubMessageFieldNames = new string[] { "field1", "field12", "field13", "field14", "field15", "field16", "field19", "field2", "field20", "field203", "field204", "field205", "field206", "field207", "field21", "field22", "field23", "field28", "field3", "field300" };
+ private static readonly uint[] _speedMessage1SubMessageFieldTags = new uint[] { 8, 96, 104, 112, 122, 128, 152, 16, 160, 1629, 1632, 1642, 1648, 1656, 169, 176, 184, 224, 24, 2400 };
+ public static SpeedMessage1SubMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override SpeedMessage1SubMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override SpeedMessage1SubMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.ProtoBench.GoogleSpeedProtoFile.internal__static_benchmarks_SpeedMessage1SubMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.ProtoBench.GoogleSpeedProtoFile.internal__static_benchmarks_SpeedMessage1SubMessage__FieldAccessorTable; }
+ }
+
+ public const int Field1FieldNumber = 1;
+ private bool hasField1;
+ private int field1_;
+ public bool HasField1 {
+ get { return hasField1; }
+ }
+ public int Field1 {
+ get { return field1_; }
+ }
+
+ public const int Field2FieldNumber = 2;
+ private bool hasField2;
+ private int field2_;
+ public bool HasField2 {
+ get { return hasField2; }
+ }
+ public int Field2 {
+ get { return field2_; }
+ }
+
+ public const int Field3FieldNumber = 3;
+ private bool hasField3;
+ private int field3_;
+ public bool HasField3 {
+ get { return hasField3; }
+ }
+ public int Field3 {
+ get { return field3_; }
+ }
+
+ public const int Field15FieldNumber = 15;
+ private bool hasField15;
+ private string field15_ = "";
+ public bool HasField15 {
+ get { return hasField15; }
+ }
+ public string Field15 {
+ get { return field15_; }
+ }
+
+ public const int Field12FieldNumber = 12;
+ private bool hasField12;
+ private bool field12_ = true;
+ public bool HasField12 {
+ get { return hasField12; }
+ }
+ public bool Field12 {
+ get { return field12_; }
+ }
+
+ public const int Field13FieldNumber = 13;
+ private bool hasField13;
+ private long field13_;
+ public bool HasField13 {
+ get { return hasField13; }
+ }
+ public long Field13 {
+ get { return field13_; }
+ }
+
+ public const int Field14FieldNumber = 14;
+ private bool hasField14;
+ private long field14_;
+ public bool HasField14 {
+ get { return hasField14; }
+ }
+ public long Field14 {
+ get { return field14_; }
+ }
+
+ public const int Field16FieldNumber = 16;
+ private bool hasField16;
+ private int field16_;
+ public bool HasField16 {
+ get { return hasField16; }
+ }
+ public int Field16 {
+ get { return field16_; }
+ }
+
+ public const int Field19FieldNumber = 19;
+ private bool hasField19;
+ private int field19_ = 2;
+ public bool HasField19 {
+ get { return hasField19; }
+ }
+ public int Field19 {
+ get { return field19_; }
+ }
+
+ public const int Field20FieldNumber = 20;
+ private bool hasField20;
+ private bool field20_ = true;
+ public bool HasField20 {
+ get { return hasField20; }
+ }
+ public bool Field20 {
+ get { return field20_; }
+ }
+
+ public const int Field28FieldNumber = 28;
+ private bool hasField28;
+ private bool field28_ = true;
+ public bool HasField28 {
+ get { return hasField28; }
+ }
+ public bool Field28 {
+ get { return field28_; }
+ }
+
+ public const int Field21FieldNumber = 21;
+ private bool hasField21;
+ private ulong field21_;
+ public bool HasField21 {
+ get { return hasField21; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong Field21 {
+ get { return field21_; }
+ }
+
+ public const int Field22FieldNumber = 22;
+ private bool hasField22;
+ private int field22_;
+ public bool HasField22 {
+ get { return hasField22; }
+ }
+ public int Field22 {
+ get { return field22_; }
+ }
+
+ public const int Field23FieldNumber = 23;
+ private bool hasField23;
+ private bool field23_;
+ public bool HasField23 {
+ get { return hasField23; }
+ }
+ public bool Field23 {
+ get { return field23_; }
+ }
+
+ public const int Field206FieldNumber = 206;
+ private bool hasField206;
+ private bool field206_;
+ public bool HasField206 {
+ get { return hasField206; }
+ }
+ public bool Field206 {
+ get { return field206_; }
+ }
+
+ public const int Field203FieldNumber = 203;
+ private bool hasField203;
+ private uint field203_;
+ public bool HasField203 {
+ get { return hasField203; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint Field203 {
+ get { return field203_; }
+ }
+
+ public const int Field204FieldNumber = 204;
+ private bool hasField204;
+ private int field204_;
+ public bool HasField204 {
+ get { return hasField204; }
+ }
+ public int Field204 {
+ get { return field204_; }
+ }
+
+ public const int Field205FieldNumber = 205;
+ private bool hasField205;
+ private string field205_ = "";
+ public bool HasField205 {
+ get { return hasField205; }
+ }
+ public string Field205 {
+ get { return field205_; }
+ }
+
+ public const int Field207FieldNumber = 207;
+ private bool hasField207;
+ private ulong field207_;
+ public bool HasField207 {
+ get { return hasField207; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong Field207 {
+ get { return field207_; }
+ }
+
+ public const int Field300FieldNumber = 300;
+ private bool hasField300;
+ private ulong field300_;
+ public bool HasField300 {
+ get { return hasField300; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong Field300 {
+ get { return field300_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _speedMessage1SubMessageFieldNames;
+ if (hasField1) {
+ output.WriteInt32(1, field_names[0], Field1);
+ }
+ if (hasField2) {
+ output.WriteInt32(2, field_names[7], Field2);
+ }
+ if (hasField3) {
+ output.WriteInt32(3, field_names[18], Field3);
+ }
+ if (hasField12) {
+ output.WriteBool(12, field_names[1], Field12);
+ }
+ if (hasField13) {
+ output.WriteInt64(13, field_names[2], Field13);
+ }
+ if (hasField14) {
+ output.WriteInt64(14, field_names[3], Field14);
+ }
+ if (hasField15) {
+ output.WriteString(15, field_names[4], Field15);
+ }
+ if (hasField16) {
+ output.WriteInt32(16, field_names[5], Field16);
+ }
+ if (hasField19) {
+ output.WriteInt32(19, field_names[6], Field19);
+ }
+ if (hasField20) {
+ output.WriteBool(20, field_names[8], Field20);
+ }
+ if (hasField21) {
+ output.WriteFixed64(21, field_names[14], Field21);
+ }
+ if (hasField22) {
+ output.WriteInt32(22, field_names[15], Field22);
+ }
+ if (hasField23) {
+ output.WriteBool(23, field_names[16], Field23);
+ }
+ if (hasField28) {
+ output.WriteBool(28, field_names[17], Field28);
+ }
+ if (hasField203) {
+ output.WriteFixed32(203, field_names[9], Field203);
+ }
+ if (hasField204) {
+ output.WriteInt32(204, field_names[10], Field204);
+ }
+ if (hasField205) {
+ output.WriteString(205, field_names[11], Field205);
+ }
+ if (hasField206) {
+ output.WriteBool(206, field_names[12], Field206);
+ }
+ if (hasField207) {
+ output.WriteUInt64(207, field_names[13], Field207);
+ }
+ if (hasField300) {
+ output.WriteUInt64(300, field_names[19], Field300);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasField1) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, Field1);
+ }
+ if (hasField2) {
+ size += pb::CodedOutputStream.ComputeInt32Size(2, Field2);
+ }
+ if (hasField3) {
+ size += pb::CodedOutputStream.ComputeInt32Size(3, Field3);
+ }
+ if (hasField15) {
+ size += pb::CodedOutputStream.ComputeStringSize(15, Field15);
+ }
+ if (hasField12) {
+ size += pb::CodedOutputStream.ComputeBoolSize(12, Field12);
+ }
+ if (hasField13) {
+ size += pb::CodedOutputStream.ComputeInt64Size(13, Field13);
+ }
+ if (hasField14) {
+ size += pb::CodedOutputStream.ComputeInt64Size(14, Field14);
+ }
+ if (hasField16) {
+ size += pb::CodedOutputStream.ComputeInt32Size(16, Field16);
+ }
+ if (hasField19) {
+ size += pb::CodedOutputStream.ComputeInt32Size(19, Field19);
+ }
+ if (hasField20) {
+ size += pb::CodedOutputStream.ComputeBoolSize(20, Field20);
+ }
+ if (hasField28) {
+ size += pb::CodedOutputStream.ComputeBoolSize(28, Field28);
+ }
+ if (hasField21) {
+ size += pb::CodedOutputStream.ComputeFixed64Size(21, Field21);
+ }
+ if (hasField22) {
+ size += pb::CodedOutputStream.ComputeInt32Size(22, Field22);
+ }
+ if (hasField23) {
+ size += pb::CodedOutputStream.ComputeBoolSize(23, Field23);
+ }
+ if (hasField206) {
+ size += pb::CodedOutputStream.ComputeBoolSize(206, Field206);
+ }
+ if (hasField203) {
+ size += pb::CodedOutputStream.ComputeFixed32Size(203, Field203);
+ }
+ if (hasField204) {
+ size += pb::CodedOutputStream.ComputeInt32Size(204, Field204);
+ }
+ if (hasField205) {
+ size += pb::CodedOutputStream.ComputeStringSize(205, Field205);
+ }
+ if (hasField207) {
+ size += pb::CodedOutputStream.ComputeUInt64Size(207, Field207);
+ }
+ if (hasField300) {
+ size += pb::CodedOutputStream.ComputeUInt64Size(300, Field300);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static SpeedMessage1SubMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static SpeedMessage1SubMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static SpeedMessage1SubMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static SpeedMessage1SubMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static SpeedMessage1SubMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static SpeedMessage1SubMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static SpeedMessage1SubMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static SpeedMessage1SubMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static SpeedMessage1SubMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static SpeedMessage1SubMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private SpeedMessage1SubMessage MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(SpeedMessage1SubMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(SpeedMessage1SubMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private SpeedMessage1SubMessage result;
+
+ private SpeedMessage1SubMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ SpeedMessage1SubMessage original = result;
+ result = new SpeedMessage1SubMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override SpeedMessage1SubMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.ProtoBench.SpeedMessage1SubMessage.Descriptor; }
+ }
+
+ public override SpeedMessage1SubMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.ProtoBench.SpeedMessage1SubMessage.DefaultInstance; }
+ }
+
+ public override SpeedMessage1SubMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is SpeedMessage1SubMessage) {
+ return MergeFrom((SpeedMessage1SubMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(SpeedMessage1SubMessage other) {
+ if (other == global::Google.ProtocolBuffers.ProtoBench.SpeedMessage1SubMessage.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasField1) {
+ Field1 = other.Field1;
+ }
+ if (other.HasField2) {
+ Field2 = other.Field2;
+ }
+ if (other.HasField3) {
+ Field3 = other.Field3;
+ }
+ if (other.HasField15) {
+ Field15 = other.Field15;
+ }
+ if (other.HasField12) {
+ Field12 = other.Field12;
+ }
+ if (other.HasField13) {
+ Field13 = other.Field13;
+ }
+ if (other.HasField14) {
+ Field14 = other.Field14;
+ }
+ if (other.HasField16) {
+ Field16 = other.Field16;
+ }
+ if (other.HasField19) {
+ Field19 = other.Field19;
+ }
+ if (other.HasField20) {
+ Field20 = other.Field20;
+ }
+ if (other.HasField28) {
+ Field28 = other.Field28;
+ }
+ if (other.HasField21) {
+ Field21 = other.Field21;
+ }
+ if (other.HasField22) {
+ Field22 = other.Field22;
+ }
+ if (other.HasField23) {
+ Field23 = other.Field23;
+ }
+ if (other.HasField206) {
+ Field206 = other.Field206;
+ }
+ if (other.HasField203) {
+ Field203 = other.Field203;
+ }
+ if (other.HasField204) {
+ Field204 = other.Field204;
+ }
+ if (other.HasField205) {
+ Field205 = other.Field205;
+ }
+ if (other.HasField207) {
+ Field207 = other.Field207;
+ }
+ if (other.HasField300) {
+ Field300 = other.Field300;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_speedMessage1SubMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _speedMessage1SubMessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasField1 = input.ReadInt32(ref result.field1_);
+ break;
+ }
+ case 16: {
+ result.hasField2 = input.ReadInt32(ref result.field2_);
+ break;
+ }
+ case 24: {
+ result.hasField3 = input.ReadInt32(ref result.field3_);
+ break;
+ }
+ case 96: {
+ result.hasField12 = input.ReadBool(ref result.field12_);
+ break;
+ }
+ case 104: {
+ result.hasField13 = input.ReadInt64(ref result.field13_);
+ break;
+ }
+ case 112: {
+ result.hasField14 = input.ReadInt64(ref result.field14_);
+ break;
+ }
+ case 122: {
+ result.hasField15 = input.ReadString(ref result.field15_);
+ break;
+ }
+ case 128: {
+ result.hasField16 = input.ReadInt32(ref result.field16_);
+ break;
+ }
+ case 152: {
+ result.hasField19 = input.ReadInt32(ref result.field19_);
+ break;
+ }
+ case 160: {
+ result.hasField20 = input.ReadBool(ref result.field20_);
+ break;
+ }
+ case 169: {
+ result.hasField21 = input.ReadFixed64(ref result.field21_);
+ break;
+ }
+ case 176: {
+ result.hasField22 = input.ReadInt32(ref result.field22_);
+ break;
+ }
+ case 184: {
+ result.hasField23 = input.ReadBool(ref result.field23_);
+ break;
+ }
+ case 224: {
+ result.hasField28 = input.ReadBool(ref result.field28_);
+ break;
+ }
+ case 1629: {
+ result.hasField203 = input.ReadFixed32(ref result.field203_);
+ break;
+ }
+ case 1632: {
+ result.hasField204 = input.ReadInt32(ref result.field204_);
+ break;
+ }
+ case 1642: {
+ result.hasField205 = input.ReadString(ref result.field205_);
+ break;
+ }
+ case 1648: {
+ result.hasField206 = input.ReadBool(ref result.field206_);
+ break;
+ }
+ case 1656: {
+ result.hasField207 = input.ReadUInt64(ref result.field207_);
+ break;
+ }
+ case 2400: {
+ result.hasField300 = input.ReadUInt64(ref result.field300_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasField1 {
+ get { return result.hasField1; }
+ }
+ public int Field1 {
+ get { return result.Field1; }
+ set { SetField1(value); }
+ }
+ public Builder SetField1(int value) {
+ PrepareBuilder();
+ result.hasField1 = true;
+ result.field1_ = value;
+ return this;
+ }
+ public Builder ClearField1() {
+ PrepareBuilder();
+ result.hasField1 = false;
+ result.field1_ = 0;
+ return this;
+ }
+
+ public bool HasField2 {
+ get { return result.hasField2; }
+ }
+ public int Field2 {
+ get { return result.Field2; }
+ set { SetField2(value); }
+ }
+ public Builder SetField2(int value) {
+ PrepareBuilder();
+ result.hasField2 = true;
+ result.field2_ = value;
+ return this;
+ }
+ public Builder ClearField2() {
+ PrepareBuilder();
+ result.hasField2 = false;
+ result.field2_ = 0;
+ return this;
+ }
+
+ public bool HasField3 {
+ get { return result.hasField3; }
+ }
+ public int Field3 {
+ get { return result.Field3; }
+ set { SetField3(value); }
+ }
+ public Builder SetField3(int value) {
+ PrepareBuilder();
+ result.hasField3 = true;
+ result.field3_ = value;
+ return this;
+ }
+ public Builder ClearField3() {
+ PrepareBuilder();
+ result.hasField3 = false;
+ result.field3_ = 0;
+ return this;
+ }
+
+ public bool HasField15 {
+ get { return result.hasField15; }
+ }
+ public string Field15 {
+ get { return result.Field15; }
+ set { SetField15(value); }
+ }
+ public Builder SetField15(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField15 = true;
+ result.field15_ = value;
+ return this;
+ }
+ public Builder ClearField15() {
+ PrepareBuilder();
+ result.hasField15 = false;
+ result.field15_ = "";
+ return this;
+ }
+
+ public bool HasField12 {
+ get { return result.hasField12; }
+ }
+ public bool Field12 {
+ get { return result.Field12; }
+ set { SetField12(value); }
+ }
+ public Builder SetField12(bool value) {
+ PrepareBuilder();
+ result.hasField12 = true;
+ result.field12_ = value;
+ return this;
+ }
+ public Builder ClearField12() {
+ PrepareBuilder();
+ result.hasField12 = false;
+ result.field12_ = true;
+ return this;
+ }
+
+ public bool HasField13 {
+ get { return result.hasField13; }
+ }
+ public long Field13 {
+ get { return result.Field13; }
+ set { SetField13(value); }
+ }
+ public Builder SetField13(long value) {
+ PrepareBuilder();
+ result.hasField13 = true;
+ result.field13_ = value;
+ return this;
+ }
+ public Builder ClearField13() {
+ PrepareBuilder();
+ result.hasField13 = false;
+ result.field13_ = 0L;
+ return this;
+ }
+
+ public bool HasField14 {
+ get { return result.hasField14; }
+ }
+ public long Field14 {
+ get { return result.Field14; }
+ set { SetField14(value); }
+ }
+ public Builder SetField14(long value) {
+ PrepareBuilder();
+ result.hasField14 = true;
+ result.field14_ = value;
+ return this;
+ }
+ public Builder ClearField14() {
+ PrepareBuilder();
+ result.hasField14 = false;
+ result.field14_ = 0L;
+ return this;
+ }
+
+ public bool HasField16 {
+ get { return result.hasField16; }
+ }
+ public int Field16 {
+ get { return result.Field16; }
+ set { SetField16(value); }
+ }
+ public Builder SetField16(int value) {
+ PrepareBuilder();
+ result.hasField16 = true;
+ result.field16_ = value;
+ return this;
+ }
+ public Builder ClearField16() {
+ PrepareBuilder();
+ result.hasField16 = false;
+ result.field16_ = 0;
+ return this;
+ }
+
+ public bool HasField19 {
+ get { return result.hasField19; }
+ }
+ public int Field19 {
+ get { return result.Field19; }
+ set { SetField19(value); }
+ }
+ public Builder SetField19(int value) {
+ PrepareBuilder();
+ result.hasField19 = true;
+ result.field19_ = value;
+ return this;
+ }
+ public Builder ClearField19() {
+ PrepareBuilder();
+ result.hasField19 = false;
+ result.field19_ = 2;
+ return this;
+ }
+
+ public bool HasField20 {
+ get { return result.hasField20; }
+ }
+ public bool Field20 {
+ get { return result.Field20; }
+ set { SetField20(value); }
+ }
+ public Builder SetField20(bool value) {
+ PrepareBuilder();
+ result.hasField20 = true;
+ result.field20_ = value;
+ return this;
+ }
+ public Builder ClearField20() {
+ PrepareBuilder();
+ result.hasField20 = false;
+ result.field20_ = true;
+ return this;
+ }
+
+ public bool HasField28 {
+ get { return result.hasField28; }
+ }
+ public bool Field28 {
+ get { return result.Field28; }
+ set { SetField28(value); }
+ }
+ public Builder SetField28(bool value) {
+ PrepareBuilder();
+ result.hasField28 = true;
+ result.field28_ = value;
+ return this;
+ }
+ public Builder ClearField28() {
+ PrepareBuilder();
+ result.hasField28 = false;
+ result.field28_ = true;
+ return this;
+ }
+
+ public bool HasField21 {
+ get { return result.hasField21; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong Field21 {
+ get { return result.Field21; }
+ set { SetField21(value); }
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetField21(ulong value) {
+ PrepareBuilder();
+ result.hasField21 = true;
+ result.field21_ = value;
+ return this;
+ }
+ public Builder ClearField21() {
+ PrepareBuilder();
+ result.hasField21 = false;
+ result.field21_ = 0;
+ return this;
+ }
+
+ public bool HasField22 {
+ get { return result.hasField22; }
+ }
+ public int Field22 {
+ get { return result.Field22; }
+ set { SetField22(value); }
+ }
+ public Builder SetField22(int value) {
+ PrepareBuilder();
+ result.hasField22 = true;
+ result.field22_ = value;
+ return this;
+ }
+ public Builder ClearField22() {
+ PrepareBuilder();
+ result.hasField22 = false;
+ result.field22_ = 0;
+ return this;
+ }
+
+ public bool HasField23 {
+ get { return result.hasField23; }
+ }
+ public bool Field23 {
+ get { return result.Field23; }
+ set { SetField23(value); }
+ }
+ public Builder SetField23(bool value) {
+ PrepareBuilder();
+ result.hasField23 = true;
+ result.field23_ = value;
+ return this;
+ }
+ public Builder ClearField23() {
+ PrepareBuilder();
+ result.hasField23 = false;
+ result.field23_ = false;
+ return this;
+ }
+
+ public bool HasField206 {
+ get { return result.hasField206; }
+ }
+ public bool Field206 {
+ get { return result.Field206; }
+ set { SetField206(value); }
+ }
+ public Builder SetField206(bool value) {
+ PrepareBuilder();
+ result.hasField206 = true;
+ result.field206_ = value;
+ return this;
+ }
+ public Builder ClearField206() {
+ PrepareBuilder();
+ result.hasField206 = false;
+ result.field206_ = false;
+ return this;
+ }
+
+ public bool HasField203 {
+ get { return result.hasField203; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint Field203 {
+ get { return result.Field203; }
+ set { SetField203(value); }
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetField203(uint value) {
+ PrepareBuilder();
+ result.hasField203 = true;
+ result.field203_ = value;
+ return this;
+ }
+ public Builder ClearField203() {
+ PrepareBuilder();
+ result.hasField203 = false;
+ result.field203_ = 0;
+ return this;
+ }
+
+ public bool HasField204 {
+ get { return result.hasField204; }
+ }
+ public int Field204 {
+ get { return result.Field204; }
+ set { SetField204(value); }
+ }
+ public Builder SetField204(int value) {
+ PrepareBuilder();
+ result.hasField204 = true;
+ result.field204_ = value;
+ return this;
+ }
+ public Builder ClearField204() {
+ PrepareBuilder();
+ result.hasField204 = false;
+ result.field204_ = 0;
+ return this;
+ }
+
+ public bool HasField205 {
+ get { return result.hasField205; }
+ }
+ public string Field205 {
+ get { return result.Field205; }
+ set { SetField205(value); }
+ }
+ public Builder SetField205(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField205 = true;
+ result.field205_ = value;
+ return this;
+ }
+ public Builder ClearField205() {
+ PrepareBuilder();
+ result.hasField205 = false;
+ result.field205_ = "";
+ return this;
+ }
+
+ public bool HasField207 {
+ get { return result.hasField207; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong Field207 {
+ get { return result.Field207; }
+ set { SetField207(value); }
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetField207(ulong value) {
+ PrepareBuilder();
+ result.hasField207 = true;
+ result.field207_ = value;
+ return this;
+ }
+ public Builder ClearField207() {
+ PrepareBuilder();
+ result.hasField207 = false;
+ result.field207_ = 0UL;
+ return this;
+ }
+
+ public bool HasField300 {
+ get { return result.hasField300; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong Field300 {
+ get { return result.Field300; }
+ set { SetField300(value); }
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetField300(ulong value) {
+ PrepareBuilder();
+ result.hasField300 = true;
+ result.field300_ = value;
+ return this;
+ }
+ public Builder ClearField300() {
+ PrepareBuilder();
+ result.hasField300 = false;
+ result.field300_ = 0UL;
+ return this;
+ }
+ }
+ static SpeedMessage1SubMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.ProtoBench.GoogleSpeedProtoFile.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class SpeedMessage2 : pb::GeneratedMessage {
+ private SpeedMessage2() { }
+ private static readonly SpeedMessage2 defaultInstance = new SpeedMessage2().MakeReadOnly();
+ private static readonly string[] _speedMessage2FieldNames = new string[] { "field1", "field109", "field127", "field128", "field129", "field130", "field131", "field2", "field205", "field206", "field21", "field210", "field211", "field212", "field213", "field216", "field217", "field218", "field220", "field221", "field222", "field25", "field3", "field30", "field4", "field6", "field63", "field71", "field75", "group1" };
+ private static readonly uint[] _speedMessage2FieldTags = new uint[] { 10, 872, 1018, 1026, 1032, 1040, 1048, 18, 1640, 1648, 168, 1680, 1688, 1696, 1704, 1728, 1736, 1744, 1760, 1768, 1781, 205, 24, 240, 32, 50, 504, 568, 600, 83 };
+ public static SpeedMessage2 DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override SpeedMessage2 DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override SpeedMessage2 ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.ProtoBench.GoogleSpeedProtoFile.internal__static_benchmarks_SpeedMessage2__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.ProtoBench.GoogleSpeedProtoFile.internal__static_benchmarks_SpeedMessage2__FieldAccessorTable; }
+ }
+
+ #region Nested types
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class Types {
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Group1 : pb::GeneratedMessage {
+ private Group1() { }
+ private static readonly Group1 defaultInstance = new Group1().MakeReadOnly();
+ private static readonly string[] _group1FieldNames = new string[] { "field11", "field12", "field13", "field14", "field15", "field16", "field20", "field22", "field24", "field26", "field27", "field28", "field29", "field31", "field5", "field73" };
+ private static readonly uint[] _group1FieldTags = new uint[] { 93, 98, 106, 114, 120, 130, 160, 178, 194, 213, 218, 224, 234, 250, 40, 584 };
+ public static Group1 DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override Group1 DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override Group1 ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.ProtoBench.GoogleSpeedProtoFile.internal__static_benchmarks_SpeedMessage2_Group1__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.ProtoBench.GoogleSpeedProtoFile.internal__static_benchmarks_SpeedMessage2_Group1__FieldAccessorTable; }
+ }
+
+ public const int Field11FieldNumber = 11;
+ private bool hasField11;
+ private float field11_;
+ public bool HasField11 {
+ get { return hasField11; }
+ }
+ public float Field11 {
+ get { return field11_; }
+ }
+
+ public const int Field26FieldNumber = 26;
+ private bool hasField26;
+ private float field26_;
+ public bool HasField26 {
+ get { return hasField26; }
+ }
+ public float Field26 {
+ get { return field26_; }
+ }
+
+ public const int Field12FieldNumber = 12;
+ private bool hasField12;
+ private string field12_ = "";
+ public bool HasField12 {
+ get { return hasField12; }
+ }
+ public string Field12 {
+ get { return field12_; }
+ }
+
+ public const int Field13FieldNumber = 13;
+ private bool hasField13;
+ private string field13_ = "";
+ public bool HasField13 {
+ get { return hasField13; }
+ }
+ public string Field13 {
+ get { return field13_; }
+ }
+
+ public const int Field14FieldNumber = 14;
+ private pbc::PopsicleList field14_ = new pbc::PopsicleList();
+ public scg::IList Field14List {
+ get { return pbc::Lists.AsReadOnly(field14_); }
+ }
+ public int Field14Count {
+ get { return field14_.Count; }
+ }
+ public string GetField14(int index) {
+ return field14_[index];
+ }
+
+ public const int Field15FieldNumber = 15;
+ private bool hasField15;
+ private ulong field15_;
+ public bool HasField15 {
+ get { return hasField15; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong Field15 {
+ get { return field15_; }
+ }
+
+ public const int Field5FieldNumber = 5;
+ private bool hasField5;
+ private int field5_;
+ public bool HasField5 {
+ get { return hasField5; }
+ }
+ public int Field5 {
+ get { return field5_; }
+ }
+
+ public const int Field27FieldNumber = 27;
+ private bool hasField27;
+ private string field27_ = "";
+ public bool HasField27 {
+ get { return hasField27; }
+ }
+ public string Field27 {
+ get { return field27_; }
+ }
+
+ public const int Field28FieldNumber = 28;
+ private bool hasField28;
+ private int field28_;
+ public bool HasField28 {
+ get { return hasField28; }
+ }
+ public int Field28 {
+ get { return field28_; }
+ }
+
+ public const int Field29FieldNumber = 29;
+ private bool hasField29;
+ private string field29_ = "";
+ public bool HasField29 {
+ get { return hasField29; }
+ }
+ public string Field29 {
+ get { return field29_; }
+ }
+
+ public const int Field16FieldNumber = 16;
+ private bool hasField16;
+ private string field16_ = "";
+ public bool HasField16 {
+ get { return hasField16; }
+ }
+ public string Field16 {
+ get { return field16_; }
+ }
+
+ public const int Field22FieldNumber = 22;
+ private pbc::PopsicleList field22_ = new pbc::PopsicleList();
+ public scg::IList Field22List {
+ get { return pbc::Lists.AsReadOnly(field22_); }
+ }
+ public int Field22Count {
+ get { return field22_.Count; }
+ }
+ public string GetField22(int index) {
+ return field22_[index];
+ }
+
+ public const int Field73FieldNumber = 73;
+ private pbc::PopsicleList field73_ = new pbc::PopsicleList();
+ public scg::IList Field73List {
+ get { return pbc::Lists.AsReadOnly(field73_); }
+ }
+ public int Field73Count {
+ get { return field73_.Count; }
+ }
+ public int GetField73(int index) {
+ return field73_[index];
+ }
+
+ public const int Field20FieldNumber = 20;
+ private bool hasField20;
+ private int field20_;
+ public bool HasField20 {
+ get { return hasField20; }
+ }
+ public int Field20 {
+ get { return field20_; }
+ }
+
+ public const int Field24FieldNumber = 24;
+ private bool hasField24;
+ private string field24_ = "";
+ public bool HasField24 {
+ get { return hasField24; }
+ }
+ public string Field24 {
+ get { return field24_; }
+ }
+
+ public const int Field31FieldNumber = 31;
+ private bool hasField31;
+ private global::Google.ProtocolBuffers.ProtoBench.SpeedMessage2GroupedMessage field31_;
+ public bool HasField31 {
+ get { return hasField31; }
+ }
+ public global::Google.ProtocolBuffers.ProtoBench.SpeedMessage2GroupedMessage Field31 {
+ get { return field31_ ?? global::Google.ProtocolBuffers.ProtoBench.SpeedMessage2GroupedMessage.DefaultInstance; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!hasField11) return false;
+ if (!hasField15) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _group1FieldNames;
+ if (hasField5) {
+ output.WriteInt32(5, field_names[14], Field5);
+ }
+ if (hasField11) {
+ output.WriteFloat(11, field_names[0], Field11);
+ }
+ if (hasField12) {
+ output.WriteString(12, field_names[1], Field12);
+ }
+ if (hasField13) {
+ output.WriteString(13, field_names[2], Field13);
+ }
+ if (field14_.Count > 0) {
+ output.WriteStringArray(14, field_names[3], field14_);
+ }
+ if (hasField15) {
+ output.WriteUInt64(15, field_names[4], Field15);
+ }
+ if (hasField16) {
+ output.WriteString(16, field_names[5], Field16);
+ }
+ if (hasField20) {
+ output.WriteInt32(20, field_names[6], Field20);
+ }
+ if (field22_.Count > 0) {
+ output.WriteStringArray(22, field_names[7], field22_);
+ }
+ if (hasField24) {
+ output.WriteString(24, field_names[8], Field24);
+ }
+ if (hasField26) {
+ output.WriteFloat(26, field_names[9], Field26);
+ }
+ if (hasField27) {
+ output.WriteString(27, field_names[10], Field27);
+ }
+ if (hasField28) {
+ output.WriteInt32(28, field_names[11], Field28);
+ }
+ if (hasField29) {
+ output.WriteString(29, field_names[12], Field29);
+ }
+ if (hasField31) {
+ output.WriteMessage(31, field_names[13], Field31);
+ }
+ if (field73_.Count > 0) {
+ output.WriteInt32Array(73, field_names[15], field73_);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasField11) {
+ size += pb::CodedOutputStream.ComputeFloatSize(11, Field11);
+ }
+ if (hasField26) {
+ size += pb::CodedOutputStream.ComputeFloatSize(26, Field26);
+ }
+ if (hasField12) {
+ size += pb::CodedOutputStream.ComputeStringSize(12, Field12);
+ }
+ if (hasField13) {
+ size += pb::CodedOutputStream.ComputeStringSize(13, Field13);
+ }
+ {
+ int dataSize = 0;
+ foreach (string element in Field14List) {
+ dataSize += pb::CodedOutputStream.ComputeStringSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 1 * field14_.Count;
+ }
+ if (hasField15) {
+ size += pb::CodedOutputStream.ComputeUInt64Size(15, Field15);
+ }
+ if (hasField5) {
+ size += pb::CodedOutputStream.ComputeInt32Size(5, Field5);
+ }
+ if (hasField27) {
+ size += pb::CodedOutputStream.ComputeStringSize(27, Field27);
+ }
+ if (hasField28) {
+ size += pb::CodedOutputStream.ComputeInt32Size(28, Field28);
+ }
+ if (hasField29) {
+ size += pb::CodedOutputStream.ComputeStringSize(29, Field29);
+ }
+ if (hasField16) {
+ size += pb::CodedOutputStream.ComputeStringSize(16, Field16);
+ }
+ {
+ int dataSize = 0;
+ foreach (string element in Field22List) {
+ dataSize += pb::CodedOutputStream.ComputeStringSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * field22_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (int element in Field73List) {
+ dataSize += pb::CodedOutputStream.ComputeInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * field73_.Count;
+ }
+ if (hasField20) {
+ size += pb::CodedOutputStream.ComputeInt32Size(20, Field20);
+ }
+ if (hasField24) {
+ size += pb::CodedOutputStream.ComputeStringSize(24, Field24);
+ }
+ if (hasField31) {
+ size += pb::CodedOutputStream.ComputeMessageSize(31, Field31);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static Group1 ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Group1 ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Group1 ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Group1 ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Group1 ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Group1 ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Group1 ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static Group1 ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static Group1 ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Group1 ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private Group1 MakeReadOnly() {
+ field14_.MakeReadOnly();
+ field22_.MakeReadOnly();
+ field73_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(Group1 prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(Group1 cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private Group1 result;
+
+ private Group1 PrepareBuilder() {
+ if (resultIsReadOnly) {
+ Group1 original = result;
+ result = new Group1();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override Group1 MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.ProtoBench.SpeedMessage2.Types.Group1.Descriptor; }
+ }
+
+ public override Group1 DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.ProtoBench.SpeedMessage2.Types.Group1.DefaultInstance; }
+ }
+
+ public override Group1 BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is Group1) {
+ return MergeFrom((Group1) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(Group1 other) {
+ if (other == global::Google.ProtocolBuffers.ProtoBench.SpeedMessage2.Types.Group1.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasField11) {
+ Field11 = other.Field11;
+ }
+ if (other.HasField26) {
+ Field26 = other.Field26;
+ }
+ if (other.HasField12) {
+ Field12 = other.Field12;
+ }
+ if (other.HasField13) {
+ Field13 = other.Field13;
+ }
+ if (other.field14_.Count != 0) {
+ result.field14_.Add(other.field14_);
+ }
+ if (other.HasField15) {
+ Field15 = other.Field15;
+ }
+ if (other.HasField5) {
+ Field5 = other.Field5;
+ }
+ if (other.HasField27) {
+ Field27 = other.Field27;
+ }
+ if (other.HasField28) {
+ Field28 = other.Field28;
+ }
+ if (other.HasField29) {
+ Field29 = other.Field29;
+ }
+ if (other.HasField16) {
+ Field16 = other.Field16;
+ }
+ if (other.field22_.Count != 0) {
+ result.field22_.Add(other.field22_);
+ }
+ if (other.field73_.Count != 0) {
+ result.field73_.Add(other.field73_);
+ }
+ if (other.HasField20) {
+ Field20 = other.Field20;
+ }
+ if (other.HasField24) {
+ Field24 = other.Field24;
+ }
+ if (other.HasField31) {
+ MergeField31(other.Field31);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_group1FieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _group1FieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 40: {
+ result.hasField5 = input.ReadInt32(ref result.field5_);
+ break;
+ }
+ case 93: {
+ result.hasField11 = input.ReadFloat(ref result.field11_);
+ break;
+ }
+ case 98: {
+ result.hasField12 = input.ReadString(ref result.field12_);
+ break;
+ }
+ case 106: {
+ result.hasField13 = input.ReadString(ref result.field13_);
+ break;
+ }
+ case 114: {
+ input.ReadStringArray(tag, field_name, result.field14_);
+ break;
+ }
+ case 120: {
+ result.hasField15 = input.ReadUInt64(ref result.field15_);
+ break;
+ }
+ case 130: {
+ result.hasField16 = input.ReadString(ref result.field16_);
+ break;
+ }
+ case 160: {
+ result.hasField20 = input.ReadInt32(ref result.field20_);
+ break;
+ }
+ case 178: {
+ input.ReadStringArray(tag, field_name, result.field22_);
+ break;
+ }
+ case 194: {
+ result.hasField24 = input.ReadString(ref result.field24_);
+ break;
+ }
+ case 213: {
+ result.hasField26 = input.ReadFloat(ref result.field26_);
+ break;
+ }
+ case 218: {
+ result.hasField27 = input.ReadString(ref result.field27_);
+ break;
+ }
+ case 224: {
+ result.hasField28 = input.ReadInt32(ref result.field28_);
+ break;
+ }
+ case 234: {
+ result.hasField29 = input.ReadString(ref result.field29_);
+ break;
+ }
+ case 250: {
+ global::Google.ProtocolBuffers.ProtoBench.SpeedMessage2GroupedMessage.Builder subBuilder = global::Google.ProtocolBuffers.ProtoBench.SpeedMessage2GroupedMessage.CreateBuilder();
+ if (result.hasField31) {
+ subBuilder.MergeFrom(Field31);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ Field31 = subBuilder.BuildPartial();
+ break;
+ }
+ case 586:
+ case 584: {
+ input.ReadInt32Array(tag, field_name, result.field73_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasField11 {
+ get { return result.hasField11; }
+ }
+ public float Field11 {
+ get { return result.Field11; }
+ set { SetField11(value); }
+ }
+ public Builder SetField11(float value) {
+ PrepareBuilder();
+ result.hasField11 = true;
+ result.field11_ = value;
+ return this;
+ }
+ public Builder ClearField11() {
+ PrepareBuilder();
+ result.hasField11 = false;
+ result.field11_ = 0F;
+ return this;
+ }
+
+ public bool HasField26 {
+ get { return result.hasField26; }
+ }
+ public float Field26 {
+ get { return result.Field26; }
+ set { SetField26(value); }
+ }
+ public Builder SetField26(float value) {
+ PrepareBuilder();
+ result.hasField26 = true;
+ result.field26_ = value;
+ return this;
+ }
+ public Builder ClearField26() {
+ PrepareBuilder();
+ result.hasField26 = false;
+ result.field26_ = 0F;
+ return this;
+ }
+
+ public bool HasField12 {
+ get { return result.hasField12; }
+ }
+ public string Field12 {
+ get { return result.Field12; }
+ set { SetField12(value); }
+ }
+ public Builder SetField12(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField12 = true;
+ result.field12_ = value;
+ return this;
+ }
+ public Builder ClearField12() {
+ PrepareBuilder();
+ result.hasField12 = false;
+ result.field12_ = "";
+ return this;
+ }
+
+ public bool HasField13 {
+ get { return result.hasField13; }
+ }
+ public string Field13 {
+ get { return result.Field13; }
+ set { SetField13(value); }
+ }
+ public Builder SetField13(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField13 = true;
+ result.field13_ = value;
+ return this;
+ }
+ public Builder ClearField13() {
+ PrepareBuilder();
+ result.hasField13 = false;
+ result.field13_ = "";
+ return this;
+ }
+
+ public pbc::IPopsicleList Field14List {
+ get { return PrepareBuilder().field14_; }
+ }
+ public int Field14Count {
+ get { return result.Field14Count; }
+ }
+ public string GetField14(int index) {
+ return result.GetField14(index);
+ }
+ public Builder SetField14(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field14_[index] = value;
+ return this;
+ }
+ public Builder AddField14(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field14_.Add(value);
+ return this;
+ }
+ public Builder AddRangeField14(scg::IEnumerable values) {
+ PrepareBuilder();
+ result.field14_.Add(values);
+ return this;
+ }
+ public Builder ClearField14() {
+ PrepareBuilder();
+ result.field14_.Clear();
+ return this;
+ }
+
+ public bool HasField15 {
+ get { return result.hasField15; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong Field15 {
+ get { return result.Field15; }
+ set { SetField15(value); }
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetField15(ulong value) {
+ PrepareBuilder();
+ result.hasField15 = true;
+ result.field15_ = value;
+ return this;
+ }
+ public Builder ClearField15() {
+ PrepareBuilder();
+ result.hasField15 = false;
+ result.field15_ = 0UL;
+ return this;
+ }
+
+ public bool HasField5 {
+ get { return result.hasField5; }
+ }
+ public int Field5 {
+ get { return result.Field5; }
+ set { SetField5(value); }
+ }
+ public Builder SetField5(int value) {
+ PrepareBuilder();
+ result.hasField5 = true;
+ result.field5_ = value;
+ return this;
+ }
+ public Builder ClearField5() {
+ PrepareBuilder();
+ result.hasField5 = false;
+ result.field5_ = 0;
+ return this;
+ }
+
+ public bool HasField27 {
+ get { return result.hasField27; }
+ }
+ public string Field27 {
+ get { return result.Field27; }
+ set { SetField27(value); }
+ }
+ public Builder SetField27(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField27 = true;
+ result.field27_ = value;
+ return this;
+ }
+ public Builder ClearField27() {
+ PrepareBuilder();
+ result.hasField27 = false;
+ result.field27_ = "";
+ return this;
+ }
+
+ public bool HasField28 {
+ get { return result.hasField28; }
+ }
+ public int Field28 {
+ get { return result.Field28; }
+ set { SetField28(value); }
+ }
+ public Builder SetField28(int value) {
+ PrepareBuilder();
+ result.hasField28 = true;
+ result.field28_ = value;
+ return this;
+ }
+ public Builder ClearField28() {
+ PrepareBuilder();
+ result.hasField28 = false;
+ result.field28_ = 0;
+ return this;
+ }
+
+ public bool HasField29 {
+ get { return result.hasField29; }
+ }
+ public string Field29 {
+ get { return result.Field29; }
+ set { SetField29(value); }
+ }
+ public Builder SetField29(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField29 = true;
+ result.field29_ = value;
+ return this;
+ }
+ public Builder ClearField29() {
+ PrepareBuilder();
+ result.hasField29 = false;
+ result.field29_ = "";
+ return this;
+ }
+
+ public bool HasField16 {
+ get { return result.hasField16; }
+ }
+ public string Field16 {
+ get { return result.Field16; }
+ set { SetField16(value); }
+ }
+ public Builder SetField16(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField16 = true;
+ result.field16_ = value;
+ return this;
+ }
+ public Builder ClearField16() {
+ PrepareBuilder();
+ result.hasField16 = false;
+ result.field16_ = "";
+ return this;
+ }
+
+ public pbc::IPopsicleList Field22List {
+ get { return PrepareBuilder().field22_; }
+ }
+ public int Field22Count {
+ get { return result.Field22Count; }
+ }
+ public string GetField22(int index) {
+ return result.GetField22(index);
+ }
+ public Builder SetField22(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field22_[index] = value;
+ return this;
+ }
+ public Builder AddField22(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field22_.Add(value);
+ return this;
+ }
+ public Builder AddRangeField22(scg::IEnumerable values) {
+ PrepareBuilder();
+ result.field22_.Add(values);
+ return this;
+ }
+ public Builder ClearField22() {
+ PrepareBuilder();
+ result.field22_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList Field73List {
+ get { return PrepareBuilder().field73_; }
+ }
+ public int Field73Count {
+ get { return result.Field73Count; }
+ }
+ public int GetField73(int index) {
+ return result.GetField73(index);
+ }
+ public Builder SetField73(int index, int value) {
+ PrepareBuilder();
+ result.field73_[index] = value;
+ return this;
+ }
+ public Builder AddField73(int value) {
+ PrepareBuilder();
+ result.field73_.Add(value);
+ return this;
+ }
+ public Builder AddRangeField73(scg::IEnumerable values) {
+ PrepareBuilder();
+ result.field73_.Add(values);
+ return this;
+ }
+ public Builder ClearField73() {
+ PrepareBuilder();
+ result.field73_.Clear();
+ return this;
+ }
+
+ public bool HasField20 {
+ get { return result.hasField20; }
+ }
+ public int Field20 {
+ get { return result.Field20; }
+ set { SetField20(value); }
+ }
+ public Builder SetField20(int value) {
+ PrepareBuilder();
+ result.hasField20 = true;
+ result.field20_ = value;
+ return this;
+ }
+ public Builder ClearField20() {
+ PrepareBuilder();
+ result.hasField20 = false;
+ result.field20_ = 0;
+ return this;
+ }
+
+ public bool HasField24 {
+ get { return result.hasField24; }
+ }
+ public string Field24 {
+ get { return result.Field24; }
+ set { SetField24(value); }
+ }
+ public Builder SetField24(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField24 = true;
+ result.field24_ = value;
+ return this;
+ }
+ public Builder ClearField24() {
+ PrepareBuilder();
+ result.hasField24 = false;
+ result.field24_ = "";
+ return this;
+ }
+
+ public bool HasField31 {
+ get { return result.hasField31; }
+ }
+ public global::Google.ProtocolBuffers.ProtoBench.SpeedMessage2GroupedMessage Field31 {
+ get { return result.Field31; }
+ set { SetField31(value); }
+ }
+ public Builder SetField31(global::Google.ProtocolBuffers.ProtoBench.SpeedMessage2GroupedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField31 = true;
+ result.field31_ = value;
+ return this;
+ }
+ public Builder SetField31(global::Google.ProtocolBuffers.ProtoBench.SpeedMessage2GroupedMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.hasField31 = true;
+ result.field31_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeField31(global::Google.ProtocolBuffers.ProtoBench.SpeedMessage2GroupedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ if (result.hasField31 &&
+ result.field31_ != global::Google.ProtocolBuffers.ProtoBench.SpeedMessage2GroupedMessage.DefaultInstance) {
+ result.field31_ = global::Google.ProtocolBuffers.ProtoBench.SpeedMessage2GroupedMessage.CreateBuilder(result.field31_).MergeFrom(value).BuildPartial();
+ } else {
+ result.field31_ = value;
+ }
+ result.hasField31 = true;
+ return this;
+ }
+ public Builder ClearField31() {
+ PrepareBuilder();
+ result.hasField31 = false;
+ result.field31_ = null;
+ return this;
+ }
+ }
+ static Group1() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.ProtoBench.GoogleSpeedProtoFile.Descriptor, null);
+ }
+ }
+
+ }
+ #endregion
+
+ public const int Field1FieldNumber = 1;
+ private bool hasField1;
+ private string field1_ = "";
+ public bool HasField1 {
+ get { return hasField1; }
+ }
+ public string Field1 {
+ get { return field1_; }
+ }
+
+ public const int Field3FieldNumber = 3;
+ private bool hasField3;
+ private long field3_;
+ public bool HasField3 {
+ get { return hasField3; }
+ }
+ public long Field3 {
+ get { return field3_; }
+ }
+
+ public const int Field4FieldNumber = 4;
+ private bool hasField4;
+ private long field4_;
+ public bool HasField4 {
+ get { return hasField4; }
+ }
+ public long Field4 {
+ get { return field4_; }
+ }
+
+ public const int Field30FieldNumber = 30;
+ private bool hasField30;
+ private long field30_;
+ public bool HasField30 {
+ get { return hasField30; }
+ }
+ public long Field30 {
+ get { return field30_; }
+ }
+
+ public const int Field75FieldNumber = 75;
+ private bool hasField75;
+ private bool field75_;
+ public bool HasField75 {
+ get { return hasField75; }
+ }
+ public bool Field75 {
+ get { return field75_; }
+ }
+
+ public const int Field6FieldNumber = 6;
+ private bool hasField6;
+ private string field6_ = "";
+ public bool HasField6 {
+ get { return hasField6; }
+ }
+ public string Field6 {
+ get { return field6_; }
+ }
+
+ public const int Field2FieldNumber = 2;
+ private bool hasField2;
+ private pb::ByteString field2_ = pb::ByteString.Empty;
+ public bool HasField2 {
+ get { return hasField2; }
+ }
+ public pb::ByteString Field2 {
+ get { return field2_; }
+ }
+
+ public const int Field21FieldNumber = 21;
+ private bool hasField21;
+ private int field21_;
+ public bool HasField21 {
+ get { return hasField21; }
+ }
+ public int Field21 {
+ get { return field21_; }
+ }
+
+ public const int Field71FieldNumber = 71;
+ private bool hasField71;
+ private int field71_;
+ public bool HasField71 {
+ get { return hasField71; }
+ }
+ public int Field71 {
+ get { return field71_; }
+ }
+
+ public const int Field25FieldNumber = 25;
+ private bool hasField25;
+ private float field25_;
+ public bool HasField25 {
+ get { return hasField25; }
+ }
+ public float Field25 {
+ get { return field25_; }
+ }
+
+ public const int Field109FieldNumber = 109;
+ private bool hasField109;
+ private int field109_;
+ public bool HasField109 {
+ get { return hasField109; }
+ }
+ public int Field109 {
+ get { return field109_; }
+ }
+
+ public const int Field210FieldNumber = 210;
+ private bool hasField210;
+ private int field210_;
+ public bool HasField210 {
+ get { return hasField210; }
+ }
+ public int Field210 {
+ get { return field210_; }
+ }
+
+ public const int Field211FieldNumber = 211;
+ private bool hasField211;
+ private int field211_;
+ public bool HasField211 {
+ get { return hasField211; }
+ }
+ public int Field211 {
+ get { return field211_; }
+ }
+
+ public const int Field212FieldNumber = 212;
+ private bool hasField212;
+ private int field212_;
+ public bool HasField212 {
+ get { return hasField212; }
+ }
+ public int Field212 {
+ get { return field212_; }
+ }
+
+ public const int Field213FieldNumber = 213;
+ private bool hasField213;
+ private int field213_;
+ public bool HasField213 {
+ get { return hasField213; }
+ }
+ public int Field213 {
+ get { return field213_; }
+ }
+
+ public const int Field216FieldNumber = 216;
+ private bool hasField216;
+ private int field216_;
+ public bool HasField216 {
+ get { return hasField216; }
+ }
+ public int Field216 {
+ get { return field216_; }
+ }
+
+ public const int Field217FieldNumber = 217;
+ private bool hasField217;
+ private int field217_;
+ public bool HasField217 {
+ get { return hasField217; }
+ }
+ public int Field217 {
+ get { return field217_; }
+ }
+
+ public const int Field218FieldNumber = 218;
+ private bool hasField218;
+ private int field218_;
+ public bool HasField218 {
+ get { return hasField218; }
+ }
+ public int Field218 {
+ get { return field218_; }
+ }
+
+ public const int Field220FieldNumber = 220;
+ private bool hasField220;
+ private int field220_;
+ public bool HasField220 {
+ get { return hasField220; }
+ }
+ public int Field220 {
+ get { return field220_; }
+ }
+
+ public const int Field221FieldNumber = 221;
+ private bool hasField221;
+ private int field221_;
+ public bool HasField221 {
+ get { return hasField221; }
+ }
+ public int Field221 {
+ get { return field221_; }
+ }
+
+ public const int Field222FieldNumber = 222;
+ private bool hasField222;
+ private float field222_;
+ public bool HasField222 {
+ get { return hasField222; }
+ }
+ public float Field222 {
+ get { return field222_; }
+ }
+
+ public const int Field63FieldNumber = 63;
+ private bool hasField63;
+ private int field63_;
+ public bool HasField63 {
+ get { return hasField63; }
+ }
+ public int Field63 {
+ get { return field63_; }
+ }
+
+ public const int Group1FieldNumber = 10;
+ private pbc::PopsicleList group1_ = new pbc::PopsicleList();
+ public scg::IList Group1List {
+ get { return group1_; }
+ }
+ public int Group1Count {
+ get { return group1_.Count; }
+ }
+ public global::Google.ProtocolBuffers.ProtoBench.SpeedMessage2.Types.Group1 GetGroup1(int index) {
+ return group1_[index];
+ }
+
+ public const int Field128FieldNumber = 128;
+ private pbc::PopsicleList field128_ = new pbc::PopsicleList();
+ public scg::IList Field128List {
+ get { return pbc::Lists.AsReadOnly(field128_); }
+ }
+ public int Field128Count {
+ get { return field128_.Count; }
+ }
+ public string GetField128(int index) {
+ return field128_[index];
+ }
+
+ public const int Field131FieldNumber = 131;
+ private bool hasField131;
+ private long field131_;
+ public bool HasField131 {
+ get { return hasField131; }
+ }
+ public long Field131 {
+ get { return field131_; }
+ }
+
+ public const int Field127FieldNumber = 127;
+ private pbc::PopsicleList field127_ = new pbc::PopsicleList();
+ public scg::IList Field127List {
+ get { return pbc::Lists.AsReadOnly(field127_); }
+ }
+ public int Field127Count {
+ get { return field127_.Count; }
+ }
+ public string GetField127(int index) {
+ return field127_[index];
+ }
+
+ public const int Field129FieldNumber = 129;
+ private bool hasField129;
+ private int field129_;
+ public bool HasField129 {
+ get { return hasField129; }
+ }
+ public int Field129 {
+ get { return field129_; }
+ }
+
+ public const int Field130FieldNumber = 130;
+ private pbc::PopsicleList field130_ = new pbc::PopsicleList();
+ public scg::IList Field130List {
+ get { return pbc::Lists.AsReadOnly(field130_); }
+ }
+ public int Field130Count {
+ get { return field130_.Count; }
+ }
+ public long GetField130(int index) {
+ return field130_[index];
+ }
+
+ public const int Field205FieldNumber = 205;
+ private bool hasField205;
+ private bool field205_;
+ public bool HasField205 {
+ get { return hasField205; }
+ }
+ public bool Field205 {
+ get { return field205_; }
+ }
+
+ public const int Field206FieldNumber = 206;
+ private bool hasField206;
+ private bool field206_;
+ public bool HasField206 {
+ get { return hasField206; }
+ }
+ public bool Field206 {
+ get { return field206_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _speedMessage2FieldNames;
+ if (hasField1) {
+ output.WriteString(1, field_names[0], Field1);
+ }
+ if (hasField2) {
+ output.WriteBytes(2, field_names[7], Field2);
+ }
+ if (hasField3) {
+ output.WriteInt64(3, field_names[22], Field3);
+ }
+ if (hasField4) {
+ output.WriteInt64(4, field_names[24], Field4);
+ }
+ if (hasField6) {
+ output.WriteString(6, field_names[25], Field6);
+ }
+ if (group1_.Count > 0) {
+ output.WriteGroupArray(10, field_names[29], group1_);
+ }
+ if (hasField21) {
+ output.WriteInt32(21, field_names[10], Field21);
+ }
+ if (hasField25) {
+ output.WriteFloat(25, field_names[21], Field25);
+ }
+ if (hasField30) {
+ output.WriteInt64(30, field_names[23], Field30);
+ }
+ if (hasField63) {
+ output.WriteInt32(63, field_names[26], Field63);
+ }
+ if (hasField71) {
+ output.WriteInt32(71, field_names[27], Field71);
+ }
+ if (hasField75) {
+ output.WriteBool(75, field_names[28], Field75);
+ }
+ if (hasField109) {
+ output.WriteInt32(109, field_names[1], Field109);
+ }
+ if (field127_.Count > 0) {
+ output.WriteStringArray(127, field_names[2], field127_);
+ }
+ if (field128_.Count > 0) {
+ output.WriteStringArray(128, field_names[3], field128_);
+ }
+ if (hasField129) {
+ output.WriteInt32(129, field_names[4], Field129);
+ }
+ if (field130_.Count > 0) {
+ output.WriteInt64Array(130, field_names[5], field130_);
+ }
+ if (hasField131) {
+ output.WriteInt64(131, field_names[6], Field131);
+ }
+ if (hasField205) {
+ output.WriteBool(205, field_names[8], Field205);
+ }
+ if (hasField206) {
+ output.WriteBool(206, field_names[9], Field206);
+ }
+ if (hasField210) {
+ output.WriteInt32(210, field_names[11], Field210);
+ }
+ if (hasField211) {
+ output.WriteInt32(211, field_names[12], Field211);
+ }
+ if (hasField212) {
+ output.WriteInt32(212, field_names[13], Field212);
+ }
+ if (hasField213) {
+ output.WriteInt32(213, field_names[14], Field213);
+ }
+ if (hasField216) {
+ output.WriteInt32(216, field_names[15], Field216);
+ }
+ if (hasField217) {
+ output.WriteInt32(217, field_names[16], Field217);
+ }
+ if (hasField218) {
+ output.WriteInt32(218, field_names[17], Field218);
+ }
+ if (hasField220) {
+ output.WriteInt32(220, field_names[18], Field220);
+ }
+ if (hasField221) {
+ output.WriteInt32(221, field_names[19], Field221);
+ }
+ if (hasField222) {
+ output.WriteFloat(222, field_names[20], Field222);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasField1) {
+ size += pb::CodedOutputStream.ComputeStringSize(1, Field1);
+ }
+ if (hasField3) {
+ size += pb::CodedOutputStream.ComputeInt64Size(3, Field3);
+ }
+ if (hasField4) {
+ size += pb::CodedOutputStream.ComputeInt64Size(4, Field4);
+ }
+ if (hasField30) {
+ size += pb::CodedOutputStream.ComputeInt64Size(30, Field30);
+ }
+ if (hasField75) {
+ size += pb::CodedOutputStream.ComputeBoolSize(75, Field75);
+ }
+ if (hasField6) {
+ size += pb::CodedOutputStream.ComputeStringSize(6, Field6);
+ }
+ if (hasField2) {
+ size += pb::CodedOutputStream.ComputeBytesSize(2, Field2);
+ }
+ if (hasField21) {
+ size += pb::CodedOutputStream.ComputeInt32Size(21, Field21);
+ }
+ if (hasField71) {
+ size += pb::CodedOutputStream.ComputeInt32Size(71, Field71);
+ }
+ if (hasField25) {
+ size += pb::CodedOutputStream.ComputeFloatSize(25, Field25);
+ }
+ if (hasField109) {
+ size += pb::CodedOutputStream.ComputeInt32Size(109, Field109);
+ }
+ if (hasField210) {
+ size += pb::CodedOutputStream.ComputeInt32Size(210, Field210);
+ }
+ if (hasField211) {
+ size += pb::CodedOutputStream.ComputeInt32Size(211, Field211);
+ }
+ if (hasField212) {
+ size += pb::CodedOutputStream.ComputeInt32Size(212, Field212);
+ }
+ if (hasField213) {
+ size += pb::CodedOutputStream.ComputeInt32Size(213, Field213);
+ }
+ if (hasField216) {
+ size += pb::CodedOutputStream.ComputeInt32Size(216, Field216);
+ }
+ if (hasField217) {
+ size += pb::CodedOutputStream.ComputeInt32Size(217, Field217);
+ }
+ if (hasField218) {
+ size += pb::CodedOutputStream.ComputeInt32Size(218, Field218);
+ }
+ if (hasField220) {
+ size += pb::CodedOutputStream.ComputeInt32Size(220, Field220);
+ }
+ if (hasField221) {
+ size += pb::CodedOutputStream.ComputeInt32Size(221, Field221);
+ }
+ if (hasField222) {
+ size += pb::CodedOutputStream.ComputeFloatSize(222, Field222);
+ }
+ if (hasField63) {
+ size += pb::CodedOutputStream.ComputeInt32Size(63, Field63);
+ }
+ foreach (global::Google.ProtocolBuffers.ProtoBench.SpeedMessage2.Types.Group1 element in Group1List) {
+ size += pb::CodedOutputStream.ComputeGroupSize(10, element);
+ }
+ {
+ int dataSize = 0;
+ foreach (string element in Field128List) {
+ dataSize += pb::CodedOutputStream.ComputeStringSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * field128_.Count;
+ }
+ if (hasField131) {
+ size += pb::CodedOutputStream.ComputeInt64Size(131, Field131);
+ }
+ {
+ int dataSize = 0;
+ foreach (string element in Field127List) {
+ dataSize += pb::CodedOutputStream.ComputeStringSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * field127_.Count;
+ }
+ if (hasField129) {
+ size += pb::CodedOutputStream.ComputeInt32Size(129, Field129);
+ }
+ {
+ int dataSize = 0;
+ foreach (long element in Field130List) {
+ dataSize += pb::CodedOutputStream.ComputeInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * field130_.Count;
+ }
+ if (hasField205) {
+ size += pb::CodedOutputStream.ComputeBoolSize(205, Field205);
+ }
+ if (hasField206) {
+ size += pb::CodedOutputStream.ComputeBoolSize(206, Field206);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static SpeedMessage2 ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static SpeedMessage2 ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static SpeedMessage2 ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static SpeedMessage2 ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static SpeedMessage2 ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static SpeedMessage2 ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static SpeedMessage2 ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static SpeedMessage2 ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static SpeedMessage2 ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static SpeedMessage2 ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private SpeedMessage2 MakeReadOnly() {
+ group1_.MakeReadOnly();
+ field128_.MakeReadOnly();
+ field127_.MakeReadOnly();
+ field130_.MakeReadOnly();
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(SpeedMessage2 prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(SpeedMessage2 cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private SpeedMessage2 result;
+
+ private SpeedMessage2 PrepareBuilder() {
+ if (resultIsReadOnly) {
+ SpeedMessage2 original = result;
+ result = new SpeedMessage2();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override SpeedMessage2 MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.ProtoBench.SpeedMessage2.Descriptor; }
+ }
+
+ public override SpeedMessage2 DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.ProtoBench.SpeedMessage2.DefaultInstance; }
+ }
+
+ public override SpeedMessage2 BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is SpeedMessage2) {
+ return MergeFrom((SpeedMessage2) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(SpeedMessage2 other) {
+ if (other == global::Google.ProtocolBuffers.ProtoBench.SpeedMessage2.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasField1) {
+ Field1 = other.Field1;
+ }
+ if (other.HasField3) {
+ Field3 = other.Field3;
+ }
+ if (other.HasField4) {
+ Field4 = other.Field4;
+ }
+ if (other.HasField30) {
+ Field30 = other.Field30;
+ }
+ if (other.HasField75) {
+ Field75 = other.Field75;
+ }
+ if (other.HasField6) {
+ Field6 = other.Field6;
+ }
+ if (other.HasField2) {
+ Field2 = other.Field2;
+ }
+ if (other.HasField21) {
+ Field21 = other.Field21;
+ }
+ if (other.HasField71) {
+ Field71 = other.Field71;
+ }
+ if (other.HasField25) {
+ Field25 = other.Field25;
+ }
+ if (other.HasField109) {
+ Field109 = other.Field109;
+ }
+ if (other.HasField210) {
+ Field210 = other.Field210;
+ }
+ if (other.HasField211) {
+ Field211 = other.Field211;
+ }
+ if (other.HasField212) {
+ Field212 = other.Field212;
+ }
+ if (other.HasField213) {
+ Field213 = other.Field213;
+ }
+ if (other.HasField216) {
+ Field216 = other.Field216;
+ }
+ if (other.HasField217) {
+ Field217 = other.Field217;
+ }
+ if (other.HasField218) {
+ Field218 = other.Field218;
+ }
+ if (other.HasField220) {
+ Field220 = other.Field220;
+ }
+ if (other.HasField221) {
+ Field221 = other.Field221;
+ }
+ if (other.HasField222) {
+ Field222 = other.Field222;
+ }
+ if (other.HasField63) {
+ Field63 = other.Field63;
+ }
+ if (other.group1_.Count != 0) {
+ result.group1_.Add(other.group1_);
+ }
+ if (other.field128_.Count != 0) {
+ result.field128_.Add(other.field128_);
+ }
+ if (other.HasField131) {
+ Field131 = other.Field131;
+ }
+ if (other.field127_.Count != 0) {
+ result.field127_.Add(other.field127_);
+ }
+ if (other.HasField129) {
+ Field129 = other.Field129;
+ }
+ if (other.field130_.Count != 0) {
+ result.field130_.Add(other.field130_);
+ }
+ if (other.HasField205) {
+ Field205 = other.Field205;
+ }
+ if (other.HasField206) {
+ Field206 = other.Field206;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_speedMessage2FieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _speedMessage2FieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 10: {
+ result.hasField1 = input.ReadString(ref result.field1_);
+ break;
+ }
+ case 18: {
+ result.hasField2 = input.ReadBytes(ref result.field2_);
+ break;
+ }
+ case 24: {
+ result.hasField3 = input.ReadInt64(ref result.field3_);
+ break;
+ }
+ case 32: {
+ result.hasField4 = input.ReadInt64(ref result.field4_);
+ break;
+ }
+ case 50: {
+ result.hasField6 = input.ReadString(ref result.field6_);
+ break;
+ }
+ case 83: {
+ input.ReadGroupArray(tag, field_name, result.group1_, global::Google.ProtocolBuffers.ProtoBench.SpeedMessage2.Types.Group1.DefaultInstance, extensionRegistry);
+ break;
+ }
+ case 168: {
+ result.hasField21 = input.ReadInt32(ref result.field21_);
+ break;
+ }
+ case 205: {
+ result.hasField25 = input.ReadFloat(ref result.field25_);
+ break;
+ }
+ case 240: {
+ result.hasField30 = input.ReadInt64(ref result.field30_);
+ break;
+ }
+ case 504: {
+ result.hasField63 = input.ReadInt32(ref result.field63_);
+ break;
+ }
+ case 568: {
+ result.hasField71 = input.ReadInt32(ref result.field71_);
+ break;
+ }
+ case 600: {
+ result.hasField75 = input.ReadBool(ref result.field75_);
+ break;
+ }
+ case 872: {
+ result.hasField109 = input.ReadInt32(ref result.field109_);
+ break;
+ }
+ case 1018: {
+ input.ReadStringArray(tag, field_name, result.field127_);
+ break;
+ }
+ case 1026: {
+ input.ReadStringArray(tag, field_name, result.field128_);
+ break;
+ }
+ case 1032: {
+ result.hasField129 = input.ReadInt32(ref result.field129_);
+ break;
+ }
+ case 1042:
+ case 1040: {
+ input.ReadInt64Array(tag, field_name, result.field130_);
+ break;
+ }
+ case 1048: {
+ result.hasField131 = input.ReadInt64(ref result.field131_);
+ break;
+ }
+ case 1640: {
+ result.hasField205 = input.ReadBool(ref result.field205_);
+ break;
+ }
+ case 1648: {
+ result.hasField206 = input.ReadBool(ref result.field206_);
+ break;
+ }
+ case 1680: {
+ result.hasField210 = input.ReadInt32(ref result.field210_);
+ break;
+ }
+ case 1688: {
+ result.hasField211 = input.ReadInt32(ref result.field211_);
+ break;
+ }
+ case 1696: {
+ result.hasField212 = input.ReadInt32(ref result.field212_);
+ break;
+ }
+ case 1704: {
+ result.hasField213 = input.ReadInt32(ref result.field213_);
+ break;
+ }
+ case 1728: {
+ result.hasField216 = input.ReadInt32(ref result.field216_);
+ break;
+ }
+ case 1736: {
+ result.hasField217 = input.ReadInt32(ref result.field217_);
+ break;
+ }
+ case 1744: {
+ result.hasField218 = input.ReadInt32(ref result.field218_);
+ break;
+ }
+ case 1760: {
+ result.hasField220 = input.ReadInt32(ref result.field220_);
+ break;
+ }
+ case 1768: {
+ result.hasField221 = input.ReadInt32(ref result.field221_);
+ break;
+ }
+ case 1781: {
+ result.hasField222 = input.ReadFloat(ref result.field222_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasField1 {
+ get { return result.hasField1; }
+ }
+ public string Field1 {
+ get { return result.Field1; }
+ set { SetField1(value); }
+ }
+ public Builder SetField1(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField1 = true;
+ result.field1_ = value;
+ return this;
+ }
+ public Builder ClearField1() {
+ PrepareBuilder();
+ result.hasField1 = false;
+ result.field1_ = "";
+ return this;
+ }
+
+ public bool HasField3 {
+ get { return result.hasField3; }
+ }
+ public long Field3 {
+ get { return result.Field3; }
+ set { SetField3(value); }
+ }
+ public Builder SetField3(long value) {
+ PrepareBuilder();
+ result.hasField3 = true;
+ result.field3_ = value;
+ return this;
+ }
+ public Builder ClearField3() {
+ PrepareBuilder();
+ result.hasField3 = false;
+ result.field3_ = 0L;
+ return this;
+ }
+
+ public bool HasField4 {
+ get { return result.hasField4; }
+ }
+ public long Field4 {
+ get { return result.Field4; }
+ set { SetField4(value); }
+ }
+ public Builder SetField4(long value) {
+ PrepareBuilder();
+ result.hasField4 = true;
+ result.field4_ = value;
+ return this;
+ }
+ public Builder ClearField4() {
+ PrepareBuilder();
+ result.hasField4 = false;
+ result.field4_ = 0L;
+ return this;
+ }
+
+ public bool HasField30 {
+ get { return result.hasField30; }
+ }
+ public long Field30 {
+ get { return result.Field30; }
+ set { SetField30(value); }
+ }
+ public Builder SetField30(long value) {
+ PrepareBuilder();
+ result.hasField30 = true;
+ result.field30_ = value;
+ return this;
+ }
+ public Builder ClearField30() {
+ PrepareBuilder();
+ result.hasField30 = false;
+ result.field30_ = 0L;
+ return this;
+ }
+
+ public bool HasField75 {
+ get { return result.hasField75; }
+ }
+ public bool Field75 {
+ get { return result.Field75; }
+ set { SetField75(value); }
+ }
+ public Builder SetField75(bool value) {
+ PrepareBuilder();
+ result.hasField75 = true;
+ result.field75_ = value;
+ return this;
+ }
+ public Builder ClearField75() {
+ PrepareBuilder();
+ result.hasField75 = false;
+ result.field75_ = false;
+ return this;
+ }
+
+ public bool HasField6 {
+ get { return result.hasField6; }
+ }
+ public string Field6 {
+ get { return result.Field6; }
+ set { SetField6(value); }
+ }
+ public Builder SetField6(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField6 = true;
+ result.field6_ = value;
+ return this;
+ }
+ public Builder ClearField6() {
+ PrepareBuilder();
+ result.hasField6 = false;
+ result.field6_ = "";
+ return this;
+ }
+
+ public bool HasField2 {
+ get { return result.hasField2; }
+ }
+ public pb::ByteString Field2 {
+ get { return result.Field2; }
+ set { SetField2(value); }
+ }
+ public Builder SetField2(pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.hasField2 = true;
+ result.field2_ = value;
+ return this;
+ }
+ public Builder ClearField2() {
+ PrepareBuilder();
+ result.hasField2 = false;
+ result.field2_ = pb::ByteString.Empty;
+ return this;
+ }
+
+ public bool HasField21 {
+ get { return result.hasField21; }
+ }
+ public int Field21 {
+ get { return result.Field21; }
+ set { SetField21(value); }
+ }
+ public Builder SetField21(int value) {
+ PrepareBuilder();
+ result.hasField21 = true;
+ result.field21_ = value;
+ return this;
+ }
+ public Builder ClearField21() {
+ PrepareBuilder();
+ result.hasField21 = false;
+ result.field21_ = 0;
+ return this;
+ }
+
+ public bool HasField71 {
+ get { return result.hasField71; }
+ }
+ public int Field71 {
+ get { return result.Field71; }
+ set { SetField71(value); }
+ }
+ public Builder SetField71(int value) {
+ PrepareBuilder();
+ result.hasField71 = true;
+ result.field71_ = value;
+ return this;
+ }
+ public Builder ClearField71() {
+ PrepareBuilder();
+ result.hasField71 = false;
+ result.field71_ = 0;
+ return this;
+ }
+
+ public bool HasField25 {
+ get { return result.hasField25; }
+ }
+ public float Field25 {
+ get { return result.Field25; }
+ set { SetField25(value); }
+ }
+ public Builder SetField25(float value) {
+ PrepareBuilder();
+ result.hasField25 = true;
+ result.field25_ = value;
+ return this;
+ }
+ public Builder ClearField25() {
+ PrepareBuilder();
+ result.hasField25 = false;
+ result.field25_ = 0F;
+ return this;
+ }
+
+ public bool HasField109 {
+ get { return result.hasField109; }
+ }
+ public int Field109 {
+ get { return result.Field109; }
+ set { SetField109(value); }
+ }
+ public Builder SetField109(int value) {
+ PrepareBuilder();
+ result.hasField109 = true;
+ result.field109_ = value;
+ return this;
+ }
+ public Builder ClearField109() {
+ PrepareBuilder();
+ result.hasField109 = false;
+ result.field109_ = 0;
+ return this;
+ }
+
+ public bool HasField210 {
+ get { return result.hasField210; }
+ }
+ public int Field210 {
+ get { return result.Field210; }
+ set { SetField210(value); }
+ }
+ public Builder SetField210(int value) {
+ PrepareBuilder();
+ result.hasField210 = true;
+ result.field210_ = value;
+ return this;
+ }
+ public Builder ClearField210() {
+ PrepareBuilder();
+ result.hasField210 = false;
+ result.field210_ = 0;
+ return this;
+ }
+
+ public bool HasField211 {
+ get { return result.hasField211; }
+ }
+ public int Field211 {
+ get { return result.Field211; }
+ set { SetField211(value); }
+ }
+ public Builder SetField211(int value) {
+ PrepareBuilder();
+ result.hasField211 = true;
+ result.field211_ = value;
+ return this;
+ }
+ public Builder ClearField211() {
+ PrepareBuilder();
+ result.hasField211 = false;
+ result.field211_ = 0;
+ return this;
+ }
+
+ public bool HasField212 {
+ get { return result.hasField212; }
+ }
+ public int Field212 {
+ get { return result.Field212; }
+ set { SetField212(value); }
+ }
+ public Builder SetField212(int value) {
+ PrepareBuilder();
+ result.hasField212 = true;
+ result.field212_ = value;
+ return this;
+ }
+ public Builder ClearField212() {
+ PrepareBuilder();
+ result.hasField212 = false;
+ result.field212_ = 0;
+ return this;
+ }
+
+ public bool HasField213 {
+ get { return result.hasField213; }
+ }
+ public int Field213 {
+ get { return result.Field213; }
+ set { SetField213(value); }
+ }
+ public Builder SetField213(int value) {
+ PrepareBuilder();
+ result.hasField213 = true;
+ result.field213_ = value;
+ return this;
+ }
+ public Builder ClearField213() {
+ PrepareBuilder();
+ result.hasField213 = false;
+ result.field213_ = 0;
+ return this;
+ }
+
+ public bool HasField216 {
+ get { return result.hasField216; }
+ }
+ public int Field216 {
+ get { return result.Field216; }
+ set { SetField216(value); }
+ }
+ public Builder SetField216(int value) {
+ PrepareBuilder();
+ result.hasField216 = true;
+ result.field216_ = value;
+ return this;
+ }
+ public Builder ClearField216() {
+ PrepareBuilder();
+ result.hasField216 = false;
+ result.field216_ = 0;
+ return this;
+ }
+
+ public bool HasField217 {
+ get { return result.hasField217; }
+ }
+ public int Field217 {
+ get { return result.Field217; }
+ set { SetField217(value); }
+ }
+ public Builder SetField217(int value) {
+ PrepareBuilder();
+ result.hasField217 = true;
+ result.field217_ = value;
+ return this;
+ }
+ public Builder ClearField217() {
+ PrepareBuilder();
+ result.hasField217 = false;
+ result.field217_ = 0;
+ return this;
+ }
+
+ public bool HasField218 {
+ get { return result.hasField218; }
+ }
+ public int Field218 {
+ get { return result.Field218; }
+ set { SetField218(value); }
+ }
+ public Builder SetField218(int value) {
+ PrepareBuilder();
+ result.hasField218 = true;
+ result.field218_ = value;
+ return this;
+ }
+ public Builder ClearField218() {
+ PrepareBuilder();
+ result.hasField218 = false;
+ result.field218_ = 0;
+ return this;
+ }
+
+ public bool HasField220 {
+ get { return result.hasField220; }
+ }
+ public int Field220 {
+ get { return result.Field220; }
+ set { SetField220(value); }
+ }
+ public Builder SetField220(int value) {
+ PrepareBuilder();
+ result.hasField220 = true;
+ result.field220_ = value;
+ return this;
+ }
+ public Builder ClearField220() {
+ PrepareBuilder();
+ result.hasField220 = false;
+ result.field220_ = 0;
+ return this;
+ }
+
+ public bool HasField221 {
+ get { return result.hasField221; }
+ }
+ public int Field221 {
+ get { return result.Field221; }
+ set { SetField221(value); }
+ }
+ public Builder SetField221(int value) {
+ PrepareBuilder();
+ result.hasField221 = true;
+ result.field221_ = value;
+ return this;
+ }
+ public Builder ClearField221() {
+ PrepareBuilder();
+ result.hasField221 = false;
+ result.field221_ = 0;
+ return this;
+ }
+
+ public bool HasField222 {
+ get { return result.hasField222; }
+ }
+ public float Field222 {
+ get { return result.Field222; }
+ set { SetField222(value); }
+ }
+ public Builder SetField222(float value) {
+ PrepareBuilder();
+ result.hasField222 = true;
+ result.field222_ = value;
+ return this;
+ }
+ public Builder ClearField222() {
+ PrepareBuilder();
+ result.hasField222 = false;
+ result.field222_ = 0F;
+ return this;
+ }
+
+ public bool HasField63 {
+ get { return result.hasField63; }
+ }
+ public int Field63 {
+ get { return result.Field63; }
+ set { SetField63(value); }
+ }
+ public Builder SetField63(int value) {
+ PrepareBuilder();
+ result.hasField63 = true;
+ result.field63_ = value;
+ return this;
+ }
+ public Builder ClearField63() {
+ PrepareBuilder();
+ result.hasField63 = false;
+ result.field63_ = 0;
+ return this;
+ }
+
+ public pbc::IPopsicleList Group1List {
+ get { return PrepareBuilder().group1_; }
+ }
+ public int Group1Count {
+ get { return result.Group1Count; }
+ }
+ public global::Google.ProtocolBuffers.ProtoBench.SpeedMessage2.Types.Group1 GetGroup1(int index) {
+ return result.GetGroup1(index);
+ }
+ public Builder SetGroup1(int index, global::Google.ProtocolBuffers.ProtoBench.SpeedMessage2.Types.Group1 value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.group1_[index] = value;
+ return this;
+ }
+ public Builder SetGroup1(int index, global::Google.ProtocolBuffers.ProtoBench.SpeedMessage2.Types.Group1.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.group1_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddGroup1(global::Google.ProtocolBuffers.ProtoBench.SpeedMessage2.Types.Group1 value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.group1_.Add(value);
+ return this;
+ }
+ public Builder AddGroup1(global::Google.ProtocolBuffers.ProtoBench.SpeedMessage2.Types.Group1.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ PrepareBuilder();
+ result.group1_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeGroup1(scg::IEnumerable values) {
+ PrepareBuilder();
+ result.group1_.Add(values);
+ return this;
+ }
+ public Builder ClearGroup1() {
+ PrepareBuilder();
+ result.group1_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList Field128List {
+ get { return PrepareBuilder().field128_; }
+ }
+ public int Field128Count {
+ get { return result.Field128Count; }
+ }
+ public string GetField128(int index) {
+ return result.GetField128(index);
+ }
+ public Builder SetField128(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field128_[index] = value;
+ return this;
+ }
+ public Builder AddField128(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field128_.Add(value);
+ return this;
+ }
+ public Builder AddRangeField128(scg::IEnumerable values) {
+ PrepareBuilder();
+ result.field128_.Add(values);
+ return this;
+ }
+ public Builder ClearField128() {
+ PrepareBuilder();
+ result.field128_.Clear();
+ return this;
+ }
+
+ public bool HasField131 {
+ get { return result.hasField131; }
+ }
+ public long Field131 {
+ get { return result.Field131; }
+ set { SetField131(value); }
+ }
+ public Builder SetField131(long value) {
+ PrepareBuilder();
+ result.hasField131 = true;
+ result.field131_ = value;
+ return this;
+ }
+ public Builder ClearField131() {
+ PrepareBuilder();
+ result.hasField131 = false;
+ result.field131_ = 0L;
+ return this;
+ }
+
+ public pbc::IPopsicleList Field127List {
+ get { return PrepareBuilder().field127_; }
+ }
+ public int Field127Count {
+ get { return result.Field127Count; }
+ }
+ public string GetField127(int index) {
+ return result.GetField127(index);
+ }
+ public Builder SetField127(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field127_[index] = value;
+ return this;
+ }
+ public Builder AddField127(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ PrepareBuilder();
+ result.field127_.Add(value);
+ return this;
+ }
+ public Builder AddRangeField127(scg::IEnumerable values) {
+ PrepareBuilder();
+ result.field127_.Add(values);
+ return this;
+ }
+ public Builder ClearField127() {
+ PrepareBuilder();
+ result.field127_.Clear();
+ return this;
+ }
+
+ public bool HasField129 {
+ get { return result.hasField129; }
+ }
+ public int Field129 {
+ get { return result.Field129; }
+ set { SetField129(value); }
+ }
+ public Builder SetField129(int value) {
+ PrepareBuilder();
+ result.hasField129 = true;
+ result.field129_ = value;
+ return this;
+ }
+ public Builder ClearField129() {
+ PrepareBuilder();
+ result.hasField129 = false;
+ result.field129_ = 0;
+ return this;
+ }
+
+ public pbc::IPopsicleList Field130List {
+ get { return PrepareBuilder().field130_; }
+ }
+ public int Field130Count {
+ get { return result.Field130Count; }
+ }
+ public long GetField130(int index) {
+ return result.GetField130(index);
+ }
+ public Builder SetField130(int index, long value) {
+ PrepareBuilder();
+ result.field130_[index] = value;
+ return this;
+ }
+ public Builder AddField130(long value) {
+ PrepareBuilder();
+ result.field130_.Add(value);
+ return this;
+ }
+ public Builder AddRangeField130(scg::IEnumerable values) {
+ PrepareBuilder();
+ result.field130_.Add(values);
+ return this;
+ }
+ public Builder ClearField130() {
+ PrepareBuilder();
+ result.field130_.Clear();
+ return this;
+ }
+
+ public bool HasField205 {
+ get { return result.hasField205; }
+ }
+ public bool Field205 {
+ get { return result.Field205; }
+ set { SetField205(value); }
+ }
+ public Builder SetField205(bool value) {
+ PrepareBuilder();
+ result.hasField205 = true;
+ result.field205_ = value;
+ return this;
+ }
+ public Builder ClearField205() {
+ PrepareBuilder();
+ result.hasField205 = false;
+ result.field205_ = false;
+ return this;
+ }
+
+ public bool HasField206 {
+ get { return result.hasField206; }
+ }
+ public bool Field206 {
+ get { return result.Field206; }
+ set { SetField206(value); }
+ }
+ public Builder SetField206(bool value) {
+ PrepareBuilder();
+ result.hasField206 = true;
+ result.field206_ = value;
+ return this;
+ }
+ public Builder ClearField206() {
+ PrepareBuilder();
+ result.hasField206 = false;
+ result.field206_ = false;
+ return this;
+ }
+ }
+ static SpeedMessage2() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.ProtoBench.GoogleSpeedProtoFile.Descriptor, null);
+ }
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class SpeedMessage2GroupedMessage : pb::GeneratedMessage {
+ private SpeedMessage2GroupedMessage() { }
+ private static readonly SpeedMessage2GroupedMessage defaultInstance = new SpeedMessage2GroupedMessage().MakeReadOnly();
+ private static readonly string[] _speedMessage2GroupedMessageFieldNames = new string[] { "field1", "field10", "field11", "field2", "field3", "field4", "field5", "field6", "field7", "field8", "field9" };
+ private static readonly uint[] _speedMessage2GroupedMessageFieldTags = new uint[] { 13, 85, 88, 21, 29, 32, 40, 48, 56, 69, 72 };
+ public static SpeedMessage2GroupedMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override SpeedMessage2GroupedMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override SpeedMessage2GroupedMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.ProtoBench.GoogleSpeedProtoFile.internal__static_benchmarks_SpeedMessage2GroupedMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.ProtoBench.GoogleSpeedProtoFile.internal__static_benchmarks_SpeedMessage2GroupedMessage__FieldAccessorTable; }
+ }
+
+ public const int Field1FieldNumber = 1;
+ private bool hasField1;
+ private float field1_;
+ public bool HasField1 {
+ get { return hasField1; }
+ }
+ public float Field1 {
+ get { return field1_; }
+ }
+
+ public const int Field2FieldNumber = 2;
+ private bool hasField2;
+ private float field2_;
+ public bool HasField2 {
+ get { return hasField2; }
+ }
+ public float Field2 {
+ get { return field2_; }
+ }
+
+ public const int Field3FieldNumber = 3;
+ private bool hasField3;
+ private float field3_;
+ public bool HasField3 {
+ get { return hasField3; }
+ }
+ public float Field3 {
+ get { return field3_; }
+ }
+
+ public const int Field4FieldNumber = 4;
+ private bool hasField4;
+ private bool field4_;
+ public bool HasField4 {
+ get { return hasField4; }
+ }
+ public bool Field4 {
+ get { return field4_; }
+ }
+
+ public const int Field5FieldNumber = 5;
+ private bool hasField5;
+ private bool field5_;
+ public bool HasField5 {
+ get { return hasField5; }
+ }
+ public bool Field5 {
+ get { return field5_; }
+ }
+
+ public const int Field6FieldNumber = 6;
+ private bool hasField6;
+ private bool field6_ = true;
+ public bool HasField6 {
+ get { return hasField6; }
+ }
+ public bool Field6 {
+ get { return field6_; }
+ }
+
+ public const int Field7FieldNumber = 7;
+ private bool hasField7;
+ private bool field7_;
+ public bool HasField7 {
+ get { return hasField7; }
+ }
+ public bool Field7 {
+ get { return field7_; }
+ }
+
+ public const int Field8FieldNumber = 8;
+ private bool hasField8;
+ private float field8_;
+ public bool HasField8 {
+ get { return hasField8; }
+ }
+ public float Field8 {
+ get { return field8_; }
+ }
+
+ public const int Field9FieldNumber = 9;
+ private bool hasField9;
+ private bool field9_;
+ public bool HasField9 {
+ get { return hasField9; }
+ }
+ public bool Field9 {
+ get { return field9_; }
+ }
+
+ public const int Field10FieldNumber = 10;
+ private bool hasField10;
+ private float field10_;
+ public bool HasField10 {
+ get { return hasField10; }
+ }
+ public float Field10 {
+ get { return field10_; }
+ }
+
+ public const int Field11FieldNumber = 11;
+ private bool hasField11;
+ private long field11_;
+ public bool HasField11 {
+ get { return hasField11; }
+ }
+ public long Field11 {
+ get { return field11_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _speedMessage2GroupedMessageFieldNames;
+ if (hasField1) {
+ output.WriteFloat(1, field_names[0], Field1);
+ }
+ if (hasField2) {
+ output.WriteFloat(2, field_names[3], Field2);
+ }
+ if (hasField3) {
+ output.WriteFloat(3, field_names[4], Field3);
+ }
+ if (hasField4) {
+ output.WriteBool(4, field_names[5], Field4);
+ }
+ if (hasField5) {
+ output.WriteBool(5, field_names[6], Field5);
+ }
+ if (hasField6) {
+ output.WriteBool(6, field_names[7], Field6);
+ }
+ if (hasField7) {
+ output.WriteBool(7, field_names[8], Field7);
+ }
+ if (hasField8) {
+ output.WriteFloat(8, field_names[9], Field8);
+ }
+ if (hasField9) {
+ output.WriteBool(9, field_names[10], Field9);
+ }
+ if (hasField10) {
+ output.WriteFloat(10, field_names[1], Field10);
+ }
+ if (hasField11) {
+ output.WriteInt64(11, field_names[2], Field11);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasField1) {
+ size += pb::CodedOutputStream.ComputeFloatSize(1, Field1);
+ }
+ if (hasField2) {
+ size += pb::CodedOutputStream.ComputeFloatSize(2, Field2);
+ }
+ if (hasField3) {
+ size += pb::CodedOutputStream.ComputeFloatSize(3, Field3);
+ }
+ if (hasField4) {
+ size += pb::CodedOutputStream.ComputeBoolSize(4, Field4);
+ }
+ if (hasField5) {
+ size += pb::CodedOutputStream.ComputeBoolSize(5, Field5);
+ }
+ if (hasField6) {
+ size += pb::CodedOutputStream.ComputeBoolSize(6, Field6);
+ }
+ if (hasField7) {
+ size += pb::CodedOutputStream.ComputeBoolSize(7, Field7);
+ }
+ if (hasField8) {
+ size += pb::CodedOutputStream.ComputeFloatSize(8, Field8);
+ }
+ if (hasField9) {
+ size += pb::CodedOutputStream.ComputeBoolSize(9, Field9);
+ }
+ if (hasField10) {
+ size += pb::CodedOutputStream.ComputeFloatSize(10, Field10);
+ }
+ if (hasField11) {
+ size += pb::CodedOutputStream.ComputeInt64Size(11, Field11);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static SpeedMessage2GroupedMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static SpeedMessage2GroupedMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static SpeedMessage2GroupedMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static SpeedMessage2GroupedMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static SpeedMessage2GroupedMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static SpeedMessage2GroupedMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static SpeedMessage2GroupedMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static SpeedMessage2GroupedMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static SpeedMessage2GroupedMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static SpeedMessage2GroupedMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private SpeedMessage2GroupedMessage MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(SpeedMessage2GroupedMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(SpeedMessage2GroupedMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private SpeedMessage2GroupedMessage result;
+
+ private SpeedMessage2GroupedMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ SpeedMessage2GroupedMessage original = result;
+ result = new SpeedMessage2GroupedMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override SpeedMessage2GroupedMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.ProtoBench.SpeedMessage2GroupedMessage.Descriptor; }
+ }
+
+ public override SpeedMessage2GroupedMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.ProtoBench.SpeedMessage2GroupedMessage.DefaultInstance; }
+ }
+
+ public override SpeedMessage2GroupedMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is SpeedMessage2GroupedMessage) {
+ return MergeFrom((SpeedMessage2GroupedMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(SpeedMessage2GroupedMessage other) {
+ if (other == global::Google.ProtocolBuffers.ProtoBench.SpeedMessage2GroupedMessage.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasField1) {
+ Field1 = other.Field1;
+ }
+ if (other.HasField2) {
+ Field2 = other.Field2;
+ }
+ if (other.HasField3) {
+ Field3 = other.Field3;
+ }
+ if (other.HasField4) {
+ Field4 = other.Field4;
+ }
+ if (other.HasField5) {
+ Field5 = other.Field5;
+ }
+ if (other.HasField6) {
+ Field6 = other.Field6;
+ }
+ if (other.HasField7) {
+ Field7 = other.Field7;
+ }
+ if (other.HasField8) {
+ Field8 = other.Field8;
+ }
+ if (other.HasField9) {
+ Field9 = other.Field9;
+ }
+ if (other.HasField10) {
+ Field10 = other.Field10;
+ }
+ if (other.HasField11) {
+ Field11 = other.Field11;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_speedMessage2GroupedMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _speedMessage2GroupedMessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 13: {
+ result.hasField1 = input.ReadFloat(ref result.field1_);
+ break;
+ }
+ case 21: {
+ result.hasField2 = input.ReadFloat(ref result.field2_);
+ break;
+ }
+ case 29: {
+ result.hasField3 = input.ReadFloat(ref result.field3_);
+ break;
+ }
+ case 32: {
+ result.hasField4 = input.ReadBool(ref result.field4_);
+ break;
+ }
+ case 40: {
+ result.hasField5 = input.ReadBool(ref result.field5_);
+ break;
+ }
+ case 48: {
+ result.hasField6 = input.ReadBool(ref result.field6_);
+ break;
+ }
+ case 56: {
+ result.hasField7 = input.ReadBool(ref result.field7_);
+ break;
+ }
+ case 69: {
+ result.hasField8 = input.ReadFloat(ref result.field8_);
+ break;
+ }
+ case 72: {
+ result.hasField9 = input.ReadBool(ref result.field9_);
+ break;
+ }
+ case 85: {
+ result.hasField10 = input.ReadFloat(ref result.field10_);
+ break;
+ }
+ case 88: {
+ result.hasField11 = input.ReadInt64(ref result.field11_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasField1 {
+ get { return result.hasField1; }
+ }
+ public float Field1 {
+ get { return result.Field1; }
+ set { SetField1(value); }
+ }
+ public Builder SetField1(float value) {
+ PrepareBuilder();
+ result.hasField1 = true;
+ result.field1_ = value;
+ return this;
+ }
+ public Builder ClearField1() {
+ PrepareBuilder();
+ result.hasField1 = false;
+ result.field1_ = 0F;
+ return this;
+ }
+
+ public bool HasField2 {
+ get { return result.hasField2; }
+ }
+ public float Field2 {
+ get { return result.Field2; }
+ set { SetField2(value); }
+ }
+ public Builder SetField2(float value) {
+ PrepareBuilder();
+ result.hasField2 = true;
+ result.field2_ = value;
+ return this;
+ }
+ public Builder ClearField2() {
+ PrepareBuilder();
+ result.hasField2 = false;
+ result.field2_ = 0F;
+ return this;
+ }
+
+ public bool HasField3 {
+ get { return result.hasField3; }
+ }
+ public float Field3 {
+ get { return result.Field3; }
+ set { SetField3(value); }
+ }
+ public Builder SetField3(float value) {
+ PrepareBuilder();
+ result.hasField3 = true;
+ result.field3_ = value;
+ return this;
+ }
+ public Builder ClearField3() {
+ PrepareBuilder();
+ result.hasField3 = false;
+ result.field3_ = 0F;
+ return this;
+ }
+
+ public bool HasField4 {
+ get { return result.hasField4; }
+ }
+ public bool Field4 {
+ get { return result.Field4; }
+ set { SetField4(value); }
+ }
+ public Builder SetField4(bool value) {
+ PrepareBuilder();
+ result.hasField4 = true;
+ result.field4_ = value;
+ return this;
+ }
+ public Builder ClearField4() {
+ PrepareBuilder();
+ result.hasField4 = false;
+ result.field4_ = false;
+ return this;
+ }
+
+ public bool HasField5 {
+ get { return result.hasField5; }
+ }
+ public bool Field5 {
+ get { return result.Field5; }
+ set { SetField5(value); }
+ }
+ public Builder SetField5(bool value) {
+ PrepareBuilder();
+ result.hasField5 = true;
+ result.field5_ = value;
+ return this;
+ }
+ public Builder ClearField5() {
+ PrepareBuilder();
+ result.hasField5 = false;
+ result.field5_ = false;
+ return this;
+ }
+
+ public bool HasField6 {
+ get { return result.hasField6; }
+ }
+ public bool Field6 {
+ get { return result.Field6; }
+ set { SetField6(value); }
+ }
+ public Builder SetField6(bool value) {
+ PrepareBuilder();
+ result.hasField6 = true;
+ result.field6_ = value;
+ return this;
+ }
+ public Builder ClearField6() {
+ PrepareBuilder();
+ result.hasField6 = false;
+ result.field6_ = true;
+ return this;
+ }
+
+ public bool HasField7 {
+ get { return result.hasField7; }
+ }
+ public bool Field7 {
+ get { return result.Field7; }
+ set { SetField7(value); }
+ }
+ public Builder SetField7(bool value) {
+ PrepareBuilder();
+ result.hasField7 = true;
+ result.field7_ = value;
+ return this;
+ }
+ public Builder ClearField7() {
+ PrepareBuilder();
+ result.hasField7 = false;
+ result.field7_ = false;
+ return this;
+ }
+
+ public bool HasField8 {
+ get { return result.hasField8; }
+ }
+ public float Field8 {
+ get { return result.Field8; }
+ set { SetField8(value); }
+ }
+ public Builder SetField8(float value) {
+ PrepareBuilder();
+ result.hasField8 = true;
+ result.field8_ = value;
+ return this;
+ }
+ public Builder ClearField8() {
+ PrepareBuilder();
+ result.hasField8 = false;
+ result.field8_ = 0F;
+ return this;
+ }
+
+ public bool HasField9 {
+ get { return result.hasField9; }
+ }
+ public bool Field9 {
+ get { return result.Field9; }
+ set { SetField9(value); }
+ }
+ public Builder SetField9(bool value) {
+ PrepareBuilder();
+ result.hasField9 = true;
+ result.field9_ = value;
+ return this;
+ }
+ public Builder ClearField9() {
+ PrepareBuilder();
+ result.hasField9 = false;
+ result.field9_ = false;
+ return this;
+ }
+
+ public bool HasField10 {
+ get { return result.hasField10; }
+ }
+ public float Field10 {
+ get { return result.Field10; }
+ set { SetField10(value); }
+ }
+ public Builder SetField10(float value) {
+ PrepareBuilder();
+ result.hasField10 = true;
+ result.field10_ = value;
+ return this;
+ }
+ public Builder ClearField10() {
+ PrepareBuilder();
+ result.hasField10 = false;
+ result.field10_ = 0F;
+ return this;
+ }
+
+ public bool HasField11 {
+ get { return result.hasField11; }
+ }
+ public long Field11 {
+ get { return result.Field11; }
+ set { SetField11(value); }
+ }
+ public Builder SetField11(long value) {
+ PrepareBuilder();
+ result.hasField11 = true;
+ result.field11_ = value;
+ return this;
+ }
+ public Builder ClearField11() {
+ PrepareBuilder();
+ result.hasField11 = false;
+ result.field11_ = 0L;
+ return this;
+ }
+ }
+ static SpeedMessage2GroupedMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.ProtoBench.GoogleSpeedProtoFile.Descriptor, null);
+ }
+ }
+
+ #endregion
+
+}
+
+#endregion Designer generated code
diff --git a/csharp/src/ProtoBench/TestProtos/UnitTestImportProtoFile.cs b/csharp/src/ProtoBench/TestProtos/UnitTestImportProtoFile.cs
new file mode 100644
index 00000000..4cae2b8b
--- /dev/null
+++ b/csharp/src/ProtoBench/TestProtos/UnitTestImportProtoFile.cs
@@ -0,0 +1,346 @@
+// Generated by ProtoGen, Version=2.4.1.555, Culture=neutral, PublicKeyToken=55f7125234beb589. DO NOT EDIT!
+#pragma warning disable 1591, 0612, 3021
+#region Designer generated code
+
+using pb = global::Google.ProtocolBuffers;
+using pbc = global::Google.ProtocolBuffers.Collections;
+using pbd = global::Google.ProtocolBuffers.Descriptors;
+using scg = global::System.Collections.Generic;
+namespace Google.ProtocolBuffers.TestProtos {
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class UnitTestImportProtoFile {
+
+ #region Extension registration
+ public static void RegisterAllExtensions(pb::ExtensionRegistry registry) {
+ }
+ #endregion
+ #region Static variables
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_import_ImportMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable internal__static_protobuf_unittest_import_ImportMessage__FieldAccessorTable;
+ #endregion
+ #region Descriptor
+ public static pbd::FileDescriptor Descriptor {
+ get { return descriptor; }
+ }
+ private static pbd::FileDescriptor descriptor;
+
+ static UnitTestImportProtoFile() {
+ byte[] descriptorData = global::System.Convert.FromBase64String(
+ string.Concat(
+ "CiVnb29nbGUvcHJvdG9idWYvdW5pdHRlc3RfaW1wb3J0LnByb3RvEhhwcm90",
+ "b2J1Zl91bml0dGVzdF9pbXBvcnQaJGdvb2dsZS9wcm90b2J1Zi9jc2hhcnBf",
+ "b3B0aW9ucy5wcm90byIaCg1JbXBvcnRNZXNzYWdlEgkKAWQYASABKAUqPAoK",
+ "SW1wb3J0RW51bRIOCgpJTVBPUlRfRk9PEAcSDgoKSU1QT1JUX0JBUhAIEg4K",
+ "CklNUE9SVF9CQVoQCUJbChhjb20uZ29vZ2xlLnByb3RvYnVmLnRlc3RIAcI+",
+ "PAohR29vZ2xlLlByb3RvY29sQnVmZmVycy5UZXN0UHJvdG9zEhdVbml0VGVz",
+ "dEltcG9ydFByb3RvRmlsZQ=="));
+ pbd::FileDescriptor.InternalDescriptorAssigner assigner = delegate(pbd::FileDescriptor root) {
+ descriptor = root;
+ internal__static_protobuf_unittest_import_ImportMessage__Descriptor = Descriptor.MessageTypes[0];
+ internal__static_protobuf_unittest_import_ImportMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable(internal__static_protobuf_unittest_import_ImportMessage__Descriptor,
+ new string[] { "D", });
+ pb::ExtensionRegistry registry = pb::ExtensionRegistry.CreateInstance();
+ RegisterAllExtensions(registry);
+ global::Google.ProtocolBuffers.DescriptorProtos.CSharpOptions.RegisterAllExtensions(registry);
+ return registry;
+ };
+ pbd::FileDescriptor.InternalBuildGeneratedFileFrom(descriptorData,
+ new pbd::FileDescriptor[] {
+ global::Google.ProtocolBuffers.DescriptorProtos.CSharpOptions.Descriptor,
+ }, assigner);
+ }
+ #endregion
+
+ }
+ #region Enums
+ public enum ImportEnum {
+ IMPORT_FOO = 7,
+ IMPORT_BAR = 8,
+ IMPORT_BAZ = 9,
+ }
+
+ #endregion
+
+ #region Messages
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class ImportMessage : pb::GeneratedMessage {
+ private ImportMessage() { }
+ private static readonly ImportMessage defaultInstance = new ImportMessage().MakeReadOnly();
+ private static readonly string[] _importMessageFieldNames = new string[] { "d" };
+ private static readonly uint[] _importMessageFieldTags = new uint[] { 8 };
+ public static ImportMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override ImportMessage DefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ protected override ImportMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestImportProtoFile.internal__static_protobuf_unittest_import_ImportMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestImportProtoFile.internal__static_protobuf_unittest_import_ImportMessage__FieldAccessorTable; }
+ }
+
+ public const int DFieldNumber = 1;
+ private bool hasD;
+ private int d_;
+ public bool HasD {
+ get { return hasD; }
+ }
+ public int D {
+ get { return d_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::ICodedOutputStream output) {
+ CalcSerializedSize();
+ string[] field_names = _importMessageFieldNames;
+ if (hasD) {
+ output.WriteInt32(1, field_names[0], D);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+ return CalcSerializedSize();
+ }
+ }
+
+ private int CalcSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (hasD) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, D);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ public static ImportMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static ImportMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static ImportMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static ImportMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static ImportMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static ImportMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static ImportMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static ImportMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static ImportMessage ParseFrom(pb::ICodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static ImportMessage ParseFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ private ImportMessage MakeReadOnly() {
+ return this;
+ }
+
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(ImportMessage prototype) {
+ return new Builder(prototype);
+ }
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public sealed partial class Builder : pb::GeneratedBuilder {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ }
+ internal Builder(ImportMessage cloneFrom) {
+ result = cloneFrom;
+ resultIsReadOnly = true;
+ }
+
+ private bool resultIsReadOnly;
+ private ImportMessage result;
+
+ private ImportMessage PrepareBuilder() {
+ if (resultIsReadOnly) {
+ ImportMessage original = result;
+ result = new ImportMessage();
+ resultIsReadOnly = false;
+ MergeFrom(original);
+ }
+ return result;
+ }
+
+ public override bool IsInitialized {
+ get { return result.IsInitialized; }
+ }
+
+ protected override ImportMessage MessageBeingBuilt {
+ get { return PrepareBuilder(); }
+ }
+
+ public override Builder Clear() {
+ result = DefaultInstance;
+ resultIsReadOnly = true;
+ return this;
+ }
+
+ public override Builder Clone() {
+ if (resultIsReadOnly) {
+ return new Builder(result);
+ } else {
+ return new Builder().MergeFrom(result);
+ }
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.ImportMessage.Descriptor; }
+ }
+
+ public override ImportMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.ImportMessage.DefaultInstance; }
+ }
+
+ public override ImportMessage BuildPartial() {
+ if (resultIsReadOnly) {
+ return result;
+ }
+ resultIsReadOnly = true;
+ return result.MakeReadOnly();
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is ImportMessage) {
+ return MergeFrom((ImportMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(ImportMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.ImportMessage.DefaultInstance) return this;
+ PrepareBuilder();
+ if (other.HasD) {
+ D = other.D;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::ICodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ PrepareBuilder();
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ uint tag;
+ string field_name;
+ while (input.ReadTag(out tag, out field_name)) {
+ if(tag == 0 && field_name != null) {
+ int field_ordinal = global::System.Array.BinarySearch(_importMessageFieldNames, field_name, global::System.StringComparer.Ordinal);
+ if(field_ordinal >= 0)
+ tag = _importMessageFieldTags[field_ordinal];
+ else {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ continue;
+ }
+ }
+ switch (tag) {
+ case 0: {
+ throw pb::InvalidProtocolBufferException.InvalidTag();
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag, field_name);
+ break;
+ }
+ case 8: {
+ result.hasD = input.ReadInt32(ref result.d_);
+ break;
+ }
+ }
+ }
+
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+
+
+ public bool HasD {
+ get { return result.hasD; }
+ }
+ public int D {
+ get { return result.D; }
+ set { SetD(value); }
+ }
+ public Builder SetD(int value) {
+ PrepareBuilder();
+ result.hasD = true;
+ result.d_ = value;
+ return this;
+ }
+ public Builder ClearD() {
+ PrepareBuilder();
+ result.hasD = false;
+ result.d_ = 0;
+ return this;
+ }
+ }
+ static ImportMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestImportProtoFile.Descriptor, null);
+ }
+ }
+
+ #endregion
+
+}
+
+#endregion Designer generated code
diff --git a/csharp/src/ProtoBench/TestProtos/UnitTestProtoFile.cs b/csharp/src/ProtoBench/TestProtos/UnitTestProtoFile.cs
new file mode 100644
index 00000000..dd31c675
--- /dev/null
+++ b/csharp/src/ProtoBench/TestProtos/UnitTestProtoFile.cs
@@ -0,0 +1,21602 @@
+// Generated by ProtoGen, Version=2.4.1.555, Culture=neutral, PublicKeyToken=55f7125234beb589. DO NOT EDIT!
+#pragma warning disable 1591, 0612, 3021
+#region Designer generated code
+
+using pb = global::Google.ProtocolBuffers;
+using pbc = global::Google.ProtocolBuffers.Collections;
+using pbd = global::Google.ProtocolBuffers.Descriptors;
+using scg = global::System.Collections.Generic;
+namespace Google.ProtocolBuffers.TestProtos {
+
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ public static partial class UnitTestProtoFile {
+
+ #region Extension registration
+ public static void RegisterAllExtensions(pb::ExtensionRegistry registry) {
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalInt32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalInt64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalUint32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalUint64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalSint32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalSint64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalFixed32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalFixed64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalSfixed32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalSfixed64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalFloatExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalDoubleExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalBoolExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalStringExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalBytesExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalGroupExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalNestedMessageExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalForeignMessageExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalImportMessageExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalNestedEnumExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalForeignEnumExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalImportEnumExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalStringPieceExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalCordExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedInt32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedInt64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedUint32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedUint64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedSint32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedSint64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedFixed32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedFixed64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedSfixed32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedSfixed64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedFloatExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedDoubleExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedBoolExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedStringExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedBytesExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedGroupExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedNestedMessageExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedForeignMessageExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedImportMessageExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedNestedEnumExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedForeignEnumExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedImportEnumExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedStringPieceExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedCordExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.DefaultInt32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.DefaultInt64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.DefaultUint32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.DefaultUint64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.DefaultSint32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.DefaultSint64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.DefaultFixed32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.DefaultFixed64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.DefaultSfixed32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.DefaultSfixed64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.DefaultFloatExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.DefaultDoubleExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.DefaultBoolExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.DefaultStringExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.DefaultBytesExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.DefaultNestedEnumExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.DefaultForeignEnumExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.DefaultImportEnumExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.DefaultStringPieceExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.DefaultCordExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.MyExtensionString);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.MyExtensionInt);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.PackedInt32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.PackedInt64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.PackedUint32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.PackedUint64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.PackedSint32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.PackedSint64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.PackedFixed32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.PackedFixed64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.PackedSfixed32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.PackedSfixed64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.PackedFloatExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.PackedDoubleExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.PackedBoolExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.PackedEnumExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.TestNestedExtension.Test);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.TestRequired.Single);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.TestRequired.Multi);
+ }
+ #endregion
+ #region Extensions
+ public const int OptionalInt32ExtensionFieldNumber = 1;
+ public static pb::GeneratedExtensionBase OptionalInt32Extension;
+ public const int OptionalInt64ExtensionFieldNumber = 2;
+ public static pb::GeneratedExtensionBase OptionalInt64Extension;
+ public const int OptionalUint32ExtensionFieldNumber = 3;
+ [global::System.CLSCompliant(false)]
+ public static pb::GeneratedExtensionBase OptionalUint32Extension;
+ public const int OptionalUint64ExtensionFieldNumber = 4;
+ [global::System.CLSCompliant(false)]
+ public static pb::GeneratedExtensionBase OptionalUint64Extension;
+ public const int OptionalSint32ExtensionFieldNumber = 5;
+ public static pb::GeneratedExtensionBase OptionalSint32Extension;
+ public const int OptionalSint64ExtensionFieldNumber = 6;
+ public static pb::GeneratedExtensionBase OptionalSint64Extension;
+ public const int OptionalFixed32ExtensionFieldNumber = 7;
+ [global::System.CLSCompliant(false)]
+ public static pb::GeneratedExtensionBase OptionalFixed32Extension;
+ public const int OptionalFixed64ExtensionFieldNumber = 8;
+ [global::System.CLSCompliant(false)]
+ public static pb::GeneratedExtensionBase OptionalFixed64Extension;
+ public const int OptionalSfixed32ExtensionFieldNumber = 9;
+ public static pb::GeneratedExtensionBase OptionalSfixed32Extension;
+ public const int OptionalSfixed64ExtensionFieldNumber = 10;
+ public static pb::GeneratedExtensionBase OptionalSfixed64Extension;
+ public const int OptionalFloatExtensionFieldNumber = 11;
+ public static pb::GeneratedExtensionBase OptionalFloatExtension;
+ public const int OptionalDoubleExtensionFieldNumber = 12;
+ public static pb::GeneratedExtensionBase OptionalDoubleExtension;
+ public const int OptionalBoolExtensionFieldNumber = 13;
+ public static pb::GeneratedExtensionBase OptionalBoolExtension;
+ public const int OptionalStringExtensionFieldNumber = 14;
+ public static pb::GeneratedExtensionBase OptionalStringExtension;
+ public const int OptionalBytesExtensionFieldNumber = 15;
+ public static pb::GeneratedExtensionBase OptionalBytesExtension;
+ public const int OptionalGroupExtensionFieldNumber = 16;
+ public static pb::GeneratedExtensionBase OptionalGroupExtension;
+ public const int OptionalNestedMessageExtensionFieldNumber = 18;
+ public static pb::GeneratedExtensionBase OptionalNestedMessageExtension;
+ public const int OptionalForeignMessageExtensionFieldNumber = 19;
+ public static pb::GeneratedExtensionBase OptionalForeignMessageExtension;
+ public const int OptionalImportMessageExtensionFieldNumber = 20;
+ public static pb::GeneratedExtensionBase OptionalImportMessageExtension;
+ public const int OptionalNestedEnumExtensionFieldNumber = 21;
+ public static pb::GeneratedExtensionBase OptionalNestedEnumExtension;
+ public const int OptionalForeignEnumExtensionFieldNumber = 22;
+ public static pb::GeneratedExtensionBase