public Builder SetSpeeding(global::AeroCloud.Protocol.AreaSpeeding.Builder builderForValue)
 {
     pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
     PrepareBuilder();
     result.hasSpeeding = true;
     result.speeding_   = builderForValue.Build();
     return(this);
 }
            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(_regularDataFieldNames, field_name, global::System.StringComparer.Ordinal);
                        if (field_ordinal >= 0)
                        {
                            tag = _regularDataFieldTags[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.hasTerminalId = input.ReadInt64(ref result.terminalId_);
                        break;
                    }

                    case 16: {
                        object unknown;
                        if (input.ReadEnum(ref result.regularCode_, out unknown))
                        {
                            result.hasRegularCode = true;
                        }
                        else if (unknown is int)
                        {
                            if (unknownFields == null)
                            {
                                unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
                            }
                            unknownFields.MergeVarintField(2, (ulong)(int)unknown);
                        }
                        break;
                    }

                    case 24: {
                        result.hasLastModifyDate = input.ReadInt64(ref result.lastModifyDate_);
                        break;
                    }

                    case 34: {
                        global::AeroCloud.Protocol.AreaSpeeding.Builder subBuilder = global::AeroCloud.Protocol.AreaSpeeding.CreateBuilder();
                        if (result.hasSpeeding)
                        {
                            subBuilder.MergeFrom(Speeding);
                        }
                        input.ReadMessage(subBuilder, extensionRegistry);
                        Speeding = subBuilder.BuildPartial();
                        break;
                    }

                    case 42: {
                        global::AeroCloud.Protocol.InOutArea.Builder subBuilder = global::AeroCloud.Protocol.InOutArea.CreateBuilder();
                        if (result.hasInOutArea)
                        {
                            subBuilder.MergeFrom(InOutArea);
                        }
                        input.ReadMessage(subBuilder, extensionRegistry);
                        InOutArea = subBuilder.BuildPartial();
                        break;
                    }

                    case 50: {
                        global::AeroCloud.Protocol.RouteDriverTime.Builder subBuilder = global::AeroCloud.Protocol.RouteDriverTime.CreateBuilder();
                        if (result.hasDriverTime)
                        {
                            subBuilder.MergeFrom(DriverTime);
                        }
                        input.ReadMessage(subBuilder, extensionRegistry);
                        DriverTime = subBuilder.BuildPartial();
                        break;
                    }

                    case 58: {
                        global::AeroCloud.Protocol.DriverNotCard.Builder subBuilder = global::AeroCloud.Protocol.DriverNotCard.CreateBuilder();
                        if (result.hasDriverNotCard)
                        {
                            subBuilder.MergeFrom(DriverNotCard);
                        }
                        input.ReadMessage(subBuilder, extensionRegistry);
                        DriverNotCard = subBuilder.BuildPartial();
                        break;
                    }

                    case 66: {
                        global::AeroCloud.Protocol.DoorOpenOutArea.Builder subBuilder = global::AeroCloud.Protocol.DoorOpenOutArea.CreateBuilder();
                        if (result.hasDoorOpenOutArea)
                        {
                            subBuilder.MergeFrom(DoorOpenOutArea);
                        }
                        input.ReadMessage(subBuilder, extensionRegistry);
                        DoorOpenOutArea = subBuilder.BuildPartial();
                        break;
                    }

                    case 74: {
                        global::AeroCloud.Protocol.DrivingBan.Builder subBuilder = global::AeroCloud.Protocol.DrivingBan.CreateBuilder();
                        if (result.hasDrivingBan)
                        {
                            subBuilder.MergeFrom(DrivingBan);
                        }
                        input.ReadMessage(subBuilder, extensionRegistry);
                        DrivingBan = subBuilder.BuildPartial();
                        break;
                    }
                    }
                }

                if (unknownFields != null)
                {
                    this.UnknownFields = unknownFields.Build();
                }
                return(this);
            }