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(_packetSpeedFieldNames, field_name, global::System.StringComparer.Ordinal); if (field_ordinal >= 0) { tag = _packetSpeedFieldTags[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: { 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(1, (ulong)(int)unknown); } break; } case 18: { input.ReadStringArray(tag, field_name, result.string_); break; } case 26: case 29: { input.ReadFloatArray(tag, field_name, result.float_); break; } } } if (unknownFields != null) { this.UnknownFields = unknownFields.Build(); } return(this); }