public BindOpMobileResponse.Builder SetBuiltinIPList(micromsg.BuiltinIPList.Builder builderForValue)
 {
     ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
     this.PrepareBuilder();
     this.result.hasBuiltinIPList = true;
     this.result.builtinIPList_   = builderForValue.Build();
     return(this);
 }
            public override BindOpMobileResponse.Builder MergeFrom(ICodedInputStream input, ExtensionRegistry extensionRegistry)
            {
                uint   num;
                string str;

                this.PrepareBuilder();
                while (input.ReadTag(out num, out str))
                {
                    if ((num == 0) && (str != null))
                    {
                        int index = Array.BinarySearch <string>(BindOpMobileResponse._bindOpMobileResponseFieldNames, str, StringComparer.Ordinal);
                        if (index >= 0)
                        {
                            num = BindOpMobileResponse._bindOpMobileResponseFieldTags[index];
                        }
                        else
                        {
                            this.ParseUnknownField(input, extensionRegistry, num, str);
                            continue;
                        }
                    }
                    switch (num)
                    {
                    case 0:
                        throw InvalidProtocolBufferException.InvalidTag();

                    case 10:
                    {
                        micromsg.BaseResponse.Builder builder = micromsg.BaseResponse.CreateBuilder();
                        if (this.result.hasBaseResponse)
                        {
                            builder.MergeFrom(this.BaseResponse);
                        }
                        input.ReadMessage(builder, extensionRegistry);
                        this.BaseResponse = builder.BuildPartial();
                        continue;
                    }

                    case 0x12:
                    {
                        this.result.hasTicket = input.ReadString(ref this.result.ticket_);
                        continue;
                    }

                    case 0x2a:
                    {
                        this.result.hasPwd = input.ReadString(ref this.result.pwd_);
                        continue;
                    }

                    case 50:
                    {
                        this.result.hasUsername = input.ReadString(ref this.result.username_);
                        continue;
                    }

                    case 0x1a:
                    {
                        this.result.hasSmsNo = input.ReadString(ref this.result.smsNo_);
                        continue;
                    }

                    case 0x20:
                    {
                        this.result.hasNeedSetPwd = input.ReadUInt32(ref this.result.needSetPwd_);
                        continue;
                    }

                    case 0x4a:
                    {
                        micromsg.NetworkControl.Builder builder4 = micromsg.NetworkControl.CreateBuilder();
                        if (this.result.hasNetworkControl)
                        {
                            builder4.MergeFrom(this.NetworkControl);
                        }
                        input.ReadMessage(builder4, extensionRegistry);
                        this.NetworkControl = builder4.BuildPartial();
                        continue;
                    }

                    case 0x52:
                    {
                        this.result.hasAuthTicket = input.ReadString(ref this.result.authTicket_);
                        continue;
                    }

                    case 0x3a:
                    {
                        HostList.Builder builder2 = HostList.CreateBuilder();
                        if (this.result.hasNewHostList)
                        {
                            builder2.MergeFrom(this.NewHostList);
                        }
                        input.ReadMessage(builder2, extensionRegistry);
                        this.NewHostList = builder2.BuildPartial();
                        continue;
                    }

                    case 0x42:
                    {
                        micromsg.BuiltinIPList.Builder builder3 = micromsg.BuiltinIPList.CreateBuilder();
                        if (this.result.hasBuiltinIPList)
                        {
                            builder3.MergeFrom(this.BuiltinIPList);
                        }
                        input.ReadMessage(builder3, extensionRegistry);
                        this.BuiltinIPList = builder3.BuildPartial();
                        continue;
                    }

                    case 0x58:
                    {
                        this.result.hasSafeDevice = input.ReadUInt32(ref this.result.safeDevice_);
                        continue;
                    }

                    case 0x62:
                    {
                        this.result.hasMainAcct = input.ReadString(ref this.result.mainAcct_);
                        continue;
                    }

                    case 0x68:
                    {
                        this.result.hasMainAcctType = input.ReadUInt32(ref this.result.mainAcctType_);
                        continue;
                    }

                    case 0x72:
                    {
                        micromsg.SafeDeviceList.Builder builder5 = micromsg.SafeDeviceList.CreateBuilder();
                        if (this.result.hasSafeDeviceList)
                        {
                            builder5.MergeFrom(this.SafeDeviceList);
                        }
                        input.ReadMessage(builder5, extensionRegistry);
                        this.SafeDeviceList = builder5.BuildPartial();
                        continue;
                    }
                    }
                    if (WireFormat.IsEndGroupTag(num))
                    {
                        return(this);
                    }
                    this.ParseUnknownField(input, extensionRegistry, num, str);
                }
                return(this);
            }