Description: Class generated by protobuf rather than using the internal copy from Google
Author: Brian Thomason <brian.thomason@eucalyptus.com>

--- gwt-2.4.0.orig/dev/core/src/com/google/gwt/dev/jjs/impl/GwtAstBuilder.java
+++ gwt-2.4.0/dev/core/src/com/google/gwt/dev/jjs/impl/GwtAstBuilder.java
@@ -152,6 +152,7 @@ import org.eclipse.jdt.internal.compiler
 import org.eclipse.jdt.internal.compiler.ast.MessageSend;
 import org.eclipse.jdt.internal.compiler.ast.MethodDeclaration;
 import org.eclipse.jdt.internal.compiler.ast.NameReference;
+import org.eclipse.jdt.internal.compiler.ast.TypeReference;
 import org.eclipse.jdt.internal.compiler.ast.NormalAnnotation;
 import org.eclipse.jdt.internal.compiler.ast.NullLiteral;
 import org.eclipse.jdt.internal.compiler.ast.OR_OR_Expression;
@@ -543,7 +544,7 @@ public class GwtAstBuilder {
         SourceInfo info = makeSourceInfo(x);
         JType type = typeMap.get(x.resolvedType);
         JExpression expression = pop(x.expression);
-        if (x.type instanceof NameReference) {
+        if (x.type instanceof TypeReference) {
           pop(x.type);
         }
         push(new JCastOperation(info, type, expression));
--- gwt-2.4.0.orig/dev/core/src/com/google/gwt/dev/shell/remoteui/RemoteMessageProto.java
+++ gwt-2.4.0/dev/core/src/com/google/gwt/dev/shell/remoteui/RemoteMessageProto.java
@@ -1,18 +1,53 @@
 // Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: core/src/com/google/gwt/dev/shell/remoteui/remotemessage.proto
 
 package com.google.gwt.dev.shell.remoteui;
 
 public final class RemoteMessageProto {
   private RemoteMessageProto() {}
   public static void registerAllExtensions(
-      com.google.gwt.dev.protobuf.ExtensionRegistry registry) {
+      com.google.protobuf.ExtensionRegistry registry) {
+  }
+  public interface MessageOrBuilder
+      extends com.google.protobuf.MessageOrBuilder {
+    
+    // optional string protocolVersion = 1;
+    boolean hasProtocolVersion();
+    String getProtocolVersion();
+    
+    // optional .com.google.gwt.dev.shell.remoteui.Message.MessageType messageType = 2;
+    boolean hasMessageType();
+    com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.MessageType getMessageType();
+    
+    // required uint32 messageId = 3;
+    boolean hasMessageId();
+    int getMessageId();
+    
+    // optional .com.google.gwt.dev.shell.remoteui.Message.Request request = 4;
+    boolean hasRequest();
+    com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request getRequest();
+    com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.RequestOrBuilder getRequestOrBuilder();
+    
+    // optional .com.google.gwt.dev.shell.remoteui.Message.Response response = 5;
+    boolean hasResponse();
+    com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response getResponse();
+    com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.ResponseOrBuilder getResponseOrBuilder();
+    
+    // optional .com.google.gwt.dev.shell.remoteui.Message.Failure failure = 6;
+    boolean hasFailure();
+    com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Failure getFailure();
+    com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.FailureOrBuilder getFailureOrBuilder();
   }
   public static final class Message extends
-      com.google.gwt.dev.protobuf.GeneratedMessage {
+      com.google.protobuf.GeneratedMessage
+      implements MessageOrBuilder {
     // Use Message.newBuilder() to construct.
-    private Message() {}
+    private Message(Builder builder) {
+      super(builder);
+    }
+    private Message(boolean noInit) {}
     
-    private static final Message defaultInstance = new Message();
+    private static final Message defaultInstance;
     public static Message getDefaultInstance() {
       return defaultInstance;
     }
@@ -21,23 +56,27 @@ public final class RemoteMessageProto {
       return defaultInstance;
     }
     
-    public static final com.google.gwt.dev.protobuf.Descriptors.Descriptor
+    public static final com.google.protobuf.Descriptors.Descriptor
         getDescriptor() {
       return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_descriptor;
     }
     
-    protected com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable
+    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
         internalGetFieldAccessorTable() {
       return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_fieldAccessorTable;
     }
     
     public enum MessageType
-        implements com.google.gwt.dev.protobuf.ProtocolMessageEnum {
+        implements com.google.protobuf.ProtocolMessageEnum {
       REQUEST(0, 0),
       RESPONSE(1, 1),
       FAILURE(2, 2),
       ;
       
+      public static final int REQUEST_VALUE = 0;
+      public static final int RESPONSE_VALUE = 1;
+      public static final int FAILURE_VALUE = 2;
+      
       
       public final int getNumber() { return value; }
       
@@ -50,27 +89,27 @@ public final class RemoteMessageProto {
         }
       }
       
-      public static com.google.gwt.dev.protobuf.Internal.EnumLiteMap<MessageType>
+      public static com.google.protobuf.Internal.EnumLiteMap<MessageType>
           internalGetValueMap() {
         return internalValueMap;
       }
-      private static com.google.gwt.dev.protobuf.Internal.EnumLiteMap<MessageType>
+      private static com.google.protobuf.Internal.EnumLiteMap<MessageType>
           internalValueMap =
-            new com.google.gwt.dev.protobuf.Internal.EnumLiteMap<MessageType>() {
+            new com.google.protobuf.Internal.EnumLiteMap<MessageType>() {
               public MessageType findValueByNumber(int number) {
-                return MessageType.valueOf(number)
-      ;        }
+                return MessageType.valueOf(number);
+              }
             };
       
-      public final com.google.gwt.dev.protobuf.Descriptors.EnumValueDescriptor
+      public final com.google.protobuf.Descriptors.EnumValueDescriptor
           getValueDescriptor() {
         return getDescriptor().getValues().get(index);
       }
-      public final com.google.gwt.dev.protobuf.Descriptors.EnumDescriptor
+      public final com.google.protobuf.Descriptors.EnumDescriptor
           getDescriptorForType() {
         return getDescriptor();
       }
-      public static final com.google.gwt.dev.protobuf.Descriptors.EnumDescriptor
+      public static final com.google.protobuf.Descriptors.EnumDescriptor
           getDescriptor() {
         return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.getDescriptor().getEnumTypes().get(0);
       }
@@ -78,32 +117,54 @@ public final class RemoteMessageProto {
       private static final MessageType[] VALUES = {
         REQUEST, RESPONSE, FAILURE, 
       };
+      
       public static MessageType valueOf(
-          com.google.gwt.dev.protobuf.Descriptors.EnumValueDescriptor desc) {
+          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
         if (desc.getType() != getDescriptor()) {
           throw new java.lang.IllegalArgumentException(
             "EnumValueDescriptor is not for this type.");
         }
         return VALUES[desc.getIndex()];
       }
+      
       private final int index;
       private final int value;
+      
       private MessageType(int index, int value) {
         this.index = index;
         this.value = value;
       }
       
-      static {
-        com.google.gwt.dev.shell.remoteui.RemoteMessageProto.getDescriptor();
-      }
+      // @@protoc_insertion_point(enum_scope:com.google.gwt.dev.shell.remoteui.Message.MessageType)
     }
     
+    public interface RequestOrBuilder
+        extends com.google.protobuf.MessageOrBuilder {
+      
+      // optional .com.google.gwt.dev.shell.remoteui.Message.Request.ServiceType serviceType = 1;
+      boolean hasServiceType();
+      com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ServiceType getServiceType();
+      
+      // optional .com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest viewerRequest = 2;
+      boolean hasViewerRequest();
+      com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest getViewerRequest();
+      com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequestOrBuilder getViewerRequestOrBuilder();
+      
+      // optional .com.google.gwt.dev.shell.remoteui.Message.Request.DevModeRequest devModeRequest = 3;
+      boolean hasDevModeRequest();
+      com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest getDevModeRequest();
+      com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequestOrBuilder getDevModeRequestOrBuilder();
+    }
     public static final class Request extends
-        com.google.gwt.dev.protobuf.GeneratedMessage {
+        com.google.protobuf.GeneratedMessage
+        implements RequestOrBuilder {
       // Use Request.newBuilder() to construct.
-      private Request() {}
+      private Request(Builder builder) {
+        super(builder);
+      }
+      private Request(boolean noInit) {}
       
-      private static final Request defaultInstance = new Request();
+      private static final Request defaultInstance;
       public static Request getDefaultInstance() {
         return defaultInstance;
       }
@@ -112,22 +173,25 @@ public final class RemoteMessageProto {
         return defaultInstance;
       }
       
-      public static final com.google.gwt.dev.protobuf.Descriptors.Descriptor
+      public static final com.google.protobuf.Descriptors.Descriptor
           getDescriptor() {
         return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_descriptor;
       }
       
-      protected com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable
+      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
           internalGetFieldAccessorTable() {
         return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_fieldAccessorTable;
       }
       
       public enum ServiceType
-          implements com.google.gwt.dev.protobuf.ProtocolMessageEnum {
+          implements com.google.protobuf.ProtocolMessageEnum {
         VIEWER(0, 0),
         DEV_MODE(1, 1),
         ;
         
+        public static final int VIEWER_VALUE = 0;
+        public static final int DEV_MODE_VALUE = 1;
+        
         
         public final int getNumber() { return value; }
         
@@ -139,27 +203,27 @@ public final class RemoteMessageProto {
           }
         }
         
-        public static com.google.gwt.dev.protobuf.Internal.EnumLiteMap<ServiceType>
+        public static com.google.protobuf.Internal.EnumLiteMap<ServiceType>
             internalGetValueMap() {
           return internalValueMap;
         }
-        private static com.google.gwt.dev.protobuf.Internal.EnumLiteMap<ServiceType>
+        private static com.google.protobuf.Internal.EnumLiteMap<ServiceType>
             internalValueMap =
-              new com.google.gwt.dev.protobuf.Internal.EnumLiteMap<ServiceType>() {
+              new com.google.protobuf.Internal.EnumLiteMap<ServiceType>() {
                 public ServiceType findValueByNumber(int number) {
-                  return ServiceType.valueOf(number)
-        ;        }
+                  return ServiceType.valueOf(number);
+                }
               };
         
-        public final com.google.gwt.dev.protobuf.Descriptors.EnumValueDescriptor
+        public final com.google.protobuf.Descriptors.EnumValueDescriptor
             getValueDescriptor() {
           return getDescriptor().getValues().get(index);
         }
-        public final com.google.gwt.dev.protobuf.Descriptors.EnumDescriptor
+        public final com.google.protobuf.Descriptors.EnumDescriptor
             getDescriptorForType() {
           return getDescriptor();
         }
-        public static final com.google.gwt.dev.protobuf.Descriptors.EnumDescriptor
+        public static final com.google.protobuf.Descriptors.EnumDescriptor
             getDescriptor() {
           return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.getDescriptor().getEnumTypes().get(0);
         }
@@ -167,32 +231,74 @@ public final class RemoteMessageProto {
         private static final ServiceType[] VALUES = {
           VIEWER, DEV_MODE, 
         };
+        
         public static ServiceType valueOf(
-            com.google.gwt.dev.protobuf.Descriptors.EnumValueDescriptor desc) {
+            com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
           if (desc.getType() != getDescriptor()) {
             throw new java.lang.IllegalArgumentException(
               "EnumValueDescriptor is not for this type.");
           }
           return VALUES[desc.getIndex()];
         }
+        
         private final int index;
         private final int value;
+        
         private ServiceType(int index, int value) {
           this.index = index;
           this.value = value;
         }
         
-        static {
-          com.google.gwt.dev.shell.remoteui.RemoteMessageProto.getDescriptor();
-        }
+        // @@protoc_insertion_point(enum_scope:com.google.gwt.dev.shell.remoteui.Message.Request.ServiceType)
       }
       
+      public interface ViewerRequestOrBuilder
+          extends com.google.protobuf.MessageOrBuilder {
+        
+        // optional .com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest.RequestType requestType = 1;
+        boolean hasRequestType();
+        com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.RequestType getRequestType();
+        
+        // optional .com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest.CapabilityExchange capabilityExchange = 2;
+        boolean hasCapabilityExchange();
+        com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.CapabilityExchange getCapabilityExchange();
+        com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.CapabilityExchangeOrBuilder getCapabilityExchangeOrBuilder();
+        
+        // optional .com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest.AddLog addLog = 3;
+        boolean hasAddLog();
+        com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog getAddLog();
+        com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogOrBuilder getAddLogOrBuilder();
+        
+        // optional .com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest.AddLogBranch addLogBranch = 4;
+        boolean hasAddLogBranch();
+        com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogBranch getAddLogBranch();
+        com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogBranchOrBuilder getAddLogBranchOrBuilder();
+        
+        // optional .com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest.AddLogEntry addLogEntry = 5;
+        boolean hasAddLogEntry();
+        com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogEntry getAddLogEntry();
+        com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogEntryOrBuilder getAddLogEntryOrBuilder();
+        
+        // optional .com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest.DisconnectLog disconnectLog = 6;
+        boolean hasDisconnectLog();
+        com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.DisconnectLog getDisconnectLog();
+        com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.DisconnectLogOrBuilder getDisconnectLogOrBuilder();
+        
+        // optional .com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest.Initialize initialize = 7;
+        boolean hasInitialize();
+        com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.Initialize getInitialize();
+        com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.InitializeOrBuilder getInitializeOrBuilder();
+      }
       public static final class ViewerRequest extends
-          com.google.gwt.dev.protobuf.GeneratedMessage {
+          com.google.protobuf.GeneratedMessage
+          implements ViewerRequestOrBuilder {
         // Use ViewerRequest.newBuilder() to construct.
-        private ViewerRequest() {}
+        private ViewerRequest(Builder builder) {
+          super(builder);
+        }
+        private ViewerRequest(boolean noInit) {}
         
-        private static final ViewerRequest defaultInstance = new ViewerRequest();
+        private static final ViewerRequest defaultInstance;
         public static ViewerRequest getDefaultInstance() {
           return defaultInstance;
         }
@@ -201,18 +307,18 @@ public final class RemoteMessageProto {
           return defaultInstance;
         }
         
-        public static final com.google.gwt.dev.protobuf.Descriptors.Descriptor
+        public static final com.google.protobuf.Descriptors.Descriptor
             getDescriptor() {
           return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_descriptor;
         }
         
-        protected com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable
+        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
             internalGetFieldAccessorTable() {
           return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_fieldAccessorTable;
         }
         
         public enum RequestType
-            implements com.google.gwt.dev.protobuf.ProtocolMessageEnum {
+            implements com.google.protobuf.ProtocolMessageEnum {
           CAPABILITY_EXCHANGE(0, 0),
           ADD_LOG(1, 1),
           ADD_LOG_BRANCH(2, 2),
@@ -221,6 +327,13 @@ public final class RemoteMessageProto {
           INITIALIZE(5, 5),
           ;
           
+          public static final int CAPABILITY_EXCHANGE_VALUE = 0;
+          public static final int ADD_LOG_VALUE = 1;
+          public static final int ADD_LOG_BRANCH_VALUE = 2;
+          public static final int ADD_LOG_ENTRY_VALUE = 3;
+          public static final int DISCONNECT_LOG_VALUE = 4;
+          public static final int INITIALIZE_VALUE = 5;
+          
           
           public final int getNumber() { return value; }
           
@@ -236,27 +349,27 @@ public final class RemoteMessageProto {
             }
           }
           
-          public static com.google.gwt.dev.protobuf.Internal.EnumLiteMap<RequestType>
+          public static com.google.protobuf.Internal.EnumLiteMap<RequestType>
               internalGetValueMap() {
             return internalValueMap;
           }
-          private static com.google.gwt.dev.protobuf.Internal.EnumLiteMap<RequestType>
+          private static com.google.protobuf.Internal.EnumLiteMap<RequestType>
               internalValueMap =
-                new com.google.gwt.dev.protobuf.Internal.EnumLiteMap<RequestType>() {
+                new com.google.protobuf.Internal.EnumLiteMap<RequestType>() {
                   public RequestType findValueByNumber(int number) {
-                    return RequestType.valueOf(number)
-          ;        }
+                    return RequestType.valueOf(number);
+                  }
                 };
           
-          public final com.google.gwt.dev.protobuf.Descriptors.EnumValueDescriptor
+          public final com.google.protobuf.Descriptors.EnumValueDescriptor
               getValueDescriptor() {
             return getDescriptor().getValues().get(index);
           }
-          public final com.google.gwt.dev.protobuf.Descriptors.EnumDescriptor
+          public final com.google.protobuf.Descriptors.EnumDescriptor
               getDescriptorForType() {
             return getDescriptor();
           }
-          public static final com.google.gwt.dev.protobuf.Descriptors.EnumDescriptor
+          public static final com.google.protobuf.Descriptors.EnumDescriptor
               getDescriptor() {
             return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.getDescriptor().getEnumTypes().get(0);
           }
@@ -264,32 +377,40 @@ public final class RemoteMessageProto {
           private static final RequestType[] VALUES = {
             CAPABILITY_EXCHANGE, ADD_LOG, ADD_LOG_BRANCH, ADD_LOG_ENTRY, DISCONNECT_LOG, INITIALIZE, 
           };
+          
           public static RequestType valueOf(
-              com.google.gwt.dev.protobuf.Descriptors.EnumValueDescriptor desc) {
+              com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
             if (desc.getType() != getDescriptor()) {
               throw new java.lang.IllegalArgumentException(
                 "EnumValueDescriptor is not for this type.");
             }
             return VALUES[desc.getIndex()];
           }
+          
           private final int index;
           private final int value;
+          
           private RequestType(int index, int value) {
             this.index = index;
             this.value = value;
           }
           
-          static {
-            com.google.gwt.dev.shell.remoteui.RemoteMessageProto.getDescriptor();
-          }
+          // @@protoc_insertion_point(enum_scope:com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest.RequestType)
         }
         
+        public interface CapabilityExchangeOrBuilder
+            extends com.google.protobuf.MessageOrBuilder {
+        }
         public static final class CapabilityExchange extends
-            com.google.gwt.dev.protobuf.GeneratedMessage {
+            com.google.protobuf.GeneratedMessage
+            implements CapabilityExchangeOrBuilder {
           // Use CapabilityExchange.newBuilder() to construct.
-          private CapabilityExchange() {}
+          private CapabilityExchange(Builder builder) {
+            super(builder);
+          }
+          private CapabilityExchange(boolean noInit) {}
           
-          private static final CapabilityExchange defaultInstance = new CapabilityExchange();
+          private static final CapabilityExchange defaultInstance;
           public static CapabilityExchange getDefaultInstance() {
             return defaultInstance;
           }
@@ -298,22 +419,30 @@ public final class RemoteMessageProto {
             return defaultInstance;
           }
           
-          public static final com.google.gwt.dev.protobuf.Descriptors.Descriptor
+          public static final com.google.protobuf.Descriptors.Descriptor
               getDescriptor() {
             return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_CapabilityExchange_descriptor;
           }
           
-          protected com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable
+          protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
               internalGetFieldAccessorTable() {
             return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_CapabilityExchange_fieldAccessorTable;
           }
           
+          private void initFields() {
+          }
+          private byte memoizedIsInitialized = -1;
           public final boolean isInitialized() {
+            byte isInitialized = memoizedIsInitialized;
+            if (isInitialized != -1) return isInitialized == 1;
+            
+            memoizedIsInitialized = 1;
             return true;
           }
           
-          public void writeTo(com.google.gwt.dev.protobuf.CodedOutputStream output)
+          public void writeTo(com.google.protobuf.CodedOutputStream output)
                               throws java.io.IOException {
+            getSerializedSize();
             getUnknownFields().writeTo(output);
           }
           
@@ -328,26 +457,33 @@ public final class RemoteMessageProto {
             return size;
           }
           
+          private static final long serialVersionUID = 0L;
+          @java.lang.Override
+          protected java.lang.Object writeReplace()
+              throws java.io.ObjectStreamException {
+            return super.writeReplace();
+          }
+          
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.CapabilityExchange parseFrom(
-              com.google.gwt.dev.protobuf.ByteString data)
-              throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+              com.google.protobuf.ByteString data)
+              throws com.google.protobuf.InvalidProtocolBufferException {
             return newBuilder().mergeFrom(data).buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.CapabilityExchange parseFrom(
-              com.google.gwt.dev.protobuf.ByteString data,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
-              throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+              com.google.protobuf.ByteString data,
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+              throws com.google.protobuf.InvalidProtocolBufferException {
             return newBuilder().mergeFrom(data, extensionRegistry)
                      .buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.CapabilityExchange parseFrom(byte[] data)
-              throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+              throws com.google.protobuf.InvalidProtocolBufferException {
             return newBuilder().mergeFrom(data).buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.CapabilityExchange parseFrom(
               byte[] data,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
-              throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+              throws com.google.protobuf.InvalidProtocolBufferException {
             return newBuilder().mergeFrom(data, extensionRegistry)
                      .buildParsed();
           }
@@ -357,30 +493,39 @@ public final class RemoteMessageProto {
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.CapabilityExchange parseFrom(
               java.io.InputStream input,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
               throws java.io.IOException {
             return newBuilder().mergeFrom(input, extensionRegistry)
                      .buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.CapabilityExchange parseDelimitedFrom(java.io.InputStream input)
               throws java.io.IOException {
-            return newBuilder().mergeDelimitedFrom(input).buildParsed();
+            Builder builder = newBuilder();
+            if (builder.mergeDelimitedFrom(input)) {
+              return builder.buildParsed();
+            } else {
+              return null;
+            }
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.CapabilityExchange parseDelimitedFrom(
               java.io.InputStream input,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
               throws java.io.IOException {
-            return newBuilder().mergeDelimitedFrom(input, extensionRegistry)
-                     .buildParsed();
+            Builder builder = newBuilder();
+            if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
+              return builder.buildParsed();
+            } else {
+              return null;
+            }
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.CapabilityExchange parseFrom(
-              com.google.gwt.dev.protobuf.CodedInputStream input)
+              com.google.protobuf.CodedInputStream input)
               throws java.io.IOException {
             return newBuilder().mergeFrom(input).buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.CapabilityExchange parseFrom(
-              com.google.gwt.dev.protobuf.CodedInputStream input,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+              com.google.protobuf.CodedInputStream input,
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
               throws java.io.IOException {
             return newBuilder().mergeFrom(input, extensionRegistry)
                      .buildParsed();
@@ -393,37 +538,52 @@ public final class RemoteMessageProto {
           }
           public Builder toBuilder() { return newBuilder(this); }
           
+          @java.lang.Override
+          protected Builder newBuilderForType(
+              com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+            Builder builder = new Builder(parent);
+            return builder;
+          }
           public static final class Builder extends
-              com.google.gwt.dev.protobuf.GeneratedMessage.Builder<Builder> {
-            private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.CapabilityExchange result;
+              com.google.protobuf.GeneratedMessage.Builder<Builder>
+             implements com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.CapabilityExchangeOrBuilder {
+            public static final com.google.protobuf.Descriptors.Descriptor
+                getDescriptor() {
+              return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_CapabilityExchange_descriptor;
+            }
             
-            // Construct using com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.CapabilityExchange.newBuilder()
-            private Builder() {}
+            protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+                internalGetFieldAccessorTable() {
+              return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_CapabilityExchange_fieldAccessorTable;
+            }
             
-            private static Builder create() {
-              Builder builder = new Builder();
-              builder.result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.CapabilityExchange();
-              return builder;
+            // Construct using com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.CapabilityExchange.newBuilder()
+            private Builder() {
+              maybeForceBuilderInitialization();
             }
             
-            protected com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.CapabilityExchange internalGetResult() {
-              return result;
+            private Builder(BuilderParent parent) {
+              super(parent);
+              maybeForceBuilderInitialization();
+            }
+            private void maybeForceBuilderInitialization() {
+              if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+              }
+            }
+            private static Builder create() {
+              return new Builder();
             }
             
             public Builder clear() {
-              if (result == null) {
-                throw new IllegalStateException(
-                  "Cannot call clear() after build().");
-              }
-              result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.CapabilityExchange();
+              super.clear();
               return this;
             }
             
             public Builder clone() {
-              return create().mergeFrom(result);
+              return create().mergeFrom(buildPartial());
             }
             
-            public com.google.gwt.dev.protobuf.Descriptors.Descriptor
+            public com.google.protobuf.Descriptors.Descriptor
                 getDescriptorForType() {
               return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.CapabilityExchange.getDescriptor();
             }
@@ -432,36 +592,31 @@ public final class RemoteMessageProto {
               return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.CapabilityExchange.getDefaultInstance();
             }
             
-            public boolean isInitialized() {
-              return result.isInitialized();
-            }
             public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.CapabilityExchange build() {
-              if (result != null && !isInitialized()) {
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.CapabilityExchange result = buildPartial();
+              if (!result.isInitialized()) {
                 throw newUninitializedMessageException(result);
               }
-              return buildPartial();
+              return result;
             }
             
             private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.CapabilityExchange buildParsed()
-                throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
-              if (!isInitialized()) {
+                throws com.google.protobuf.InvalidProtocolBufferException {
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.CapabilityExchange result = buildPartial();
+              if (!result.isInitialized()) {
                 throw newUninitializedMessageException(
                   result).asInvalidProtocolBufferException();
               }
-              return buildPartial();
+              return result;
             }
             
             public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.CapabilityExchange buildPartial() {
-              if (result == null) {
-                throw new IllegalStateException(
-                  "build() has already been called on this Builder.");
-              }
-              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.CapabilityExchange returnMe = result;
-              result = null;
-              return returnMe;
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.CapabilityExchange result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.CapabilityExchange(this);
+              onBuilt();
+              return result;
             }
             
-            public Builder mergeFrom(com.google.gwt.dev.protobuf.Message other) {
+            public Builder mergeFrom(com.google.protobuf.Message other) {
               if (other instanceof com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.CapabilityExchange) {
                 return mergeFrom((com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.CapabilityExchange)other);
               } else {
@@ -476,23 +631,29 @@ public final class RemoteMessageProto {
               return this;
             }
             
+            public final boolean isInitialized() {
+              return true;
+            }
+            
             public Builder mergeFrom(
-                com.google.gwt.dev.protobuf.CodedInputStream input,
-                com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+                com.google.protobuf.CodedInputStream input,
+                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                 throws java.io.IOException {
-              com.google.gwt.dev.protobuf.UnknownFieldSet.Builder unknownFields =
-                com.google.gwt.dev.protobuf.UnknownFieldSet.newBuilder(
+              com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+                com.google.protobuf.UnknownFieldSet.newBuilder(
                   this.getUnknownFields());
               while (true) {
                 int tag = input.readTag();
                 switch (tag) {
                   case 0:
                     this.setUnknownFields(unknownFields.build());
+                    onChanged();
                     return this;
                   default: {
                     if (!parseUnknownField(input, unknownFields,
                                            extensionRegistry, tag)) {
                       this.setUnknownFields(unknownFields.build());
+                      onChanged();
                       return this;
                     }
                     break;
@@ -501,23 +662,50 @@ public final class RemoteMessageProto {
               }
             }
             
+            
+            // @@protoc_insertion_point(builder_scope:com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest.CapabilityExchange)
           }
           
           static {
-            com.google.gwt.dev.shell.remoteui.RemoteMessageProto.getDescriptor();
+            defaultInstance = new CapabilityExchange(true);
+            defaultInstance.initFields();
           }
           
-          static {
-            com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internalForceInit();
-          }
+          // @@protoc_insertion_point(class_scope:com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest.CapabilityExchange)
         }
         
+        public interface AddLogOrBuilder
+            extends com.google.protobuf.MessageOrBuilder {
+          
+          // optional .com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest.AddLog.LogType type = 1;
+          boolean hasType();
+          com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.LogType getType();
+          
+          // optional .com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest.AddLog.ModuleLog moduleLog = 2;
+          boolean hasModuleLog();
+          com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ModuleLog getModuleLog();
+          com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ModuleLogOrBuilder getModuleLogOrBuilder();
+          
+          // optional .com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest.AddLog.ServerLog serverLog = 3;
+          boolean hasServerLog();
+          com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ServerLog getServerLog();
+          com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ServerLogOrBuilder getServerLogOrBuilder();
+          
+          // optional .com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest.AddLog.MainLog mainLog = 4;
+          boolean hasMainLog();
+          com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.MainLog getMainLog();
+          com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.MainLogOrBuilder getMainLogOrBuilder();
+        }
         public static final class AddLog extends
-            com.google.gwt.dev.protobuf.GeneratedMessage {
+            com.google.protobuf.GeneratedMessage
+            implements AddLogOrBuilder {
           // Use AddLog.newBuilder() to construct.
-          private AddLog() {}
+          private AddLog(Builder builder) {
+            super(builder);
+          }
+          private AddLog(boolean noInit) {}
           
-          private static final AddLog defaultInstance = new AddLog();
+          private static final AddLog defaultInstance;
           public static AddLog getDefaultInstance() {
             return defaultInstance;
           }
@@ -526,23 +714,27 @@ public final class RemoteMessageProto {
             return defaultInstance;
           }
           
-          public static final com.google.gwt.dev.protobuf.Descriptors.Descriptor
+          public static final com.google.protobuf.Descriptors.Descriptor
               getDescriptor() {
             return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_AddLog_descriptor;
           }
           
-          protected com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable
+          protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
               internalGetFieldAccessorTable() {
             return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_AddLog_fieldAccessorTable;
           }
           
           public enum LogType
-              implements com.google.gwt.dev.protobuf.ProtocolMessageEnum {
+              implements com.google.protobuf.ProtocolMessageEnum {
             MAIN(0, 0),
             MODULE(1, 1),
             WEB_SERVER(2, 2),
             ;
             
+            public static final int MAIN_VALUE = 0;
+            public static final int MODULE_VALUE = 1;
+            public static final int WEB_SERVER_VALUE = 2;
+            
             
             public final int getNumber() { return value; }
             
@@ -555,27 +747,27 @@ public final class RemoteMessageProto {
               }
             }
             
-            public static com.google.gwt.dev.protobuf.Internal.EnumLiteMap<LogType>
+            public static com.google.protobuf.Internal.EnumLiteMap<LogType>
                 internalGetValueMap() {
               return internalValueMap;
             }
-            private static com.google.gwt.dev.protobuf.Internal.EnumLiteMap<LogType>
+            private static com.google.protobuf.Internal.EnumLiteMap<LogType>
                 internalValueMap =
-                  new com.google.gwt.dev.protobuf.Internal.EnumLiteMap<LogType>() {
+                  new com.google.protobuf.Internal.EnumLiteMap<LogType>() {
                     public LogType findValueByNumber(int number) {
-                      return LogType.valueOf(number)
-            ;        }
+                      return LogType.valueOf(number);
+                    }
                   };
             
-            public final com.google.gwt.dev.protobuf.Descriptors.EnumValueDescriptor
+            public final com.google.protobuf.Descriptors.EnumValueDescriptor
                 getValueDescriptor() {
               return getDescriptor().getValues().get(index);
             }
-            public final com.google.gwt.dev.protobuf.Descriptors.EnumDescriptor
+            public final com.google.protobuf.Descriptors.EnumDescriptor
                 getDescriptorForType() {
               return getDescriptor();
             }
-            public static final com.google.gwt.dev.protobuf.Descriptors.EnumDescriptor
+            public static final com.google.protobuf.Descriptors.EnumDescriptor
                 getDescriptor() {
               return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.getDescriptor().getEnumTypes().get(0);
             }
@@ -583,32 +775,68 @@ public final class RemoteMessageProto {
             private static final LogType[] VALUES = {
               MAIN, MODULE, WEB_SERVER, 
             };
+            
             public static LogType valueOf(
-                com.google.gwt.dev.protobuf.Descriptors.EnumValueDescriptor desc) {
+                com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
               if (desc.getType() != getDescriptor()) {
                 throw new java.lang.IllegalArgumentException(
                   "EnumValueDescriptor is not for this type.");
               }
               return VALUES[desc.getIndex()];
             }
+            
             private final int index;
             private final int value;
+            
             private LogType(int index, int value) {
               this.index = index;
               this.value = value;
             }
             
-            static {
-              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.getDescriptor();
-            }
+            // @@protoc_insertion_point(enum_scope:com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest.AddLog.LogType)
           }
           
+          public interface ModuleLogOrBuilder
+              extends com.google.protobuf.MessageOrBuilder {
+            
+            // required string name = 1;
+            boolean hasName();
+            String getName();
+            
+            // optional bytes icon = 2;
+            boolean hasIcon();
+            com.google.protobuf.ByteString getIcon();
+            
+            // optional string sessionKey = 3;
+            boolean hasSessionKey();
+            String getSessionKey();
+            
+            // optional string userAgent = 4;
+            boolean hasUserAgent();
+            String getUserAgent();
+            
+            // optional string url = 5;
+            boolean hasUrl();
+            String getUrl();
+            
+            // optional string tabKey = 6;
+            boolean hasTabKey();
+            String getTabKey();
+            
+            // optional string remoteHost = 7;
+            boolean hasRemoteHost();
+            String getRemoteHost();
+          }
           public static final class ModuleLog extends
-              com.google.gwt.dev.protobuf.GeneratedMessage {
+              com.google.protobuf.GeneratedMessage
+              implements ModuleLogOrBuilder {
             // Use ModuleLog.newBuilder() to construct.
-            private ModuleLog() {}
+            private ModuleLog(Builder builder) {
+              super(builder);
+            }
+            private ModuleLog(boolean noInit) {}
             
-            private static final ModuleLog defaultInstance = new ModuleLog();
+            private static final ModuleLog defaultInstance;
             public static ModuleLog getDefaultInstance() {
               return defaultInstance;
             }
@@ -617,92 +845,264 @@ public final class RemoteMessageProto {
               return defaultInstance;
             }
             
-            public static final com.google.gwt.dev.protobuf.Descriptors.Descriptor
+            public static final com.google.protobuf.Descriptors.Descriptor
                 getDescriptor() {
               return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_AddLog_ModuleLog_descriptor;
             }
             
-            protected com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable
+            protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
                 internalGetFieldAccessorTable() {
               return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_AddLog_ModuleLog_fieldAccessorTable;
             }
             
+            private int bitField0_;
             // required string name = 1;
             public static final int NAME_FIELD_NUMBER = 1;
-            private boolean hasName;
-            private java.lang.String name_ = "";
-            public boolean hasName() { return hasName; }
-            public java.lang.String getName() { return name_; }
+            private java.lang.Object name_;
+            public boolean hasName() {
+              return ((bitField0_ & 0x00000001) == 0x00000001);
+            }
+            public String getName() {
+              java.lang.Object ref = name_;
+              if (ref instanceof String) {
+                return (String) ref;
+              } else {
+                com.google.protobuf.ByteString bs = 
+                    (com.google.protobuf.ByteString) ref;
+                String s = bs.toStringUtf8();
+                if (com.google.protobuf.Internal.isValidUtf8(bs)) {
+                  name_ = s;
+                }
+                return s;
+              }
+            }
+            private com.google.protobuf.ByteString getNameBytes() {
+              java.lang.Object ref = name_;
+              if (ref instanceof String) {
+                com.google.protobuf.ByteString b = 
+                    com.google.protobuf.ByteString.copyFromUtf8((String) ref);
+                name_ = b;
+                return b;
+              } else {
+                return (com.google.protobuf.ByteString) ref;
+              }
+            }
             
             // optional bytes icon = 2;
             public static final int ICON_FIELD_NUMBER = 2;
-            private boolean hasIcon;
-            private com.google.gwt.dev.protobuf.ByteString icon_ = com.google.gwt.dev.protobuf.ByteString.EMPTY;
-            public boolean hasIcon() { return hasIcon; }
-            public com.google.gwt.dev.protobuf.ByteString getIcon() { return icon_; }
+            private com.google.protobuf.ByteString icon_;
+            public boolean hasIcon() {
+              return ((bitField0_ & 0x00000002) == 0x00000002);
+            }
+            public com.google.protobuf.ByteString getIcon() {
+              return icon_;
+            }
             
             // optional string sessionKey = 3;
             public static final int SESSIONKEY_FIELD_NUMBER = 3;
-            private boolean hasSessionKey;
-            private java.lang.String sessionKey_ = "";
-            public boolean hasSessionKey() { return hasSessionKey; }
-            public java.lang.String getSessionKey() { return sessionKey_; }
+            private java.lang.Object sessionKey_;
+            public boolean hasSessionKey() {
+              return ((bitField0_ & 0x00000004) == 0x00000004);
+            }
+            public String getSessionKey() {
+              java.lang.Object ref = sessionKey_;
+              if (ref instanceof String) {
+                return (String) ref;
+              } else {
+                com.google.protobuf.ByteString bs = 
+                    (com.google.protobuf.ByteString) ref;
+                String s = bs.toStringUtf8();
+                if (com.google.protobuf.Internal.isValidUtf8(bs)) {
+                  sessionKey_ = s;
+                }
+                return s;
+              }
+            }
+            private com.google.protobuf.ByteString getSessionKeyBytes() {
+              java.lang.Object ref = sessionKey_;
+              if (ref instanceof String) {
+                com.google.protobuf.ByteString b = 
+                    com.google.protobuf.ByteString.copyFromUtf8((String) ref);
+                sessionKey_ = b;
+                return b;
+              } else {
+                return (com.google.protobuf.ByteString) ref;
+              }
+            }
             
             // optional string userAgent = 4;
             public static final int USERAGENT_FIELD_NUMBER = 4;
-            private boolean hasUserAgent;
-            private java.lang.String userAgent_ = "";
-            public boolean hasUserAgent() { return hasUserAgent; }
-            public java.lang.String getUserAgent() { return userAgent_; }
+            private java.lang.Object userAgent_;
+            public boolean hasUserAgent() {
+              return ((bitField0_ & 0x00000008) == 0x00000008);
+            }
+            public String getUserAgent() {
+              java.lang.Object ref = userAgent_;
+              if (ref instanceof String) {
+                return (String) ref;
+              } else {
+                com.google.protobuf.ByteString bs = 
+                    (com.google.protobuf.ByteString) ref;
+                String s = bs.toStringUtf8();
+                if (com.google.protobuf.Internal.isValidUtf8(bs)) {
+                  userAgent_ = s;
+                }
+                return s;
+              }
+            }
+            private com.google.protobuf.ByteString getUserAgentBytes() {
+              java.lang.Object ref = userAgent_;
+              if (ref instanceof String) {
+                com.google.protobuf.ByteString b = 
+                    com.google.protobuf.ByteString.copyFromUtf8((String) ref);
+                userAgent_ = b;
+                return b;
+              } else {
+                return (com.google.protobuf.ByteString) ref;
+              }
+            }
             
             // optional string url = 5;
             public static final int URL_FIELD_NUMBER = 5;
-            private boolean hasUrl;
-            private java.lang.String url_ = "";
-            public boolean hasUrl() { return hasUrl; }
-            public java.lang.String getUrl() { return url_; }
+            private java.lang.Object url_;
+            public boolean hasUrl() {
+              return ((bitField0_ & 0x00000010) == 0x00000010);
+            }
+            public String getUrl() {
+              java.lang.Object ref = url_;
+              if (ref instanceof String) {
+                return (String) ref;
+              } else {
+                com.google.protobuf.ByteString bs = 
+                    (com.google.protobuf.ByteString) ref;
+                String s = bs.toStringUtf8();
+                if (com.google.protobuf.Internal.isValidUtf8(bs)) {
+                  url_ = s;
+                }
+                return s;
+              }
+            }
+            private com.google.protobuf.ByteString getUrlBytes() {
+              java.lang.Object ref = url_;
+              if (ref instanceof String) {
+                com.google.protobuf.ByteString b = 
+                    com.google.protobuf.ByteString.copyFromUtf8((String) ref);
+                url_ = b;
+                return b;
+              } else {
+                return (com.google.protobuf.ByteString) ref;
+              }
+            }
             
             // optional string tabKey = 6;
             public static final int TABKEY_FIELD_NUMBER = 6;
-            private boolean hasTabKey;
-            private java.lang.String tabKey_ = "";
-            public boolean hasTabKey() { return hasTabKey; }
-            public java.lang.String getTabKey() { return tabKey_; }
+            private java.lang.Object tabKey_;
+            public boolean hasTabKey() {
+              return ((bitField0_ & 0x00000020) == 0x00000020);
+            }
+            public String getTabKey() {
+              java.lang.Object ref = tabKey_;
+              if (ref instanceof String) {
+                return (String) ref;
+              } else {
+                com.google.protobuf.ByteString bs = 
+                    (com.google.protobuf.ByteString) ref;
+                String s = bs.toStringUtf8();
+                if (com.google.protobuf.Internal.isValidUtf8(bs)) {
+                  tabKey_ = s;
+                }
+                return s;
+              }
+            }
+            private com.google.protobuf.ByteString getTabKeyBytes() {
+              java.lang.Object ref = tabKey_;
+              if (ref instanceof String) {
+                com.google.protobuf.ByteString b = 
+                    com.google.protobuf.ByteString.copyFromUtf8((String) ref);
+                tabKey_ = b;
+                return b;
+              } else {
+                return (com.google.protobuf.ByteString) ref;
+              }
+            }
             
             // optional string remoteHost = 7;
             public static final int REMOTEHOST_FIELD_NUMBER = 7;
-            private boolean hasRemoteHost;
-            private java.lang.String remoteHost_ = "";
-            public boolean hasRemoteHost() { return hasRemoteHost; }
-            public java.lang.String getRemoteHost() { return remoteHost_; }
+            private java.lang.Object remoteHost_;
+            public boolean hasRemoteHost() {
+              return ((bitField0_ & 0x00000040) == 0x00000040);
+            }
+            public String getRemoteHost() {
+              java.lang.Object ref = remoteHost_;
+              if (ref instanceof String) {
+                return (String) ref;
+              } else {
+                com.google.protobuf.ByteString bs = 
+                    (com.google.protobuf.ByteString) ref;
+                String s = bs.toStringUtf8();
+                if (com.google.protobuf.Internal.isValidUtf8(bs)) {
+                  remoteHost_ = s;
+                }
+                return s;
+              }
+            }
+            private com.google.protobuf.ByteString getRemoteHostBytes() {
+              java.lang.Object ref = remoteHost_;
+              if (ref instanceof String) {
+                com.google.protobuf.ByteString b = 
+                    com.google.protobuf.ByteString.copyFromUtf8((String) ref);
+                remoteHost_ = b;
+                return b;
+              } else {
+                return (com.google.protobuf.ByteString) ref;
+              }
+            }
             
+            private void initFields() {
+              name_ = "";
+              icon_ = com.google.protobuf.ByteString.EMPTY;
+              sessionKey_ = "";
+              userAgent_ = "";
+              url_ = "";
+              tabKey_ = "";
+              remoteHost_ = "";
+            }
+            private byte memoizedIsInitialized = -1;
             public final boolean isInitialized() {
-              if (!hasName) return false;
+              byte isInitialized = memoizedIsInitialized;
+              if (isInitialized != -1) return isInitialized == 1;
+              
+              if (!hasName()) {
+                memoizedIsInitialized = 0;
+                return false;
+              }
+              memoizedIsInitialized = 1;
               return true;
             }
             
-            public void writeTo(com.google.gwt.dev.protobuf.CodedOutputStream output)
+            public void writeTo(com.google.protobuf.CodedOutputStream output)
                                 throws java.io.IOException {
-              if (hasName()) {
-                output.writeString(1, getName());
+              getSerializedSize();
+              if (((bitField0_ & 0x00000001) == 0x00000001)) {
+                output.writeBytes(1, getNameBytes());
               }
-              if (hasIcon()) {
-                output.writeBytes(2, getIcon());
+              if (((bitField0_ & 0x00000002) == 0x00000002)) {
+                output.writeBytes(2, icon_);
               }
-              if (hasSessionKey()) {
-                output.writeString(3, getSessionKey());
+              if (((bitField0_ & 0x00000004) == 0x00000004)) {
+                output.writeBytes(3, getSessionKeyBytes());
               }
-              if (hasUserAgent()) {
-                output.writeString(4, getUserAgent());
+              if (((bitField0_ & 0x00000008) == 0x00000008)) {
+                output.writeBytes(4, getUserAgentBytes());
               }
-              if (hasUrl()) {
-                output.writeString(5, getUrl());
+              if (((bitField0_ & 0x00000010) == 0x00000010)) {
+                output.writeBytes(5, getUrlBytes());
               }
-              if (hasTabKey()) {
-                output.writeString(6, getTabKey());
+              if (((bitField0_ & 0x00000020) == 0x00000020)) {
+                output.writeBytes(6, getTabKeyBytes());
               }
-              if (hasRemoteHost()) {
-                output.writeString(7, getRemoteHost());
+              if (((bitField0_ & 0x00000040) == 0x00000040)) {
+                output.writeBytes(7, getRemoteHostBytes());
               }
               getUnknownFields().writeTo(output);
             }
@@ -713,59 +1113,66 @@ public final class RemoteMessageProto {
               if (size != -1) return size;
             
               size = 0;
-              if (hasName()) {
-                size += com.google.gwt.dev.protobuf.CodedOutputStream
-                  .computeStringSize(1, getName());
-              }
-              if (hasIcon()) {
-                size += com.google.gwt.dev.protobuf.CodedOutputStream
-                  .computeBytesSize(2, getIcon());
-              }
-              if (hasSessionKey()) {
-                size += com.google.gwt.dev.protobuf.CodedOutputStream
-                  .computeStringSize(3, getSessionKey());
-              }
-              if (hasUserAgent()) {
-                size += com.google.gwt.dev.protobuf.CodedOutputStream
-                  .computeStringSize(4, getUserAgent());
-              }
-              if (hasUrl()) {
-                size += com.google.gwt.dev.protobuf.CodedOutputStream
-                  .computeStringSize(5, getUrl());
-              }
-              if (hasTabKey()) {
-                size += com.google.gwt.dev.protobuf.CodedOutputStream
-                  .computeStringSize(6, getTabKey());
-              }
-              if (hasRemoteHost()) {
-                size += com.google.gwt.dev.protobuf.CodedOutputStream
-                  .computeStringSize(7, getRemoteHost());
+              if (((bitField0_ & 0x00000001) == 0x00000001)) {
+                size += com.google.protobuf.CodedOutputStream
+                  .computeBytesSize(1, getNameBytes());
+              }
+              if (((bitField0_ & 0x00000002) == 0x00000002)) {
+                size += com.google.protobuf.CodedOutputStream
+                  .computeBytesSize(2, icon_);
+              }
+              if (((bitField0_ & 0x00000004) == 0x00000004)) {
+                size += com.google.protobuf.CodedOutputStream
+                  .computeBytesSize(3, getSessionKeyBytes());
+              }
+              if (((bitField0_ & 0x00000008) == 0x00000008)) {
+                size += com.google.protobuf.CodedOutputStream
+                  .computeBytesSize(4, getUserAgentBytes());
+              }
+              if (((bitField0_ & 0x00000010) == 0x00000010)) {
+                size += com.google.protobuf.CodedOutputStream
+                  .computeBytesSize(5, getUrlBytes());
+              }
+              if (((bitField0_ & 0x00000020) == 0x00000020)) {
+                size += com.google.protobuf.CodedOutputStream
+                  .computeBytesSize(6, getTabKeyBytes());
+              }
+              if (((bitField0_ & 0x00000040) == 0x00000040)) {
+                size += com.google.protobuf.CodedOutputStream
+                  .computeBytesSize(7, getRemoteHostBytes());
               }
               size += getUnknownFields().getSerializedSize();
               memoizedSerializedSize = size;
               return size;
             }
             
+            private static final long serialVersionUID = 0L;
+            @java.lang.Override
+            protected java.lang.Object writeReplace()
+                throws java.io.ObjectStreamException {
+              return super.writeReplace();
+            }
+            
             public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ModuleLog parseFrom(
-                com.google.gwt.dev.protobuf.ByteString data)
-                throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+                com.google.protobuf.ByteString data)
+                throws com.google.protobuf.InvalidProtocolBufferException {
               return newBuilder().mergeFrom(data).buildParsed();
             }
             public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ModuleLog parseFrom(
-                com.google.gwt.dev.protobuf.ByteString data,
-                com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
-                throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+                com.google.protobuf.ByteString data,
+                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+                throws com.google.protobuf.InvalidProtocolBufferException {
               return newBuilder().mergeFrom(data, extensionRegistry)
                        .buildParsed();
             }
             public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ModuleLog parseFrom(byte[] data)
-                throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+                throws com.google.protobuf.InvalidProtocolBufferException {
               return newBuilder().mergeFrom(data).buildParsed();
             }
             public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ModuleLog parseFrom(
                 byte[] data,
-                com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
-                throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+                throws com.google.protobuf.InvalidProtocolBufferException {
               return newBuilder().mergeFrom(data, extensionRegistry)
                        .buildParsed();
             }
@@ -775,30 +1182,39 @@ public final class RemoteMessageProto {
             }
             public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ModuleLog parseFrom(
                 java.io.InputStream input,
-                com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                 throws java.io.IOException {
               return newBuilder().mergeFrom(input, extensionRegistry)
                        .buildParsed();
             }
             public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ModuleLog parseDelimitedFrom(java.io.InputStream input)
                 throws java.io.IOException {
-              return newBuilder().mergeDelimitedFrom(input).buildParsed();
+              Builder builder = newBuilder();
+              if (builder.mergeDelimitedFrom(input)) {
+                return builder.buildParsed();
+              } else {
+                return null;
+              }
             }
             public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ModuleLog parseDelimitedFrom(
                 java.io.InputStream input,
-                com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                 throws java.io.IOException {
-              return newBuilder().mergeDelimitedFrom(input, extensionRegistry)
-                       .buildParsed();
+              Builder builder = newBuilder();
+              if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
+                return builder.buildParsed();
+              } else {
+                return null;
+              }
             }
             public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ModuleLog parseFrom(
-                com.google.gwt.dev.protobuf.CodedInputStream input)
+                com.google.protobuf.CodedInputStream input)
                 throws java.io.IOException {
               return newBuilder().mergeFrom(input).buildParsed();
             }
             public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ModuleLog parseFrom(
-                com.google.gwt.dev.protobuf.CodedInputStream input,
-                com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+                com.google.protobuf.CodedInputStream input,
+                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                 throws java.io.IOException {
               return newBuilder().mergeFrom(input, extensionRegistry)
                        .buildParsed();
@@ -811,37 +1227,66 @@ public final class RemoteMessageProto {
             }
             public Builder toBuilder() { return newBuilder(this); }
             
+            @java.lang.Override
+            protected Builder newBuilderForType(
+                com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+              Builder builder = new Builder(parent);
+              return builder;
+            }
             public static final class Builder extends
-                com.google.gwt.dev.protobuf.GeneratedMessage.Builder<Builder> {
-              private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ModuleLog result;
+                com.google.protobuf.GeneratedMessage.Builder<Builder>
+               implements com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ModuleLogOrBuilder {
+              public static final com.google.protobuf.Descriptors.Descriptor
+                  getDescriptor() {
+                return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_AddLog_ModuleLog_descriptor;
+              }
               
-              // Construct using com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ModuleLog.newBuilder()
-              private Builder() {}
+              protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+                  internalGetFieldAccessorTable() {
+                return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_AddLog_ModuleLog_fieldAccessorTable;
+              }
               
-              private static Builder create() {
-                Builder builder = new Builder();
-                builder.result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ModuleLog();
-                return builder;
+              // Construct using com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ModuleLog.newBuilder()
+              private Builder() {
+                maybeForceBuilderInitialization();
               }
               
-              protected com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ModuleLog internalGetResult() {
-                return result;
+              private Builder(BuilderParent parent) {
+                super(parent);
+                maybeForceBuilderInitialization();
+              }
+              private void maybeForceBuilderInitialization() {
+                if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+                }
+              }
+              private static Builder create() {
+                return new Builder();
               }
               
               public Builder clear() {
-                if (result == null) {
-                  throw new IllegalStateException(
-                    "Cannot call clear() after build().");
-                }
-                result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ModuleLog();
+                super.clear();
+                name_ = "";
+                bitField0_ = (bitField0_ & ~0x00000001);
+                icon_ = com.google.protobuf.ByteString.EMPTY;
+                bitField0_ = (bitField0_ & ~0x00000002);
+                sessionKey_ = "";
+                bitField0_ = (bitField0_ & ~0x00000004);
+                userAgent_ = "";
+                bitField0_ = (bitField0_ & ~0x00000008);
+                url_ = "";
+                bitField0_ = (bitField0_ & ~0x00000010);
+                tabKey_ = "";
+                bitField0_ = (bitField0_ & ~0x00000020);
+                remoteHost_ = "";
+                bitField0_ = (bitField0_ & ~0x00000040);
                 return this;
               }
               
               public Builder clone() {
-                return create().mergeFrom(result);
+                return create().mergeFrom(buildPartial());
               }
               
-              public com.google.gwt.dev.protobuf.Descriptors.Descriptor
+              public com.google.protobuf.Descriptors.Descriptor
                   getDescriptorForType() {
                 return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ModuleLog.getDescriptor();
               }
@@ -850,36 +1295,62 @@ public final class RemoteMessageProto {
                 return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ModuleLog.getDefaultInstance();
               }
               
-              public boolean isInitialized() {
-                return result.isInitialized();
-              }
               public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ModuleLog build() {
-                if (result != null && !isInitialized()) {
+                com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ModuleLog result = buildPartial();
+                if (!result.isInitialized()) {
                   throw newUninitializedMessageException(result);
                 }
-                return buildPartial();
+                return result;
               }
               
               private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ModuleLog buildParsed()
-                  throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
-                if (!isInitialized()) {
+                  throws com.google.protobuf.InvalidProtocolBufferException {
+                com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ModuleLog result = buildPartial();
+                if (!result.isInitialized()) {
                   throw newUninitializedMessageException(
                     result).asInvalidProtocolBufferException();
                 }
-                return buildPartial();
+                return result;
               }
               
               public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ModuleLog buildPartial() {
-                if (result == null) {
-                  throw new IllegalStateException(
-                    "build() has already been called on this Builder.");
-                }
-                com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ModuleLog returnMe = result;
-                result = null;
-                return returnMe;
+                com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ModuleLog result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ModuleLog(this);
+                int from_bitField0_ = bitField0_;
+                int to_bitField0_ = 0;
+                if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+                  to_bitField0_ |= 0x00000001;
+                }
+                result.name_ = name_;
+                if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
+                  to_bitField0_ |= 0x00000002;
+                }
+                result.icon_ = icon_;
+                if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
+                  to_bitField0_ |= 0x00000004;
+                }
+                result.sessionKey_ = sessionKey_;
+                if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
+                  to_bitField0_ |= 0x00000008;
+                }
+                result.userAgent_ = userAgent_;
+                if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
+                  to_bitField0_ |= 0x00000010;
+                }
+                result.url_ = url_;
+                if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
+                  to_bitField0_ |= 0x00000020;
+                }
+                result.tabKey_ = tabKey_;
+                if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
+                  to_bitField0_ |= 0x00000040;
+                }
+                result.remoteHost_ = remoteHost_;
+                result.bitField0_ = to_bitField0_;
+                onBuilt();
+                return result;
               }
               
-              public Builder mergeFrom(com.google.gwt.dev.protobuf.Message other) {
+              public Builder mergeFrom(com.google.protobuf.Message other) {
                 if (other instanceof com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ModuleLog) {
                   return mergeFrom((com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ModuleLog)other);
                 } else {
@@ -915,223 +1386,350 @@ public final class RemoteMessageProto {
                 return this;
               }
               
+              public final boolean isInitialized() {
+                if (!hasName()) {
+                  
+                  return false;
+                }
+                return true;
+              }
+              
               public Builder mergeFrom(
-                  com.google.gwt.dev.protobuf.CodedInputStream input,
-                  com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+                  com.google.protobuf.CodedInputStream input,
+                  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                   throws java.io.IOException {
-                com.google.gwt.dev.protobuf.UnknownFieldSet.Builder unknownFields =
-                  com.google.gwt.dev.protobuf.UnknownFieldSet.newBuilder(
+                com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+                  com.google.protobuf.UnknownFieldSet.newBuilder(
                     this.getUnknownFields());
                 while (true) {
                   int tag = input.readTag();
                   switch (tag) {
                     case 0:
                       this.setUnknownFields(unknownFields.build());
+                      onChanged();
                       return this;
                     default: {
                       if (!parseUnknownField(input, unknownFields,
                                              extensionRegistry, tag)) {
                         this.setUnknownFields(unknownFields.build());
+                        onChanged();
                         return this;
                       }
                       break;
                     }
                     case 10: {
-                      setName(input.readString());
+                      bitField0_ |= 0x00000001;
+                      name_ = input.readBytes();
                       break;
                     }
                     case 18: {
-                      setIcon(input.readBytes());
+                      bitField0_ |= 0x00000002;
+                      icon_ = input.readBytes();
                       break;
                     }
                     case 26: {
-                      setSessionKey(input.readString());
+                      bitField0_ |= 0x00000004;
+                      sessionKey_ = input.readBytes();
                       break;
                     }
                     case 34: {
-                      setUserAgent(input.readString());
+                      bitField0_ |= 0x00000008;
+                      userAgent_ = input.readBytes();
                       break;
                     }
                     case 42: {
-                      setUrl(input.readString());
+                      bitField0_ |= 0x00000010;
+                      url_ = input.readBytes();
                       break;
                     }
                     case 50: {
-                      setTabKey(input.readString());
+                      bitField0_ |= 0x00000020;
+                      tabKey_ = input.readBytes();
                       break;
                     }
                     case 58: {
-                      setRemoteHost(input.readString());
+                      bitField0_ |= 0x00000040;
+                      remoteHost_ = input.readBytes();
                       break;
                     }
                   }
                 }
               }
               
+              private int bitField0_;
               
               // required string name = 1;
+              private java.lang.Object name_ = "";
               public boolean hasName() {
-                return result.hasName();
+                return ((bitField0_ & 0x00000001) == 0x00000001);
               }
-              public java.lang.String getName() {
-                return result.getName();
+              public String getName() {
+                java.lang.Object ref = name_;
+                if (!(ref instanceof String)) {
+                  String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
+                  name_ = s;
+                  return s;
+                } else {
+                  return (String) ref;
+                }
               }
-              public Builder setName(java.lang.String value) {
+              public Builder setName(String value) {
                 if (value == null) {
     throw new NullPointerException();
   }
-  result.hasName = true;
-                result.name_ = value;
+  bitField0_ |= 0x00000001;
+                name_ = value;
+                onChanged();
                 return this;
               }
               public Builder clearName() {
-                result.hasName = false;
-                result.name_ = getDefaultInstance().getName();
+                bitField0_ = (bitField0_ & ~0x00000001);
+                name_ = getDefaultInstance().getName();
+                onChanged();
                 return this;
               }
+              void setName(com.google.protobuf.ByteString value) {
+                bitField0_ |= 0x00000001;
+                name_ = value;
+                onChanged();
+              }
               
               // optional bytes icon = 2;
+              private com.google.protobuf.ByteString icon_ = com.google.protobuf.ByteString.EMPTY;
               public boolean hasIcon() {
-                return result.hasIcon();
+                return ((bitField0_ & 0x00000002) == 0x00000002);
               }
-              public com.google.gwt.dev.protobuf.ByteString getIcon() {
-                return result.getIcon();
+              public com.google.protobuf.ByteString getIcon() {
+                return icon_;
               }
-              public Builder setIcon(com.google.gwt.dev.protobuf.ByteString value) {
+              public Builder setIcon(com.google.protobuf.ByteString value) {
                 if (value == null) {
     throw new NullPointerException();
   }
-  result.hasIcon = true;
-                result.icon_ = value;
+  bitField0_ |= 0x00000002;
+                icon_ = value;
+                onChanged();
                 return this;
               }
               public Builder clearIcon() {
-                result.hasIcon = false;
-                result.icon_ = getDefaultInstance().getIcon();
+                bitField0_ = (bitField0_ & ~0x00000002);
+                icon_ = getDefaultInstance().getIcon();
+                onChanged();
                 return this;
               }
               
               // optional string sessionKey = 3;
+              private java.lang.Object sessionKey_ = "";
               public boolean hasSessionKey() {
-                return result.hasSessionKey();
+                return ((bitField0_ & 0x00000004) == 0x00000004);
               }
-              public java.lang.String getSessionKey() {
-                return result.getSessionKey();
+              public String getSessionKey() {
+                java.lang.Object ref = sessionKey_;
+                if (!(ref instanceof String)) {
+                  String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
+                  sessionKey_ = s;
+                  return s;
+                } else {
+                  return (String) ref;
+                }
               }
-              public Builder setSessionKey(java.lang.String value) {
+              public Builder setSessionKey(String value) {
                 if (value == null) {
     throw new NullPointerException();
   }
-  result.hasSessionKey = true;
-                result.sessionKey_ = value;
+  bitField0_ |= 0x00000004;
+                sessionKey_ = value;
+                onChanged();
                 return this;
               }
               public Builder clearSessionKey() {
-                result.hasSessionKey = false;
-                result.sessionKey_ = getDefaultInstance().getSessionKey();
+                bitField0_ = (bitField0_ & ~0x00000004);
+                sessionKey_ = getDefaultInstance().getSessionKey();
+                onChanged();
                 return this;
               }
+              void setSessionKey(com.google.protobuf.ByteString value) {
+                bitField0_ |= 0x00000004;
+                sessionKey_ = value;
+                onChanged();
+              }
               
               // optional string userAgent = 4;
+              private java.lang.Object userAgent_ = "";
               public boolean hasUserAgent() {
-                return result.hasUserAgent();
+                return ((bitField0_ & 0x00000008) == 0x00000008);
               }
-              public java.lang.String getUserAgent() {
-                return result.getUserAgent();
+              public String getUserAgent() {
+                java.lang.Object ref = userAgent_;
+                if (!(ref instanceof String)) {
+                  String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
+                  userAgent_ = s;
+                  return s;
+                } else {
+                  return (String) ref;
+                }
               }
-              public Builder setUserAgent(java.lang.String value) {
+              public Builder setUserAgent(String value) {
                 if (value == null) {
     throw new NullPointerException();
   }
-  result.hasUserAgent = true;
-                result.userAgent_ = value;
+  bitField0_ |= 0x00000008;
+                userAgent_ = value;
+                onChanged();
                 return this;
               }
               public Builder clearUserAgent() {
-                result.hasUserAgent = false;
-                result.userAgent_ = getDefaultInstance().getUserAgent();
+                bitField0_ = (bitField0_ & ~0x00000008);
+                userAgent_ = getDefaultInstance().getUserAgent();
+                onChanged();
                 return this;
               }
+              void setUserAgent(com.google.protobuf.ByteString value) {
+                bitField0_ |= 0x00000008;
+                userAgent_ = value;
+                onChanged();
+              }
               
               // optional string url = 5;
+              private java.lang.Object url_ = "";
               public boolean hasUrl() {
-                return result.hasUrl();
+                return ((bitField0_ & 0x00000010) == 0x00000010);
               }
-              public java.lang.String getUrl() {
-                return result.getUrl();
+              public String getUrl() {
+                java.lang.Object ref = url_;
+                if (!(ref instanceof String)) {
+                  String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
+                  url_ = s;
+                  return s;
+                } else {
+                  return (String) ref;
+                }
               }
-              public Builder setUrl(java.lang.String value) {
+              public Builder setUrl(String value) {
                 if (value == null) {
     throw new NullPointerException();
   }
-  result.hasUrl = true;
-                result.url_ = value;
+  bitField0_ |= 0x00000010;
+                url_ = value;
+                onChanged();
                 return this;
               }
               public Builder clearUrl() {
-                result.hasUrl = false;
-                result.url_ = getDefaultInstance().getUrl();
+                bitField0_ = (bitField0_ & ~0x00000010);
+                url_ = getDefaultInstance().getUrl();
+                onChanged();
                 return this;
               }
+              void setUrl(com.google.protobuf.ByteString value) {
+                bitField0_ |= 0x00000010;
+                url_ = value;
+                onChanged();
+              }
               
               // optional string tabKey = 6;
+              private java.lang.Object tabKey_ = "";
               public boolean hasTabKey() {
-                return result.hasTabKey();
+                return ((bitField0_ & 0x00000020) == 0x00000020);
               }
-              public java.lang.String getTabKey() {
-                return result.getTabKey();
+              public String getTabKey() {
+                java.lang.Object ref = tabKey_;
+                if (!(ref instanceof String)) {
+                  String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
+                  tabKey_ = s;
+                  return s;
+                } else {
+                  return (String) ref;
+                }
               }
-              public Builder setTabKey(java.lang.String value) {
+              public Builder setTabKey(String value) {
                 if (value == null) {
     throw new NullPointerException();
   }
-  result.hasTabKey = true;
-                result.tabKey_ = value;
+  bitField0_ |= 0x00000020;
+                tabKey_ = value;
+                onChanged();
                 return this;
               }
               public Builder clearTabKey() {
-                result.hasTabKey = false;
-                result.tabKey_ = getDefaultInstance().getTabKey();
+                bitField0_ = (bitField0_ & ~0x00000020);
+                tabKey_ = getDefaultInstance().getTabKey();
+                onChanged();
                 return this;
               }
+              void setTabKey(com.google.protobuf.ByteString value) {
+                bitField0_ |= 0x00000020;
+                tabKey_ = value;
+                onChanged();
+              }
               
               // optional string remoteHost = 7;
+              private java.lang.Object remoteHost_ = "";
               public boolean hasRemoteHost() {
-                return result.hasRemoteHost();
+                return ((bitField0_ & 0x00000040) == 0x00000040);
               }
-              public java.lang.String getRemoteHost() {
-                return result.getRemoteHost();
+              public String getRemoteHost() {
+                java.lang.Object ref = remoteHost_;
+                if (!(ref instanceof String)) {
+                  String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
+                  remoteHost_ = s;
+                  return s;
+                } else {
+                  return (String) ref;
+                }
               }
-              public Builder setRemoteHost(java.lang.String value) {
+              public Builder setRemoteHost(String value) {
                 if (value == null) {
     throw new NullPointerException();
   }
-  result.hasRemoteHost = true;
-                result.remoteHost_ = value;
+  bitField0_ |= 0x00000040;
+                remoteHost_ = value;
+                onChanged();
                 return this;
               }
               public Builder clearRemoteHost() {
-                result.hasRemoteHost = false;
-                result.remoteHost_ = getDefaultInstance().getRemoteHost();
+                bitField0_ = (bitField0_ & ~0x00000040);
+                remoteHost_ = getDefaultInstance().getRemoteHost();
+                onChanged();
                 return this;
               }
+              void setRemoteHost(com.google.protobuf.ByteString value) {
+                bitField0_ |= 0x00000040;
+                remoteHost_ = value;
+                onChanged();
+              }
+              
+              // @@protoc_insertion_point(builder_scope:com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest.AddLog.ModuleLog)
             }
             
             static {
-              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.getDescriptor();
+              defaultInstance = new ModuleLog(true);
+              defaultInstance.initFields();
             }
             
-            static {
-              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internalForceInit();
-            }
+            // @@protoc_insertion_point(class_scope:com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest.AddLog.ModuleLog)
           }
           
+          public interface ServerLogOrBuilder
+              extends com.google.protobuf.MessageOrBuilder {
+            
+            // required string name = 1;
+            boolean hasName();
+            String getName();
+            
+            // optional bytes icon = 2;
+            boolean hasIcon();
+            com.google.protobuf.ByteString getIcon();
+          }
           public static final class ServerLog extends
-              com.google.gwt.dev.protobuf.GeneratedMessage {
+              com.google.protobuf.GeneratedMessage
+              implements ServerLogOrBuilder {
             // Use ServerLog.newBuilder() to construct.
-            private ServerLog() {}
+            private ServerLog(Builder builder) {
+              super(builder);
+            }
+            private ServerLog(boolean noInit) {}
             
-            private static final ServerLog defaultInstance = new ServerLog();
+            private static final ServerLog defaultInstance;
             public static ServerLog getDefaultInstance() {
               return defaultInstance;
             }
@@ -1140,42 +1738,84 @@ public final class RemoteMessageProto {
               return defaultInstance;
             }
             
-            public static final com.google.gwt.dev.protobuf.Descriptors.Descriptor
+            public static final com.google.protobuf.Descriptors.Descriptor
                 getDescriptor() {
               return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_AddLog_ServerLog_descriptor;
             }
             
-            protected com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable
+            protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
                 internalGetFieldAccessorTable() {
               return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_AddLog_ServerLog_fieldAccessorTable;
             }
             
+            private int bitField0_;
             // required string name = 1;
             public static final int NAME_FIELD_NUMBER = 1;
-            private boolean hasName;
-            private java.lang.String name_ = "";
-            public boolean hasName() { return hasName; }
-            public java.lang.String getName() { return name_; }
+            private java.lang.Object name_;
+            public boolean hasName() {
+              return ((bitField0_ & 0x00000001) == 0x00000001);
+            }
+            public String getName() {
+              java.lang.Object ref = name_;
+              if (ref instanceof String) {
+                return (String) ref;
+              } else {
+                com.google.protobuf.ByteString bs = 
+                    (com.google.protobuf.ByteString) ref;
+                String s = bs.toStringUtf8();
+                if (com.google.protobuf.Internal.isValidUtf8(bs)) {
+                  name_ = s;
+                }
+                return s;
+              }
+            }
+            private com.google.protobuf.ByteString getNameBytes() {
+              java.lang.Object ref = name_;
+              if (ref instanceof String) {
+                com.google.protobuf.ByteString b = 
+                    com.google.protobuf.ByteString.copyFromUtf8((String) ref);
+                name_ = b;
+                return b;
+              } else {
+                return (com.google.protobuf.ByteString) ref;
+              }
+            }
             
             // optional bytes icon = 2;
             public static final int ICON_FIELD_NUMBER = 2;
-            private boolean hasIcon;
-            private com.google.gwt.dev.protobuf.ByteString icon_ = com.google.gwt.dev.protobuf.ByteString.EMPTY;
-            public boolean hasIcon() { return hasIcon; }
-            public com.google.gwt.dev.protobuf.ByteString getIcon() { return icon_; }
+            private com.google.protobuf.ByteString icon_;
+            public boolean hasIcon() {
+              return ((bitField0_ & 0x00000002) == 0x00000002);
+            }
+            public com.google.protobuf.ByteString getIcon() {
+              return icon_;
+            }
             
+            private void initFields() {
+              name_ = "";
+              icon_ = com.google.protobuf.ByteString.EMPTY;
+            }
+            private byte memoizedIsInitialized = -1;
             public final boolean isInitialized() {
-              if (!hasName) return false;
+              byte isInitialized = memoizedIsInitialized;
+              if (isInitialized != -1) return isInitialized == 1;
+              
+              if (!hasName()) {
+                memoizedIsInitialized = 0;
+                return false;
+              }
+              memoizedIsInitialized = 1;
               return true;
             }
             
-            public void writeTo(com.google.gwt.dev.protobuf.CodedOutputStream output)
+            public void writeTo(com.google.protobuf.CodedOutputStream output)
                                 throws java.io.IOException {
-              if (hasName()) {
-                output.writeString(1, getName());
+              getSerializedSize();
+              if (((bitField0_ & 0x00000001) == 0x00000001)) {
+                output.writeBytes(1, getNameBytes());
               }
-              if (hasIcon()) {
-                output.writeBytes(2, getIcon());
+              if (((bitField0_ & 0x00000002) == 0x00000002)) {
+                output.writeBytes(2, icon_);
               }
               getUnknownFields().writeTo(output);
             }
@@ -1186,39 +1826,46 @@ public final class RemoteMessageProto {
               if (size != -1) return size;
             
               size = 0;
-              if (hasName()) {
-                size += com.google.gwt.dev.protobuf.CodedOutputStream
-                  .computeStringSize(1, getName());
-              }
-              if (hasIcon()) {
-                size += com.google.gwt.dev.protobuf.CodedOutputStream
-                  .computeBytesSize(2, getIcon());
+              if (((bitField0_ & 0x00000001) == 0x00000001)) {
+                size += com.google.protobuf.CodedOutputStream
+                  .computeBytesSize(1, getNameBytes());
+              }
+              if (((bitField0_ & 0x00000002) == 0x00000002)) {
+                size += com.google.protobuf.CodedOutputStream
+                  .computeBytesSize(2, icon_);
               }
               size += getUnknownFields().getSerializedSize();
               memoizedSerializedSize = size;
               return size;
             }
             
+            private static final long serialVersionUID = 0L;
+            @java.lang.Override
+            protected java.lang.Object writeReplace()
+                throws java.io.ObjectStreamException {
+              return super.writeReplace();
+            }
+            
             public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ServerLog parseFrom(
-                com.google.gwt.dev.protobuf.ByteString data)
-                throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+                com.google.protobuf.ByteString data)
+                throws com.google.protobuf.InvalidProtocolBufferException {
               return newBuilder().mergeFrom(data).buildParsed();
             }
             public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ServerLog parseFrom(
-                com.google.gwt.dev.protobuf.ByteString data,
-                com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
-                throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+                com.google.protobuf.ByteString data,
+                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+                throws com.google.protobuf.InvalidProtocolBufferException {
               return newBuilder().mergeFrom(data, extensionRegistry)
                        .buildParsed();
             }
             public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ServerLog parseFrom(byte[] data)
-                throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+                throws com.google.protobuf.InvalidProtocolBufferException {
               return newBuilder().mergeFrom(data).buildParsed();
             }
             public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ServerLog parseFrom(
                 byte[] data,
-                com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
-                throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+                throws com.google.protobuf.InvalidProtocolBufferException {
               return newBuilder().mergeFrom(data, extensionRegistry)
                        .buildParsed();
             }
@@ -1228,30 +1875,39 @@ public final class RemoteMessageProto {
             }
             public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ServerLog parseFrom(
                 java.io.InputStream input,
-                com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                 throws java.io.IOException {
               return newBuilder().mergeFrom(input, extensionRegistry)
                        .buildParsed();
             }
             public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ServerLog parseDelimitedFrom(java.io.InputStream input)
                 throws java.io.IOException {
-              return newBuilder().mergeDelimitedFrom(input).buildParsed();
+              Builder builder = newBuilder();
+              if (builder.mergeDelimitedFrom(input)) {
+                return builder.buildParsed();
+              } else {
+                return null;
+              }
             }
             public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ServerLog parseDelimitedFrom(
                 java.io.InputStream input,
-                com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                 throws java.io.IOException {
-              return newBuilder().mergeDelimitedFrom(input, extensionRegistry)
-                       .buildParsed();
+              Builder builder = newBuilder();
+              if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
+                return builder.buildParsed();
+              } else {
+                return null;
+              }
             }
             public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ServerLog parseFrom(
-                com.google.gwt.dev.protobuf.CodedInputStream input)
+                com.google.protobuf.CodedInputStream input)
                 throws java.io.IOException {
               return newBuilder().mergeFrom(input).buildParsed();
             }
             public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ServerLog parseFrom(
-                com.google.gwt.dev.protobuf.CodedInputStream input,
-                com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+                com.google.protobuf.CodedInputStream input,
+                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                 throws java.io.IOException {
               return newBuilder().mergeFrom(input, extensionRegistry)
                        .buildParsed();
@@ -1264,37 +1920,56 @@ public final class RemoteMessageProto {
             }
             public Builder toBuilder() { return newBuilder(this); }
             
+            @java.lang.Override
+            protected Builder newBuilderForType(
+                com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+              Builder builder = new Builder(parent);
+              return builder;
+            }
             public static final class Builder extends
-                com.google.gwt.dev.protobuf.GeneratedMessage.Builder<Builder> {
-              private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ServerLog result;
+                com.google.protobuf.GeneratedMessage.Builder<Builder>
+               implements com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ServerLogOrBuilder {
+              public static final com.google.protobuf.Descriptors.Descriptor
+                  getDescriptor() {
+                return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_AddLog_ServerLog_descriptor;
+              }
               
-              // Construct using com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ServerLog.newBuilder()
-              private Builder() {}
+              protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+                  internalGetFieldAccessorTable() {
+                return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_AddLog_ServerLog_fieldAccessorTable;
+              }
               
-              private static Builder create() {
-                Builder builder = new Builder();
-                builder.result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ServerLog();
-                return builder;
+              // Construct using com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ServerLog.newBuilder()
+              private Builder() {
+                maybeForceBuilderInitialization();
               }
               
-              protected com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ServerLog internalGetResult() {
-                return result;
+              private Builder(BuilderParent parent) {
+                super(parent);
+                maybeForceBuilderInitialization();
+              }
+              private void maybeForceBuilderInitialization() {
+                if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+                }
+              }
+              private static Builder create() {
+                return new Builder();
               }
               
               public Builder clear() {
-                if (result == null) {
-                  throw new IllegalStateException(
-                    "Cannot call clear() after build().");
-                }
-                result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ServerLog();
+                super.clear();
+                name_ = "";
+                bitField0_ = (bitField0_ & ~0x00000001);
+                icon_ = com.google.protobuf.ByteString.EMPTY;
+                bitField0_ = (bitField0_ & ~0x00000002);
                 return this;
               }
               
               public Builder clone() {
-                return create().mergeFrom(result);
+                return create().mergeFrom(buildPartial());
               }
               
-              public com.google.gwt.dev.protobuf.Descriptors.Descriptor
+              public com.google.protobuf.Descriptors.Descriptor
                   getDescriptorForType() {
                 return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ServerLog.getDescriptor();
               }
@@ -1303,36 +1978,42 @@ public final class RemoteMessageProto {
                 return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ServerLog.getDefaultInstance();
               }
               
-              public boolean isInitialized() {
-                return result.isInitialized();
-              }
               public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ServerLog build() {
-                if (result != null && !isInitialized()) {
+                com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ServerLog result = buildPartial();
+                if (!result.isInitialized()) {
                   throw newUninitializedMessageException(result);
                 }
-                return buildPartial();
+                return result;
               }
               
               private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ServerLog buildParsed()
-                  throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
-                if (!isInitialized()) {
+                  throws com.google.protobuf.InvalidProtocolBufferException {
+                com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ServerLog result = buildPartial();
+                if (!result.isInitialized()) {
                   throw newUninitializedMessageException(
                     result).asInvalidProtocolBufferException();
                 }
-                return buildPartial();
+                return result;
               }
               
               public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ServerLog buildPartial() {
-                if (result == null) {
-                  throw new IllegalStateException(
-                    "build() has already been called on this Builder.");
-                }
-                com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ServerLog returnMe = result;
-                result = null;
-                return returnMe;
+                com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ServerLog result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ServerLog(this);
+                int from_bitField0_ = bitField0_;
+                int to_bitField0_ = 0;
+                if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+                  to_bitField0_ |= 0x00000001;
+                }
+                result.name_ = name_;
+                if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
+                  to_bitField0_ |= 0x00000002;
+                }
+                result.icon_ = icon_;
+                result.bitField0_ = to_bitField0_;
+                onBuilt();
+                return result;
               }
               
-              public Builder mergeFrom(com.google.gwt.dev.protobuf.Message other) {
+              public Builder mergeFrom(com.google.protobuf.Message other) {
                 if (other instanceof com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ServerLog) {
                   return mergeFrom((com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ServerLog)other);
                 } else {
@@ -1353,98 +2034,137 @@ public final class RemoteMessageProto {
                 return this;
               }
               
+              public final boolean isInitialized() {
+                if (!hasName()) {
+                  
+                  return false;
+                }
+                return true;
+              }
+              
               public Builder mergeFrom(
-                  com.google.gwt.dev.protobuf.CodedInputStream input,
-                  com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+                  com.google.protobuf.CodedInputStream input,
+                  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                   throws java.io.IOException {
-                com.google.gwt.dev.protobuf.UnknownFieldSet.Builder unknownFields =
-                  com.google.gwt.dev.protobuf.UnknownFieldSet.newBuilder(
+                com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+                  com.google.protobuf.UnknownFieldSet.newBuilder(
                     this.getUnknownFields());
                 while (true) {
                   int tag = input.readTag();
                   switch (tag) {
                     case 0:
                       this.setUnknownFields(unknownFields.build());
+                      onChanged();
                       return this;
                     default: {
                       if (!parseUnknownField(input, unknownFields,
                                              extensionRegistry, tag)) {
                         this.setUnknownFields(unknownFields.build());
+                        onChanged();
                         return this;
                       }
                       break;
                     }
                     case 10: {
-                      setName(input.readString());
+                      bitField0_ |= 0x00000001;
+                      name_ = input.readBytes();
                       break;
                     }
                     case 18: {
-                      setIcon(input.readBytes());
+                      bitField0_ |= 0x00000002;
+                      icon_ = input.readBytes();
                       break;
                     }
                   }
                 }
               }
               
+              private int bitField0_;
               
               // required string name = 1;
+              private java.lang.Object name_ = "";
               public boolean hasName() {
-                return result.hasName();
+                return ((bitField0_ & 0x00000001) == 0x00000001);
               }
-              public java.lang.String getName() {
-                return result.getName();
+              public String getName() {
+                java.lang.Object ref = name_;
+                if (!(ref instanceof String)) {
+                  String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
+                  name_ = s;
+                  return s;
+                } else {
+                  return (String) ref;
+                }
               }
-              public Builder setName(java.lang.String value) {
+              public Builder setName(String value) {
                 if (value == null) {
     throw new NullPointerException();
   }
-  result.hasName = true;
-                result.name_ = value;
+  bitField0_ |= 0x00000001;
+                name_ = value;
+                onChanged();
                 return this;
               }
               public Builder clearName() {
-                result.hasName = false;
-                result.name_ = getDefaultInstance().getName();
+                bitField0_ = (bitField0_ & ~0x00000001);
+                name_ = getDefaultInstance().getName();
+                onChanged();
                 return this;
               }
+              void setName(com.google.protobuf.ByteString value) {
+                bitField0_ |= 0x00000001;
+                name_ = value;
+                onChanged();
+              }
               
               // optional bytes icon = 2;
+              private com.google.protobuf.ByteString icon_ = com.google.protobuf.ByteString.EMPTY;
               public boolean hasIcon() {
-                return result.hasIcon();
+                return ((bitField0_ & 0x00000002) == 0x00000002);
               }
-              public com.google.gwt.dev.protobuf.ByteString getIcon() {
-                return result.getIcon();
+              public com.google.protobuf.ByteString getIcon() {
+                return icon_;
               }
-              public Builder setIcon(com.google.gwt.dev.protobuf.ByteString value) {
+              public Builder setIcon(com.google.protobuf.ByteString value) {
                 if (value == null) {
     throw new NullPointerException();
   }
-  result.hasIcon = true;
-                result.icon_ = value;
+  bitField0_ |= 0x00000002;
+                icon_ = value;
+                onChanged();
                 return this;
               }
               public Builder clearIcon() {
-                result.hasIcon = false;
-                result.icon_ = getDefaultInstance().getIcon();
+                bitField0_ = (bitField0_ & ~0x00000002);
+                icon_ = getDefaultInstance().getIcon();
+                onChanged();
                 return this;
               }
+              
+              // @@protoc_insertion_point(builder_scope:com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest.AddLog.ServerLog)
             }
             
             static {
-              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.getDescriptor();
+              defaultInstance = new ServerLog(true);
+              defaultInstance.initFields();
             }
             
-            static {
-              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internalForceInit();
-            }
+            // @@protoc_insertion_point(class_scope:com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest.AddLog.ServerLog)
           }
           
+          public interface MainLogOrBuilder
+              extends com.google.protobuf.MessageOrBuilder {
+          }
           public static final class MainLog extends
-              com.google.gwt.dev.protobuf.GeneratedMessage {
+              com.google.protobuf.GeneratedMessage
+              implements MainLogOrBuilder {
             // Use MainLog.newBuilder() to construct.
-            private MainLog() {}
+            private MainLog(Builder builder) {
+              super(builder);
+            }
+            private MainLog(boolean noInit) {}
             
-            private static final MainLog defaultInstance = new MainLog();
+            private static final MainLog defaultInstance;
             public static MainLog getDefaultInstance() {
               return defaultInstance;
             }
@@ -1453,22 +2173,30 @@ public final class RemoteMessageProto {
               return defaultInstance;
             }
             
-            public static final com.google.gwt.dev.protobuf.Descriptors.Descriptor
+            public static final com.google.protobuf.Descriptors.Descriptor
                 getDescriptor() {
               return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_AddLog_MainLog_descriptor;
             }
             
-            protected com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable
+            protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
                 internalGetFieldAccessorTable() {
               return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_AddLog_MainLog_fieldAccessorTable;
             }
             
+            private void initFields() {
+            }
+            private byte memoizedIsInitialized = -1;
             public final boolean isInitialized() {
+              byte isInitialized = memoizedIsInitialized;
+              if (isInitialized != -1) return isInitialized == 1;
+              
+              memoizedIsInitialized = 1;
               return true;
             }
             
-            public void writeTo(com.google.gwt.dev.protobuf.CodedOutputStream output)
+            public void writeTo(com.google.protobuf.CodedOutputStream output)
                                 throws java.io.IOException {
+              getSerializedSize();
               getUnknownFields().writeTo(output);
             }
             
@@ -1483,26 +2211,33 @@ public final class RemoteMessageProto {
               return size;
             }
             
+            private static final long serialVersionUID = 0L;
+            @java.lang.Override
+            protected java.lang.Object writeReplace()
+                throws java.io.ObjectStreamException {
+              return super.writeReplace();
+            }
+            
             public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.MainLog parseFrom(
-                com.google.gwt.dev.protobuf.ByteString data)
-                throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+                com.google.protobuf.ByteString data)
+                throws com.google.protobuf.InvalidProtocolBufferException {
               return newBuilder().mergeFrom(data).buildParsed();
             }
             public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.MainLog parseFrom(
-                com.google.gwt.dev.protobuf.ByteString data,
-                com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
-                throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+                com.google.protobuf.ByteString data,
+                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+                throws com.google.protobuf.InvalidProtocolBufferException {
               return newBuilder().mergeFrom(data, extensionRegistry)
                        .buildParsed();
             }
             public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.MainLog parseFrom(byte[] data)
-                throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+                throws com.google.protobuf.InvalidProtocolBufferException {
               return newBuilder().mergeFrom(data).buildParsed();
             }
             public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.MainLog parseFrom(
                 byte[] data,
-                com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
-                throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+                throws com.google.protobuf.InvalidProtocolBufferException {
               return newBuilder().mergeFrom(data, extensionRegistry)
                        .buildParsed();
             }
@@ -1512,30 +2247,39 @@ public final class RemoteMessageProto {
             }
             public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.MainLog parseFrom(
                 java.io.InputStream input,
-                com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                 throws java.io.IOException {
               return newBuilder().mergeFrom(input, extensionRegistry)
                        .buildParsed();
             }
             public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.MainLog parseDelimitedFrom(java.io.InputStream input)
                 throws java.io.IOException {
-              return newBuilder().mergeDelimitedFrom(input).buildParsed();
+              Builder builder = newBuilder();
+              if (builder.mergeDelimitedFrom(input)) {
+                return builder.buildParsed();
+              } else {
+                return null;
+              }
             }
             public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.MainLog parseDelimitedFrom(
                 java.io.InputStream input,
-                com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                 throws java.io.IOException {
-              return newBuilder().mergeDelimitedFrom(input, extensionRegistry)
-                       .buildParsed();
+              Builder builder = newBuilder();
+              if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
+                return builder.buildParsed();
+              } else {
+                return null;
+              }
             }
             public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.MainLog parseFrom(
-                com.google.gwt.dev.protobuf.CodedInputStream input)
+                com.google.protobuf.CodedInputStream input)
                 throws java.io.IOException {
               return newBuilder().mergeFrom(input).buildParsed();
             }
             public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.MainLog parseFrom(
-                com.google.gwt.dev.protobuf.CodedInputStream input,
-                com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+                com.google.protobuf.CodedInputStream input,
+                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                 throws java.io.IOException {
               return newBuilder().mergeFrom(input, extensionRegistry)
                        .buildParsed();
@@ -1548,37 +2292,52 @@ public final class RemoteMessageProto {
             }
             public Builder toBuilder() { return newBuilder(this); }
             
+            @java.lang.Override
+            protected Builder newBuilderForType(
+                com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+              Builder builder = new Builder(parent);
+              return builder;
+            }
             public static final class Builder extends
-                com.google.gwt.dev.protobuf.GeneratedMessage.Builder<Builder> {
-              private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.MainLog result;
+                com.google.protobuf.GeneratedMessage.Builder<Builder>
+               implements com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.MainLogOrBuilder {
+              public static final com.google.protobuf.Descriptors.Descriptor
+                  getDescriptor() {
+                return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_AddLog_MainLog_descriptor;
+              }
               
-              // Construct using com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.MainLog.newBuilder()
-              private Builder() {}
+              protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+                  internalGetFieldAccessorTable() {
+                return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_AddLog_MainLog_fieldAccessorTable;
+              }
               
-              private static Builder create() {
-                Builder builder = new Builder();
-                builder.result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.MainLog();
-                return builder;
+              // Construct using com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.MainLog.newBuilder()
+              private Builder() {
+                maybeForceBuilderInitialization();
               }
               
-              protected com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.MainLog internalGetResult() {
-                return result;
+              private Builder(BuilderParent parent) {
+                super(parent);
+                maybeForceBuilderInitialization();
+              }
+              private void maybeForceBuilderInitialization() {
+                if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+                }
+              }
+              private static Builder create() {
+                return new Builder();
               }
               
               public Builder clear() {
-                if (result == null) {
-                  throw new IllegalStateException(
-                    "Cannot call clear() after build().");
-                }
-                result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.MainLog();
+                super.clear();
                 return this;
               }
               
               public Builder clone() {
-                return create().mergeFrom(result);
+                return create().mergeFrom(buildPartial());
               }
               
-              public com.google.gwt.dev.protobuf.Descriptors.Descriptor
+              public com.google.protobuf.Descriptors.Descriptor
                   getDescriptorForType() {
                 return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.MainLog.getDescriptor();
               }
@@ -1587,36 +2346,31 @@ public final class RemoteMessageProto {
                 return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.MainLog.getDefaultInstance();
               }
               
-              public boolean isInitialized() {
-                return result.isInitialized();
-              }
               public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.MainLog build() {
-                if (result != null && !isInitialized()) {
+                com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.MainLog result = buildPartial();
+                if (!result.isInitialized()) {
                   throw newUninitializedMessageException(result);
                 }
-                return buildPartial();
+                return result;
               }
               
               private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.MainLog buildParsed()
-                  throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
-                if (!isInitialized()) {
+                  throws com.google.protobuf.InvalidProtocolBufferException {
+                com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.MainLog result = buildPartial();
+                if (!result.isInitialized()) {
                   throw newUninitializedMessageException(
                     result).asInvalidProtocolBufferException();
                 }
-                return buildPartial();
+                return result;
               }
               
               public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.MainLog buildPartial() {
-                if (result == null) {
-                  throw new IllegalStateException(
-                    "build() has already been called on this Builder.");
-                }
-                com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.MainLog returnMe = result;
-                result = null;
-                return returnMe;
+                com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.MainLog result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.MainLog(this);
+                onBuilt();
+                return result;
               }
               
-              public Builder mergeFrom(com.google.gwt.dev.protobuf.Message other) {
+              public Builder mergeFrom(com.google.protobuf.Message other) {
                 if (other instanceof com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.MainLog) {
                   return mergeFrom((com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.MainLog)other);
                 } else {
@@ -1631,23 +2385,29 @@ public final class RemoteMessageProto {
                 return this;
               }
               
+              public final boolean isInitialized() {
+                return true;
+              }
+              
               public Builder mergeFrom(
-                  com.google.gwt.dev.protobuf.CodedInputStream input,
-                  com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+                  com.google.protobuf.CodedInputStream input,
+                  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                   throws java.io.IOException {
-                com.google.gwt.dev.protobuf.UnknownFieldSet.Builder unknownFields =
-                  com.google.gwt.dev.protobuf.UnknownFieldSet.newBuilder(
+                com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+                  com.google.protobuf.UnknownFieldSet.newBuilder(
                     this.getUnknownFields());
                 while (true) {
                   int tag = input.readTag();
                   switch (tag) {
                     case 0:
                       this.setUnknownFields(unknownFields.build());
+                      onChanged();
                       return this;
                     default: {
                       if (!parseUnknownField(input, unknownFields,
                                              extensionRegistry, tag)) {
                         this.setUnknownFields(unknownFields.build());
+                        onChanged();
                         return this;
                       }
                       break;
@@ -1656,68 +2416,109 @@ public final class RemoteMessageProto {
                 }
               }
               
+              
+              // @@protoc_insertion_point(builder_scope:com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest.AddLog.MainLog)
             }
             
             static {
-              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.getDescriptor();
+              defaultInstance = new MainLog(true);
+              defaultInstance.initFields();
             }
             
-            static {
-              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internalForceInit();
-            }
+            // @@protoc_insertion_point(class_scope:com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest.AddLog.MainLog)
           }
           
+          private int bitField0_;
           // optional .com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest.AddLog.LogType type = 1;
           public static final int TYPE_FIELD_NUMBER = 1;
-          private boolean hasType;
-          private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.LogType type_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.LogType.MAIN;
-          public boolean hasType() { return hasType; }
-          public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.LogType getType() { return type_; }
+          private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.LogType type_;
+          public boolean hasType() {
+            return ((bitField0_ & 0x00000001) == 0x00000001);
+          }
+          public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.LogType getType() {
+            return type_;
+          }
           
           // optional .com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest.AddLog.ModuleLog moduleLog = 2;
           public static final int MODULELOG_FIELD_NUMBER = 2;
-          private boolean hasModuleLog;
-          private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ModuleLog moduleLog_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ModuleLog.getDefaultInstance();
-          public boolean hasModuleLog() { return hasModuleLog; }
-          public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ModuleLog getModuleLog() { return moduleLog_; }
+          private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ModuleLog moduleLog_;
+          public boolean hasModuleLog() {
+            return ((bitField0_ & 0x00000002) == 0x00000002);
+          }
+          public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ModuleLog getModuleLog() {
+            return moduleLog_;
+          }
+          public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ModuleLogOrBuilder getModuleLogOrBuilder() {
+            return moduleLog_;
+          }
           
           // optional .com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest.AddLog.ServerLog serverLog = 3;
           public static final int SERVERLOG_FIELD_NUMBER = 3;
-          private boolean hasServerLog;
-          private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ServerLog serverLog_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ServerLog.getDefaultInstance();
-          public boolean hasServerLog() { return hasServerLog; }
-          public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ServerLog getServerLog() { return serverLog_; }
+          private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ServerLog serverLog_;
+          public boolean hasServerLog() {
+            return ((bitField0_ & 0x00000004) == 0x00000004);
+          }
+          public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ServerLog getServerLog() {
+            return serverLog_;
+          }
+          public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ServerLogOrBuilder getServerLogOrBuilder() {
+            return serverLog_;
+          }
           
           // optional .com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest.AddLog.MainLog mainLog = 4;
           public static final int MAINLOG_FIELD_NUMBER = 4;
-          private boolean hasMainLog;
-          private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.MainLog mainLog_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.MainLog.getDefaultInstance();
-          public boolean hasMainLog() { return hasMainLog; }
-          public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.MainLog getMainLog() { return mainLog_; }
+          private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.MainLog mainLog_;
+          public boolean hasMainLog() {
+            return ((bitField0_ & 0x00000008) == 0x00000008);
+          }
+          public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.MainLog getMainLog() {
+            return mainLog_;
+          }
+          public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.MainLogOrBuilder getMainLogOrBuilder() {
+            return mainLog_;
+          }
           
+          private void initFields() {
+            type_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.LogType.MAIN;
+            moduleLog_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ModuleLog.getDefaultInstance();
+            serverLog_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ServerLog.getDefaultInstance();
+            mainLog_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.MainLog.getDefaultInstance();
+          }
+          private byte memoizedIsInitialized = -1;
           public final boolean isInitialized() {
+            byte isInitialized = memoizedIsInitialized;
+            if (isInitialized != -1) return isInitialized == 1;
+            
             if (hasModuleLog()) {
-              if (!getModuleLog().isInitialized()) return false;
+              if (!getModuleLog().isInitialized()) {
+                memoizedIsInitialized = 0;
+                return false;
+              }
             }
             if (hasServerLog()) {
-              if (!getServerLog().isInitialized()) return false;
+              if (!getServerLog().isInitialized()) {
+                memoizedIsInitialized = 0;
+                return false;
+              }
             }
+            memoizedIsInitialized = 1;
             return true;
           }
           
-          public void writeTo(com.google.gwt.dev.protobuf.CodedOutputStream output)
+          public void writeTo(com.google.protobuf.CodedOutputStream output)
                               throws java.io.IOException {
-            if (hasType()) {
-              output.writeEnum(1, getType().getNumber());
+            getSerializedSize();
+            if (((bitField0_ & 0x00000001) == 0x00000001)) {
+              output.writeEnum(1, type_.getNumber());
             }
-            if (hasModuleLog()) {
-              output.writeMessage(2, getModuleLog());
+            if (((bitField0_ & 0x00000002) == 0x00000002)) {
+              output.writeMessage(2, moduleLog_);
             }
-            if (hasServerLog()) {
-              output.writeMessage(3, getServerLog());
+            if (((bitField0_ & 0x00000004) == 0x00000004)) {
+              output.writeMessage(3, serverLog_);
             }
-            if (hasMainLog()) {
-              output.writeMessage(4, getMainLog());
+            if (((bitField0_ & 0x00000008) == 0x00000008)) {
+              output.writeMessage(4, mainLog_);
             }
             getUnknownFields().writeTo(output);
           }
@@ -1728,47 +2529,54 @@ public final class RemoteMessageProto {
             if (size != -1) return size;
           
             size = 0;
-            if (hasType()) {
-              size += com.google.gwt.dev.protobuf.CodedOutputStream
-                .computeEnumSize(1, getType().getNumber());
-            }
-            if (hasModuleLog()) {
-              size += com.google.gwt.dev.protobuf.CodedOutputStream
-                .computeMessageSize(2, getModuleLog());
-            }
-            if (hasServerLog()) {
-              size += com.google.gwt.dev.protobuf.CodedOutputStream
-                .computeMessageSize(3, getServerLog());
-            }
-            if (hasMainLog()) {
-              size += com.google.gwt.dev.protobuf.CodedOutputStream
-                .computeMessageSize(4, getMainLog());
+            if (((bitField0_ & 0x00000001) == 0x00000001)) {
+              size += com.google.protobuf.CodedOutputStream
+                .computeEnumSize(1, type_.getNumber());
+            }
+            if (((bitField0_ & 0x00000002) == 0x00000002)) {
+              size += com.google.protobuf.CodedOutputStream
+                .computeMessageSize(2, moduleLog_);
+            }
+            if (((bitField0_ & 0x00000004) == 0x00000004)) {
+              size += com.google.protobuf.CodedOutputStream
+                .computeMessageSize(3, serverLog_);
+            }
+            if (((bitField0_ & 0x00000008) == 0x00000008)) {
+              size += com.google.protobuf.CodedOutputStream
+                .computeMessageSize(4, mainLog_);
             }
             size += getUnknownFields().getSerializedSize();
             memoizedSerializedSize = size;
             return size;
           }
           
+          private static final long serialVersionUID = 0L;
+          @java.lang.Override
+          protected java.lang.Object writeReplace()
+              throws java.io.ObjectStreamException {
+            return super.writeReplace();
+          }
+          
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog parseFrom(
-              com.google.gwt.dev.protobuf.ByteString data)
-              throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+              com.google.protobuf.ByteString data)
+              throws com.google.protobuf.InvalidProtocolBufferException {
             return newBuilder().mergeFrom(data).buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog parseFrom(
-              com.google.gwt.dev.protobuf.ByteString data,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
-              throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+              com.google.protobuf.ByteString data,
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+              throws com.google.protobuf.InvalidProtocolBufferException {
             return newBuilder().mergeFrom(data, extensionRegistry)
                      .buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog parseFrom(byte[] data)
-              throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+              throws com.google.protobuf.InvalidProtocolBufferException {
             return newBuilder().mergeFrom(data).buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog parseFrom(
               byte[] data,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
-              throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+              throws com.google.protobuf.InvalidProtocolBufferException {
             return newBuilder().mergeFrom(data, extensionRegistry)
                      .buildParsed();
           }
@@ -1778,30 +2586,39 @@ public final class RemoteMessageProto {
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog parseFrom(
               java.io.InputStream input,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
               throws java.io.IOException {
             return newBuilder().mergeFrom(input, extensionRegistry)
                      .buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog parseDelimitedFrom(java.io.InputStream input)
               throws java.io.IOException {
-            return newBuilder().mergeDelimitedFrom(input).buildParsed();
+            Builder builder = newBuilder();
+            if (builder.mergeDelimitedFrom(input)) {
+              return builder.buildParsed();
+            } else {
+              return null;
+            }
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog parseDelimitedFrom(
               java.io.InputStream input,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
               throws java.io.IOException {
-            return newBuilder().mergeDelimitedFrom(input, extensionRegistry)
-                     .buildParsed();
+            Builder builder = newBuilder();
+            if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
+              return builder.buildParsed();
+            } else {
+              return null;
+            }
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog parseFrom(
-              com.google.gwt.dev.protobuf.CodedInputStream input)
+              com.google.protobuf.CodedInputStream input)
               throws java.io.IOException {
             return newBuilder().mergeFrom(input).buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog parseFrom(
-              com.google.gwt.dev.protobuf.CodedInputStream input,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+              com.google.protobuf.CodedInputStream input,
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
               throws java.io.IOException {
             return newBuilder().mergeFrom(input, extensionRegistry)
                      .buildParsed();
@@ -1814,37 +2631,75 @@ public final class RemoteMessageProto {
           }
           public Builder toBuilder() { return newBuilder(this); }
           
+          @java.lang.Override
+          protected Builder newBuilderForType(
+              com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+            Builder builder = new Builder(parent);
+            return builder;
+          }
           public static final class Builder extends
-              com.google.gwt.dev.protobuf.GeneratedMessage.Builder<Builder> {
-            private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog result;
+              com.google.protobuf.GeneratedMessage.Builder<Builder>
+             implements com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogOrBuilder {
+            public static final com.google.protobuf.Descriptors.Descriptor
+                getDescriptor() {
+              return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_AddLog_descriptor;
+            }
             
-            // Construct using com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.newBuilder()
-            private Builder() {}
+            protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+                internalGetFieldAccessorTable() {
+              return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_AddLog_fieldAccessorTable;
+            }
             
-            private static Builder create() {
-              Builder builder = new Builder();
-              builder.result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog();
-              return builder;
+            // Construct using com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.newBuilder()
+            private Builder() {
+              maybeForceBuilderInitialization();
             }
             
-            protected com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog internalGetResult() {
-              return result;
+            private Builder(BuilderParent parent) {
+              super(parent);
+              maybeForceBuilderInitialization();
+            }
+            private void maybeForceBuilderInitialization() {
+              if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+                getModuleLogFieldBuilder();
+                getServerLogFieldBuilder();
+                getMainLogFieldBuilder();
+              }
+            }
+            private static Builder create() {
+              return new Builder();
             }
             
             public Builder clear() {
-              if (result == null) {
-                throw new IllegalStateException(
-                  "Cannot call clear() after build().");
+              super.clear();
+              type_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.LogType.MAIN;
+              bitField0_ = (bitField0_ & ~0x00000001);
+              if (moduleLogBuilder_ == null) {
+                moduleLog_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ModuleLog.getDefaultInstance();
+              } else {
+                moduleLogBuilder_.clear();
               }
-              result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog();
+              bitField0_ = (bitField0_ & ~0x00000002);
+              if (serverLogBuilder_ == null) {
+                serverLog_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ServerLog.getDefaultInstance();
+              } else {
+                serverLogBuilder_.clear();
+              }
+              bitField0_ = (bitField0_ & ~0x00000004);
+              if (mainLogBuilder_ == null) {
+                mainLog_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.MainLog.getDefaultInstance();
+              } else {
+                mainLogBuilder_.clear();
+              }
+              bitField0_ = (bitField0_ & ~0x00000008);
               return this;
             }
             
             public Builder clone() {
-              return create().mergeFrom(result);
+              return create().mergeFrom(buildPartial());
             }
             
-            public com.google.gwt.dev.protobuf.Descriptors.Descriptor
+            public com.google.protobuf.Descriptors.Descriptor
                 getDescriptorForType() {
               return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.getDescriptor();
             }
@@ -1853,36 +2708,62 @@ public final class RemoteMessageProto {
               return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.getDefaultInstance();
             }
             
-            public boolean isInitialized() {
-              return result.isInitialized();
-            }
             public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog build() {
-              if (result != null && !isInitialized()) {
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog result = buildPartial();
+              if (!result.isInitialized()) {
                 throw newUninitializedMessageException(result);
               }
-              return buildPartial();
+              return result;
             }
             
             private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog buildParsed()
-                throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
-              if (!isInitialized()) {
+                throws com.google.protobuf.InvalidProtocolBufferException {
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog result = buildPartial();
+              if (!result.isInitialized()) {
                 throw newUninitializedMessageException(
                   result).asInvalidProtocolBufferException();
               }
-              return buildPartial();
+              return result;
             }
             
             public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog buildPartial() {
-              if (result == null) {
-                throw new IllegalStateException(
-                  "build() has already been called on this Builder.");
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog(this);
+              int from_bitField0_ = bitField0_;
+              int to_bitField0_ = 0;
+              if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+                to_bitField0_ |= 0x00000001;
+              }
+              result.type_ = type_;
+              if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
+                to_bitField0_ |= 0x00000002;
+              }
+              if (moduleLogBuilder_ == null) {
+                result.moduleLog_ = moduleLog_;
+              } else {
+                result.moduleLog_ = moduleLogBuilder_.build();
+              }
+              if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
+                to_bitField0_ |= 0x00000004;
+              }
+              if (serverLogBuilder_ == null) {
+                result.serverLog_ = serverLog_;
+              } else {
+                result.serverLog_ = serverLogBuilder_.build();
               }
-              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog returnMe = result;
-              result = null;
-              return returnMe;
+              if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
+                to_bitField0_ |= 0x00000008;
+              }
+              if (mainLogBuilder_ == null) {
+                result.mainLog_ = mainLog_;
+              } else {
+                result.mainLog_ = mainLogBuilder_.build();
+              }
+              result.bitField0_ = to_bitField0_;
+              onBuilt();
+              return result;
             }
             
-            public Builder mergeFrom(com.google.gwt.dev.protobuf.Message other) {
+            public Builder mergeFrom(com.google.protobuf.Message other) {
               if (other instanceof com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog) {
                 return mergeFrom((com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog)other);
               } else {
@@ -1909,23 +2790,41 @@ public final class RemoteMessageProto {
               return this;
             }
             
+            public final boolean isInitialized() {
+              if (hasModuleLog()) {
+                if (!getModuleLog().isInitialized()) {
+                  
+                  return false;
+                }
+              }
+              if (hasServerLog()) {
+                if (!getServerLog().isInitialized()) {
+                  
+                  return false;
+                }
+              }
+              return true;
+            }
+            
             public Builder mergeFrom(
-                com.google.gwt.dev.protobuf.CodedInputStream input,
-                com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+                com.google.protobuf.CodedInputStream input,
+                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                 throws java.io.IOException {
-              com.google.gwt.dev.protobuf.UnknownFieldSet.Builder unknownFields =
-                com.google.gwt.dev.protobuf.UnknownFieldSet.newBuilder(
+              com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+                com.google.protobuf.UnknownFieldSet.newBuilder(
                   this.getUnknownFields());
               while (true) {
                 int tag = input.readTag();
                 switch (tag) {
                   case 0:
                     this.setUnknownFields(unknownFields.build());
+                    onChanged();
                     return this;
                   default: {
                     if (!parseUnknownField(input, unknownFields,
                                            extensionRegistry, tag)) {
                       this.setUnknownFields(unknownFields.build());
+                      onChanged();
                       return this;
                     }
                     break;
@@ -1936,7 +2835,8 @@ public final class RemoteMessageProto {
                     if (value == null) {
                       unknownFields.mergeVarintField(1, rawValue);
                     } else {
-                      setType(value);
+                      bitField0_ |= 0x00000001;
+                      type_ = value;
                     }
                     break;
                   }
@@ -1971,155 +2871,347 @@ public final class RemoteMessageProto {
               }
             }
             
+            private int bitField0_;
             
             // optional .com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest.AddLog.LogType type = 1;
+            private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.LogType type_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.LogType.MAIN;
             public boolean hasType() {
-              return result.hasType();
+              return ((bitField0_ & 0x00000001) == 0x00000001);
             }
             public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.LogType getType() {
-              return result.getType();
+              return type_;
             }
             public Builder setType(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.LogType value) {
               if (value == null) {
                 throw new NullPointerException();
               }
-              result.hasType = true;
-              result.type_ = value;
+              bitField0_ |= 0x00000001;
+              type_ = value;
+              onChanged();
               return this;
             }
             public Builder clearType() {
-              result.hasType = false;
-              result.type_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.LogType.MAIN;
+              bitField0_ = (bitField0_ & ~0x00000001);
+              type_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.LogType.MAIN;
+              onChanged();
               return this;
             }
             
             // optional .com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest.AddLog.ModuleLog moduleLog = 2;
+            private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ModuleLog moduleLog_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ModuleLog.getDefaultInstance();
+            private com.google.protobuf.SingleFieldBuilder<
+                com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ModuleLog, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ModuleLog.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ModuleLogOrBuilder> moduleLogBuilder_;
             public boolean hasModuleLog() {
-              return result.hasModuleLog();
+              return ((bitField0_ & 0x00000002) == 0x00000002);
             }
             public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ModuleLog getModuleLog() {
-              return result.getModuleLog();
+              if (moduleLogBuilder_ == null) {
+                return moduleLog_;
+              } else {
+                return moduleLogBuilder_.getMessage();
+              }
             }
             public Builder setModuleLog(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ModuleLog value) {
-              if (value == null) {
-                throw new NullPointerException();
+              if (moduleLogBuilder_ == null) {
+                if (value == null) {
+                  throw new NullPointerException();
+                }
+                moduleLog_ = value;
+                onChanged();
+              } else {
+                moduleLogBuilder_.setMessage(value);
               }
-              result.hasModuleLog = true;
-              result.moduleLog_ = value;
+              bitField0_ |= 0x00000002;
               return this;
             }
-            public Builder setModuleLog(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ModuleLog.Builder builderForValue) {
-              result.hasModuleLog = true;
-              result.moduleLog_ = builderForValue.build();
+            public Builder setModuleLog(
+                com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ModuleLog.Builder builderForValue) {
+              if (moduleLogBuilder_ == null) {
+                moduleLog_ = builderForValue.build();
+                onChanged();
+              } else {
+                moduleLogBuilder_.setMessage(builderForValue.build());
+              }
+              bitField0_ |= 0x00000002;
               return this;
             }
             public Builder mergeModuleLog(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ModuleLog value) {
-              if (result.hasModuleLog() &&
-                  result.moduleLog_ != com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ModuleLog.getDefaultInstance()) {
-                result.moduleLog_ =
-                  com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ModuleLog.newBuilder(result.moduleLog_).mergeFrom(value).buildPartial();
+              if (moduleLogBuilder_ == null) {
+                if (((bitField0_ & 0x00000002) == 0x00000002) &&
+                    moduleLog_ != com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ModuleLog.getDefaultInstance()) {
+                  moduleLog_ =
+                    com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ModuleLog.newBuilder(moduleLog_).mergeFrom(value).buildPartial();
+                } else {
+                  moduleLog_ = value;
+                }
+                onChanged();
               } else {
-                result.moduleLog_ = value;
+                moduleLogBuilder_.mergeFrom(value);
               }
-              result.hasModuleLog = true;
+              bitField0_ |= 0x00000002;
               return this;
             }
             public Builder clearModuleLog() {
-              result.hasModuleLog = false;
-              result.moduleLog_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ModuleLog.getDefaultInstance();
+              if (moduleLogBuilder_ == null) {
+                moduleLog_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ModuleLog.getDefaultInstance();
+                onChanged();
+              } else {
+                moduleLogBuilder_.clear();
+              }
+              bitField0_ = (bitField0_ & ~0x00000002);
               return this;
             }
+            public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ModuleLog.Builder getModuleLogBuilder() {
+              bitField0_ |= 0x00000002;
+              onChanged();
+              return getModuleLogFieldBuilder().getBuilder();
+            }
+            public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ModuleLogOrBuilder getModuleLogOrBuilder() {
+              if (moduleLogBuilder_ != null) {
+                return moduleLogBuilder_.getMessageOrBuilder();
+              } else {
+                return moduleLog_;
+              }
+            }
+            private com.google.protobuf.SingleFieldBuilder<
+                com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ModuleLog, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ModuleLog.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ModuleLogOrBuilder> 
+                getModuleLogFieldBuilder() {
+              if (moduleLogBuilder_ == null) {
+                moduleLogBuilder_ = new com.google.protobuf.SingleFieldBuilder<
+                    com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ModuleLog, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ModuleLog.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ModuleLogOrBuilder>(
+                        moduleLog_,
+                        getParentForChildren(),
+                        isClean());
+                moduleLog_ = null;
+              }
+              return moduleLogBuilder_;
+            }
             
             // optional .com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest.AddLog.ServerLog serverLog = 3;
+            private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ServerLog serverLog_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ServerLog.getDefaultInstance();
+            private com.google.protobuf.SingleFieldBuilder<
+                com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ServerLog, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ServerLog.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ServerLogOrBuilder> serverLogBuilder_;
             public boolean hasServerLog() {
-              return result.hasServerLog();
+              return ((bitField0_ & 0x00000004) == 0x00000004);
             }
             public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ServerLog getServerLog() {
-              return result.getServerLog();
+              if (serverLogBuilder_ == null) {
+                return serverLog_;
+              } else {
+                return serverLogBuilder_.getMessage();
+              }
             }
             public Builder setServerLog(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ServerLog value) {
-              if (value == null) {
-                throw new NullPointerException();
+              if (serverLogBuilder_ == null) {
+                if (value == null) {
+                  throw new NullPointerException();
+                }
+                serverLog_ = value;
+                onChanged();
+              } else {
+                serverLogBuilder_.setMessage(value);
               }
-              result.hasServerLog = true;
-              result.serverLog_ = value;
+              bitField0_ |= 0x00000004;
               return this;
             }
-            public Builder setServerLog(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ServerLog.Builder builderForValue) {
-              result.hasServerLog = true;
-              result.serverLog_ = builderForValue.build();
+            public Builder setServerLog(
+                com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ServerLog.Builder builderForValue) {
+              if (serverLogBuilder_ == null) {
+                serverLog_ = builderForValue.build();
+                onChanged();
+              } else {
+                serverLogBuilder_.setMessage(builderForValue.build());
+              }
+              bitField0_ |= 0x00000004;
               return this;
             }
             public Builder mergeServerLog(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ServerLog value) {
-              if (result.hasServerLog() &&
-                  result.serverLog_ != com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ServerLog.getDefaultInstance()) {
-                result.serverLog_ =
-                  com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ServerLog.newBuilder(result.serverLog_).mergeFrom(value).buildPartial();
+              if (serverLogBuilder_ == null) {
+                if (((bitField0_ & 0x00000004) == 0x00000004) &&
+                    serverLog_ != com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ServerLog.getDefaultInstance()) {
+                  serverLog_ =
+                    com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ServerLog.newBuilder(serverLog_).mergeFrom(value).buildPartial();
+                } else {
+                  serverLog_ = value;
+                }
+                onChanged();
               } else {
-                result.serverLog_ = value;
+                serverLogBuilder_.mergeFrom(value);
               }
-              result.hasServerLog = true;
+              bitField0_ |= 0x00000004;
               return this;
             }
             public Builder clearServerLog() {
-              result.hasServerLog = false;
-              result.serverLog_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ServerLog.getDefaultInstance();
+              if (serverLogBuilder_ == null) {
+                serverLog_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ServerLog.getDefaultInstance();
+                onChanged();
+              } else {
+                serverLogBuilder_.clear();
+              }
+              bitField0_ = (bitField0_ & ~0x00000004);
               return this;
             }
+            public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ServerLog.Builder getServerLogBuilder() {
+              bitField0_ |= 0x00000004;
+              onChanged();
+              return getServerLogFieldBuilder().getBuilder();
+            }
+            public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ServerLogOrBuilder getServerLogOrBuilder() {
+              if (serverLogBuilder_ != null) {
+                return serverLogBuilder_.getMessageOrBuilder();
+              } else {
+                return serverLog_;
+              }
+            }
+            private com.google.protobuf.SingleFieldBuilder<
+                com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ServerLog, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ServerLog.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ServerLogOrBuilder> 
+                getServerLogFieldBuilder() {
+              if (serverLogBuilder_ == null) {
+                serverLogBuilder_ = new com.google.protobuf.SingleFieldBuilder<
+                    com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ServerLog, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ServerLog.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ServerLogOrBuilder>(
+                        serverLog_,
+                        getParentForChildren(),
+                        isClean());
+                serverLog_ = null;
+              }
+              return serverLogBuilder_;
+            }
             
             // optional .com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest.AddLog.MainLog mainLog = 4;
+            private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.MainLog mainLog_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.MainLog.getDefaultInstance();
+            private com.google.protobuf.SingleFieldBuilder<
+                com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.MainLog, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.MainLog.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.MainLogOrBuilder> mainLogBuilder_;
             public boolean hasMainLog() {
-              return result.hasMainLog();
+              return ((bitField0_ & 0x00000008) == 0x00000008);
             }
             public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.MainLog getMainLog() {
-              return result.getMainLog();
+              if (mainLogBuilder_ == null) {
+                return mainLog_;
+              } else {
+                return mainLogBuilder_.getMessage();
+              }
             }
             public Builder setMainLog(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.MainLog value) {
-              if (value == null) {
-                throw new NullPointerException();
+              if (mainLogBuilder_ == null) {
+                if (value == null) {
+                  throw new NullPointerException();
+                }
+                mainLog_ = value;
+                onChanged();
+              } else {
+                mainLogBuilder_.setMessage(value);
               }
-              result.hasMainLog = true;
-              result.mainLog_ = value;
+              bitField0_ |= 0x00000008;
               return this;
             }
-            public Builder setMainLog(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.MainLog.Builder builderForValue) {
-              result.hasMainLog = true;
-              result.mainLog_ = builderForValue.build();
+            public Builder setMainLog(
+                com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.MainLog.Builder builderForValue) {
+              if (mainLogBuilder_ == null) {
+                mainLog_ = builderForValue.build();
+                onChanged();
+              } else {
+                mainLogBuilder_.setMessage(builderForValue.build());
+              }
+              bitField0_ |= 0x00000008;
               return this;
             }
             public Builder mergeMainLog(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.MainLog value) {
-              if (result.hasMainLog() &&
-                  result.mainLog_ != com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.MainLog.getDefaultInstance()) {
-                result.mainLog_ =
-                  com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.MainLog.newBuilder(result.mainLog_).mergeFrom(value).buildPartial();
+              if (mainLogBuilder_ == null) {
+                if (((bitField0_ & 0x00000008) == 0x00000008) &&
+                    mainLog_ != com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.MainLog.getDefaultInstance()) {
+                  mainLog_ =
+                    com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.MainLog.newBuilder(mainLog_).mergeFrom(value).buildPartial();
+                } else {
+                  mainLog_ = value;
+                }
+                onChanged();
               } else {
-                result.mainLog_ = value;
+                mainLogBuilder_.mergeFrom(value);
               }
-              result.hasMainLog = true;
+              bitField0_ |= 0x00000008;
               return this;
             }
             public Builder clearMainLog() {
-              result.hasMainLog = false;
-              result.mainLog_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.MainLog.getDefaultInstance();
+              if (mainLogBuilder_ == null) {
+                mainLog_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.MainLog.getDefaultInstance();
+                onChanged();
+              } else {
+                mainLogBuilder_.clear();
+              }
+              bitField0_ = (bitField0_ & ~0x00000008);
               return this;
             }
+            public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.MainLog.Builder getMainLogBuilder() {
+              bitField0_ |= 0x00000008;
+              onChanged();
+              return getMainLogFieldBuilder().getBuilder();
+            }
+            public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.MainLogOrBuilder getMainLogOrBuilder() {
+              if (mainLogBuilder_ != null) {
+                return mainLogBuilder_.getMessageOrBuilder();
+              } else {
+                return mainLog_;
+              }
+            }
+            private com.google.protobuf.SingleFieldBuilder<
+                com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.MainLog, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.MainLog.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.MainLogOrBuilder> 
+                getMainLogFieldBuilder() {
+              if (mainLogBuilder_ == null) {
+                mainLogBuilder_ = new com.google.protobuf.SingleFieldBuilder<
+                    com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.MainLog, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.MainLog.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.MainLogOrBuilder>(
+                        mainLog_,
+                        getParentForChildren(),
+                        isClean());
+                mainLog_ = null;
+              }
+              return mainLogBuilder_;
+            }
+            
+            // @@protoc_insertion_point(builder_scope:com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest.AddLog)
           }
           
           static {
-            com.google.gwt.dev.shell.remoteui.RemoteMessageProto.getDescriptor();
+            defaultInstance = new AddLog(true);
+            defaultInstance.initFields();
           }
           
-          static {
-            com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internalForceInit();
-          }
+          // @@protoc_insertion_point(class_scope:com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest.AddLog)
         }
         
+        public interface LogDataOrBuilder
+            extends com.google.protobuf.MessageOrBuilder {
+          
+          // required string summary = 1;
+          boolean hasSummary();
+          String getSummary();
+          
+          // optional string level = 2;
+          boolean hasLevel();
+          String getLevel();
+          
+          // optional bool needsAttention = 3;
+          boolean hasNeedsAttention();
+          boolean getNeedsAttention();
+          
+          // optional string details = 4;
+          boolean hasDetails();
+          String getDetails();
+          
+          // optional .com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest.LogData.HelpInfo helpInfo = 5;
+          boolean hasHelpInfo();
+          com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.HelpInfo getHelpInfo();
+          com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.HelpInfoOrBuilder getHelpInfoOrBuilder();
+        }
         public static final class LogData extends
-            com.google.gwt.dev.protobuf.GeneratedMessage {
+            com.google.protobuf.GeneratedMessage
+            implements LogDataOrBuilder {
           // Use LogData.newBuilder() to construct.
-          private LogData() {}
+          private LogData(Builder builder) {
+            super(builder);
+          }
+          private LogData(boolean noInit) {}
           
-          private static final LogData defaultInstance = new LogData();
+          private static final LogData defaultInstance;
           public static LogData getDefaultInstance() {
             return defaultInstance;
           }
@@ -2128,22 +3220,37 @@ public final class RemoteMessageProto {
             return defaultInstance;
           }
           
-          public static final com.google.gwt.dev.protobuf.Descriptors.Descriptor
+          public static final com.google.protobuf.Descriptors.Descriptor
               getDescriptor() {
             return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_LogData_descriptor;
           }
           
-          protected com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable
+          protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
               internalGetFieldAccessorTable() {
             return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_LogData_fieldAccessorTable;
           }
           
+          public interface HelpInfoOrBuilder
+              extends com.google.protobuf.MessageOrBuilder {
+            
+            // optional string url = 1;
+            boolean hasUrl();
+            String getUrl();
+            
+            // optional string text = 2;
+            boolean hasText();
+            String getText();
+          }
           public static final class HelpInfo extends
-              com.google.gwt.dev.protobuf.GeneratedMessage {
+              com.google.protobuf.GeneratedMessage
+              implements HelpInfoOrBuilder {
             // Use HelpInfo.newBuilder() to construct.
-            private HelpInfo() {}
+            private HelpInfo(Builder builder) {
+              super(builder);
+            }
+            private HelpInfo(boolean noInit) {}
             
-            private static final HelpInfo defaultInstance = new HelpInfo();
+            private static final HelpInfo defaultInstance;
             public static HelpInfo getDefaultInstance() {
               return defaultInstance;
             }
@@ -2152,41 +3259,102 @@ public final class RemoteMessageProto {
               return defaultInstance;
             }
             
-            public static final com.google.gwt.dev.protobuf.Descriptors.Descriptor
+            public static final com.google.protobuf.Descriptors.Descriptor
                 getDescriptor() {
               return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_LogData_HelpInfo_descriptor;
             }
             
-            protected com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable
+            protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
                 internalGetFieldAccessorTable() {
               return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_LogData_HelpInfo_fieldAccessorTable;
             }
             
+            private int bitField0_;
             // optional string url = 1;
             public static final int URL_FIELD_NUMBER = 1;
-            private boolean hasUrl;
-            private java.lang.String url_ = "";
-            public boolean hasUrl() { return hasUrl; }
-            public java.lang.String getUrl() { return url_; }
+            private java.lang.Object url_;
+            public boolean hasUrl() {
+              return ((bitField0_ & 0x00000001) == 0x00000001);
+            }
+            public String getUrl() {
+              java.lang.Object ref = url_;
+              if (ref instanceof String) {
+                return (String) ref;
+              } else {
+                com.google.protobuf.ByteString bs = 
+                    (com.google.protobuf.ByteString) ref;
+                String s = bs.toStringUtf8();
+                if (com.google.protobuf.Internal.isValidUtf8(bs)) {
+                  url_ = s;
+                }
+                return s;
+              }
+            }
+            private com.google.protobuf.ByteString getUrlBytes() {
+              java.lang.Object ref = url_;
+              if (ref instanceof String) {
+                com.google.protobuf.ByteString b = 
+                    com.google.protobuf.ByteString.copyFromUtf8((String) ref);
+                url_ = b;
+                return b;
+              } else {
+                return (com.google.protobuf.ByteString) ref;
+              }
+            }
             
             // optional string text = 2;
             public static final int TEXT_FIELD_NUMBER = 2;
-            private boolean hasText;
-            private java.lang.String text_ = "";
-            public boolean hasText() { return hasText; }
-            public java.lang.String getText() { return text_; }
+            private java.lang.Object text_;
+            public boolean hasText() {
+              return ((bitField0_ & 0x00000002) == 0x00000002);
+            }
+            public String getText() {
+              java.lang.Object ref = text_;
+              if (ref instanceof String) {
+                return (String) ref;
+              } else {
+                com.google.protobuf.ByteString bs = 
+                    (com.google.protobuf.ByteString) ref;
+                String s = bs.toStringUtf8();
+                if (com.google.protobuf.Internal.isValidUtf8(bs)) {
+                  text_ = s;
+                }
+                return s;
+              }
+            }
+            private com.google.protobuf.ByteString getTextBytes() {
+              java.lang.Object ref = text_;
+              if (ref instanceof String) {
+                com.google.protobuf.ByteString b = 
+                    com.google.protobuf.ByteString.copyFromUtf8((String) ref);
+                text_ = b;
+                return b;
+              } else {
+                return (com.google.protobuf.ByteString) ref;
+              }
+            }
             
+            private void initFields() {
+              url_ = "";
+              text_ = "";
+            }
+            private byte memoizedIsInitialized = -1;
             public final boolean isInitialized() {
+              byte isInitialized = memoizedIsInitialized;
+              if (isInitialized != -1) return isInitialized == 1;
+              
+              memoizedIsInitialized = 1;
               return true;
             }
             
-            public void writeTo(com.google.gwt.dev.protobuf.CodedOutputStream output)
+            public void writeTo(com.google.protobuf.CodedOutputStream output)
                                 throws java.io.IOException {
-              if (hasUrl()) {
-                output.writeString(1, getUrl());
+              getSerializedSize();
+              if (((bitField0_ & 0x00000001) == 0x00000001)) {
+                output.writeBytes(1, getUrlBytes());
               }
-              if (hasText()) {
-                output.writeString(2, getText());
+              if (((bitField0_ & 0x00000002) == 0x00000002)) {
+                output.writeBytes(2, getTextBytes());
               }
               getUnknownFields().writeTo(output);
             }
@@ -2197,39 +3365,46 @@ public final class RemoteMessageProto {
               if (size != -1) return size;
             
               size = 0;
-              if (hasUrl()) {
-                size += com.google.gwt.dev.protobuf.CodedOutputStream
-                  .computeStringSize(1, getUrl());
-              }
-              if (hasText()) {
-                size += com.google.gwt.dev.protobuf.CodedOutputStream
-                  .computeStringSize(2, getText());
+              if (((bitField0_ & 0x00000001) == 0x00000001)) {
+                size += com.google.protobuf.CodedOutputStream
+                  .computeBytesSize(1, getUrlBytes());
+              }
+              if (((bitField0_ & 0x00000002) == 0x00000002)) {
+                size += com.google.protobuf.CodedOutputStream
+                  .computeBytesSize(2, getTextBytes());
               }
               size += getUnknownFields().getSerializedSize();
               memoizedSerializedSize = size;
               return size;
             }
             
+            private static final long serialVersionUID = 0L;
+            @java.lang.Override
+            protected java.lang.Object writeReplace()
+                throws java.io.ObjectStreamException {
+              return super.writeReplace();
+            }
+            
             public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.HelpInfo parseFrom(
-                com.google.gwt.dev.protobuf.ByteString data)
-                throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+                com.google.protobuf.ByteString data)
+                throws com.google.protobuf.InvalidProtocolBufferException {
               return newBuilder().mergeFrom(data).buildParsed();
             }
             public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.HelpInfo parseFrom(
-                com.google.gwt.dev.protobuf.ByteString data,
-                com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
-                throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+                com.google.protobuf.ByteString data,
+                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+                throws com.google.protobuf.InvalidProtocolBufferException {
               return newBuilder().mergeFrom(data, extensionRegistry)
                        .buildParsed();
             }
             public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.HelpInfo parseFrom(byte[] data)
-                throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+                throws com.google.protobuf.InvalidProtocolBufferException {
               return newBuilder().mergeFrom(data).buildParsed();
             }
             public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.HelpInfo parseFrom(
                 byte[] data,
-                com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
-                throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+                throws com.google.protobuf.InvalidProtocolBufferException {
               return newBuilder().mergeFrom(data, extensionRegistry)
                        .buildParsed();
             }
@@ -2239,30 +3414,39 @@ public final class RemoteMessageProto {
             }
             public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.HelpInfo parseFrom(
                 java.io.InputStream input,
-                com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                 throws java.io.IOException {
               return newBuilder().mergeFrom(input, extensionRegistry)
                        .buildParsed();
             }
             public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.HelpInfo parseDelimitedFrom(java.io.InputStream input)
                 throws java.io.IOException {
-              return newBuilder().mergeDelimitedFrom(input).buildParsed();
+              Builder builder = newBuilder();
+              if (builder.mergeDelimitedFrom(input)) {
+                return builder.buildParsed();
+              } else {
+                return null;
+              }
             }
             public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.HelpInfo parseDelimitedFrom(
                 java.io.InputStream input,
-                com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                 throws java.io.IOException {
-              return newBuilder().mergeDelimitedFrom(input, extensionRegistry)
-                       .buildParsed();
+              Builder builder = newBuilder();
+              if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
+                return builder.buildParsed();
+              } else {
+                return null;
+              }
             }
             public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.HelpInfo parseFrom(
-                com.google.gwt.dev.protobuf.CodedInputStream input)
+                com.google.protobuf.CodedInputStream input)
                 throws java.io.IOException {
               return newBuilder().mergeFrom(input).buildParsed();
             }
             public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.HelpInfo parseFrom(
-                com.google.gwt.dev.protobuf.CodedInputStream input,
-                com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+                com.google.protobuf.CodedInputStream input,
+                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                 throws java.io.IOException {
               return newBuilder().mergeFrom(input, extensionRegistry)
                        .buildParsed();
@@ -2275,37 +3459,56 @@ public final class RemoteMessageProto {
             }
             public Builder toBuilder() { return newBuilder(this); }
             
+            @java.lang.Override
+            protected Builder newBuilderForType(
+                com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+              Builder builder = new Builder(parent);
+              return builder;
+            }
             public static final class Builder extends
-                com.google.gwt.dev.protobuf.GeneratedMessage.Builder<Builder> {
-              private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.HelpInfo result;
+                com.google.protobuf.GeneratedMessage.Builder<Builder>
+               implements com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.HelpInfoOrBuilder {
+              public static final com.google.protobuf.Descriptors.Descriptor
+                  getDescriptor() {
+                return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_LogData_HelpInfo_descriptor;
+              }
               
-              // Construct using com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.HelpInfo.newBuilder()
-              private Builder() {}
+              protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+                  internalGetFieldAccessorTable() {
+                return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_LogData_HelpInfo_fieldAccessorTable;
+              }
               
-              private static Builder create() {
-                Builder builder = new Builder();
-                builder.result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.HelpInfo();
-                return builder;
+              // Construct using com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.HelpInfo.newBuilder()
+              private Builder() {
+                maybeForceBuilderInitialization();
               }
               
-              protected com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.HelpInfo internalGetResult() {
-                return result;
+              private Builder(BuilderParent parent) {
+                super(parent);
+                maybeForceBuilderInitialization();
+              }
+              private void maybeForceBuilderInitialization() {
+                if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+                }
+              }
+              private static Builder create() {
+                return new Builder();
               }
               
               public Builder clear() {
-                if (result == null) {
-                  throw new IllegalStateException(
-                    "Cannot call clear() after build().");
-                }
-                result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.HelpInfo();
+                super.clear();
+                url_ = "";
+                bitField0_ = (bitField0_ & ~0x00000001);
+                text_ = "";
+                bitField0_ = (bitField0_ & ~0x00000002);
                 return this;
               }
               
               public Builder clone() {
-                return create().mergeFrom(result);
+                return create().mergeFrom(buildPartial());
               }
               
-              public com.google.gwt.dev.protobuf.Descriptors.Descriptor
+              public com.google.protobuf.Descriptors.Descriptor
                   getDescriptorForType() {
                 return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.HelpInfo.getDescriptor();
               }
@@ -2314,36 +3517,42 @@ public final class RemoteMessageProto {
                 return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.HelpInfo.getDefaultInstance();
               }
               
-              public boolean isInitialized() {
-                return result.isInitialized();
-              }
               public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.HelpInfo build() {
-                if (result != null && !isInitialized()) {
+                com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.HelpInfo result = buildPartial();
+                if (!result.isInitialized()) {
                   throw newUninitializedMessageException(result);
                 }
-                return buildPartial();
+                return result;
               }
               
               private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.HelpInfo buildParsed()
-                  throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
-                if (!isInitialized()) {
+                  throws com.google.protobuf.InvalidProtocolBufferException {
+                com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.HelpInfo result = buildPartial();
+                if (!result.isInitialized()) {
                   throw newUninitializedMessageException(
                     result).asInvalidProtocolBufferException();
                 }
-                return buildPartial();
+                return result;
               }
               
               public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.HelpInfo buildPartial() {
-                if (result == null) {
-                  throw new IllegalStateException(
-                    "build() has already been called on this Builder.");
-                }
-                com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.HelpInfo returnMe = result;
-                result = null;
-                return returnMe;
+                com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.HelpInfo result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.HelpInfo(this);
+                int from_bitField0_ = bitField0_;
+                int to_bitField0_ = 0;
+                if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+                  to_bitField0_ |= 0x00000001;
+                }
+                result.url_ = url_;
+                if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
+                  to_bitField0_ |= 0x00000002;
+                }
+                result.text_ = text_;
+                result.bitField0_ = to_bitField0_;
+                onBuilt();
+                return result;
               }
               
-              public Builder mergeFrom(com.google.gwt.dev.protobuf.Message other) {
+              public Builder mergeFrom(com.google.protobuf.Message other) {
                 if (other instanceof com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.HelpInfo) {
                   return mergeFrom((com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.HelpInfo)other);
                 } else {
@@ -2364,148 +3573,289 @@ public final class RemoteMessageProto {
                 return this;
               }
               
+              public final boolean isInitialized() {
+                return true;
+              }
+              
               public Builder mergeFrom(
-                  com.google.gwt.dev.protobuf.CodedInputStream input,
-                  com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+                  com.google.protobuf.CodedInputStream input,
+                  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                   throws java.io.IOException {
-                com.google.gwt.dev.protobuf.UnknownFieldSet.Builder unknownFields =
-                  com.google.gwt.dev.protobuf.UnknownFieldSet.newBuilder(
+                com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+                  com.google.protobuf.UnknownFieldSet.newBuilder(
                     this.getUnknownFields());
                 while (true) {
                   int tag = input.readTag();
                   switch (tag) {
                     case 0:
                       this.setUnknownFields(unknownFields.build());
+                      onChanged();
                       return this;
                     default: {
                       if (!parseUnknownField(input, unknownFields,
                                              extensionRegistry, tag)) {
                         this.setUnknownFields(unknownFields.build());
+                        onChanged();
                         return this;
                       }
                       break;
                     }
                     case 10: {
-                      setUrl(input.readString());
+                      bitField0_ |= 0x00000001;
+                      url_ = input.readBytes();
                       break;
                     }
                     case 18: {
-                      setText(input.readString());
+                      bitField0_ |= 0x00000002;
+                      text_ = input.readBytes();
                       break;
                     }
                   }
                 }
               }
               
+              private int bitField0_;
               
               // optional string url = 1;
+              private java.lang.Object url_ = "";
               public boolean hasUrl() {
-                return result.hasUrl();
+                return ((bitField0_ & 0x00000001) == 0x00000001);
               }
-              public java.lang.String getUrl() {
-                return result.getUrl();
+              public String getUrl() {
+                java.lang.Object ref = url_;
+                if (!(ref instanceof String)) {
+                  String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
+                  url_ = s;
+                  return s;
+                } else {
+                  return (String) ref;
+                }
               }
-              public Builder setUrl(java.lang.String value) {
+              public Builder setUrl(String value) {
                 if (value == null) {
     throw new NullPointerException();
   }
-  result.hasUrl = true;
-                result.url_ = value;
+  bitField0_ |= 0x00000001;
+                url_ = value;
+                onChanged();
                 return this;
               }
               public Builder clearUrl() {
-                result.hasUrl = false;
-                result.url_ = getDefaultInstance().getUrl();
+                bitField0_ = (bitField0_ & ~0x00000001);
+                url_ = getDefaultInstance().getUrl();
+                onChanged();
                 return this;
               }
+              void setUrl(com.google.protobuf.ByteString value) {
+                bitField0_ |= 0x00000001;
+                url_ = value;
+                onChanged();
+              }
               
               // optional string text = 2;
+              private java.lang.Object text_ = "";
               public boolean hasText() {
-                return result.hasText();
+                return ((bitField0_ & 0x00000002) == 0x00000002);
               }
-              public java.lang.String getText() {
-                return result.getText();
+              public String getText() {
+                java.lang.Object ref = text_;
+                if (!(ref instanceof String)) {
+                  String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
+                  text_ = s;
+                  return s;
+                } else {
+                  return (String) ref;
+                }
               }
-              public Builder setText(java.lang.String value) {
+              public Builder setText(String value) {
                 if (value == null) {
     throw new NullPointerException();
   }
-  result.hasText = true;
-                result.text_ = value;
+  bitField0_ |= 0x00000002;
+                text_ = value;
+                onChanged();
                 return this;
               }
               public Builder clearText() {
-                result.hasText = false;
-                result.text_ = getDefaultInstance().getText();
+                bitField0_ = (bitField0_ & ~0x00000002);
+                text_ = getDefaultInstance().getText();
+                onChanged();
                 return this;
               }
+              void setText(com.google.protobuf.ByteString value) {
+                bitField0_ |= 0x00000002;
+                text_ = value;
+                onChanged();
+              }
+              
+              // @@protoc_insertion_point(builder_scope:com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest.LogData.HelpInfo)
             }
             
             static {
-              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.getDescriptor();
+              defaultInstance = new HelpInfo(true);
+              defaultInstance.initFields();
             }
             
-            static {
-              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internalForceInit();
-            }
+            // @@protoc_insertion_point(class_scope:com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest.LogData.HelpInfo)
           }
           
+          private int bitField0_;
           // required string summary = 1;
           public static final int SUMMARY_FIELD_NUMBER = 1;
-          private boolean hasSummary;
-          private java.lang.String summary_ = "";
-          public boolean hasSummary() { return hasSummary; }
-          public java.lang.String getSummary() { return summary_; }
+          private java.lang.Object summary_;
+          public boolean hasSummary() {
+            return ((bitField0_ & 0x00000001) == 0x00000001);
+          }
+          public String getSummary() {
+            java.lang.Object ref = summary_;
+            if (ref instanceof String) {
+              return (String) ref;
+            } else {
+              com.google.protobuf.ByteString bs = 
+                  (com.google.protobuf.ByteString) ref;
+              String s = bs.toStringUtf8();
+              if (com.google.protobuf.Internal.isValidUtf8(bs)) {
+                summary_ = s;
+              }
+              return s;
+            }
+          }
+          private com.google.protobuf.ByteString getSummaryBytes() {
+            java.lang.Object ref = summary_;
+            if (ref instanceof String) {
+              com.google.protobuf.ByteString b = 
+                  com.google.protobuf.ByteString.copyFromUtf8((String) ref);
+              summary_ = b;
+              return b;
+            } else {
+              return (com.google.protobuf.ByteString) ref;
+            }
+          }
           
           // optional string level = 2;
           public static final int LEVEL_FIELD_NUMBER = 2;
-          private boolean hasLevel;
-          private java.lang.String level_ = "";
-          public boolean hasLevel() { return hasLevel; }
-          public java.lang.String getLevel() { return level_; }
+          private java.lang.Object level_;
+          public boolean hasLevel() {
+            return ((bitField0_ & 0x00000002) == 0x00000002);
+          }
+          public String getLevel() {
+            java.lang.Object ref = level_;
+            if (ref instanceof String) {
+              return (String) ref;
+            } else {
+              com.google.protobuf.ByteString bs = 
+                  (com.google.protobuf.ByteString) ref;
+              String s = bs.toStringUtf8();
+              if (com.google.protobuf.Internal.isValidUtf8(bs)) {
+                level_ = s;
+              }
+              return s;
+            }
+          }
+          private com.google.protobuf.ByteString getLevelBytes() {
+            java.lang.Object ref = level_;
+            if (ref instanceof String) {
+              com.google.protobuf.ByteString b = 
+                  com.google.protobuf.ByteString.copyFromUtf8((String) ref);
+              level_ = b;
+              return b;
+            } else {
+              return (com.google.protobuf.ByteString) ref;
+            }
+          }
           
           // optional bool needsAttention = 3;
           public static final int NEEDSATTENTION_FIELD_NUMBER = 3;
-          private boolean hasNeedsAttention;
-          private boolean needsAttention_ = false;
-          public boolean hasNeedsAttention() { return hasNeedsAttention; }
-          public boolean getNeedsAttention() { return needsAttention_; }
+          private boolean needsAttention_;
+          public boolean hasNeedsAttention() {
+            return ((bitField0_ & 0x00000004) == 0x00000004);
+          }
+          public boolean getNeedsAttention() {
+            return needsAttention_;
+          }
           
           // optional string details = 4;
           public static final int DETAILS_FIELD_NUMBER = 4;
-          private boolean hasDetails;
-          private java.lang.String details_ = "";
-          public boolean hasDetails() { return hasDetails; }
-          public java.lang.String getDetails() { return details_; }
+          private java.lang.Object details_;
+          public boolean hasDetails() {
+            return ((bitField0_ & 0x00000008) == 0x00000008);
+          }
+          public String getDetails() {
+            java.lang.Object ref = details_;
+            if (ref instanceof String) {
+              return (String) ref;
+            } else {
+              com.google.protobuf.ByteString bs = 
+                  (com.google.protobuf.ByteString) ref;
+              String s = bs.toStringUtf8();
+              if (com.google.protobuf.Internal.isValidUtf8(bs)) {
+                details_ = s;
+              }
+              return s;
+            }
+          }
+          private com.google.protobuf.ByteString getDetailsBytes() {
+            java.lang.Object ref = details_;
+            if (ref instanceof String) {
+              com.google.protobuf.ByteString b = 
+                  com.google.protobuf.ByteString.copyFromUtf8((String) ref);
+              details_ = b;
+              return b;
+            } else {
+              return (com.google.protobuf.ByteString) ref;
+            }
+          }
           
           // optional .com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest.LogData.HelpInfo helpInfo = 5;
           public static final int HELPINFO_FIELD_NUMBER = 5;
-          private boolean hasHelpInfo;
-          private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.HelpInfo helpInfo_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.HelpInfo.getDefaultInstance();
-          public boolean hasHelpInfo() { return hasHelpInfo; }
-          public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.HelpInfo getHelpInfo() { return helpInfo_; }
+          private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.HelpInfo helpInfo_;
+          public boolean hasHelpInfo() {
+            return ((bitField0_ & 0x00000010) == 0x00000010);
+          }
+          public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.HelpInfo getHelpInfo() {
+            return helpInfo_;
+          }
+          public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.HelpInfoOrBuilder getHelpInfoOrBuilder() {
+            return helpInfo_;
+          }
           
+          private void initFields() {
+            summary_ = "";
+            level_ = "";
+            needsAttention_ = false;
+            details_ = "";
+            helpInfo_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.HelpInfo.getDefaultInstance();
+          }
+          private byte memoizedIsInitialized = -1;
           public final boolean isInitialized() {
-            if (!hasSummary) return false;
+            byte isInitialized = memoizedIsInitialized;
+            if (isInitialized != -1) return isInitialized == 1;
+            
+            if (!hasSummary()) {
+              memoizedIsInitialized = 0;
+              return false;
+            }
+            memoizedIsInitialized = 1;
             return true;
           }
           
-          public void writeTo(com.google.gwt.dev.protobuf.CodedOutputStream output)
+          public void writeTo(com.google.protobuf.CodedOutputStream output)
                               throws java.io.IOException {
-            if (hasSummary()) {
-              output.writeString(1, getSummary());
+            getSerializedSize();
+            if (((bitField0_ & 0x00000001) == 0x00000001)) {
+              output.writeBytes(1, getSummaryBytes());
             }
-            if (hasLevel()) {
-              output.writeString(2, getLevel());
+            if (((bitField0_ & 0x00000002) == 0x00000002)) {
+              output.writeBytes(2, getLevelBytes());
             }
-            if (hasNeedsAttention()) {
-              output.writeBool(3, getNeedsAttention());
+            if (((bitField0_ & 0x00000004) == 0x00000004)) {
+              output.writeBool(3, needsAttention_);
             }
-            if (hasDetails()) {
-              output.writeString(4, getDetails());
+            if (((bitField0_ & 0x00000008) == 0x00000008)) {
+              output.writeBytes(4, getDetailsBytes());
             }
-            if (hasHelpInfo()) {
-              output.writeMessage(5, getHelpInfo());
+            if (((bitField0_ & 0x00000010) == 0x00000010)) {
+              output.writeMessage(5, helpInfo_);
             }
             getUnknownFields().writeTo(output);
           }
@@ -2516,51 +3866,58 @@ public final class RemoteMessageProto {
             if (size != -1) return size;
           
             size = 0;
-            if (hasSummary()) {
-              size += com.google.gwt.dev.protobuf.CodedOutputStream
-                .computeStringSize(1, getSummary());
-            }
-            if (hasLevel()) {
-              size += com.google.gwt.dev.protobuf.CodedOutputStream
-                .computeStringSize(2, getLevel());
-            }
-            if (hasNeedsAttention()) {
-              size += com.google.gwt.dev.protobuf.CodedOutputStream
-                .computeBoolSize(3, getNeedsAttention());
-            }
-            if (hasDetails()) {
-              size += com.google.gwt.dev.protobuf.CodedOutputStream
-                .computeStringSize(4, getDetails());
-            }
-            if (hasHelpInfo()) {
-              size += com.google.gwt.dev.protobuf.CodedOutputStream
-                .computeMessageSize(5, getHelpInfo());
+            if (((bitField0_ & 0x00000001) == 0x00000001)) {
+              size += com.google.protobuf.CodedOutputStream
+                .computeBytesSize(1, getSummaryBytes());
+            }
+            if (((bitField0_ & 0x00000002) == 0x00000002)) {
+              size += com.google.protobuf.CodedOutputStream
+                .computeBytesSize(2, getLevelBytes());
+            }
+            if (((bitField0_ & 0x00000004) == 0x00000004)) {
+              size += com.google.protobuf.CodedOutputStream
+                .computeBoolSize(3, needsAttention_);
+            }
+            if (((bitField0_ & 0x00000008) == 0x00000008)) {
+              size += com.google.protobuf.CodedOutputStream
+                .computeBytesSize(4, getDetailsBytes());
+            }
+            if (((bitField0_ & 0x00000010) == 0x00000010)) {
+              size += com.google.protobuf.CodedOutputStream
+                .computeMessageSize(5, helpInfo_);
             }
             size += getUnknownFields().getSerializedSize();
             memoizedSerializedSize = size;
             return size;
           }
           
+          private static final long serialVersionUID = 0L;
+          @java.lang.Override
+          protected java.lang.Object writeReplace()
+              throws java.io.ObjectStreamException {
+            return super.writeReplace();
+          }
+          
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData parseFrom(
-              com.google.gwt.dev.protobuf.ByteString data)
-              throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+              com.google.protobuf.ByteString data)
+              throws com.google.protobuf.InvalidProtocolBufferException {
             return newBuilder().mergeFrom(data).buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData parseFrom(
-              com.google.gwt.dev.protobuf.ByteString data,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
-              throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+              com.google.protobuf.ByteString data,
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+              throws com.google.protobuf.InvalidProtocolBufferException {
             return newBuilder().mergeFrom(data, extensionRegistry)
                      .buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData parseFrom(byte[] data)
-              throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+              throws com.google.protobuf.InvalidProtocolBufferException {
             return newBuilder().mergeFrom(data).buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData parseFrom(
               byte[] data,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
-              throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+              throws com.google.protobuf.InvalidProtocolBufferException {
             return newBuilder().mergeFrom(data, extensionRegistry)
                      .buildParsed();
           }
@@ -2570,30 +3927,39 @@ public final class RemoteMessageProto {
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData parseFrom(
               java.io.InputStream input,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
               throws java.io.IOException {
             return newBuilder().mergeFrom(input, extensionRegistry)
                      .buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData parseDelimitedFrom(java.io.InputStream input)
               throws java.io.IOException {
-            return newBuilder().mergeDelimitedFrom(input).buildParsed();
+            Builder builder = newBuilder();
+            if (builder.mergeDelimitedFrom(input)) {
+              return builder.buildParsed();
+            } else {
+              return null;
+            }
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData parseDelimitedFrom(
               java.io.InputStream input,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
               throws java.io.IOException {
-            return newBuilder().mergeDelimitedFrom(input, extensionRegistry)
-                     .buildParsed();
+            Builder builder = newBuilder();
+            if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
+              return builder.buildParsed();
+            } else {
+              return null;
+            }
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData parseFrom(
-              com.google.gwt.dev.protobuf.CodedInputStream input)
+              com.google.protobuf.CodedInputStream input)
               throws java.io.IOException {
             return newBuilder().mergeFrom(input).buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData parseFrom(
-              com.google.gwt.dev.protobuf.CodedInputStream input,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+              com.google.protobuf.CodedInputStream input,
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
               throws java.io.IOException {
             return newBuilder().mergeFrom(input, extensionRegistry)
                      .buildParsed();
@@ -2606,37 +3972,67 @@ public final class RemoteMessageProto {
           }
           public Builder toBuilder() { return newBuilder(this); }
           
+          @java.lang.Override
+          protected Builder newBuilderForType(
+              com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+            Builder builder = new Builder(parent);
+            return builder;
+          }
           public static final class Builder extends
-              com.google.gwt.dev.protobuf.GeneratedMessage.Builder<Builder> {
-            private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData result;
+              com.google.protobuf.GeneratedMessage.Builder<Builder>
+             implements com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogDataOrBuilder {
+            public static final com.google.protobuf.Descriptors.Descriptor
+                getDescriptor() {
+              return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_LogData_descriptor;
+            }
             
-            // Construct using com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.newBuilder()
-            private Builder() {}
+            protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+                internalGetFieldAccessorTable() {
+              return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_LogData_fieldAccessorTable;
+            }
             
-            private static Builder create() {
-              Builder builder = new Builder();
-              builder.result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData();
-              return builder;
+            // Construct using com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.newBuilder()
+            private Builder() {
+              maybeForceBuilderInitialization();
             }
             
-            protected com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData internalGetResult() {
-              return result;
+            private Builder(BuilderParent parent) {
+              super(parent);
+              maybeForceBuilderInitialization();
+            }
+            private void maybeForceBuilderInitialization() {
+              if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+                getHelpInfoFieldBuilder();
+              }
+            }
+            private static Builder create() {
+              return new Builder();
             }
             
             public Builder clear() {
-              if (result == null) {
-                throw new IllegalStateException(
-                  "Cannot call clear() after build().");
+              super.clear();
+              summary_ = "";
+              bitField0_ = (bitField0_ & ~0x00000001);
+              level_ = "";
+              bitField0_ = (bitField0_ & ~0x00000002);
+              needsAttention_ = false;
+              bitField0_ = (bitField0_ & ~0x00000004);
+              details_ = "";
+              bitField0_ = (bitField0_ & ~0x00000008);
+              if (helpInfoBuilder_ == null) {
+                helpInfo_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.HelpInfo.getDefaultInstance();
+              } else {
+                helpInfoBuilder_.clear();
               }
-              result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData();
+              bitField0_ = (bitField0_ & ~0x00000010);
               return this;
             }
             
             public Builder clone() {
-              return create().mergeFrom(result);
+              return create().mergeFrom(buildPartial());
             }
             
-            public com.google.gwt.dev.protobuf.Descriptors.Descriptor
+            public com.google.protobuf.Descriptors.Descriptor
                 getDescriptorForType() {
               return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.getDescriptor();
             }
@@ -2645,36 +4041,58 @@ public final class RemoteMessageProto {
               return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.getDefaultInstance();
             }
             
-            public boolean isInitialized() {
-              return result.isInitialized();
-            }
             public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData build() {
-              if (result != null && !isInitialized()) {
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData result = buildPartial();
+              if (!result.isInitialized()) {
                 throw newUninitializedMessageException(result);
               }
-              return buildPartial();
+              return result;
             }
             
             private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData buildParsed()
-                throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
-              if (!isInitialized()) {
+                throws com.google.protobuf.InvalidProtocolBufferException {
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData result = buildPartial();
+              if (!result.isInitialized()) {
                 throw newUninitializedMessageException(
                   result).asInvalidProtocolBufferException();
               }
-              return buildPartial();
+              return result;
             }
             
             public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData buildPartial() {
-              if (result == null) {
-                throw new IllegalStateException(
-                  "build() has already been called on this Builder.");
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData(this);
+              int from_bitField0_ = bitField0_;
+              int to_bitField0_ = 0;
+              if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+                to_bitField0_ |= 0x00000001;
+              }
+              result.summary_ = summary_;
+              if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
+                to_bitField0_ |= 0x00000002;
+              }
+              result.level_ = level_;
+              if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
+                to_bitField0_ |= 0x00000004;
+              }
+              result.needsAttention_ = needsAttention_;
+              if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
+                to_bitField0_ |= 0x00000008;
+              }
+              result.details_ = details_;
+              if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
+                to_bitField0_ |= 0x00000010;
+              }
+              if (helpInfoBuilder_ == null) {
+                result.helpInfo_ = helpInfo_;
+              } else {
+                result.helpInfo_ = helpInfoBuilder_.build();
               }
-              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData returnMe = result;
-              result = null;
-              return returnMe;
+              result.bitField0_ = to_bitField0_;
+              onBuilt();
+              return result;
             }
             
-            public Builder mergeFrom(com.google.gwt.dev.protobuf.Message other) {
+            public Builder mergeFrom(com.google.protobuf.Message other) {
               if (other instanceof com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData) {
                 return mergeFrom((com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData)other);
               } else {
@@ -2704,41 +4122,55 @@ public final class RemoteMessageProto {
               return this;
             }
             
+            public final boolean isInitialized() {
+              if (!hasSummary()) {
+                
+                return false;
+              }
+              return true;
+            }
+            
             public Builder mergeFrom(
-                com.google.gwt.dev.protobuf.CodedInputStream input,
-                com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+                com.google.protobuf.CodedInputStream input,
+                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                 throws java.io.IOException {
-              com.google.gwt.dev.protobuf.UnknownFieldSet.Builder unknownFields =
-                com.google.gwt.dev.protobuf.UnknownFieldSet.newBuilder(
+              com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+                com.google.protobuf.UnknownFieldSet.newBuilder(
                   this.getUnknownFields());
               while (true) {
                 int tag = input.readTag();
                 switch (tag) {
                   case 0:
                     this.setUnknownFields(unknownFields.build());
+                    onChanged();
                     return this;
                   default: {
                     if (!parseUnknownField(input, unknownFields,
                                            extensionRegistry, tag)) {
                       this.setUnknownFields(unknownFields.build());
+                      onChanged();
                       return this;
                     }
                     break;
                   }
                   case 10: {
-                    setSummary(input.readString());
+                    bitField0_ |= 0x00000001;
+                    summary_ = input.readBytes();
                     break;
                   }
                   case 18: {
-                    setLevel(input.readString());
+                    bitField0_ |= 0x00000002;
+                    level_ = input.readBytes();
                     break;
                   }
                   case 24: {
-                    setNeedsAttention(input.readBool());
+                    bitField0_ |= 0x00000004;
+                    needsAttention_ = input.readBool();
                     break;
                   }
                   case 34: {
-                    setDetails(input.readString());
+                    bitField0_ |= 0x00000008;
+                    details_ = input.readBytes();
                     break;
                   }
                   case 42: {
@@ -2754,141 +4186,264 @@ public final class RemoteMessageProto {
               }
             }
             
+            private int bitField0_;
             
             // required string summary = 1;
+            private java.lang.Object summary_ = "";
             public boolean hasSummary() {
-              return result.hasSummary();
+              return ((bitField0_ & 0x00000001) == 0x00000001);
             }
-            public java.lang.String getSummary() {
-              return result.getSummary();
+            public String getSummary() {
+              java.lang.Object ref = summary_;
+              if (!(ref instanceof String)) {
+                String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
+                summary_ = s;
+                return s;
+              } else {
+                return (String) ref;
+              }
             }
-            public Builder setSummary(java.lang.String value) {
+            public Builder setSummary(String value) {
               if (value == null) {
     throw new NullPointerException();
   }
-  result.hasSummary = true;
-              result.summary_ = value;
+  bitField0_ |= 0x00000001;
+              summary_ = value;
+              onChanged();
               return this;
             }
             public Builder clearSummary() {
-              result.hasSummary = false;
-              result.summary_ = getDefaultInstance().getSummary();
+              bitField0_ = (bitField0_ & ~0x00000001);
+              summary_ = getDefaultInstance().getSummary();
+              onChanged();
               return this;
             }
+            void setSummary(com.google.protobuf.ByteString value) {
+              bitField0_ |= 0x00000001;
+              summary_ = value;
+              onChanged();
+            }
             
             // optional string level = 2;
+            private java.lang.Object level_ = "";
             public boolean hasLevel() {
-              return result.hasLevel();
+              return ((bitField0_ & 0x00000002) == 0x00000002);
             }
-            public java.lang.String getLevel() {
-              return result.getLevel();
+            public String getLevel() {
+              java.lang.Object ref = level_;
+              if (!(ref instanceof String)) {
+                String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
+                level_ = s;
+                return s;
+              } else {
+                return (String) ref;
+              }
             }
-            public Builder setLevel(java.lang.String value) {
+            public Builder setLevel(String value) {
               if (value == null) {
     throw new NullPointerException();
   }
-  result.hasLevel = true;
-              result.level_ = value;
+  bitField0_ |= 0x00000002;
+              level_ = value;
+              onChanged();
               return this;
             }
             public Builder clearLevel() {
-              result.hasLevel = false;
-              result.level_ = getDefaultInstance().getLevel();
+              bitField0_ = (bitField0_ & ~0x00000002);
+              level_ = getDefaultInstance().getLevel();
+              onChanged();
               return this;
             }
+            void setLevel(com.google.protobuf.ByteString value) {
+              bitField0_ |= 0x00000002;
+              level_ = value;
+              onChanged();
+            }
             
             // optional bool needsAttention = 3;
+            private boolean needsAttention_ ;
             public boolean hasNeedsAttention() {
-              return result.hasNeedsAttention();
+              return ((bitField0_ & 0x00000004) == 0x00000004);
             }
             public boolean getNeedsAttention() {
-              return result.getNeedsAttention();
+              return needsAttention_;
             }
             public Builder setNeedsAttention(boolean value) {
-              result.hasNeedsAttention = true;
-              result.needsAttention_ = value;
+              bitField0_ |= 0x00000004;
+              needsAttention_ = value;
+              onChanged();
               return this;
             }
             public Builder clearNeedsAttention() {
-              result.hasNeedsAttention = false;
-              result.needsAttention_ = false;
+              bitField0_ = (bitField0_ & ~0x00000004);
+              needsAttention_ = false;
+              onChanged();
               return this;
             }
             
             // optional string details = 4;
+            private java.lang.Object details_ = "";
             public boolean hasDetails() {
-              return result.hasDetails();
+              return ((bitField0_ & 0x00000008) == 0x00000008);
             }
-            public java.lang.String getDetails() {
-              return result.getDetails();
+            public String getDetails() {
+              java.lang.Object ref = details_;
+              if (!(ref instanceof String)) {
+                String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
+                details_ = s;
+                return s;
+              } else {
+                return (String) ref;
+              }
             }
-            public Builder setDetails(java.lang.String value) {
+            public Builder setDetails(String value) {
               if (value == null) {
     throw new NullPointerException();
   }
-  result.hasDetails = true;
-              result.details_ = value;
+  bitField0_ |= 0x00000008;
+              details_ = value;
+              onChanged();
               return this;
             }
             public Builder clearDetails() {
-              result.hasDetails = false;
-              result.details_ = getDefaultInstance().getDetails();
+              bitField0_ = (bitField0_ & ~0x00000008);
+              details_ = getDefaultInstance().getDetails();
+              onChanged();
               return this;
             }
+            void setDetails(com.google.protobuf.ByteString value) {
+              bitField0_ |= 0x00000008;
+              details_ = value;
+              onChanged();
+            }
             
             // optional .com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest.LogData.HelpInfo helpInfo = 5;
+            private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.HelpInfo helpInfo_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.HelpInfo.getDefaultInstance();
+            private com.google.protobuf.SingleFieldBuilder<
+                com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.HelpInfo, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.HelpInfo.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.HelpInfoOrBuilder> helpInfoBuilder_;
             public boolean hasHelpInfo() {
-              return result.hasHelpInfo();
+              return ((bitField0_ & 0x00000010) == 0x00000010);
             }
             public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.HelpInfo getHelpInfo() {
-              return result.getHelpInfo();
+              if (helpInfoBuilder_ == null) {
+                return helpInfo_;
+              } else {
+                return helpInfoBuilder_.getMessage();
+              }
             }
             public Builder setHelpInfo(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.HelpInfo value) {
-              if (value == null) {
-                throw new NullPointerException();
+              if (helpInfoBuilder_ == null) {
+                if (value == null) {
+                  throw new NullPointerException();
+                }
+                helpInfo_ = value;
+                onChanged();
+              } else {
+                helpInfoBuilder_.setMessage(value);
               }
-              result.hasHelpInfo = true;
-              result.helpInfo_ = value;
+              bitField0_ |= 0x00000010;
               return this;
             }
-            public Builder setHelpInfo(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.HelpInfo.Builder builderForValue) {
-              result.hasHelpInfo = true;
-              result.helpInfo_ = builderForValue.build();
+            public Builder setHelpInfo(
+                com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.HelpInfo.Builder builderForValue) {
+              if (helpInfoBuilder_ == null) {
+                helpInfo_ = builderForValue.build();
+                onChanged();
+              } else {
+                helpInfoBuilder_.setMessage(builderForValue.build());
+              }
+              bitField0_ |= 0x00000010;
               return this;
             }
             public Builder mergeHelpInfo(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.HelpInfo value) {
-              if (result.hasHelpInfo() &&
-                  result.helpInfo_ != com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.HelpInfo.getDefaultInstance()) {
-                result.helpInfo_ =
-                  com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.HelpInfo.newBuilder(result.helpInfo_).mergeFrom(value).buildPartial();
+              if (helpInfoBuilder_ == null) {
+                if (((bitField0_ & 0x00000010) == 0x00000010) &&
+                    helpInfo_ != com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.HelpInfo.getDefaultInstance()) {
+                  helpInfo_ =
+                    com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.HelpInfo.newBuilder(helpInfo_).mergeFrom(value).buildPartial();
+                } else {
+                  helpInfo_ = value;
+                }
+                onChanged();
               } else {
-                result.helpInfo_ = value;
+                helpInfoBuilder_.mergeFrom(value);
               }
-              result.hasHelpInfo = true;
+              bitField0_ |= 0x00000010;
               return this;
             }
             public Builder clearHelpInfo() {
-              result.hasHelpInfo = false;
-              result.helpInfo_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.HelpInfo.getDefaultInstance();
+              if (helpInfoBuilder_ == null) {
+                helpInfo_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.HelpInfo.getDefaultInstance();
+                onChanged();
+              } else {
+                helpInfoBuilder_.clear();
+              }
+              bitField0_ = (bitField0_ & ~0x00000010);
               return this;
             }
+            public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.HelpInfo.Builder getHelpInfoBuilder() {
+              bitField0_ |= 0x00000010;
+              onChanged();
+              return getHelpInfoFieldBuilder().getBuilder();
+            }
+            public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.HelpInfoOrBuilder getHelpInfoOrBuilder() {
+              if (helpInfoBuilder_ != null) {
+                return helpInfoBuilder_.getMessageOrBuilder();
+              } else {
+                return helpInfo_;
+              }
+            }
+            private com.google.protobuf.SingleFieldBuilder<
+                com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.HelpInfo, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.HelpInfo.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.HelpInfoOrBuilder> 
+                getHelpInfoFieldBuilder() {
+              if (helpInfoBuilder_ == null) {
+                helpInfoBuilder_ = new com.google.protobuf.SingleFieldBuilder<
+                    com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.HelpInfo, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.HelpInfo.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.HelpInfoOrBuilder>(
+                        helpInfo_,
+                        getParentForChildren(),
+                        isClean());
+                helpInfo_ = null;
+              }
+              return helpInfoBuilder_;
+            }
+            
+            // @@protoc_insertion_point(builder_scope:com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest.LogData)
           }
           
           static {
-            com.google.gwt.dev.shell.remoteui.RemoteMessageProto.getDescriptor();
+            defaultInstance = new LogData(true);
+            defaultInstance.initFields();
           }
           
-          static {
-            com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internalForceInit();
-          }
+          // @@protoc_insertion_point(class_scope:com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest.LogData)
         }
         
+        public interface AddLogBranchOrBuilder
+            extends com.google.protobuf.MessageOrBuilder {
+          
+          // required uint32 parentLogHandle = 1;
+          boolean hasParentLogHandle();
+          int getParentLogHandle();
+          
+          // required uint32 indexInParent = 2;
+          boolean hasIndexInParent();
+          int getIndexInParent();
+          
+          // required .com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest.LogData logData = 3;
+          boolean hasLogData();
+          com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData getLogData();
+          com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogDataOrBuilder getLogDataOrBuilder();
+        }
         public static final class AddLogBranch extends
-            com.google.gwt.dev.protobuf.GeneratedMessage {
+            com.google.protobuf.GeneratedMessage
+            implements AddLogBranchOrBuilder {
           // Use AddLogBranch.newBuilder() to construct.
-          private AddLogBranch() {}
+          private AddLogBranch(Builder builder) {
+            super(builder);
+          }
+          private AddLogBranch(boolean noInit) {}
           
-          private static final AddLogBranch defaultInstance = new AddLogBranch();
+          private static final AddLogBranch defaultInstance;
           public static AddLogBranch getDefaultInstance() {
             return defaultInstance;
           }
@@ -2897,55 +4452,91 @@ public final class RemoteMessageProto {
             return defaultInstance;
           }
           
-          public static final com.google.gwt.dev.protobuf.Descriptors.Descriptor
+          public static final com.google.protobuf.Descriptors.Descriptor
               getDescriptor() {
             return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_AddLogBranch_descriptor;
           }
           
-          protected com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable
+          protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
               internalGetFieldAccessorTable() {
             return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_AddLogBranch_fieldAccessorTable;
           }
           
+          private int bitField0_;
           // required uint32 parentLogHandle = 1;
           public static final int PARENTLOGHANDLE_FIELD_NUMBER = 1;
-          private boolean hasParentLogHandle;
-          private int parentLogHandle_ = 0;
-          public boolean hasParentLogHandle() { return hasParentLogHandle; }
-          public int getParentLogHandle() { return parentLogHandle_; }
+          private int parentLogHandle_;
+          public boolean hasParentLogHandle() {
+            return ((bitField0_ & 0x00000001) == 0x00000001);
+          }
+          public int getParentLogHandle() {
+            return parentLogHandle_;
+          }
           
           // required uint32 indexInParent = 2;
           public static final int INDEXINPARENT_FIELD_NUMBER = 2;
-          private boolean hasIndexInParent;
-          private int indexInParent_ = 0;
-          public boolean hasIndexInParent() { return hasIndexInParent; }
-          public int getIndexInParent() { return indexInParent_; }
+          private int indexInParent_;
+          public boolean hasIndexInParent() {
+            return ((bitField0_ & 0x00000002) == 0x00000002);
+          }
+          public int getIndexInParent() {
+            return indexInParent_;
+          }
           
           // required .com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest.LogData logData = 3;
           public static final int LOGDATA_FIELD_NUMBER = 3;
-          private boolean hasLogData;
-          private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData logData_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.getDefaultInstance();
-          public boolean hasLogData() { return hasLogData; }
-          public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData getLogData() { return logData_; }
+          private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData logData_;
+          public boolean hasLogData() {
+            return ((bitField0_ & 0x00000004) == 0x00000004);
+          }
+          public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData getLogData() {
+            return logData_;
+          }
+          public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogDataOrBuilder getLogDataOrBuilder() {
+            return logData_;
+          }
           
+          private void initFields() {
+            parentLogHandle_ = 0;
+            indexInParent_ = 0;
+            logData_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.getDefaultInstance();
+          }
+          private byte memoizedIsInitialized = -1;
           public final boolean isInitialized() {
-            if (!hasParentLogHandle) return false;
-            if (!hasIndexInParent) return false;
-            if (!hasLogData) return false;
-            if (!getLogData().isInitialized()) return false;
+            byte isInitialized = memoizedIsInitialized;
+            if (isInitialized != -1) return isInitialized == 1;
+            
+            if (!hasParentLogHandle()) {
+              memoizedIsInitialized = 0;
+              return false;
+            }
+            if (!hasIndexInParent()) {
+              memoizedIsInitialized = 0;
+              return false;
+            }
+            if (!hasLogData()) {
+              memoizedIsInitialized = 0;
+              return false;
+            }
+            if (!getLogData().isInitialized()) {
+              memoizedIsInitialized = 0;
+              return false;
+            }
+            memoizedIsInitialized = 1;
             return true;
           }
           
-          public void writeTo(com.google.gwt.dev.protobuf.CodedOutputStream output)
+          public void writeTo(com.google.protobuf.CodedOutputStream output)
                               throws java.io.IOException {
-            if (hasParentLogHandle()) {
-              output.writeUInt32(1, getParentLogHandle());
+            getSerializedSize();
+            if (((bitField0_ & 0x00000001) == 0x00000001)) {
+              output.writeUInt32(1, parentLogHandle_);
             }
-            if (hasIndexInParent()) {
-              output.writeUInt32(2, getIndexInParent());
+            if (((bitField0_ & 0x00000002) == 0x00000002)) {
+              output.writeUInt32(2, indexInParent_);
             }
-            if (hasLogData()) {
-              output.writeMessage(3, getLogData());
+            if (((bitField0_ & 0x00000004) == 0x00000004)) {
+              output.writeMessage(3, logData_);
             }
             getUnknownFields().writeTo(output);
           }
@@ -2956,43 +4547,50 @@ public final class RemoteMessageProto {
             if (size != -1) return size;
           
             size = 0;
-            if (hasParentLogHandle()) {
-              size += com.google.gwt.dev.protobuf.CodedOutputStream
-                .computeUInt32Size(1, getParentLogHandle());
-            }
-            if (hasIndexInParent()) {
-              size += com.google.gwt.dev.protobuf.CodedOutputStream
-                .computeUInt32Size(2, getIndexInParent());
-            }
-            if (hasLogData()) {
-              size += com.google.gwt.dev.protobuf.CodedOutputStream
-                .computeMessageSize(3, getLogData());
+            if (((bitField0_ & 0x00000001) == 0x00000001)) {
+              size += com.google.protobuf.CodedOutputStream
+                .computeUInt32Size(1, parentLogHandle_);
+            }
+            if (((bitField0_ & 0x00000002) == 0x00000002)) {
+              size += com.google.protobuf.CodedOutputStream
+                .computeUInt32Size(2, indexInParent_);
+            }
+            if (((bitField0_ & 0x00000004) == 0x00000004)) {
+              size += com.google.protobuf.CodedOutputStream
+                .computeMessageSize(3, logData_);
             }
             size += getUnknownFields().getSerializedSize();
             memoizedSerializedSize = size;
             return size;
           }
           
+          private static final long serialVersionUID = 0L;
+          @java.lang.Override
+          protected java.lang.Object writeReplace()
+              throws java.io.ObjectStreamException {
+            return super.writeReplace();
+          }
+          
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogBranch parseFrom(
-              com.google.gwt.dev.protobuf.ByteString data)
-              throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+              com.google.protobuf.ByteString data)
+              throws com.google.protobuf.InvalidProtocolBufferException {
             return newBuilder().mergeFrom(data).buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogBranch parseFrom(
-              com.google.gwt.dev.protobuf.ByteString data,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
-              throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+              com.google.protobuf.ByteString data,
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+              throws com.google.protobuf.InvalidProtocolBufferException {
             return newBuilder().mergeFrom(data, extensionRegistry)
                      .buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogBranch parseFrom(byte[] data)
-              throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+              throws com.google.protobuf.InvalidProtocolBufferException {
             return newBuilder().mergeFrom(data).buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogBranch parseFrom(
               byte[] data,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
-              throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+              throws com.google.protobuf.InvalidProtocolBufferException {
             return newBuilder().mergeFrom(data, extensionRegistry)
                      .buildParsed();
           }
@@ -3002,30 +4600,39 @@ public final class RemoteMessageProto {
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogBranch parseFrom(
               java.io.InputStream input,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
               throws java.io.IOException {
             return newBuilder().mergeFrom(input, extensionRegistry)
                      .buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogBranch parseDelimitedFrom(java.io.InputStream input)
               throws java.io.IOException {
-            return newBuilder().mergeDelimitedFrom(input).buildParsed();
+            Builder builder = newBuilder();
+            if (builder.mergeDelimitedFrom(input)) {
+              return builder.buildParsed();
+            } else {
+              return null;
+            }
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogBranch parseDelimitedFrom(
               java.io.InputStream input,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
               throws java.io.IOException {
-            return newBuilder().mergeDelimitedFrom(input, extensionRegistry)
-                     .buildParsed();
+            Builder builder = newBuilder();
+            if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
+              return builder.buildParsed();
+            } else {
+              return null;
+            }
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogBranch parseFrom(
-              com.google.gwt.dev.protobuf.CodedInputStream input)
+              com.google.protobuf.CodedInputStream input)
               throws java.io.IOException {
             return newBuilder().mergeFrom(input).buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogBranch parseFrom(
-              com.google.gwt.dev.protobuf.CodedInputStream input,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+              com.google.protobuf.CodedInputStream input,
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
               throws java.io.IOException {
             return newBuilder().mergeFrom(input, extensionRegistry)
                      .buildParsed();
@@ -3038,37 +4645,63 @@ public final class RemoteMessageProto {
           }
           public Builder toBuilder() { return newBuilder(this); }
           
+          @java.lang.Override
+          protected Builder newBuilderForType(
+              com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+            Builder builder = new Builder(parent);
+            return builder;
+          }
           public static final class Builder extends
-              com.google.gwt.dev.protobuf.GeneratedMessage.Builder<Builder> {
-            private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogBranch result;
+              com.google.protobuf.GeneratedMessage.Builder<Builder>
+             implements com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogBranchOrBuilder {
+            public static final com.google.protobuf.Descriptors.Descriptor
+                getDescriptor() {
+              return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_AddLogBranch_descriptor;
+            }
             
-            // Construct using com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogBranch.newBuilder()
-            private Builder() {}
+            protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+                internalGetFieldAccessorTable() {
+              return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_AddLogBranch_fieldAccessorTable;
+            }
             
-            private static Builder create() {
-              Builder builder = new Builder();
-              builder.result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogBranch();
-              return builder;
+            // Construct using com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogBranch.newBuilder()
+            private Builder() {
+              maybeForceBuilderInitialization();
             }
             
-            protected com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogBranch internalGetResult() {
-              return result;
+            private Builder(BuilderParent parent) {
+              super(parent);
+              maybeForceBuilderInitialization();
+            }
+            private void maybeForceBuilderInitialization() {
+              if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+                getLogDataFieldBuilder();
+              }
+            }
+            private static Builder create() {
+              return new Builder();
             }
             
             public Builder clear() {
-              if (result == null) {
-                throw new IllegalStateException(
-                  "Cannot call clear() after build().");
+              super.clear();
+              parentLogHandle_ = 0;
+              bitField0_ = (bitField0_ & ~0x00000001);
+              indexInParent_ = 0;
+              bitField0_ = (bitField0_ & ~0x00000002);
+              if (logDataBuilder_ == null) {
+                logData_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.getDefaultInstance();
+              } else {
+                logDataBuilder_.clear();
               }
-              result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogBranch();
+              bitField0_ = (bitField0_ & ~0x00000004);
               return this;
             }
             
             public Builder clone() {
-              return create().mergeFrom(result);
+              return create().mergeFrom(buildPartial());
             }
             
-            public com.google.gwt.dev.protobuf.Descriptors.Descriptor
+            public com.google.protobuf.Descriptors.Descriptor
                 getDescriptorForType() {
               return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogBranch.getDescriptor();
             }
@@ -3077,36 +4710,50 @@ public final class RemoteMessageProto {
               return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogBranch.getDefaultInstance();
             }
             
-            public boolean isInitialized() {
-              return result.isInitialized();
-            }
             public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogBranch build() {
-              if (result != null && !isInitialized()) {
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogBranch result = buildPartial();
+              if (!result.isInitialized()) {
                 throw newUninitializedMessageException(result);
               }
-              return buildPartial();
+              return result;
             }
             
             private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogBranch buildParsed()
-                throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
-              if (!isInitialized()) {
+                throws com.google.protobuf.InvalidProtocolBufferException {
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogBranch result = buildPartial();
+              if (!result.isInitialized()) {
                 throw newUninitializedMessageException(
                   result).asInvalidProtocolBufferException();
               }
-              return buildPartial();
+              return result;
             }
             
             public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogBranch buildPartial() {
-              if (result == null) {
-                throw new IllegalStateException(
-                  "build() has already been called on this Builder.");
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogBranch result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogBranch(this);
+              int from_bitField0_ = bitField0_;
+              int to_bitField0_ = 0;
+              if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+                to_bitField0_ |= 0x00000001;
+              }
+              result.parentLogHandle_ = parentLogHandle_;
+              if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
+                to_bitField0_ |= 0x00000002;
+              }
+              result.indexInParent_ = indexInParent_;
+              if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
+                to_bitField0_ |= 0x00000004;
+              }
+              if (logDataBuilder_ == null) {
+                result.logData_ = logData_;
+              } else {
+                result.logData_ = logDataBuilder_.build();
               }
-              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogBranch returnMe = result;
-              result = null;
-              return returnMe;
+              result.bitField0_ = to_bitField0_;
+              onBuilt();
+              return result;
             }
             
-            public Builder mergeFrom(com.google.gwt.dev.protobuf.Message other) {
+            public Builder mergeFrom(com.google.protobuf.Message other) {
               if (other instanceof com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogBranch) {
                 return mergeFrom((com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogBranch)other);
               } else {
@@ -3130,33 +4777,57 @@ public final class RemoteMessageProto {
               return this;
             }
             
+            public final boolean isInitialized() {
+              if (!hasParentLogHandle()) {
+                
+                return false;
+              }
+              if (!hasIndexInParent()) {
+                
+                return false;
+              }
+              if (!hasLogData()) {
+                
+                return false;
+              }
+              if (!getLogData().isInitialized()) {
+                
+                return false;
+              }
+              return true;
+            }
+            
             public Builder mergeFrom(
-                com.google.gwt.dev.protobuf.CodedInputStream input,
-                com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+                com.google.protobuf.CodedInputStream input,
+                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                 throws java.io.IOException {
-              com.google.gwt.dev.protobuf.UnknownFieldSet.Builder unknownFields =
-                com.google.gwt.dev.protobuf.UnknownFieldSet.newBuilder(
+              com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+                com.google.protobuf.UnknownFieldSet.newBuilder(
                   this.getUnknownFields());
               while (true) {
                 int tag = input.readTag();
                 switch (tag) {
                   case 0:
                     this.setUnknownFields(unknownFields.build());
+                    onChanged();
                     return this;
                   default: {
                     if (!parseUnknownField(input, unknownFields,
                                            extensionRegistry, tag)) {
                       this.setUnknownFields(unknownFields.build());
+                      onChanged();
                       return this;
                     }
                     break;
                   }
                   case 8: {
-                    setParentLogHandle(input.readUInt32());
+                    bitField0_ |= 0x00000001;
+                    parentLogHandle_ = input.readUInt32();
                     break;
                   }
                   case 16: {
-                    setIndexInParent(input.readUInt32());
+                    bitField0_ |= 0x00000002;
+                    indexInParent_ = input.readUInt32();
                     break;
                   }
                   case 26: {
@@ -3172,96 +4843,177 @@ public final class RemoteMessageProto {
               }
             }
             
+            private int bitField0_;
             
             // required uint32 parentLogHandle = 1;
+            private int parentLogHandle_ ;
             public boolean hasParentLogHandle() {
-              return result.hasParentLogHandle();
+              return ((bitField0_ & 0x00000001) == 0x00000001);
             }
             public int getParentLogHandle() {
-              return result.getParentLogHandle();
+              return parentLogHandle_;
             }
             public Builder setParentLogHandle(int value) {
-              result.hasParentLogHandle = true;
-              result.parentLogHandle_ = value;
+              bitField0_ |= 0x00000001;
+              parentLogHandle_ = value;
+              onChanged();
               return this;
             }
             public Builder clearParentLogHandle() {
-              result.hasParentLogHandle = false;
-              result.parentLogHandle_ = 0;
+              bitField0_ = (bitField0_ & ~0x00000001);
+              parentLogHandle_ = 0;
+              onChanged();
               return this;
             }
             
             // required uint32 indexInParent = 2;
+            private int indexInParent_ ;
             public boolean hasIndexInParent() {
-              return result.hasIndexInParent();
+              return ((bitField0_ & 0x00000002) == 0x00000002);
             }
             public int getIndexInParent() {
-              return result.getIndexInParent();
+              return indexInParent_;
             }
             public Builder setIndexInParent(int value) {
-              result.hasIndexInParent = true;
-              result.indexInParent_ = value;
+              bitField0_ |= 0x00000002;
+              indexInParent_ = value;
+              onChanged();
               return this;
             }
             public Builder clearIndexInParent() {
-              result.hasIndexInParent = false;
-              result.indexInParent_ = 0;
+              bitField0_ = (bitField0_ & ~0x00000002);
+              indexInParent_ = 0;
+              onChanged();
               return this;
             }
             
             // required .com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest.LogData logData = 3;
+            private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData logData_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.getDefaultInstance();
+            private com.google.protobuf.SingleFieldBuilder<
+                com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogDataOrBuilder> logDataBuilder_;
             public boolean hasLogData() {
-              return result.hasLogData();
+              return ((bitField0_ & 0x00000004) == 0x00000004);
             }
             public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData getLogData() {
-              return result.getLogData();
+              if (logDataBuilder_ == null) {
+                return logData_;
+              } else {
+                return logDataBuilder_.getMessage();
+              }
             }
             public Builder setLogData(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData value) {
-              if (value == null) {
-                throw new NullPointerException();
+              if (logDataBuilder_ == null) {
+                if (value == null) {
+                  throw new NullPointerException();
+                }
+                logData_ = value;
+                onChanged();
+              } else {
+                logDataBuilder_.setMessage(value);
               }
-              result.hasLogData = true;
-              result.logData_ = value;
+              bitField0_ |= 0x00000004;
               return this;
             }
-            public Builder setLogData(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.Builder builderForValue) {
-              result.hasLogData = true;
-              result.logData_ = builderForValue.build();
+            public Builder setLogData(
+                com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.Builder builderForValue) {
+              if (logDataBuilder_ == null) {
+                logData_ = builderForValue.build();
+                onChanged();
+              } else {
+                logDataBuilder_.setMessage(builderForValue.build());
+              }
+              bitField0_ |= 0x00000004;
               return this;
             }
             public Builder mergeLogData(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData value) {
-              if (result.hasLogData() &&
-                  result.logData_ != com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.getDefaultInstance()) {
-                result.logData_ =
-                  com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.newBuilder(result.logData_).mergeFrom(value).buildPartial();
+              if (logDataBuilder_ == null) {
+                if (((bitField0_ & 0x00000004) == 0x00000004) &&
+                    logData_ != com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.getDefaultInstance()) {
+                  logData_ =
+                    com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.newBuilder(logData_).mergeFrom(value).buildPartial();
+                } else {
+                  logData_ = value;
+                }
+                onChanged();
               } else {
-                result.logData_ = value;
+                logDataBuilder_.mergeFrom(value);
               }
-              result.hasLogData = true;
+              bitField0_ |= 0x00000004;
               return this;
             }
             public Builder clearLogData() {
-              result.hasLogData = false;
-              result.logData_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.getDefaultInstance();
+              if (logDataBuilder_ == null) {
+                logData_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.getDefaultInstance();
+                onChanged();
+              } else {
+                logDataBuilder_.clear();
+              }
+              bitField0_ = (bitField0_ & ~0x00000004);
               return this;
             }
+            public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.Builder getLogDataBuilder() {
+              bitField0_ |= 0x00000004;
+              onChanged();
+              return getLogDataFieldBuilder().getBuilder();
+            }
+            public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogDataOrBuilder getLogDataOrBuilder() {
+              if (logDataBuilder_ != null) {
+                return logDataBuilder_.getMessageOrBuilder();
+              } else {
+                return logData_;
+              }
+            }
+            private com.google.protobuf.SingleFieldBuilder<
+                com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogDataOrBuilder> 
+                getLogDataFieldBuilder() {
+              if (logDataBuilder_ == null) {
+                logDataBuilder_ = new com.google.protobuf.SingleFieldBuilder<
+                    com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogDataOrBuilder>(
+                        logData_,
+                        getParentForChildren(),
+                        isClean());
+                logData_ = null;
+              }
+              return logDataBuilder_;
+            }
+            
+            // @@protoc_insertion_point(builder_scope:com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest.AddLogBranch)
           }
           
           static {
-            com.google.gwt.dev.shell.remoteui.RemoteMessageProto.getDescriptor();
+            defaultInstance = new AddLogBranch(true);
+            defaultInstance.initFields();
           }
           
-          static {
-            com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internalForceInit();
-          }
+          // @@protoc_insertion_point(class_scope:com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest.AddLogBranch)
         }
         
+        public interface AddLogEntryOrBuilder
+            extends com.google.protobuf.MessageOrBuilder {
+          
+          // required uint32 logHandle = 1;
+          boolean hasLogHandle();
+          int getLogHandle();
+          
+          // required uint32 indexInLog = 2;
+          boolean hasIndexInLog();
+          int getIndexInLog();
+          
+          // required .com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest.LogData logData = 3;
+          boolean hasLogData();
+          com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData getLogData();
+          com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogDataOrBuilder getLogDataOrBuilder();
+        }
         public static final class AddLogEntry extends
-            com.google.gwt.dev.protobuf.GeneratedMessage {
+            com.google.protobuf.GeneratedMessage
+            implements AddLogEntryOrBuilder {
           // Use AddLogEntry.newBuilder() to construct.
-          private AddLogEntry() {}
+          private AddLogEntry(Builder builder) {
+            super(builder);
+          }
+          private AddLogEntry(boolean noInit) {}
           
-          private static final AddLogEntry defaultInstance = new AddLogEntry();
+          private static final AddLogEntry defaultInstance;
           public static AddLogEntry getDefaultInstance() {
             return defaultInstance;
           }
@@ -3270,55 +5022,91 @@ public final class RemoteMessageProto {
             return defaultInstance;
           }
           
-          public static final com.google.gwt.dev.protobuf.Descriptors.Descriptor
+          public static final com.google.protobuf.Descriptors.Descriptor
               getDescriptor() {
             return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_AddLogEntry_descriptor;
           }
           
-          protected com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable
+          protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
               internalGetFieldAccessorTable() {
             return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_AddLogEntry_fieldAccessorTable;
           }
           
+          private int bitField0_;
           // required uint32 logHandle = 1;
           public static final int LOGHANDLE_FIELD_NUMBER = 1;
-          private boolean hasLogHandle;
-          private int logHandle_ = 0;
-          public boolean hasLogHandle() { return hasLogHandle; }
-          public int getLogHandle() { return logHandle_; }
+          private int logHandle_;
+          public boolean hasLogHandle() {
+            return ((bitField0_ & 0x00000001) == 0x00000001);
+          }
+          public int getLogHandle() {
+            return logHandle_;
+          }
           
           // required uint32 indexInLog = 2;
           public static final int INDEXINLOG_FIELD_NUMBER = 2;
-          private boolean hasIndexInLog;
-          private int indexInLog_ = 0;
-          public boolean hasIndexInLog() { return hasIndexInLog; }
-          public int getIndexInLog() { return indexInLog_; }
+          private int indexInLog_;
+          public boolean hasIndexInLog() {
+            return ((bitField0_ & 0x00000002) == 0x00000002);
+          }
+          public int getIndexInLog() {
+            return indexInLog_;
+          }
           
           // required .com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest.LogData logData = 3;
           public static final int LOGDATA_FIELD_NUMBER = 3;
-          private boolean hasLogData;
-          private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData logData_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.getDefaultInstance();
-          public boolean hasLogData() { return hasLogData; }
-          public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData getLogData() { return logData_; }
+          private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData logData_;
+          public boolean hasLogData() {
+            return ((bitField0_ & 0x00000004) == 0x00000004);
+          }
+          public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData getLogData() {
+            return logData_;
+          }
+          public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogDataOrBuilder getLogDataOrBuilder() {
+            return logData_;
+          }
           
+          private void initFields() {
+            logHandle_ = 0;
+            indexInLog_ = 0;
+            logData_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.getDefaultInstance();
+          }
+          private byte memoizedIsInitialized = -1;
           public final boolean isInitialized() {
-            if (!hasLogHandle) return false;
-            if (!hasIndexInLog) return false;
-            if (!hasLogData) return false;
-            if (!getLogData().isInitialized()) return false;
+            byte isInitialized = memoizedIsInitialized;
+            if (isInitialized != -1) return isInitialized == 1;
+            
+            if (!hasLogHandle()) {
+              memoizedIsInitialized = 0;
+              return false;
+            }
+            if (!hasIndexInLog()) {
+              memoizedIsInitialized = 0;
+              return false;
+            }
+            if (!hasLogData()) {
+              memoizedIsInitialized = 0;
+              return false;
+            }
+            if (!getLogData().isInitialized()) {
+              memoizedIsInitialized = 0;
+              return false;
+            }
+            memoizedIsInitialized = 1;
             return true;
           }
           
-          public void writeTo(com.google.gwt.dev.protobuf.CodedOutputStream output)
+          public void writeTo(com.google.protobuf.CodedOutputStream output)
                               throws java.io.IOException {
-            if (hasLogHandle()) {
-              output.writeUInt32(1, getLogHandle());
+            getSerializedSize();
+            if (((bitField0_ & 0x00000001) == 0x00000001)) {
+              output.writeUInt32(1, logHandle_);
             }
-            if (hasIndexInLog()) {
-              output.writeUInt32(2, getIndexInLog());
+            if (((bitField0_ & 0x00000002) == 0x00000002)) {
+              output.writeUInt32(2, indexInLog_);
             }
-            if (hasLogData()) {
-              output.writeMessage(3, getLogData());
+            if (((bitField0_ & 0x00000004) == 0x00000004)) {
+              output.writeMessage(3, logData_);
             }
             getUnknownFields().writeTo(output);
           }
@@ -3329,43 +5117,50 @@ public final class RemoteMessageProto {
             if (size != -1) return size;
           
             size = 0;
-            if (hasLogHandle()) {
-              size += com.google.gwt.dev.protobuf.CodedOutputStream
-                .computeUInt32Size(1, getLogHandle());
-            }
-            if (hasIndexInLog()) {
-              size += com.google.gwt.dev.protobuf.CodedOutputStream
-                .computeUInt32Size(2, getIndexInLog());
-            }
-            if (hasLogData()) {
-              size += com.google.gwt.dev.protobuf.CodedOutputStream
-                .computeMessageSize(3, getLogData());
+            if (((bitField0_ & 0x00000001) == 0x00000001)) {
+              size += com.google.protobuf.CodedOutputStream
+                .computeUInt32Size(1, logHandle_);
+            }
+            if (((bitField0_ & 0x00000002) == 0x00000002)) {
+              size += com.google.protobuf.CodedOutputStream
+                .computeUInt32Size(2, indexInLog_);
+            }
+            if (((bitField0_ & 0x00000004) == 0x00000004)) {
+              size += com.google.protobuf.CodedOutputStream
+                .computeMessageSize(3, logData_);
             }
             size += getUnknownFields().getSerializedSize();
             memoizedSerializedSize = size;
             return size;
           }
           
+          private static final long serialVersionUID = 0L;
+          @java.lang.Override
+          protected java.lang.Object writeReplace()
+              throws java.io.ObjectStreamException {
+            return super.writeReplace();
+          }
+          
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogEntry parseFrom(
-              com.google.gwt.dev.protobuf.ByteString data)
-              throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+              com.google.protobuf.ByteString data)
+              throws com.google.protobuf.InvalidProtocolBufferException {
             return newBuilder().mergeFrom(data).buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogEntry parseFrom(
-              com.google.gwt.dev.protobuf.ByteString data,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
-              throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+              com.google.protobuf.ByteString data,
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+              throws com.google.protobuf.InvalidProtocolBufferException {
             return newBuilder().mergeFrom(data, extensionRegistry)
                      .buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogEntry parseFrom(byte[] data)
-              throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+              throws com.google.protobuf.InvalidProtocolBufferException {
             return newBuilder().mergeFrom(data).buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogEntry parseFrom(
               byte[] data,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
-              throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+              throws com.google.protobuf.InvalidProtocolBufferException {
             return newBuilder().mergeFrom(data, extensionRegistry)
                      .buildParsed();
           }
@@ -3375,30 +5170,39 @@ public final class RemoteMessageProto {
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogEntry parseFrom(
               java.io.InputStream input,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
               throws java.io.IOException {
             return newBuilder().mergeFrom(input, extensionRegistry)
                      .buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogEntry parseDelimitedFrom(java.io.InputStream input)
               throws java.io.IOException {
-            return newBuilder().mergeDelimitedFrom(input).buildParsed();
+            Builder builder = newBuilder();
+            if (builder.mergeDelimitedFrom(input)) {
+              return builder.buildParsed();
+            } else {
+              return null;
+            }
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogEntry parseDelimitedFrom(
               java.io.InputStream input,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
               throws java.io.IOException {
-            return newBuilder().mergeDelimitedFrom(input, extensionRegistry)
-                     .buildParsed();
+            Builder builder = newBuilder();
+            if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
+              return builder.buildParsed();
+            } else {
+              return null;
+            }
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogEntry parseFrom(
-              com.google.gwt.dev.protobuf.CodedInputStream input)
+              com.google.protobuf.CodedInputStream input)
               throws java.io.IOException {
             return newBuilder().mergeFrom(input).buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogEntry parseFrom(
-              com.google.gwt.dev.protobuf.CodedInputStream input,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+              com.google.protobuf.CodedInputStream input,
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
               throws java.io.IOException {
             return newBuilder().mergeFrom(input, extensionRegistry)
                      .buildParsed();
@@ -3411,37 +5215,63 @@ public final class RemoteMessageProto {
           }
           public Builder toBuilder() { return newBuilder(this); }
           
+          @java.lang.Override
+          protected Builder newBuilderForType(
+              com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+            Builder builder = new Builder(parent);
+            return builder;
+          }
           public static final class Builder extends
-              com.google.gwt.dev.protobuf.GeneratedMessage.Builder<Builder> {
-            private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogEntry result;
+              com.google.protobuf.GeneratedMessage.Builder<Builder>
+             implements com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogEntryOrBuilder {
+            public static final com.google.protobuf.Descriptors.Descriptor
+                getDescriptor() {
+              return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_AddLogEntry_descriptor;
+            }
             
-            // Construct using com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogEntry.newBuilder()
-            private Builder() {}
+            protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+                internalGetFieldAccessorTable() {
+              return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_AddLogEntry_fieldAccessorTable;
+            }
             
-            private static Builder create() {
-              Builder builder = new Builder();
-              builder.result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogEntry();
-              return builder;
+            // Construct using com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogEntry.newBuilder()
+            private Builder() {
+              maybeForceBuilderInitialization();
             }
             
-            protected com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogEntry internalGetResult() {
-              return result;
+            private Builder(BuilderParent parent) {
+              super(parent);
+              maybeForceBuilderInitialization();
+            }
+            private void maybeForceBuilderInitialization() {
+              if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+                getLogDataFieldBuilder();
+              }
+            }
+            private static Builder create() {
+              return new Builder();
             }
             
             public Builder clear() {
-              if (result == null) {
-                throw new IllegalStateException(
-                  "Cannot call clear() after build().");
+              super.clear();
+              logHandle_ = 0;
+              bitField0_ = (bitField0_ & ~0x00000001);
+              indexInLog_ = 0;
+              bitField0_ = (bitField0_ & ~0x00000002);
+              if (logDataBuilder_ == null) {
+                logData_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.getDefaultInstance();
+              } else {
+                logDataBuilder_.clear();
               }
-              result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogEntry();
+              bitField0_ = (bitField0_ & ~0x00000004);
               return this;
             }
             
             public Builder clone() {
-              return create().mergeFrom(result);
+              return create().mergeFrom(buildPartial());
             }
             
-            public com.google.gwt.dev.protobuf.Descriptors.Descriptor
+            public com.google.protobuf.Descriptors.Descriptor
                 getDescriptorForType() {
               return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogEntry.getDescriptor();
             }
@@ -3450,36 +5280,50 @@ public final class RemoteMessageProto {
               return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogEntry.getDefaultInstance();
             }
             
-            public boolean isInitialized() {
-              return result.isInitialized();
-            }
             public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogEntry build() {
-              if (result != null && !isInitialized()) {
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogEntry result = buildPartial();
+              if (!result.isInitialized()) {
                 throw newUninitializedMessageException(result);
               }
-              return buildPartial();
+              return result;
             }
             
             private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogEntry buildParsed()
-                throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
-              if (!isInitialized()) {
+                throws com.google.protobuf.InvalidProtocolBufferException {
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogEntry result = buildPartial();
+              if (!result.isInitialized()) {
                 throw newUninitializedMessageException(
                   result).asInvalidProtocolBufferException();
               }
-              return buildPartial();
+              return result;
             }
             
             public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogEntry buildPartial() {
-              if (result == null) {
-                throw new IllegalStateException(
-                  "build() has already been called on this Builder.");
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogEntry result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogEntry(this);
+              int from_bitField0_ = bitField0_;
+              int to_bitField0_ = 0;
+              if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+                to_bitField0_ |= 0x00000001;
+              }
+              result.logHandle_ = logHandle_;
+              if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
+                to_bitField0_ |= 0x00000002;
+              }
+              result.indexInLog_ = indexInLog_;
+              if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
+                to_bitField0_ |= 0x00000004;
               }
-              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogEntry returnMe = result;
-              result = null;
-              return returnMe;
+              if (logDataBuilder_ == null) {
+                result.logData_ = logData_;
+              } else {
+                result.logData_ = logDataBuilder_.build();
+              }
+              result.bitField0_ = to_bitField0_;
+              onBuilt();
+              return result;
             }
             
-            public Builder mergeFrom(com.google.gwt.dev.protobuf.Message other) {
+            public Builder mergeFrom(com.google.protobuf.Message other) {
               if (other instanceof com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogEntry) {
                 return mergeFrom((com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogEntry)other);
               } else {
@@ -3503,33 +5347,57 @@ public final class RemoteMessageProto {
               return this;
             }
             
+            public final boolean isInitialized() {
+              if (!hasLogHandle()) {
+                
+                return false;
+              }
+              if (!hasIndexInLog()) {
+                
+                return false;
+              }
+              if (!hasLogData()) {
+                
+                return false;
+              }
+              if (!getLogData().isInitialized()) {
+                
+                return false;
+              }
+              return true;
+            }
+            
             public Builder mergeFrom(
-                com.google.gwt.dev.protobuf.CodedInputStream input,
-                com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+                com.google.protobuf.CodedInputStream input,
+                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                 throws java.io.IOException {
-              com.google.gwt.dev.protobuf.UnknownFieldSet.Builder unknownFields =
-                com.google.gwt.dev.protobuf.UnknownFieldSet.newBuilder(
+              com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+                com.google.protobuf.UnknownFieldSet.newBuilder(
                   this.getUnknownFields());
               while (true) {
                 int tag = input.readTag();
                 switch (tag) {
                   case 0:
                     this.setUnknownFields(unknownFields.build());
+                    onChanged();
                     return this;
                   default: {
                     if (!parseUnknownField(input, unknownFields,
                                            extensionRegistry, tag)) {
                       this.setUnknownFields(unknownFields.build());
+                      onChanged();
                       return this;
                     }
                     break;
                   }
                   case 8: {
-                    setLogHandle(input.readUInt32());
+                    bitField0_ |= 0x00000001;
+                    logHandle_ = input.readUInt32();
                     break;
                   }
                   case 16: {
-                    setIndexInLog(input.readUInt32());
+                    bitField0_ |= 0x00000002;
+                    indexInLog_ = input.readUInt32();
                     break;
                   }
                   case 26: {
@@ -3545,96 +5413,168 @@ public final class RemoteMessageProto {
               }
             }
             
+            private int bitField0_;
             
             // required uint32 logHandle = 1;
+            private int logHandle_ ;
             public boolean hasLogHandle() {
-              return result.hasLogHandle();
+              return ((bitField0_ & 0x00000001) == 0x00000001);
             }
             public int getLogHandle() {
-              return result.getLogHandle();
+              return logHandle_;
             }
             public Builder setLogHandle(int value) {
-              result.hasLogHandle = true;
-              result.logHandle_ = value;
+              bitField0_ |= 0x00000001;
+              logHandle_ = value;
+              onChanged();
               return this;
             }
             public Builder clearLogHandle() {
-              result.hasLogHandle = false;
-              result.logHandle_ = 0;
+              bitField0_ = (bitField0_ & ~0x00000001);
+              logHandle_ = 0;
+              onChanged();
               return this;
             }
             
             // required uint32 indexInLog = 2;
+            private int indexInLog_ ;
             public boolean hasIndexInLog() {
-              return result.hasIndexInLog();
+              return ((bitField0_ & 0x00000002) == 0x00000002);
             }
             public int getIndexInLog() {
-              return result.getIndexInLog();
+              return indexInLog_;
             }
             public Builder setIndexInLog(int value) {
-              result.hasIndexInLog = true;
-              result.indexInLog_ = value;
+              bitField0_ |= 0x00000002;
+              indexInLog_ = value;
+              onChanged();
               return this;
             }
             public Builder clearIndexInLog() {
-              result.hasIndexInLog = false;
-              result.indexInLog_ = 0;
+              bitField0_ = (bitField0_ & ~0x00000002);
+              indexInLog_ = 0;
+              onChanged();
               return this;
             }
             
             // required .com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest.LogData logData = 3;
+            private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData logData_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.getDefaultInstance();
+            private com.google.protobuf.SingleFieldBuilder<
+                com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogDataOrBuilder> logDataBuilder_;
             public boolean hasLogData() {
-              return result.hasLogData();
+              return ((bitField0_ & 0x00000004) == 0x00000004);
             }
             public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData getLogData() {
-              return result.getLogData();
+              if (logDataBuilder_ == null) {
+                return logData_;
+              } else {
+                return logDataBuilder_.getMessage();
+              }
             }
             public Builder setLogData(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData value) {
-              if (value == null) {
-                throw new NullPointerException();
+              if (logDataBuilder_ == null) {
+                if (value == null) {
+                  throw new NullPointerException();
+                }
+                logData_ = value;
+                onChanged();
+              } else {
+                logDataBuilder_.setMessage(value);
               }
-              result.hasLogData = true;
-              result.logData_ = value;
+              bitField0_ |= 0x00000004;
               return this;
             }
-            public Builder setLogData(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.Builder builderForValue) {
-              result.hasLogData = true;
-              result.logData_ = builderForValue.build();
+            public Builder setLogData(
+                com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.Builder builderForValue) {
+              if (logDataBuilder_ == null) {
+                logData_ = builderForValue.build();
+                onChanged();
+              } else {
+                logDataBuilder_.setMessage(builderForValue.build());
+              }
+              bitField0_ |= 0x00000004;
               return this;
             }
             public Builder mergeLogData(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData value) {
-              if (result.hasLogData() &&
-                  result.logData_ != com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.getDefaultInstance()) {
-                result.logData_ =
-                  com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.newBuilder(result.logData_).mergeFrom(value).buildPartial();
+              if (logDataBuilder_ == null) {
+                if (((bitField0_ & 0x00000004) == 0x00000004) &&
+                    logData_ != com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.getDefaultInstance()) {
+                  logData_ =
+                    com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.newBuilder(logData_).mergeFrom(value).buildPartial();
+                } else {
+                  logData_ = value;
+                }
+                onChanged();
               } else {
-                result.logData_ = value;
+                logDataBuilder_.mergeFrom(value);
               }
-              result.hasLogData = true;
+              bitField0_ |= 0x00000004;
               return this;
             }
             public Builder clearLogData() {
-              result.hasLogData = false;
-              result.logData_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.getDefaultInstance();
+              if (logDataBuilder_ == null) {
+                logData_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.getDefaultInstance();
+                onChanged();
+              } else {
+                logDataBuilder_.clear();
+              }
+              bitField0_ = (bitField0_ & ~0x00000004);
               return this;
             }
+            public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.Builder getLogDataBuilder() {
+              bitField0_ |= 0x00000004;
+              onChanged();
+              return getLogDataFieldBuilder().getBuilder();
+            }
+            public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogDataOrBuilder getLogDataOrBuilder() {
+              if (logDataBuilder_ != null) {
+                return logDataBuilder_.getMessageOrBuilder();
+              } else {
+                return logData_;
+              }
+            }
+            private com.google.protobuf.SingleFieldBuilder<
+                com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogDataOrBuilder> 
+                getLogDataFieldBuilder() {
+              if (logDataBuilder_ == null) {
+                logDataBuilder_ = new com.google.protobuf.SingleFieldBuilder<
+                    com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogDataOrBuilder>(
+                        logData_,
+                        getParentForChildren(),
+                        isClean());
+                logData_ = null;
+              }
+              return logDataBuilder_;
+            }
+            
+            // @@protoc_insertion_point(builder_scope:com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest.AddLogEntry)
           }
           
           static {
-            com.google.gwt.dev.shell.remoteui.RemoteMessageProto.getDescriptor();
+            defaultInstance = new AddLogEntry(true);
+            defaultInstance.initFields();
           }
           
-          static {
-            com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internalForceInit();
-          }
+          // @@protoc_insertion_point(class_scope:com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest.AddLogEntry)
         }
         
+        public interface DisconnectLogOrBuilder
+            extends com.google.protobuf.MessageOrBuilder {
+          
+          // required uint32 logHandle = 1;
+          boolean hasLogHandle();
+          int getLogHandle();
+        }
         public static final class DisconnectLog extends
-            com.google.gwt.dev.protobuf.GeneratedMessage {
+            com.google.protobuf.GeneratedMessage
+            implements DisconnectLogOrBuilder {
           // Use DisconnectLog.newBuilder() to construct.
-          private DisconnectLog() {}
+          private DisconnectLog(Builder builder) {
+            super(builder);
+          }
+          private DisconnectLog(boolean noInit) {}
           
-          private static final DisconnectLog defaultInstance = new DisconnectLog();
+          private static final DisconnectLog defaultInstance;
           public static DisconnectLog getDefaultInstance() {
             return defaultInstance;
           }
@@ -3643,32 +5583,48 @@ public final class RemoteMessageProto {
             return defaultInstance;
           }
           
-          public static final com.google.gwt.dev.protobuf.Descriptors.Descriptor
+          public static final com.google.protobuf.Descriptors.Descriptor
               getDescriptor() {
             return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_DisconnectLog_descriptor;
           }
           
-          protected com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable
+          protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
               internalGetFieldAccessorTable() {
             return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_DisconnectLog_fieldAccessorTable;
           }
           
+          private int bitField0_;
           // required uint32 logHandle = 1;
           public static final int LOGHANDLE_FIELD_NUMBER = 1;
-          private boolean hasLogHandle;
-          private int logHandle_ = 0;
-          public boolean hasLogHandle() { return hasLogHandle; }
-          public int getLogHandle() { return logHandle_; }
+          private int logHandle_;
+          public boolean hasLogHandle() {
+            return ((bitField0_ & 0x00000001) == 0x00000001);
+          }
+          public int getLogHandle() {
+            return logHandle_;
+          }
           
+          private void initFields() {
+            logHandle_ = 0;
+          }
+          private byte memoizedIsInitialized = -1;
           public final boolean isInitialized() {
-            if (!hasLogHandle) return false;
+            byte isInitialized = memoizedIsInitialized;
+            if (isInitialized != -1) return isInitialized == 1;
+            
+            if (!hasLogHandle()) {
+              memoizedIsInitialized = 0;
+              return false;
+            }
+            memoizedIsInitialized = 1;
             return true;
           }
           
-          public void writeTo(com.google.gwt.dev.protobuf.CodedOutputStream output)
+          public void writeTo(com.google.protobuf.CodedOutputStream output)
                               throws java.io.IOException {
-            if (hasLogHandle()) {
-              output.writeUInt32(1, getLogHandle());
+            getSerializedSize();
+            if (((bitField0_ & 0x00000001) == 0x00000001)) {
+              output.writeUInt32(1, logHandle_);
             }
             getUnknownFields().writeTo(output);
           }
@@ -3679,35 +5635,42 @@ public final class RemoteMessageProto {
             if (size != -1) return size;
           
             size = 0;
-            if (hasLogHandle()) {
-              size += com.google.gwt.dev.protobuf.CodedOutputStream
-                .computeUInt32Size(1, getLogHandle());
+            if (((bitField0_ & 0x00000001) == 0x00000001)) {
+              size += com.google.protobuf.CodedOutputStream
+                .computeUInt32Size(1, logHandle_);
             }
             size += getUnknownFields().getSerializedSize();
             memoizedSerializedSize = size;
             return size;
           }
           
+          private static final long serialVersionUID = 0L;
+          @java.lang.Override
+          protected java.lang.Object writeReplace()
+              throws java.io.ObjectStreamException {
+            return super.writeReplace();
+          }
+          
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.DisconnectLog parseFrom(
-              com.google.gwt.dev.protobuf.ByteString data)
-              throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+              com.google.protobuf.ByteString data)
+              throws com.google.protobuf.InvalidProtocolBufferException {
             return newBuilder().mergeFrom(data).buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.DisconnectLog parseFrom(
-              com.google.gwt.dev.protobuf.ByteString data,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
-              throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+              com.google.protobuf.ByteString data,
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+              throws com.google.protobuf.InvalidProtocolBufferException {
             return newBuilder().mergeFrom(data, extensionRegistry)
                      .buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.DisconnectLog parseFrom(byte[] data)
-              throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+              throws com.google.protobuf.InvalidProtocolBufferException {
             return newBuilder().mergeFrom(data).buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.DisconnectLog parseFrom(
               byte[] data,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
-              throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+              throws com.google.protobuf.InvalidProtocolBufferException {
             return newBuilder().mergeFrom(data, extensionRegistry)
                      .buildParsed();
           }
@@ -3717,30 +5680,39 @@ public final class RemoteMessageProto {
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.DisconnectLog parseFrom(
               java.io.InputStream input,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
               throws java.io.IOException {
             return newBuilder().mergeFrom(input, extensionRegistry)
                      .buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.DisconnectLog parseDelimitedFrom(java.io.InputStream input)
               throws java.io.IOException {
-            return newBuilder().mergeDelimitedFrom(input).buildParsed();
+            Builder builder = newBuilder();
+            if (builder.mergeDelimitedFrom(input)) {
+              return builder.buildParsed();
+            } else {
+              return null;
+            }
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.DisconnectLog parseDelimitedFrom(
               java.io.InputStream input,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
               throws java.io.IOException {
-            return newBuilder().mergeDelimitedFrom(input, extensionRegistry)
-                     .buildParsed();
+            Builder builder = newBuilder();
+            if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
+              return builder.buildParsed();
+            } else {
+              return null;
+            }
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.DisconnectLog parseFrom(
-              com.google.gwt.dev.protobuf.CodedInputStream input)
+              com.google.protobuf.CodedInputStream input)
               throws java.io.IOException {
             return newBuilder().mergeFrom(input).buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.DisconnectLog parseFrom(
-              com.google.gwt.dev.protobuf.CodedInputStream input,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+              com.google.protobuf.CodedInputStream input,
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
               throws java.io.IOException {
             return newBuilder().mergeFrom(input, extensionRegistry)
                      .buildParsed();
@@ -3753,37 +5725,54 @@ public final class RemoteMessageProto {
           }
           public Builder toBuilder() { return newBuilder(this); }
           
+          @java.lang.Override
+          protected Builder newBuilderForType(
+              com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+            Builder builder = new Builder(parent);
+            return builder;
+          }
           public static final class Builder extends
-              com.google.gwt.dev.protobuf.GeneratedMessage.Builder<Builder> {
-            private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.DisconnectLog result;
+              com.google.protobuf.GeneratedMessage.Builder<Builder>
+             implements com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.DisconnectLogOrBuilder {
+            public static final com.google.protobuf.Descriptors.Descriptor
+                getDescriptor() {
+              return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_DisconnectLog_descriptor;
+            }
             
-            // Construct using com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.DisconnectLog.newBuilder()
-            private Builder() {}
+            protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+                internalGetFieldAccessorTable() {
+              return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_DisconnectLog_fieldAccessorTable;
+            }
             
-            private static Builder create() {
-              Builder builder = new Builder();
-              builder.result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.DisconnectLog();
-              return builder;
+            // Construct using com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.DisconnectLog.newBuilder()
+            private Builder() {
+              maybeForceBuilderInitialization();
             }
             
-            protected com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.DisconnectLog internalGetResult() {
-              return result;
+            private Builder(BuilderParent parent) {
+              super(parent);
+              maybeForceBuilderInitialization();
+            }
+            private void maybeForceBuilderInitialization() {
+              if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+              }
+            }
+            private static Builder create() {
+              return new Builder();
             }
             
             public Builder clear() {
-              if (result == null) {
-                throw new IllegalStateException(
-                  "Cannot call clear() after build().");
-              }
-              result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.DisconnectLog();
+              super.clear();
+              logHandle_ = 0;
+              bitField0_ = (bitField0_ & ~0x00000001);
               return this;
             }
             
             public Builder clone() {
-              return create().mergeFrom(result);
+              return create().mergeFrom(buildPartial());
             }
             
-            public com.google.gwt.dev.protobuf.Descriptors.Descriptor
+            public com.google.protobuf.Descriptors.Descriptor
                 getDescriptorForType() {
               return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.DisconnectLog.getDescriptor();
             }
@@ -3792,36 +5781,38 @@ public final class RemoteMessageProto {
               return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.DisconnectLog.getDefaultInstance();
             }
             
-            public boolean isInitialized() {
-              return result.isInitialized();
-            }
             public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.DisconnectLog build() {
-              if (result != null && !isInitialized()) {
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.DisconnectLog result = buildPartial();
+              if (!result.isInitialized()) {
                 throw newUninitializedMessageException(result);
               }
-              return buildPartial();
+              return result;
             }
             
             private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.DisconnectLog buildParsed()
-                throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
-              if (!isInitialized()) {
+                throws com.google.protobuf.InvalidProtocolBufferException {
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.DisconnectLog result = buildPartial();
+              if (!result.isInitialized()) {
                 throw newUninitializedMessageException(
                   result).asInvalidProtocolBufferException();
               }
-              return buildPartial();
+              return result;
             }
             
             public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.DisconnectLog buildPartial() {
-              if (result == null) {
-                throw new IllegalStateException(
-                  "build() has already been called on this Builder.");
-              }
-              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.DisconnectLog returnMe = result;
-              result = null;
-              return returnMe;
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.DisconnectLog result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.DisconnectLog(this);
+              int from_bitField0_ = bitField0_;
+              int to_bitField0_ = 0;
+              if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+                to_bitField0_ |= 0x00000001;
+              }
+              result.logHandle_ = logHandle_;
+              result.bitField0_ = to_bitField0_;
+              onBuilt();
+              return result;
             }
             
-            public Builder mergeFrom(com.google.gwt.dev.protobuf.Message other) {
+            public Builder mergeFrom(com.google.protobuf.Message other) {
               if (other instanceof com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.DisconnectLog) {
                 return mergeFrom((com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.DisconnectLog)other);
               } else {
@@ -3839,70 +5830,102 @@ public final class RemoteMessageProto {
               return this;
             }
             
+            public final boolean isInitialized() {
+              if (!hasLogHandle()) {
+                
+                return false;
+              }
+              return true;
+            }
+            
             public Builder mergeFrom(
-                com.google.gwt.dev.protobuf.CodedInputStream input,
-                com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+                com.google.protobuf.CodedInputStream input,
+                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                 throws java.io.IOException {
-              com.google.gwt.dev.protobuf.UnknownFieldSet.Builder unknownFields =
-                com.google.gwt.dev.protobuf.UnknownFieldSet.newBuilder(
+              com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+                com.google.protobuf.UnknownFieldSet.newBuilder(
                   this.getUnknownFields());
               while (true) {
                 int tag = input.readTag();
                 switch (tag) {
                   case 0:
                     this.setUnknownFields(unknownFields.build());
+                    onChanged();
                     return this;
                   default: {
                     if (!parseUnknownField(input, unknownFields,
                                            extensionRegistry, tag)) {
                       this.setUnknownFields(unknownFields.build());
+                      onChanged();
                       return this;
                     }
                     break;
                   }
                   case 8: {
-                    setLogHandle(input.readUInt32());
+                    bitField0_ |= 0x00000001;
+                    logHandle_ = input.readUInt32();
                     break;
                   }
                 }
               }
             }
             
+            private int bitField0_;
             
             // required uint32 logHandle = 1;
+            private int logHandle_ ;
             public boolean hasLogHandle() {
-              return result.hasLogHandle();
+              return ((bitField0_ & 0x00000001) == 0x00000001);
             }
             public int getLogHandle() {
-              return result.getLogHandle();
+              return logHandle_;
             }
             public Builder setLogHandle(int value) {
-              result.hasLogHandle = true;
-              result.logHandle_ = value;
+              bitField0_ |= 0x00000001;
+              logHandle_ = value;
+              onChanged();
               return this;
             }
             public Builder clearLogHandle() {
-              result.hasLogHandle = false;
-              result.logHandle_ = 0;
+              bitField0_ = (bitField0_ & ~0x00000001);
+              logHandle_ = 0;
+              onChanged();
               return this;
             }
+            
+            // @@protoc_insertion_point(builder_scope:com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest.DisconnectLog)
           }
           
           static {
-            com.google.gwt.dev.shell.remoteui.RemoteMessageProto.getDescriptor();
+            defaultInstance = new DisconnectLog(true);
+            defaultInstance.initFields();
           }
           
-          static {
-            com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internalForceInit();
-          }
+          // @@protoc_insertion_point(class_scope:com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest.DisconnectLog)
         }
         
+        public interface InitializeOrBuilder
+            extends com.google.protobuf.MessageOrBuilder {
+          
+          // optional string clientId = 1;
+          boolean hasClientId();
+          String getClientId();
+          
+          // repeated string startupURLs = 2;
+          java.util.List<String> getStartupURLsList();
+          int getStartupURLsCount();
+          String getStartupURLs(int index);
+        }
         public static final class Initialize extends
-            com.google.gwt.dev.protobuf.GeneratedMessage {
+            com.google.protobuf.GeneratedMessage
+            implements InitializeOrBuilder {
           // Use Initialize.newBuilder() to construct.
-          private Initialize() {}
+          private Initialize(Builder builder) {
+            super(builder);
+          }
+          private Initialize(boolean noInit) {}
           
-          private static final Initialize defaultInstance = new Initialize();
+          private static final Initialize defaultInstance;
           public static Initialize getDefaultInstance() {
             return defaultInstance;
           }
@@ -3911,46 +5934,84 @@ public final class RemoteMessageProto {
             return defaultInstance;
           }
           
-          public static final com.google.gwt.dev.protobuf.Descriptors.Descriptor
+          public static final com.google.protobuf.Descriptors.Descriptor
               getDescriptor() {
             return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_Initialize_descriptor;
           }
           
-          protected com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable
+          protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
               internalGetFieldAccessorTable() {
             return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_Initialize_fieldAccessorTable;
           }
           
+          private int bitField0_;
           // optional string clientId = 1;
           public static final int CLIENTID_FIELD_NUMBER = 1;
-          private boolean hasClientId;
-          private java.lang.String clientId_ = "";
-          public boolean hasClientId() { return hasClientId; }
-          public java.lang.String getClientId() { return clientId_; }
+          private java.lang.Object clientId_;
+          public boolean hasClientId() {
+            return ((bitField0_ & 0x00000001) == 0x00000001);
+          }
+          public String getClientId() {
+            java.lang.Object ref = clientId_;
+            if (ref instanceof String) {
+              return (String) ref;
+            } else {
+              com.google.protobuf.ByteString bs = 
+                  (com.google.protobuf.ByteString) ref;
+              String s = bs.toStringUtf8();
+              if (com.google.protobuf.Internal.isValidUtf8(bs)) {
+                clientId_ = s;
+              }
+              return s;
+            }
+          }
+          private com.google.protobuf.ByteString getClientIdBytes() {
+            java.lang.Object ref = clientId_;
+            if (ref instanceof String) {
+              com.google.protobuf.ByteString b = 
+                  com.google.protobuf.ByteString.copyFromUtf8((String) ref);
+              clientId_ = b;
+              return b;
+            } else {
+              return (com.google.protobuf.ByteString) ref;
+            }
+          }
           
           // repeated string startupURLs = 2;
           public static final int STARTUPURLS_FIELD_NUMBER = 2;
-          private java.util.List<java.lang.String> startupURLs_ =
-            java.util.Collections.emptyList();
-          public java.util.List<java.lang.String> getStartupURLsList() {
+          private com.google.protobuf.LazyStringList startupURLs_;
+          public java.util.List<String>
+              getStartupURLsList() {
             return startupURLs_;
           }
-          public int getStartupURLsCount() { return startupURLs_.size(); }
-          public java.lang.String getStartupURLs(int index) {
+          public int getStartupURLsCount() {
+            return startupURLs_.size();
+          }
+          public String getStartupURLs(int index) {
             return startupURLs_.get(index);
           }
           
+          private void initFields() {
+            clientId_ = "";
+            startupURLs_ = com.google.protobuf.LazyStringArrayList.EMPTY;
+          }
+          private byte memoizedIsInitialized = -1;
           public final boolean isInitialized() {
+            byte isInitialized = memoizedIsInitialized;
+            if (isInitialized != -1) return isInitialized == 1;
+            
+            memoizedIsInitialized = 1;
             return true;
           }
           
-          public void writeTo(com.google.gwt.dev.protobuf.CodedOutputStream output)
+          public void writeTo(com.google.protobuf.CodedOutputStream output)
                               throws java.io.IOException {
-            if (hasClientId()) {
-              output.writeString(1, getClientId());
+            getSerializedSize();
+            if (((bitField0_ & 0x00000001) == 0x00000001)) {
+              output.writeBytes(1, getClientIdBytes());
             }
-            for (java.lang.String element : getStartupURLsList()) {
-              output.writeString(2, element);
+            for (int i = 0; i < startupURLs_.size(); i++) {
+              output.writeBytes(2, startupURLs_.getByteString(i));
             }
             getUnknownFields().writeTo(output);
           }
@@ -3961,15 +6022,15 @@ public final class RemoteMessageProto {
             if (size != -1) return size;
           
             size = 0;
-            if (hasClientId()) {
-              size += com.google.gwt.dev.protobuf.CodedOutputStream
-                .computeStringSize(1, getClientId());
+            if (((bitField0_ & 0x00000001) == 0x00000001)) {
+              size += com.google.protobuf.CodedOutputStream
+                .computeBytesSize(1, getClientIdBytes());
             }
             {
               int dataSize = 0;
-              for (java.lang.String element : getStartupURLsList()) {
-                dataSize += com.google.gwt.dev.protobuf.CodedOutputStream
-                  .computeStringSizeNoTag(element);
+              for (int i = 0; i < startupURLs_.size(); i++) {
+                dataSize += com.google.protobuf.CodedOutputStream
+                  .computeBytesSizeNoTag(startupURLs_.getByteString(i));
               }
               size += dataSize;
               size += 1 * getStartupURLsList().size();
@@ -3979,26 +6040,33 @@ public final class RemoteMessageProto {
             return size;
           }
           
+          private static final long serialVersionUID = 0L;
+          @java.lang.Override
+          protected java.lang.Object writeReplace()
+              throws java.io.ObjectStreamException {
+            return super.writeReplace();
+          }
+          
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.Initialize parseFrom(
-              com.google.gwt.dev.protobuf.ByteString data)
-              throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+              com.google.protobuf.ByteString data)
+              throws com.google.protobuf.InvalidProtocolBufferException {
             return newBuilder().mergeFrom(data).buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.Initialize parseFrom(
-              com.google.gwt.dev.protobuf.ByteString data,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
-              throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+              com.google.protobuf.ByteString data,
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+              throws com.google.protobuf.InvalidProtocolBufferException {
             return newBuilder().mergeFrom(data, extensionRegistry)
                      .buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.Initialize parseFrom(byte[] data)
-              throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+              throws com.google.protobuf.InvalidProtocolBufferException {
             return newBuilder().mergeFrom(data).buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.Initialize parseFrom(
               byte[] data,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
-              throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+              throws com.google.protobuf.InvalidProtocolBufferException {
             return newBuilder().mergeFrom(data, extensionRegistry)
                      .buildParsed();
           }
@@ -4008,30 +6076,39 @@ public final class RemoteMessageProto {
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.Initialize parseFrom(
               java.io.InputStream input,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
               throws java.io.IOException {
             return newBuilder().mergeFrom(input, extensionRegistry)
                      .buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.Initialize parseDelimitedFrom(java.io.InputStream input)
               throws java.io.IOException {
-            return newBuilder().mergeDelimitedFrom(input).buildParsed();
+            Builder builder = newBuilder();
+            if (builder.mergeDelimitedFrom(input)) {
+              return builder.buildParsed();
+            } else {
+              return null;
+            }
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.Initialize parseDelimitedFrom(
               java.io.InputStream input,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
               throws java.io.IOException {
-            return newBuilder().mergeDelimitedFrom(input, extensionRegistry)
-                     .buildParsed();
+            Builder builder = newBuilder();
+            if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
+              return builder.buildParsed();
+            } else {
+              return null;
+            }
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.Initialize parseFrom(
-              com.google.gwt.dev.protobuf.CodedInputStream input)
+              com.google.protobuf.CodedInputStream input)
               throws java.io.IOException {
             return newBuilder().mergeFrom(input).buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.Initialize parseFrom(
-              com.google.gwt.dev.protobuf.CodedInputStream input,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+              com.google.protobuf.CodedInputStream input,
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
               throws java.io.IOException {
             return newBuilder().mergeFrom(input, extensionRegistry)
                      .buildParsed();
@@ -4044,37 +6121,56 @@ public final class RemoteMessageProto {
           }
           public Builder toBuilder() { return newBuilder(this); }
           
+          @java.lang.Override
+          protected Builder newBuilderForType(
+              com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+            Builder builder = new Builder(parent);
+            return builder;
+          }
           public static final class Builder extends
-              com.google.gwt.dev.protobuf.GeneratedMessage.Builder<Builder> {
-            private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.Initialize result;
+              com.google.protobuf.GeneratedMessage.Builder<Builder>
+             implements com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.InitializeOrBuilder {
+            public static final com.google.protobuf.Descriptors.Descriptor
+                getDescriptor() {
+              return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_Initialize_descriptor;
+            }
             
-            // Construct using com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.Initialize.newBuilder()
-            private Builder() {}
+            protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+                internalGetFieldAccessorTable() {
+              return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_Initialize_fieldAccessorTable;
+            }
             
-            private static Builder create() {
-              Builder builder = new Builder();
-              builder.result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.Initialize();
-              return builder;
+            // Construct using com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.Initialize.newBuilder()
+            private Builder() {
+              maybeForceBuilderInitialization();
             }
             
-            protected com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.Initialize internalGetResult() {
-              return result;
+            private Builder(BuilderParent parent) {
+              super(parent);
+              maybeForceBuilderInitialization();
+            }
+            private void maybeForceBuilderInitialization() {
+              if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+              }
+            }
+            private static Builder create() {
+              return new Builder();
             }
             
             public Builder clear() {
-              if (result == null) {
-                throw new IllegalStateException(
-                  "Cannot call clear() after build().");
-              }
-              result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.Initialize();
+              super.clear();
+              clientId_ = "";
+              bitField0_ = (bitField0_ & ~0x00000001);
+              startupURLs_ = com.google.protobuf.LazyStringArrayList.EMPTY;
+              bitField0_ = (bitField0_ & ~0x00000002);
               return this;
             }
             
             public Builder clone() {
-              return create().mergeFrom(result);
+              return create().mergeFrom(buildPartial());
             }
             
-            public com.google.gwt.dev.protobuf.Descriptors.Descriptor
+            public com.google.protobuf.Descriptors.Descriptor
                 getDescriptorForType() {
               return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.Initialize.getDescriptor();
             }
@@ -4083,40 +6179,44 @@ public final class RemoteMessageProto {
               return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.Initialize.getDefaultInstance();
             }
             
-            public boolean isInitialized() {
-              return result.isInitialized();
-            }
             public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.Initialize build() {
-              if (result != null && !isInitialized()) {
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.Initialize result = buildPartial();
+              if (!result.isInitialized()) {
                 throw newUninitializedMessageException(result);
               }
-              return buildPartial();
+              return result;
             }
             
             private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.Initialize buildParsed()
-                throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
-              if (!isInitialized()) {
+                throws com.google.protobuf.InvalidProtocolBufferException {
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.Initialize result = buildPartial();
+              if (!result.isInitialized()) {
                 throw newUninitializedMessageException(
                   result).asInvalidProtocolBufferException();
               }
-              return buildPartial();
+              return result;
             }
             
             public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.Initialize buildPartial() {
-              if (result == null) {
-                throw new IllegalStateException(
-                  "build() has already been called on this Builder.");
-              }
-              if (result.startupURLs_ != java.util.Collections.EMPTY_LIST) {
-                result.startupURLs_ =
-                  java.util.Collections.unmodifiableList(result.startupURLs_);
-              }
-              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.Initialize returnMe = result;
-              result = null;
-              return returnMe;
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.Initialize result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.Initialize(this);
+              int from_bitField0_ = bitField0_;
+              int to_bitField0_ = 0;
+              if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+                to_bitField0_ |= 0x00000001;
+              }
+              result.clientId_ = clientId_;
+              if (((bitField0_ & 0x00000002) == 0x00000002)) {
+                startupURLs_ = new com.google.protobuf.UnmodifiableLazyStringList(
+                    startupURLs_);
+                bitField0_ = (bitField0_ & ~0x00000002);
+              }
+              result.startupURLs_ = startupURLs_;
+              result.bitField0_ = to_bitField0_;
+              onBuilt();
+              return result;
             }
             
-            public Builder mergeFrom(com.google.gwt.dev.protobuf.Message other) {
+            public Builder mergeFrom(com.google.protobuf.Message other) {
               if (other instanceof com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.Initialize) {
                 return mergeFrom((com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.Initialize)other);
               } else {
@@ -4131,207 +6231,319 @@ public final class RemoteMessageProto {
                 setClientId(other.getClientId());
               }
               if (!other.startupURLs_.isEmpty()) {
-                if (result.startupURLs_.isEmpty()) {
-                  result.startupURLs_ = new java.util.ArrayList<java.lang.String>();
+                if (startupURLs_.isEmpty()) {
+                  startupURLs_ = other.startupURLs_;
+                  bitField0_ = (bitField0_ & ~0x00000002);
+                } else {
+                  ensureStartupURLsIsMutable();
+                  startupURLs_.addAll(other.startupURLs_);
                 }
-                result.startupURLs_.addAll(other.startupURLs_);
+                onChanged();
               }
               this.mergeUnknownFields(other.getUnknownFields());
               return this;
             }
             
+            public final boolean isInitialized() {
+              return true;
+            }
+            
             public Builder mergeFrom(
-                com.google.gwt.dev.protobuf.CodedInputStream input,
-                com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+                com.google.protobuf.CodedInputStream input,
+                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                 throws java.io.IOException {
-              com.google.gwt.dev.protobuf.UnknownFieldSet.Builder unknownFields =
-                com.google.gwt.dev.protobuf.UnknownFieldSet.newBuilder(
+              com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+                com.google.protobuf.UnknownFieldSet.newBuilder(
                   this.getUnknownFields());
               while (true) {
                 int tag = input.readTag();
                 switch (tag) {
                   case 0:
                     this.setUnknownFields(unknownFields.build());
+                    onChanged();
                     return this;
                   default: {
                     if (!parseUnknownField(input, unknownFields,
                                            extensionRegistry, tag)) {
                       this.setUnknownFields(unknownFields.build());
+                      onChanged();
                       return this;
                     }
                     break;
                   }
                   case 10: {
-                    setClientId(input.readString());
+                    bitField0_ |= 0x00000001;
+                    clientId_ = input.readBytes();
                     break;
                   }
                   case 18: {
-                    addStartupURLs(input.readString());
+                    ensureStartupURLsIsMutable();
+                    startupURLs_.add(input.readBytes());
                     break;
                   }
                 }
               }
             }
             
+            private int bitField0_;
             
             // optional string clientId = 1;
+            private java.lang.Object clientId_ = "";
             public boolean hasClientId() {
-              return result.hasClientId();
+              return ((bitField0_ & 0x00000001) == 0x00000001);
             }
-            public java.lang.String getClientId() {
-              return result.getClientId();
+            public String getClientId() {
+              java.lang.Object ref = clientId_;
+              if (!(ref instanceof String)) {
+                String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
+                clientId_ = s;
+                return s;
+              } else {
+                return (String) ref;
+              }
             }
-            public Builder setClientId(java.lang.String value) {
+            public Builder setClientId(String value) {
               if (value == null) {
     throw new NullPointerException();
   }
-  result.hasClientId = true;
-              result.clientId_ = value;
+  bitField0_ |= 0x00000001;
+              clientId_ = value;
+              onChanged();
               return this;
             }
             public Builder clearClientId() {
-              result.hasClientId = false;
-              result.clientId_ = getDefaultInstance().getClientId();
+              bitField0_ = (bitField0_ & ~0x00000001);
+              clientId_ = getDefaultInstance().getClientId();
+              onChanged();
               return this;
             }
+            void setClientId(com.google.protobuf.ByteString value) {
+              bitField0_ |= 0x00000001;
+              clientId_ = value;
+              onChanged();
+            }
             
             // repeated string startupURLs = 2;
-            public java.util.List<java.lang.String> getStartupURLsList() {
-              return java.util.Collections.unmodifiableList(result.startupURLs_);
+            private com.google.protobuf.LazyStringList startupURLs_ = com.google.protobuf.LazyStringArrayList.EMPTY;
+            private void ensureStartupURLsIsMutable() {
+              if (!((bitField0_ & 0x00000002) == 0x00000002)) {
+                startupURLs_ = new com.google.protobuf.LazyStringArrayList(startupURLs_);
+                bitField0_ |= 0x00000002;
+               }
+            }
+            public java.util.List<String>
+                getStartupURLsList() {
+              return java.util.Collections.unmodifiableList(startupURLs_);
             }
             public int getStartupURLsCount() {
-              return result.getStartupURLsCount();
+              return startupURLs_.size();
             }
-            public java.lang.String getStartupURLs(int index) {
-              return result.getStartupURLs(index);
+            public String getStartupURLs(int index) {
+              return startupURLs_.get(index);
             }
-            public Builder setStartupURLs(int index, java.lang.String value) {
+            public Builder setStartupURLs(
+                int index, String value) {
               if (value == null) {
     throw new NullPointerException();
   }
-  result.startupURLs_.set(index, value);
+  ensureStartupURLsIsMutable();
+              startupURLs_.set(index, value);
+              onChanged();
               return this;
             }
-            public Builder addStartupURLs(java.lang.String value) {
+            public Builder addStartupURLs(String value) {
               if (value == null) {
     throw new NullPointerException();
   }
-  if (result.startupURLs_.isEmpty()) {
-                result.startupURLs_ = new java.util.ArrayList<java.lang.String>();
-              }
-              result.startupURLs_.add(value);
+  ensureStartupURLsIsMutable();
+              startupURLs_.add(value);
+              onChanged();
               return this;
             }
             public Builder addAllStartupURLs(
-                java.lang.Iterable<? extends java.lang.String> values) {
-              if (result.startupURLs_.isEmpty()) {
-                result.startupURLs_ = new java.util.ArrayList<java.lang.String>();
-              }
-              super.addAll(values, result.startupURLs_);
+                java.lang.Iterable<String> values) {
+              ensureStartupURLsIsMutable();
+              super.addAll(values, startupURLs_);
+              onChanged();
               return this;
             }
             public Builder clearStartupURLs() {
-              result.startupURLs_ = java.util.Collections.emptyList();
+              startupURLs_ = com.google.protobuf.LazyStringArrayList.EMPTY;
+              bitField0_ = (bitField0_ & ~0x00000002);
+              onChanged();
               return this;
             }
+            void addStartupURLs(com.google.protobuf.ByteString value) {
+              ensureStartupURLsIsMutable();
+              startupURLs_.add(value);
+              onChanged();
+            }
+            
+            // @@protoc_insertion_point(builder_scope:com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest.Initialize)
           }
           
           static {
-            com.google.gwt.dev.shell.remoteui.RemoteMessageProto.getDescriptor();
+            defaultInstance = new Initialize(true);
+            defaultInstance.initFields();
           }
           
-          static {
-            com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internalForceInit();
-          }
+          // @@protoc_insertion_point(class_scope:com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest.Initialize)
         }
         
+        private int bitField0_;
         // optional .com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest.RequestType requestType = 1;
         public static final int REQUESTTYPE_FIELD_NUMBER = 1;
-        private boolean hasRequestType;
-        private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.RequestType requestType_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.RequestType.CAPABILITY_EXCHANGE;
-        public boolean hasRequestType() { return hasRequestType; }
-        public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.RequestType getRequestType() { return requestType_; }
+        private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.RequestType requestType_;
+        public boolean hasRequestType() {
+          return ((bitField0_ & 0x00000001) == 0x00000001);
+        }
+        public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.RequestType getRequestType() {
+          return requestType_;
+        }
         
         // optional .com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest.CapabilityExchange capabilityExchange = 2;
         public static final int CAPABILITYEXCHANGE_FIELD_NUMBER = 2;
-        private boolean hasCapabilityExchange;
-        private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.CapabilityExchange capabilityExchange_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.CapabilityExchange.getDefaultInstance();
-        public boolean hasCapabilityExchange() { return hasCapabilityExchange; }
-        public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.CapabilityExchange getCapabilityExchange() { return capabilityExchange_; }
+        private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.CapabilityExchange capabilityExchange_;
+        public boolean hasCapabilityExchange() {
+          return ((bitField0_ & 0x00000002) == 0x00000002);
+        }
+        public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.CapabilityExchange getCapabilityExchange() {
+          return capabilityExchange_;
+        }
+        public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.CapabilityExchangeOrBuilder getCapabilityExchangeOrBuilder() {
+          return capabilityExchange_;
+        }
         
         // optional .com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest.AddLog addLog = 3;
         public static final int ADDLOG_FIELD_NUMBER = 3;
-        private boolean hasAddLog;
-        private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog addLog_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.getDefaultInstance();
-        public boolean hasAddLog() { return hasAddLog; }
-        public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog getAddLog() { return addLog_; }
+        private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog addLog_;
+        public boolean hasAddLog() {
+          return ((bitField0_ & 0x00000004) == 0x00000004);
+        }
+        public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog getAddLog() {
+          return addLog_;
+        }
+        public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogOrBuilder getAddLogOrBuilder() {
+          return addLog_;
+        }
         
         // optional .com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest.AddLogBranch addLogBranch = 4;
         public static final int ADDLOGBRANCH_FIELD_NUMBER = 4;
-        private boolean hasAddLogBranch;
-        private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogBranch addLogBranch_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogBranch.getDefaultInstance();
-        public boolean hasAddLogBranch() { return hasAddLogBranch; }
-        public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogBranch getAddLogBranch() { return addLogBranch_; }
+        private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogBranch addLogBranch_;
+        public boolean hasAddLogBranch() {
+          return ((bitField0_ & 0x00000008) == 0x00000008);
+        }
+        public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogBranch getAddLogBranch() {
+          return addLogBranch_;
+        }
+        public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogBranchOrBuilder getAddLogBranchOrBuilder() {
+          return addLogBranch_;
+        }
         
         // optional .com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest.AddLogEntry addLogEntry = 5;
         public static final int ADDLOGENTRY_FIELD_NUMBER = 5;
-        private boolean hasAddLogEntry;
-        private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogEntry addLogEntry_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogEntry.getDefaultInstance();
-        public boolean hasAddLogEntry() { return hasAddLogEntry; }
-        public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogEntry getAddLogEntry() { return addLogEntry_; }
+        private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogEntry addLogEntry_;
+        public boolean hasAddLogEntry() {
+          return ((bitField0_ & 0x00000010) == 0x00000010);
+        }
+        public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogEntry getAddLogEntry() {
+          return addLogEntry_;
+        }
+        public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogEntryOrBuilder getAddLogEntryOrBuilder() {
+          return addLogEntry_;
+        }
         
         // optional .com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest.DisconnectLog disconnectLog = 6;
         public static final int DISCONNECTLOG_FIELD_NUMBER = 6;
-        private boolean hasDisconnectLog;
-        private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.DisconnectLog disconnectLog_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.DisconnectLog.getDefaultInstance();
-        public boolean hasDisconnectLog() { return hasDisconnectLog; }
-        public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.DisconnectLog getDisconnectLog() { return disconnectLog_; }
+        private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.DisconnectLog disconnectLog_;
+        public boolean hasDisconnectLog() {
+          return ((bitField0_ & 0x00000020) == 0x00000020);
+        }
+        public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.DisconnectLog getDisconnectLog() {
+          return disconnectLog_;
+        }
+        public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.DisconnectLogOrBuilder getDisconnectLogOrBuilder() {
+          return disconnectLog_;
+        }
         
         // optional .com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest.Initialize initialize = 7;
         public static final int INITIALIZE_FIELD_NUMBER = 7;
-        private boolean hasInitialize;
-        private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.Initialize initialize_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.Initialize.getDefaultInstance();
-        public boolean hasInitialize() { return hasInitialize; }
-        public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.Initialize getInitialize() { return initialize_; }
-        
+        private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.Initialize initialize_;
+        public boolean hasInitialize() {
+          return ((bitField0_ & 0x00000040) == 0x00000040);
+        }
+        public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.Initialize getInitialize() {
+          return initialize_;
+        }
+        public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.InitializeOrBuilder getInitializeOrBuilder() {
+          return initialize_;
+        }
+        
+        private void initFields() {
+          requestType_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.RequestType.CAPABILITY_EXCHANGE;
+          capabilityExchange_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.CapabilityExchange.getDefaultInstance();
+          addLog_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.getDefaultInstance();
+          addLogBranch_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogBranch.getDefaultInstance();
+          addLogEntry_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogEntry.getDefaultInstance();
+          disconnectLog_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.DisconnectLog.getDefaultInstance();
+          initialize_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.Initialize.getDefaultInstance();
+        }
+        private byte memoizedIsInitialized = -1;
         public final boolean isInitialized() {
+          byte isInitialized = memoizedIsInitialized;
+          if (isInitialized != -1) return isInitialized == 1;
+          
           if (hasAddLog()) {
-            if (!getAddLog().isInitialized()) return false;
+            if (!getAddLog().isInitialized()) {
+              memoizedIsInitialized = 0;
+              return false;
+            }
           }
           if (hasAddLogBranch()) {
-            if (!getAddLogBranch().isInitialized()) return false;
+            if (!getAddLogBranch().isInitialized()) {
+              memoizedIsInitialized = 0;
+              return false;
+            }
           }
           if (hasAddLogEntry()) {
-            if (!getAddLogEntry().isInitialized()) return false;
+            if (!getAddLogEntry().isInitialized()) {
+              memoizedIsInitialized = 0;
+              return false;
+            }
           }
           if (hasDisconnectLog()) {
-            if (!getDisconnectLog().isInitialized()) return false;
+            if (!getDisconnectLog().isInitialized()) {
+              memoizedIsInitialized = 0;
+              return false;
+            }
           }
+          memoizedIsInitialized = 1;
           return true;
         }
         
-        public void writeTo(com.google.gwt.dev.protobuf.CodedOutputStream output)
+        public void writeTo(com.google.protobuf.CodedOutputStream output)
                             throws java.io.IOException {
-          if (hasRequestType()) {
-            output.writeEnum(1, getRequestType().getNumber());
+          getSerializedSize();
+          if (((bitField0_ & 0x00000001) == 0x00000001)) {
+            output.writeEnum(1, requestType_.getNumber());
           }
-          if (hasCapabilityExchange()) {
-            output.writeMessage(2, getCapabilityExchange());
+          if (((bitField0_ & 0x00000002) == 0x00000002)) {
+            output.writeMessage(2, capabilityExchange_);
           }
-          if (hasAddLog()) {
-            output.writeMessage(3, getAddLog());
+          if (((bitField0_ & 0x00000004) == 0x00000004)) {
+            output.writeMessage(3, addLog_);
           }
-          if (hasAddLogBranch()) {
-            output.writeMessage(4, getAddLogBranch());
+          if (((bitField0_ & 0x00000008) == 0x00000008)) {
+            output.writeMessage(4, addLogBranch_);
           }
-          if (hasAddLogEntry()) {
-            output.writeMessage(5, getAddLogEntry());
+          if (((bitField0_ & 0x00000010) == 0x00000010)) {
+            output.writeMessage(5, addLogEntry_);
           }
-          if (hasDisconnectLog()) {
-            output.writeMessage(6, getDisconnectLog());
+          if (((bitField0_ & 0x00000020) == 0x00000020)) {
+            output.writeMessage(6, disconnectLog_);
           }
-          if (hasInitialize()) {
-            output.writeMessage(7, getInitialize());
+          if (((bitField0_ & 0x00000040) == 0x00000040)) {
+            output.writeMessage(7, initialize_);
           }
           getUnknownFields().writeTo(output);
         }
@@ -4342,59 +6554,66 @@ public final class RemoteMessageProto {
           if (size != -1) return size;
         
           size = 0;
-          if (hasRequestType()) {
-            size += com.google.gwt.dev.protobuf.CodedOutputStream
-              .computeEnumSize(1, getRequestType().getNumber());
-          }
-          if (hasCapabilityExchange()) {
-            size += com.google.gwt.dev.protobuf.CodedOutputStream
-              .computeMessageSize(2, getCapabilityExchange());
-          }
-          if (hasAddLog()) {
-            size += com.google.gwt.dev.protobuf.CodedOutputStream
-              .computeMessageSize(3, getAddLog());
-          }
-          if (hasAddLogBranch()) {
-            size += com.google.gwt.dev.protobuf.CodedOutputStream
-              .computeMessageSize(4, getAddLogBranch());
-          }
-          if (hasAddLogEntry()) {
-            size += com.google.gwt.dev.protobuf.CodedOutputStream
-              .computeMessageSize(5, getAddLogEntry());
-          }
-          if (hasDisconnectLog()) {
-            size += com.google.gwt.dev.protobuf.CodedOutputStream
-              .computeMessageSize(6, getDisconnectLog());
-          }
-          if (hasInitialize()) {
-            size += com.google.gwt.dev.protobuf.CodedOutputStream
-              .computeMessageSize(7, getInitialize());
+          if (((bitField0_ & 0x00000001) == 0x00000001)) {
+            size += com.google.protobuf.CodedOutputStream
+              .computeEnumSize(1, requestType_.getNumber());
+          }
+          if (((bitField0_ & 0x00000002) == 0x00000002)) {
+            size += com.google.protobuf.CodedOutputStream
+              .computeMessageSize(2, capabilityExchange_);
+          }
+          if (((bitField0_ & 0x00000004) == 0x00000004)) {
+            size += com.google.protobuf.CodedOutputStream
+              .computeMessageSize(3, addLog_);
+          }
+          if (((bitField0_ & 0x00000008) == 0x00000008)) {
+            size += com.google.protobuf.CodedOutputStream
+              .computeMessageSize(4, addLogBranch_);
+          }
+          if (((bitField0_ & 0x00000010) == 0x00000010)) {
+            size += com.google.protobuf.CodedOutputStream
+              .computeMessageSize(5, addLogEntry_);
+          }
+          if (((bitField0_ & 0x00000020) == 0x00000020)) {
+            size += com.google.protobuf.CodedOutputStream
+              .computeMessageSize(6, disconnectLog_);
+          }
+          if (((bitField0_ & 0x00000040) == 0x00000040)) {
+            size += com.google.protobuf.CodedOutputStream
+              .computeMessageSize(7, initialize_);
           }
           size += getUnknownFields().getSerializedSize();
           memoizedSerializedSize = size;
           return size;
         }
         
+        private static final long serialVersionUID = 0L;
+        @java.lang.Override
+        protected java.lang.Object writeReplace()
+            throws java.io.ObjectStreamException {
+          return super.writeReplace();
+        }
+        
         public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest parseFrom(
-            com.google.gwt.dev.protobuf.ByteString data)
-            throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+            com.google.protobuf.ByteString data)
+            throws com.google.protobuf.InvalidProtocolBufferException {
           return newBuilder().mergeFrom(data).buildParsed();
         }
         public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest parseFrom(
-            com.google.gwt.dev.protobuf.ByteString data,
-            com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
-            throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+            com.google.protobuf.ByteString data,
+            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+            throws com.google.protobuf.InvalidProtocolBufferException {
           return newBuilder().mergeFrom(data, extensionRegistry)
                    .buildParsed();
         }
         public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest parseFrom(byte[] data)
-            throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+            throws com.google.protobuf.InvalidProtocolBufferException {
           return newBuilder().mergeFrom(data).buildParsed();
         }
         public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest parseFrom(
             byte[] data,
-            com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
-            throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+            throws com.google.protobuf.InvalidProtocolBufferException {
           return newBuilder().mergeFrom(data, extensionRegistry)
                    .buildParsed();
         }
@@ -4404,30 +6623,39 @@ public final class RemoteMessageProto {
         }
         public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest parseFrom(
             java.io.InputStream input,
-            com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws java.io.IOException {
           return newBuilder().mergeFrom(input, extensionRegistry)
                    .buildParsed();
         }
         public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest parseDelimitedFrom(java.io.InputStream input)
             throws java.io.IOException {
-          return newBuilder().mergeDelimitedFrom(input).buildParsed();
+          Builder builder = newBuilder();
+          if (builder.mergeDelimitedFrom(input)) {
+            return builder.buildParsed();
+          } else {
+            return null;
+          }
         }
         public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest parseDelimitedFrom(
             java.io.InputStream input,
-            com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws java.io.IOException {
-          return newBuilder().mergeDelimitedFrom(input, extensionRegistry)
-                   .buildParsed();
+          Builder builder = newBuilder();
+          if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
+            return builder.buildParsed();
+          } else {
+            return null;
+          }
         }
         public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest parseFrom(
-            com.google.gwt.dev.protobuf.CodedInputStream input)
+            com.google.protobuf.CodedInputStream input)
             throws java.io.IOException {
           return newBuilder().mergeFrom(input).buildParsed();
         }
         public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest parseFrom(
-            com.google.gwt.dev.protobuf.CodedInputStream input,
-            com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+            com.google.protobuf.CodedInputStream input,
+            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws java.io.IOException {
           return newBuilder().mergeFrom(input, extensionRegistry)
                    .buildParsed();
@@ -4440,37 +6668,96 @@ public final class RemoteMessageProto {
         }
         public Builder toBuilder() { return newBuilder(this); }
         
+        @java.lang.Override
+        protected Builder newBuilderForType(
+            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+          Builder builder = new Builder(parent);
+          return builder;
+        }
         public static final class Builder extends
-            com.google.gwt.dev.protobuf.GeneratedMessage.Builder<Builder> {
-          private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest result;
+            com.google.protobuf.GeneratedMessage.Builder<Builder>
+           implements com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequestOrBuilder {
+          public static final com.google.protobuf.Descriptors.Descriptor
+              getDescriptor() {
+            return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_descriptor;
+          }
           
-          // Construct using com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.newBuilder()
-          private Builder() {}
+          protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+              internalGetFieldAccessorTable() {
+            return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_fieldAccessorTable;
+          }
           
-          private static Builder create() {
-            Builder builder = new Builder();
-            builder.result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest();
-            return builder;
+          // Construct using com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.newBuilder()
+          private Builder() {
+            maybeForceBuilderInitialization();
           }
           
-          protected com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest internalGetResult() {
-            return result;
+          private Builder(BuilderParent parent) {
+            super(parent);
+            maybeForceBuilderInitialization();
+          }
+          private void maybeForceBuilderInitialization() {
+            if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+              getCapabilityExchangeFieldBuilder();
+              getAddLogFieldBuilder();
+              getAddLogBranchFieldBuilder();
+              getAddLogEntryFieldBuilder();
+              getDisconnectLogFieldBuilder();
+              getInitializeFieldBuilder();
+            }
+          }
+          private static Builder create() {
+            return new Builder();
           }
           
           public Builder clear() {
-            if (result == null) {
-              throw new IllegalStateException(
-                "Cannot call clear() after build().");
+            super.clear();
+            requestType_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.RequestType.CAPABILITY_EXCHANGE;
+            bitField0_ = (bitField0_ & ~0x00000001);
+            if (capabilityExchangeBuilder_ == null) {
+              capabilityExchange_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.CapabilityExchange.getDefaultInstance();
+            } else {
+              capabilityExchangeBuilder_.clear();
+            }
+            bitField0_ = (bitField0_ & ~0x00000002);
+            if (addLogBuilder_ == null) {
+              addLog_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.getDefaultInstance();
+            } else {
+              addLogBuilder_.clear();
+            }
+            bitField0_ = (bitField0_ & ~0x00000004);
+            if (addLogBranchBuilder_ == null) {
+              addLogBranch_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogBranch.getDefaultInstance();
+            } else {
+              addLogBranchBuilder_.clear();
             }
-            result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest();
+            bitField0_ = (bitField0_ & ~0x00000008);
+            if (addLogEntryBuilder_ == null) {
+              addLogEntry_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogEntry.getDefaultInstance();
+            } else {
+              addLogEntryBuilder_.clear();
+            }
+            bitField0_ = (bitField0_ & ~0x00000010);
+            if (disconnectLogBuilder_ == null) {
+              disconnectLog_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.DisconnectLog.getDefaultInstance();
+            } else {
+              disconnectLogBuilder_.clear();
+            }
+            bitField0_ = (bitField0_ & ~0x00000020);
+            if (initializeBuilder_ == null) {
+              initialize_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.Initialize.getDefaultInstance();
+            } else {
+              initializeBuilder_.clear();
+            }
+            bitField0_ = (bitField0_ & ~0x00000040);
             return this;
           }
           
           public Builder clone() {
-            return create().mergeFrom(result);
+            return create().mergeFrom(buildPartial());
           }
           
-          public com.google.gwt.dev.protobuf.Descriptors.Descriptor
+          public com.google.protobuf.Descriptors.Descriptor
               getDescriptorForType() {
             return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.getDescriptor();
           }
@@ -4479,36 +6766,86 @@ public final class RemoteMessageProto {
             return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.getDefaultInstance();
           }
           
-          public boolean isInitialized() {
-            return result.isInitialized();
-          }
           public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest build() {
-            if (result != null && !isInitialized()) {
+            com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest result = buildPartial();
+            if (!result.isInitialized()) {
               throw newUninitializedMessageException(result);
             }
-            return buildPartial();
+            return result;
           }
           
           private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest buildParsed()
-              throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
-            if (!isInitialized()) {
+              throws com.google.protobuf.InvalidProtocolBufferException {
+            com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest result = buildPartial();
+            if (!result.isInitialized()) {
               throw newUninitializedMessageException(
                 result).asInvalidProtocolBufferException();
             }
-            return buildPartial();
+            return result;
           }
           
           public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest buildPartial() {
-            if (result == null) {
-              throw new IllegalStateException(
-                "build() has already been called on this Builder.");
+            com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest(this);
+            int from_bitField0_ = bitField0_;
+            int to_bitField0_ = 0;
+            if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+              to_bitField0_ |= 0x00000001;
+            }
+            result.requestType_ = requestType_;
+            if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
+              to_bitField0_ |= 0x00000002;
+            }
+            if (capabilityExchangeBuilder_ == null) {
+              result.capabilityExchange_ = capabilityExchange_;
+            } else {
+              result.capabilityExchange_ = capabilityExchangeBuilder_.build();
+            }
+            if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
+              to_bitField0_ |= 0x00000004;
+            }
+            if (addLogBuilder_ == null) {
+              result.addLog_ = addLog_;
+            } else {
+              result.addLog_ = addLogBuilder_.build();
+            }
+            if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
+              to_bitField0_ |= 0x00000008;
+            }
+            if (addLogBranchBuilder_ == null) {
+              result.addLogBranch_ = addLogBranch_;
+            } else {
+              result.addLogBranch_ = addLogBranchBuilder_.build();
+            }
+            if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
+              to_bitField0_ |= 0x00000010;
+            }
+            if (addLogEntryBuilder_ == null) {
+              result.addLogEntry_ = addLogEntry_;
+            } else {
+              result.addLogEntry_ = addLogEntryBuilder_.build();
+            }
+            if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
+              to_bitField0_ |= 0x00000020;
+            }
+            if (disconnectLogBuilder_ == null) {
+              result.disconnectLog_ = disconnectLog_;
+            } else {
+              result.disconnectLog_ = disconnectLogBuilder_.build();
             }
-            com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest returnMe = result;
-            result = null;
-            return returnMe;
+            if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
+              to_bitField0_ |= 0x00000040;
+            }
+            if (initializeBuilder_ == null) {
+              result.initialize_ = initialize_;
+            } else {
+              result.initialize_ = initializeBuilder_.build();
+            }
+            result.bitField0_ = to_bitField0_;
+            onBuilt();
+            return result;
           }
           
-          public Builder mergeFrom(com.google.gwt.dev.protobuf.Message other) {
+          public Builder mergeFrom(com.google.protobuf.Message other) {
             if (other instanceof com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest) {
               return mergeFrom((com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest)other);
             } else {
@@ -4544,23 +6881,53 @@ public final class RemoteMessageProto {
             return this;
           }
           
+          public final boolean isInitialized() {
+            if (hasAddLog()) {
+              if (!getAddLog().isInitialized()) {
+                
+                return false;
+              }
+            }
+            if (hasAddLogBranch()) {
+              if (!getAddLogBranch().isInitialized()) {
+                
+                return false;
+              }
+            }
+            if (hasAddLogEntry()) {
+              if (!getAddLogEntry().isInitialized()) {
+                
+                return false;
+              }
+            }
+            if (hasDisconnectLog()) {
+              if (!getDisconnectLog().isInitialized()) {
+                
+                return false;
+              }
+            }
+            return true;
+          }
+          
           public Builder mergeFrom(
-              com.google.gwt.dev.protobuf.CodedInputStream input,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+              com.google.protobuf.CodedInputStream input,
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
               throws java.io.IOException {
-            com.google.gwt.dev.protobuf.UnknownFieldSet.Builder unknownFields =
-              com.google.gwt.dev.protobuf.UnknownFieldSet.newBuilder(
+            com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+              com.google.protobuf.UnknownFieldSet.newBuilder(
                 this.getUnknownFields());
             while (true) {
               int tag = input.readTag();
               switch (tag) {
                 case 0:
                   this.setUnknownFields(unknownFields.build());
+                  onChanged();
                   return this;
                 default: {
                   if (!parseUnknownField(input, unknownFields,
                                          extensionRegistry, tag)) {
                     this.setUnknownFields(unknownFields.build());
+                    onChanged();
                     return this;
                   }
                   break;
@@ -4571,7 +6938,8 @@ public final class RemoteMessageProto {
                   if (value == null) {
                     unknownFields.mergeVarintField(1, rawValue);
                   } else {
-                    setRequestType(value);
+                    bitField0_ |= 0x00000001;
+                    requestType_ = value;
                   }
                   break;
                 }
@@ -4633,266 +7001,610 @@ public final class RemoteMessageProto {
             }
           }
           
+          private int bitField0_;
           
           // optional .com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest.RequestType requestType = 1;
+          private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.RequestType requestType_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.RequestType.CAPABILITY_EXCHANGE;
           public boolean hasRequestType() {
-            return result.hasRequestType();
+            return ((bitField0_ & 0x00000001) == 0x00000001);
           }
           public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.RequestType getRequestType() {
-            return result.getRequestType();
+            return requestType_;
           }
           public Builder setRequestType(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.RequestType value) {
             if (value == null) {
               throw new NullPointerException();
             }
-            result.hasRequestType = true;
-            result.requestType_ = value;
+            bitField0_ |= 0x00000001;
+            requestType_ = value;
+            onChanged();
             return this;
           }
           public Builder clearRequestType() {
-            result.hasRequestType = false;
-            result.requestType_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.RequestType.CAPABILITY_EXCHANGE;
+            bitField0_ = (bitField0_ & ~0x00000001);
+            requestType_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.RequestType.CAPABILITY_EXCHANGE;
+            onChanged();
             return this;
           }
           
           // optional .com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest.CapabilityExchange capabilityExchange = 2;
+          private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.CapabilityExchange capabilityExchange_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.CapabilityExchange.getDefaultInstance();
+          private com.google.protobuf.SingleFieldBuilder<
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.CapabilityExchange, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.CapabilityExchange.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.CapabilityExchangeOrBuilder> capabilityExchangeBuilder_;
           public boolean hasCapabilityExchange() {
-            return result.hasCapabilityExchange();
+            return ((bitField0_ & 0x00000002) == 0x00000002);
           }
           public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.CapabilityExchange getCapabilityExchange() {
-            return result.getCapabilityExchange();
+            if (capabilityExchangeBuilder_ == null) {
+              return capabilityExchange_;
+            } else {
+              return capabilityExchangeBuilder_.getMessage();
+            }
           }
           public Builder setCapabilityExchange(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.CapabilityExchange value) {
-            if (value == null) {
-              throw new NullPointerException();
+            if (capabilityExchangeBuilder_ == null) {
+              if (value == null) {
+                throw new NullPointerException();
+              }
+              capabilityExchange_ = value;
+              onChanged();
+            } else {
+              capabilityExchangeBuilder_.setMessage(value);
             }
-            result.hasCapabilityExchange = true;
-            result.capabilityExchange_ = value;
+            bitField0_ |= 0x00000002;
             return this;
           }
-          public Builder setCapabilityExchange(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.CapabilityExchange.Builder builderForValue) {
-            result.hasCapabilityExchange = true;
-            result.capabilityExchange_ = builderForValue.build();
+          public Builder setCapabilityExchange(
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.CapabilityExchange.Builder builderForValue) {
+            if (capabilityExchangeBuilder_ == null) {
+              capabilityExchange_ = builderForValue.build();
+              onChanged();
+            } else {
+              capabilityExchangeBuilder_.setMessage(builderForValue.build());
+            }
+            bitField0_ |= 0x00000002;
             return this;
           }
           public Builder mergeCapabilityExchange(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.CapabilityExchange value) {
-            if (result.hasCapabilityExchange() &&
-                result.capabilityExchange_ != com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.CapabilityExchange.getDefaultInstance()) {
-              result.capabilityExchange_ =
-                com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.CapabilityExchange.newBuilder(result.capabilityExchange_).mergeFrom(value).buildPartial();
+            if (capabilityExchangeBuilder_ == null) {
+              if (((bitField0_ & 0x00000002) == 0x00000002) &&
+                  capabilityExchange_ != com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.CapabilityExchange.getDefaultInstance()) {
+                capabilityExchange_ =
+                  com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.CapabilityExchange.newBuilder(capabilityExchange_).mergeFrom(value).buildPartial();
+              } else {
+                capabilityExchange_ = value;
+              }
+              onChanged();
             } else {
-              result.capabilityExchange_ = value;
+              capabilityExchangeBuilder_.mergeFrom(value);
             }
-            result.hasCapabilityExchange = true;
+            bitField0_ |= 0x00000002;
             return this;
           }
           public Builder clearCapabilityExchange() {
-            result.hasCapabilityExchange = false;
-            result.capabilityExchange_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.CapabilityExchange.getDefaultInstance();
+            if (capabilityExchangeBuilder_ == null) {
+              capabilityExchange_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.CapabilityExchange.getDefaultInstance();
+              onChanged();
+            } else {
+              capabilityExchangeBuilder_.clear();
+            }
+            bitField0_ = (bitField0_ & ~0x00000002);
             return this;
           }
+          public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.CapabilityExchange.Builder getCapabilityExchangeBuilder() {
+            bitField0_ |= 0x00000002;
+            onChanged();
+            return getCapabilityExchangeFieldBuilder().getBuilder();
+          }
+          public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.CapabilityExchangeOrBuilder getCapabilityExchangeOrBuilder() {
+            if (capabilityExchangeBuilder_ != null) {
+              return capabilityExchangeBuilder_.getMessageOrBuilder();
+            } else {
+              return capabilityExchange_;
+            }
+          }
+          private com.google.protobuf.SingleFieldBuilder<
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.CapabilityExchange, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.CapabilityExchange.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.CapabilityExchangeOrBuilder> 
+              getCapabilityExchangeFieldBuilder() {
+            if (capabilityExchangeBuilder_ == null) {
+              capabilityExchangeBuilder_ = new com.google.protobuf.SingleFieldBuilder<
+                  com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.CapabilityExchange, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.CapabilityExchange.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.CapabilityExchangeOrBuilder>(
+                      capabilityExchange_,
+                      getParentForChildren(),
+                      isClean());
+              capabilityExchange_ = null;
+            }
+            return capabilityExchangeBuilder_;
+          }
           
           // optional .com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest.AddLog addLog = 3;
+          private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog addLog_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.getDefaultInstance();
+          private com.google.protobuf.SingleFieldBuilder<
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogOrBuilder> addLogBuilder_;
           public boolean hasAddLog() {
-            return result.hasAddLog();
+            return ((bitField0_ & 0x00000004) == 0x00000004);
           }
           public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog getAddLog() {
-            return result.getAddLog();
+            if (addLogBuilder_ == null) {
+              return addLog_;
+            } else {
+              return addLogBuilder_.getMessage();
+            }
           }
           public Builder setAddLog(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog value) {
-            if (value == null) {
-              throw new NullPointerException();
+            if (addLogBuilder_ == null) {
+              if (value == null) {
+                throw new NullPointerException();
+              }
+              addLog_ = value;
+              onChanged();
+            } else {
+              addLogBuilder_.setMessage(value);
             }
-            result.hasAddLog = true;
-            result.addLog_ = value;
+            bitField0_ |= 0x00000004;
             return this;
           }
-          public Builder setAddLog(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.Builder builderForValue) {
-            result.hasAddLog = true;
-            result.addLog_ = builderForValue.build();
+          public Builder setAddLog(
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.Builder builderForValue) {
+            if (addLogBuilder_ == null) {
+              addLog_ = builderForValue.build();
+              onChanged();
+            } else {
+              addLogBuilder_.setMessage(builderForValue.build());
+            }
+            bitField0_ |= 0x00000004;
             return this;
           }
           public Builder mergeAddLog(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog value) {
-            if (result.hasAddLog() &&
-                result.addLog_ != com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.getDefaultInstance()) {
-              result.addLog_ =
-                com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.newBuilder(result.addLog_).mergeFrom(value).buildPartial();
+            if (addLogBuilder_ == null) {
+              if (((bitField0_ & 0x00000004) == 0x00000004) &&
+                  addLog_ != com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.getDefaultInstance()) {
+                addLog_ =
+                  com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.newBuilder(addLog_).mergeFrom(value).buildPartial();
+              } else {
+                addLog_ = value;
+              }
+              onChanged();
             } else {
-              result.addLog_ = value;
+              addLogBuilder_.mergeFrom(value);
             }
-            result.hasAddLog = true;
+            bitField0_ |= 0x00000004;
             return this;
           }
           public Builder clearAddLog() {
-            result.hasAddLog = false;
-            result.addLog_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.getDefaultInstance();
+            if (addLogBuilder_ == null) {
+              addLog_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.getDefaultInstance();
+              onChanged();
+            } else {
+              addLogBuilder_.clear();
+            }
+            bitField0_ = (bitField0_ & ~0x00000004);
             return this;
           }
+          public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.Builder getAddLogBuilder() {
+            bitField0_ |= 0x00000004;
+            onChanged();
+            return getAddLogFieldBuilder().getBuilder();
+          }
+          public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogOrBuilder getAddLogOrBuilder() {
+            if (addLogBuilder_ != null) {
+              return addLogBuilder_.getMessageOrBuilder();
+            } else {
+              return addLog_;
+            }
+          }
+          private com.google.protobuf.SingleFieldBuilder<
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogOrBuilder> 
+              getAddLogFieldBuilder() {
+            if (addLogBuilder_ == null) {
+              addLogBuilder_ = new com.google.protobuf.SingleFieldBuilder<
+                  com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogOrBuilder>(
+                      addLog_,
+                      getParentForChildren(),
+                      isClean());
+              addLog_ = null;
+            }
+            return addLogBuilder_;
+          }
           
           // optional .com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest.AddLogBranch addLogBranch = 4;
+          private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogBranch addLogBranch_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogBranch.getDefaultInstance();
+          private com.google.protobuf.SingleFieldBuilder<
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogBranch, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogBranch.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogBranchOrBuilder> addLogBranchBuilder_;
           public boolean hasAddLogBranch() {
-            return result.hasAddLogBranch();
+            return ((bitField0_ & 0x00000008) == 0x00000008);
           }
           public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogBranch getAddLogBranch() {
-            return result.getAddLogBranch();
+            if (addLogBranchBuilder_ == null) {
+              return addLogBranch_;
+            } else {
+              return addLogBranchBuilder_.getMessage();
+            }
           }
           public Builder setAddLogBranch(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogBranch value) {
-            if (value == null) {
-              throw new NullPointerException();
+            if (addLogBranchBuilder_ == null) {
+              if (value == null) {
+                throw new NullPointerException();
+              }
+              addLogBranch_ = value;
+              onChanged();
+            } else {
+              addLogBranchBuilder_.setMessage(value);
             }
-            result.hasAddLogBranch = true;
-            result.addLogBranch_ = value;
+            bitField0_ |= 0x00000008;
             return this;
           }
-          public Builder setAddLogBranch(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogBranch.Builder builderForValue) {
-            result.hasAddLogBranch = true;
-            result.addLogBranch_ = builderForValue.build();
+          public Builder setAddLogBranch(
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogBranch.Builder builderForValue) {
+            if (addLogBranchBuilder_ == null) {
+              addLogBranch_ = builderForValue.build();
+              onChanged();
+            } else {
+              addLogBranchBuilder_.setMessage(builderForValue.build());
+            }
+            bitField0_ |= 0x00000008;
             return this;
           }
           public Builder mergeAddLogBranch(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogBranch value) {
-            if (result.hasAddLogBranch() &&
-                result.addLogBranch_ != com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogBranch.getDefaultInstance()) {
-              result.addLogBranch_ =
-                com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogBranch.newBuilder(result.addLogBranch_).mergeFrom(value).buildPartial();
+            if (addLogBranchBuilder_ == null) {
+              if (((bitField0_ & 0x00000008) == 0x00000008) &&
+                  addLogBranch_ != com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogBranch.getDefaultInstance()) {
+                addLogBranch_ =
+                  com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogBranch.newBuilder(addLogBranch_).mergeFrom(value).buildPartial();
+              } else {
+                addLogBranch_ = value;
+              }
+              onChanged();
             } else {
-              result.addLogBranch_ = value;
+              addLogBranchBuilder_.mergeFrom(value);
             }
-            result.hasAddLogBranch = true;
+            bitField0_ |= 0x00000008;
             return this;
           }
           public Builder clearAddLogBranch() {
-            result.hasAddLogBranch = false;
-            result.addLogBranch_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogBranch.getDefaultInstance();
+            if (addLogBranchBuilder_ == null) {
+              addLogBranch_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogBranch.getDefaultInstance();
+              onChanged();
+            } else {
+              addLogBranchBuilder_.clear();
+            }
+            bitField0_ = (bitField0_ & ~0x00000008);
             return this;
           }
+          public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogBranch.Builder getAddLogBranchBuilder() {
+            bitField0_ |= 0x00000008;
+            onChanged();
+            return getAddLogBranchFieldBuilder().getBuilder();
+          }
+          public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogBranchOrBuilder getAddLogBranchOrBuilder() {
+            if (addLogBranchBuilder_ != null) {
+              return addLogBranchBuilder_.getMessageOrBuilder();
+            } else {
+              return addLogBranch_;
+            }
+          }
+          private com.google.protobuf.SingleFieldBuilder<
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogBranch, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogBranch.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogBranchOrBuilder> 
+              getAddLogBranchFieldBuilder() {
+            if (addLogBranchBuilder_ == null) {
+              addLogBranchBuilder_ = new com.google.protobuf.SingleFieldBuilder<
+                  com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogBranch, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogBranch.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogBranchOrBuilder>(
+                      addLogBranch_,
+                      getParentForChildren(),
+                      isClean());
+              addLogBranch_ = null;
+            }
+            return addLogBranchBuilder_;
+          }
           
           // optional .com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest.AddLogEntry addLogEntry = 5;
+          private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogEntry addLogEntry_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogEntry.getDefaultInstance();
+          private com.google.protobuf.SingleFieldBuilder<
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogEntry, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogEntry.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogEntryOrBuilder> addLogEntryBuilder_;
           public boolean hasAddLogEntry() {
-            return result.hasAddLogEntry();
+            return ((bitField0_ & 0x00000010) == 0x00000010);
           }
           public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogEntry getAddLogEntry() {
-            return result.getAddLogEntry();
+            if (addLogEntryBuilder_ == null) {
+              return addLogEntry_;
+            } else {
+              return addLogEntryBuilder_.getMessage();
+            }
           }
           public Builder setAddLogEntry(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogEntry value) {
-            if (value == null) {
-              throw new NullPointerException();
+            if (addLogEntryBuilder_ == null) {
+              if (value == null) {
+                throw new NullPointerException();
+              }
+              addLogEntry_ = value;
+              onChanged();
+            } else {
+              addLogEntryBuilder_.setMessage(value);
             }
-            result.hasAddLogEntry = true;
-            result.addLogEntry_ = value;
+            bitField0_ |= 0x00000010;
             return this;
           }
-          public Builder setAddLogEntry(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogEntry.Builder builderForValue) {
-            result.hasAddLogEntry = true;
-            result.addLogEntry_ = builderForValue.build();
+          public Builder setAddLogEntry(
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogEntry.Builder builderForValue) {
+            if (addLogEntryBuilder_ == null) {
+              addLogEntry_ = builderForValue.build();
+              onChanged();
+            } else {
+              addLogEntryBuilder_.setMessage(builderForValue.build());
+            }
+            bitField0_ |= 0x00000010;
             return this;
           }
           public Builder mergeAddLogEntry(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogEntry value) {
-            if (result.hasAddLogEntry() &&
-                result.addLogEntry_ != com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogEntry.getDefaultInstance()) {
-              result.addLogEntry_ =
-                com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogEntry.newBuilder(result.addLogEntry_).mergeFrom(value).buildPartial();
+            if (addLogEntryBuilder_ == null) {
+              if (((bitField0_ & 0x00000010) == 0x00000010) &&
+                  addLogEntry_ != com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogEntry.getDefaultInstance()) {
+                addLogEntry_ =
+                  com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogEntry.newBuilder(addLogEntry_).mergeFrom(value).buildPartial();
+              } else {
+                addLogEntry_ = value;
+              }
+              onChanged();
             } else {
-              result.addLogEntry_ = value;
+              addLogEntryBuilder_.mergeFrom(value);
             }
-            result.hasAddLogEntry = true;
+            bitField0_ |= 0x00000010;
             return this;
           }
           public Builder clearAddLogEntry() {
-            result.hasAddLogEntry = false;
-            result.addLogEntry_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogEntry.getDefaultInstance();
+            if (addLogEntryBuilder_ == null) {
+              addLogEntry_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogEntry.getDefaultInstance();
+              onChanged();
+            } else {
+              addLogEntryBuilder_.clear();
+            }
+            bitField0_ = (bitField0_ & ~0x00000010);
             return this;
           }
+          public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogEntry.Builder getAddLogEntryBuilder() {
+            bitField0_ |= 0x00000010;
+            onChanged();
+            return getAddLogEntryFieldBuilder().getBuilder();
+          }
+          public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogEntryOrBuilder getAddLogEntryOrBuilder() {
+            if (addLogEntryBuilder_ != null) {
+              return addLogEntryBuilder_.getMessageOrBuilder();
+            } else {
+              return addLogEntry_;
+            }
+          }
+          private com.google.protobuf.SingleFieldBuilder<
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogEntry, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogEntry.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogEntryOrBuilder> 
+              getAddLogEntryFieldBuilder() {
+            if (addLogEntryBuilder_ == null) {
+              addLogEntryBuilder_ = new com.google.protobuf.SingleFieldBuilder<
+                  com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogEntry, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogEntry.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogEntryOrBuilder>(
+                      addLogEntry_,
+                      getParentForChildren(),
+                      isClean());
+              addLogEntry_ = null;
+            }
+            return addLogEntryBuilder_;
+          }
           
           // optional .com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest.DisconnectLog disconnectLog = 6;
+          private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.DisconnectLog disconnectLog_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.DisconnectLog.getDefaultInstance();
+          private com.google.protobuf.SingleFieldBuilder<
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.DisconnectLog, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.DisconnectLog.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.DisconnectLogOrBuilder> disconnectLogBuilder_;
           public boolean hasDisconnectLog() {
-            return result.hasDisconnectLog();
+            return ((bitField0_ & 0x00000020) == 0x00000020);
           }
           public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.DisconnectLog getDisconnectLog() {
-            return result.getDisconnectLog();
+            if (disconnectLogBuilder_ == null) {
+              return disconnectLog_;
+            } else {
+              return disconnectLogBuilder_.getMessage();
+            }
           }
           public Builder setDisconnectLog(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.DisconnectLog value) {
-            if (value == null) {
-              throw new NullPointerException();
+            if (disconnectLogBuilder_ == null) {
+              if (value == null) {
+                throw new NullPointerException();
+              }
+              disconnectLog_ = value;
+              onChanged();
+            } else {
+              disconnectLogBuilder_.setMessage(value);
             }
-            result.hasDisconnectLog = true;
-            result.disconnectLog_ = value;
+            bitField0_ |= 0x00000020;
             return this;
           }
-          public Builder setDisconnectLog(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.DisconnectLog.Builder builderForValue) {
-            result.hasDisconnectLog = true;
-            result.disconnectLog_ = builderForValue.build();
+          public Builder setDisconnectLog(
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.DisconnectLog.Builder builderForValue) {
+            if (disconnectLogBuilder_ == null) {
+              disconnectLog_ = builderForValue.build();
+              onChanged();
+            } else {
+              disconnectLogBuilder_.setMessage(builderForValue.build());
+            }
+            bitField0_ |= 0x00000020;
             return this;
           }
           public Builder mergeDisconnectLog(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.DisconnectLog value) {
-            if (result.hasDisconnectLog() &&
-                result.disconnectLog_ != com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.DisconnectLog.getDefaultInstance()) {
-              result.disconnectLog_ =
-                com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.DisconnectLog.newBuilder(result.disconnectLog_).mergeFrom(value).buildPartial();
+            if (disconnectLogBuilder_ == null) {
+              if (((bitField0_ & 0x00000020) == 0x00000020) &&
+                  disconnectLog_ != com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.DisconnectLog.getDefaultInstance()) {
+                disconnectLog_ =
+                  com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.DisconnectLog.newBuilder(disconnectLog_).mergeFrom(value).buildPartial();
+              } else {
+                disconnectLog_ = value;
+              }
+              onChanged();
             } else {
-              result.disconnectLog_ = value;
+              disconnectLogBuilder_.mergeFrom(value);
             }
-            result.hasDisconnectLog = true;
+            bitField0_ |= 0x00000020;
             return this;
           }
           public Builder clearDisconnectLog() {
-            result.hasDisconnectLog = false;
-            result.disconnectLog_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.DisconnectLog.getDefaultInstance();
+            if (disconnectLogBuilder_ == null) {
+              disconnectLog_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.DisconnectLog.getDefaultInstance();
+              onChanged();
+            } else {
+              disconnectLogBuilder_.clear();
+            }
+            bitField0_ = (bitField0_ & ~0x00000020);
             return this;
           }
+          public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.DisconnectLog.Builder getDisconnectLogBuilder() {
+            bitField0_ |= 0x00000020;
+            onChanged();
+            return getDisconnectLogFieldBuilder().getBuilder();
+          }
+          public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.DisconnectLogOrBuilder getDisconnectLogOrBuilder() {
+            if (disconnectLogBuilder_ != null) {
+              return disconnectLogBuilder_.getMessageOrBuilder();
+            } else {
+              return disconnectLog_;
+            }
+          }
+          private com.google.protobuf.SingleFieldBuilder<
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.DisconnectLog, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.DisconnectLog.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.DisconnectLogOrBuilder> 
+              getDisconnectLogFieldBuilder() {
+            if (disconnectLogBuilder_ == null) {
+              disconnectLogBuilder_ = new com.google.protobuf.SingleFieldBuilder<
+                  com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.DisconnectLog, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.DisconnectLog.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.DisconnectLogOrBuilder>(
+                      disconnectLog_,
+                      getParentForChildren(),
+                      isClean());
+              disconnectLog_ = null;
+            }
+            return disconnectLogBuilder_;
+          }
           
           // optional .com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest.Initialize initialize = 7;
+          private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.Initialize initialize_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.Initialize.getDefaultInstance();
+          private com.google.protobuf.SingleFieldBuilder<
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.Initialize, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.Initialize.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.InitializeOrBuilder> initializeBuilder_;
           public boolean hasInitialize() {
-            return result.hasInitialize();
+            return ((bitField0_ & 0x00000040) == 0x00000040);
           }
           public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.Initialize getInitialize() {
-            return result.getInitialize();
+            if (initializeBuilder_ == null) {
+              return initialize_;
+            } else {
+              return initializeBuilder_.getMessage();
+            }
           }
           public Builder setInitialize(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.Initialize value) {
-            if (value == null) {
-              throw new NullPointerException();
+            if (initializeBuilder_ == null) {
+              if (value == null) {
+                throw new NullPointerException();
+              }
+              initialize_ = value;
+              onChanged();
+            } else {
+              initializeBuilder_.setMessage(value);
             }
-            result.hasInitialize = true;
-            result.initialize_ = value;
+            bitField0_ |= 0x00000040;
             return this;
           }
-          public Builder setInitialize(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.Initialize.Builder builderForValue) {
-            result.hasInitialize = true;
-            result.initialize_ = builderForValue.build();
+          public Builder setInitialize(
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.Initialize.Builder builderForValue) {
+            if (initializeBuilder_ == null) {
+              initialize_ = builderForValue.build();
+              onChanged();
+            } else {
+              initializeBuilder_.setMessage(builderForValue.build());
+            }
+            bitField0_ |= 0x00000040;
             return this;
           }
           public Builder mergeInitialize(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.Initialize value) {
-            if (result.hasInitialize() &&
-                result.initialize_ != com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.Initialize.getDefaultInstance()) {
-              result.initialize_ =
-                com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.Initialize.newBuilder(result.initialize_).mergeFrom(value).buildPartial();
+            if (initializeBuilder_ == null) {
+              if (((bitField0_ & 0x00000040) == 0x00000040) &&
+                  initialize_ != com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.Initialize.getDefaultInstance()) {
+                initialize_ =
+                  com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.Initialize.newBuilder(initialize_).mergeFrom(value).buildPartial();
+              } else {
+                initialize_ = value;
+              }
+              onChanged();
             } else {
-              result.initialize_ = value;
+              initializeBuilder_.mergeFrom(value);
             }
-            result.hasInitialize = true;
+            bitField0_ |= 0x00000040;
             return this;
           }
           public Builder clearInitialize() {
-            result.hasInitialize = false;
-            result.initialize_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.Initialize.getDefaultInstance();
+            if (initializeBuilder_ == null) {
+              initialize_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.Initialize.getDefaultInstance();
+              onChanged();
+            } else {
+              initializeBuilder_.clear();
+            }
+            bitField0_ = (bitField0_ & ~0x00000040);
             return this;
           }
+          public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.Initialize.Builder getInitializeBuilder() {
+            bitField0_ |= 0x00000040;
+            onChanged();
+            return getInitializeFieldBuilder().getBuilder();
+          }
+          public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.InitializeOrBuilder getInitializeOrBuilder() {
+            if (initializeBuilder_ != null) {
+              return initializeBuilder_.getMessageOrBuilder();
+            } else {
+              return initialize_;
+            }
+          }
+          private com.google.protobuf.SingleFieldBuilder<
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.Initialize, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.Initialize.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.InitializeOrBuilder> 
+              getInitializeFieldBuilder() {
+            if (initializeBuilder_ == null) {
+              initializeBuilder_ = new com.google.protobuf.SingleFieldBuilder<
+                  com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.Initialize, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.Initialize.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.InitializeOrBuilder>(
+                      initialize_,
+                      getParentForChildren(),
+                      isClean());
+              initialize_ = null;
+            }
+            return initializeBuilder_;
+          }
+          
+          // @@protoc_insertion_point(builder_scope:com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest)
         }
         
         static {
-          com.google.gwt.dev.shell.remoteui.RemoteMessageProto.getDescriptor();
+          defaultInstance = new ViewerRequest(true);
+          defaultInstance.initFields();
         }
         
-        static {
-          com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internalForceInit();
-        }
+        // @@protoc_insertion_point(class_scope:com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest)
       }
       
+      public interface DevModeRequestOrBuilder
+          extends com.google.protobuf.MessageOrBuilder {
+        
+        // optional .com.google.gwt.dev.shell.remoteui.Message.Request.DevModeRequest.RequestType requestType = 1;
+        boolean hasRequestType();
+        com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RequestType getRequestType();
+        
+        // optional .com.google.gwt.dev.shell.remoteui.Message.Request.DevModeRequest.CapabilityExchange capabilityExchange = 2;
+        boolean hasCapabilityExchange();
+        com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.CapabilityExchange getCapabilityExchange();
+        com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.CapabilityExchangeOrBuilder getCapabilityExchangeOrBuilder();
+        
+        // optional .com.google.gwt.dev.shell.remoteui.Message.Request.DevModeRequest.RestartWebServer restartWebServer = 3;
+        boolean hasRestartWebServer();
+        com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RestartWebServer getRestartWebServer();
+        com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RestartWebServerOrBuilder getRestartWebServerOrBuilder();
+      }
       public static final class DevModeRequest extends
-          com.google.gwt.dev.protobuf.GeneratedMessage {
+          com.google.protobuf.GeneratedMessage
+          implements DevModeRequestOrBuilder {
         // Use DevModeRequest.newBuilder() to construct.
-        private DevModeRequest() {}
+        private DevModeRequest(Builder builder) {
+          super(builder);
+        }
+        private DevModeRequest(boolean noInit) {}
         
-        private static final DevModeRequest defaultInstance = new DevModeRequest();
+        private static final DevModeRequest defaultInstance;
         public static DevModeRequest getDefaultInstance() {
           return defaultInstance;
         }
@@ -4901,22 +7613,25 @@ public final class RemoteMessageProto {
           return defaultInstance;
         }
         
-        public static final com.google.gwt.dev.protobuf.Descriptors.Descriptor
+        public static final com.google.protobuf.Descriptors.Descriptor
             getDescriptor() {
           return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_DevModeRequest_descriptor;
         }
         
-        protected com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable
+        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
             internalGetFieldAccessorTable() {
           return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_DevModeRequest_fieldAccessorTable;
         }
         
         public enum RequestType
-            implements com.google.gwt.dev.protobuf.ProtocolMessageEnum {
+            implements com.google.protobuf.ProtocolMessageEnum {
           CAPABILITY_EXCHANGE(0, 0),
           RESTART_WEB_SERVER(1, 1),
           ;
           
+          public static final int CAPABILITY_EXCHANGE_VALUE = 0;
+          public static final int RESTART_WEB_SERVER_VALUE = 1;
+          
           
           public final int getNumber() { return value; }
           
@@ -4928,27 +7643,27 @@ public final class RemoteMessageProto {
             }
           }
           
-          public static com.google.gwt.dev.protobuf.Internal.EnumLiteMap<RequestType>
+          public static com.google.protobuf.Internal.EnumLiteMap<RequestType>
               internalGetValueMap() {
             return internalValueMap;
           }
-          private static com.google.gwt.dev.protobuf.Internal.EnumLiteMap<RequestType>
+          private static com.google.protobuf.Internal.EnumLiteMap<RequestType>
               internalValueMap =
-                new com.google.gwt.dev.protobuf.Internal.EnumLiteMap<RequestType>() {
+                new com.google.protobuf.Internal.EnumLiteMap<RequestType>() {
                   public RequestType findValueByNumber(int number) {
-                    return RequestType.valueOf(number)
-          ;        }
+                    return RequestType.valueOf(number);
+                  }
                 };
           
-          public final com.google.gwt.dev.protobuf.Descriptors.EnumValueDescriptor
+          public final com.google.protobuf.Descriptors.EnumValueDescriptor
               getValueDescriptor() {
             return getDescriptor().getValues().get(index);
           }
-          public final com.google.gwt.dev.protobuf.Descriptors.EnumDescriptor
+          public final com.google.protobuf.Descriptors.EnumDescriptor
               getDescriptorForType() {
             return getDescriptor();
           }
-          public static final com.google.gwt.dev.protobuf.Descriptors.EnumDescriptor
+          public static final com.google.protobuf.Descriptors.EnumDescriptor
               getDescriptor() {
             return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.getDescriptor().getEnumTypes().get(0);
           }
@@ -4956,32 +7671,40 @@ public final class RemoteMessageProto {
           private static final RequestType[] VALUES = {
             CAPABILITY_EXCHANGE, RESTART_WEB_SERVER, 
           };
+          
           public static RequestType valueOf(
-              com.google.gwt.dev.protobuf.Descriptors.EnumValueDescriptor desc) {
+              com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
             if (desc.getType() != getDescriptor()) {
               throw new java.lang.IllegalArgumentException(
                 "EnumValueDescriptor is not for this type.");
             }
             return VALUES[desc.getIndex()];
           }
+          
           private final int index;
           private final int value;
+          
           private RequestType(int index, int value) {
             this.index = index;
             this.value = value;
           }
           
-          static {
-            com.google.gwt.dev.shell.remoteui.RemoteMessageProto.getDescriptor();
-          }
+          // @@protoc_insertion_point(enum_scope:com.google.gwt.dev.shell.remoteui.Message.Request.DevModeRequest.RequestType)
         }
         
+        public interface CapabilityExchangeOrBuilder
+            extends com.google.protobuf.MessageOrBuilder {
+        }
         public static final class CapabilityExchange extends
-            com.google.gwt.dev.protobuf.GeneratedMessage {
+            com.google.protobuf.GeneratedMessage
+            implements CapabilityExchangeOrBuilder {
           // Use CapabilityExchange.newBuilder() to construct.
-          private CapabilityExchange() {}
+          private CapabilityExchange(Builder builder) {
+            super(builder);
+          }
+          private CapabilityExchange(boolean noInit) {}
           
-          private static final CapabilityExchange defaultInstance = new CapabilityExchange();
+          private static final CapabilityExchange defaultInstance;
           public static CapabilityExchange getDefaultInstance() {
             return defaultInstance;
           }
@@ -4990,22 +7713,30 @@ public final class RemoteMessageProto {
             return defaultInstance;
           }
           
-          public static final com.google.gwt.dev.protobuf.Descriptors.Descriptor
+          public static final com.google.protobuf.Descriptors.Descriptor
               getDescriptor() {
             return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_DevModeRequest_CapabilityExchange_descriptor;
           }
           
-          protected com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable
+          protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
               internalGetFieldAccessorTable() {
             return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_DevModeRequest_CapabilityExchange_fieldAccessorTable;
           }
           
+          private void initFields() {
+          }
+          private byte memoizedIsInitialized = -1;
           public final boolean isInitialized() {
+            byte isInitialized = memoizedIsInitialized;
+            if (isInitialized != -1) return isInitialized == 1;
+            
+            memoizedIsInitialized = 1;
             return true;
           }
           
-          public void writeTo(com.google.gwt.dev.protobuf.CodedOutputStream output)
+          public void writeTo(com.google.protobuf.CodedOutputStream output)
                               throws java.io.IOException {
+            getSerializedSize();
             getUnknownFields().writeTo(output);
           }
           
@@ -5020,26 +7751,33 @@ public final class RemoteMessageProto {
             return size;
           }
           
+          private static final long serialVersionUID = 0L;
+          @java.lang.Override
+          protected java.lang.Object writeReplace()
+              throws java.io.ObjectStreamException {
+            return super.writeReplace();
+          }
+          
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.CapabilityExchange parseFrom(
-              com.google.gwt.dev.protobuf.ByteString data)
-              throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+              com.google.protobuf.ByteString data)
+              throws com.google.protobuf.InvalidProtocolBufferException {
             return newBuilder().mergeFrom(data).buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.CapabilityExchange parseFrom(
-              com.google.gwt.dev.protobuf.ByteString data,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
-              throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+              com.google.protobuf.ByteString data,
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+              throws com.google.protobuf.InvalidProtocolBufferException {
             return newBuilder().mergeFrom(data, extensionRegistry)
                      .buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.CapabilityExchange parseFrom(byte[] data)
-              throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+              throws com.google.protobuf.InvalidProtocolBufferException {
             return newBuilder().mergeFrom(data).buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.CapabilityExchange parseFrom(
               byte[] data,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
-              throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+              throws com.google.protobuf.InvalidProtocolBufferException {
             return newBuilder().mergeFrom(data, extensionRegistry)
                      .buildParsed();
           }
@@ -5049,30 +7787,39 @@ public final class RemoteMessageProto {
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.CapabilityExchange parseFrom(
               java.io.InputStream input,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
               throws java.io.IOException {
             return newBuilder().mergeFrom(input, extensionRegistry)
                      .buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.CapabilityExchange parseDelimitedFrom(java.io.InputStream input)
               throws java.io.IOException {
-            return newBuilder().mergeDelimitedFrom(input).buildParsed();
+            Builder builder = newBuilder();
+            if (builder.mergeDelimitedFrom(input)) {
+              return builder.buildParsed();
+            } else {
+              return null;
+            }
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.CapabilityExchange parseDelimitedFrom(
               java.io.InputStream input,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
               throws java.io.IOException {
-            return newBuilder().mergeDelimitedFrom(input, extensionRegistry)
-                     .buildParsed();
+            Builder builder = newBuilder();
+            if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
+              return builder.buildParsed();
+            } else {
+              return null;
+            }
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.CapabilityExchange parseFrom(
-              com.google.gwt.dev.protobuf.CodedInputStream input)
+              com.google.protobuf.CodedInputStream input)
               throws java.io.IOException {
             return newBuilder().mergeFrom(input).buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.CapabilityExchange parseFrom(
-              com.google.gwt.dev.protobuf.CodedInputStream input,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+              com.google.protobuf.CodedInputStream input,
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
               throws java.io.IOException {
             return newBuilder().mergeFrom(input, extensionRegistry)
                      .buildParsed();
@@ -5085,37 +7832,52 @@ public final class RemoteMessageProto {
           }
           public Builder toBuilder() { return newBuilder(this); }
           
+          @java.lang.Override
+          protected Builder newBuilderForType(
+              com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+            Builder builder = new Builder(parent);
+            return builder;
+          }
           public static final class Builder extends
-              com.google.gwt.dev.protobuf.GeneratedMessage.Builder<Builder> {
-            private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.CapabilityExchange result;
+              com.google.protobuf.GeneratedMessage.Builder<Builder>
+             implements com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.CapabilityExchangeOrBuilder {
+            public static final com.google.protobuf.Descriptors.Descriptor
+                getDescriptor() {
+              return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_DevModeRequest_CapabilityExchange_descriptor;
+            }
             
-            // Construct using com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.CapabilityExchange.newBuilder()
-            private Builder() {}
+            protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+                internalGetFieldAccessorTable() {
+              return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_DevModeRequest_CapabilityExchange_fieldAccessorTable;
+            }
             
-            private static Builder create() {
-              Builder builder = new Builder();
-              builder.result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.CapabilityExchange();
-              return builder;
+            // Construct using com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.CapabilityExchange.newBuilder()
+            private Builder() {
+              maybeForceBuilderInitialization();
             }
             
-            protected com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.CapabilityExchange internalGetResult() {
-              return result;
+            private Builder(BuilderParent parent) {
+              super(parent);
+              maybeForceBuilderInitialization();
+            }
+            private void maybeForceBuilderInitialization() {
+              if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+              }
+            }
+            private static Builder create() {
+              return new Builder();
             }
             
             public Builder clear() {
-              if (result == null) {
-                throw new IllegalStateException(
-                  "Cannot call clear() after build().");
-              }
-              result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.CapabilityExchange();
+              super.clear();
               return this;
             }
             
             public Builder clone() {
-              return create().mergeFrom(result);
+              return create().mergeFrom(buildPartial());
             }
             
-            public com.google.gwt.dev.protobuf.Descriptors.Descriptor
+            public com.google.protobuf.Descriptors.Descriptor
                 getDescriptorForType() {
               return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.CapabilityExchange.getDescriptor();
             }
@@ -5124,36 +7886,31 @@ public final class RemoteMessageProto {
               return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.CapabilityExchange.getDefaultInstance();
             }
             
-            public boolean isInitialized() {
-              return result.isInitialized();
-            }
             public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.CapabilityExchange build() {
-              if (result != null && !isInitialized()) {
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.CapabilityExchange result = buildPartial();
+              if (!result.isInitialized()) {
                 throw newUninitializedMessageException(result);
               }
-              return buildPartial();
+              return result;
             }
             
             private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.CapabilityExchange buildParsed()
-                throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
-              if (!isInitialized()) {
+                throws com.google.protobuf.InvalidProtocolBufferException {
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.CapabilityExchange result = buildPartial();
+              if (!result.isInitialized()) {
                 throw newUninitializedMessageException(
                   result).asInvalidProtocolBufferException();
               }
-              return buildPartial();
+              return result;
             }
             
             public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.CapabilityExchange buildPartial() {
-              if (result == null) {
-                throw new IllegalStateException(
-                  "build() has already been called on this Builder.");
-              }
-              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.CapabilityExchange returnMe = result;
-              result = null;
-              return returnMe;
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.CapabilityExchange result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.CapabilityExchange(this);
+              onBuilt();
+              return result;
             }
             
-            public Builder mergeFrom(com.google.gwt.dev.protobuf.Message other) {
+            public Builder mergeFrom(com.google.protobuf.Message other) {
               if (other instanceof com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.CapabilityExchange) {
                 return mergeFrom((com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.CapabilityExchange)other);
               } else {
@@ -5168,23 +7925,29 @@ public final class RemoteMessageProto {
               return this;
             }
             
+            public final boolean isInitialized() {
+              return true;
+            }
+            
             public Builder mergeFrom(
-                com.google.gwt.dev.protobuf.CodedInputStream input,
-                com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+                com.google.protobuf.CodedInputStream input,
+                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                 throws java.io.IOException {
-              com.google.gwt.dev.protobuf.UnknownFieldSet.Builder unknownFields =
-                com.google.gwt.dev.protobuf.UnknownFieldSet.newBuilder(
+              com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+                com.google.protobuf.UnknownFieldSet.newBuilder(
                   this.getUnknownFields());
               while (true) {
                 int tag = input.readTag();
                 switch (tag) {
                   case 0:
                     this.setUnknownFields(unknownFields.build());
+                    onChanged();
                     return this;
                   default: {
                     if (!parseUnknownField(input, unknownFields,
                                            extensionRegistry, tag)) {
                       this.setUnknownFields(unknownFields.build());
+                      onChanged();
                       return this;
                     }
                     break;
@@ -5193,23 +7956,31 @@ public final class RemoteMessageProto {
               }
             }
             
+            
+            // @@protoc_insertion_point(builder_scope:com.google.gwt.dev.shell.remoteui.Message.Request.DevModeRequest.CapabilityExchange)
           }
           
           static {
-            com.google.gwt.dev.shell.remoteui.RemoteMessageProto.getDescriptor();
+            defaultInstance = new CapabilityExchange(true);
+            defaultInstance.initFields();
           }
           
-          static {
-            com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internalForceInit();
-          }
+          // @@protoc_insertion_point(class_scope:com.google.gwt.dev.shell.remoteui.Message.Request.DevModeRequest.CapabilityExchange)
         }
         
+        public interface RestartWebServerOrBuilder
+            extends com.google.protobuf.MessageOrBuilder {
+        }
         public static final class RestartWebServer extends
-            com.google.gwt.dev.protobuf.GeneratedMessage {
+            com.google.protobuf.GeneratedMessage
+            implements RestartWebServerOrBuilder {
           // Use RestartWebServer.newBuilder() to construct.
-          private RestartWebServer() {}
+          private RestartWebServer(Builder builder) {
+            super(builder);
+          }
+          private RestartWebServer(boolean noInit) {}
           
-          private static final RestartWebServer defaultInstance = new RestartWebServer();
+          private static final RestartWebServer defaultInstance;
           public static RestartWebServer getDefaultInstance() {
             return defaultInstance;
           }
@@ -5218,22 +7989,30 @@ public final class RemoteMessageProto {
             return defaultInstance;
           }
           
-          public static final com.google.gwt.dev.protobuf.Descriptors.Descriptor
+          public static final com.google.protobuf.Descriptors.Descriptor
               getDescriptor() {
             return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_DevModeRequest_RestartWebServer_descriptor;
           }
           
-          protected com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable
+          protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
               internalGetFieldAccessorTable() {
             return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_DevModeRequest_RestartWebServer_fieldAccessorTable;
           }
           
+          private void initFields() {
+          }
+          private byte memoizedIsInitialized = -1;
           public final boolean isInitialized() {
+            byte isInitialized = memoizedIsInitialized;
+            if (isInitialized != -1) return isInitialized == 1;
+            
+            memoizedIsInitialized = 1;
             return true;
           }
           
-          public void writeTo(com.google.gwt.dev.protobuf.CodedOutputStream output)
+          public void writeTo(com.google.protobuf.CodedOutputStream output)
                               throws java.io.IOException {
+            getSerializedSize();
             getUnknownFields().writeTo(output);
           }
           
@@ -5248,26 +8027,33 @@ public final class RemoteMessageProto {
             return size;
           }
           
+          private static final long serialVersionUID = 0L;
+          @java.lang.Override
+          protected java.lang.Object writeReplace()
+              throws java.io.ObjectStreamException {
+            return super.writeReplace();
+          }
+          
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RestartWebServer parseFrom(
-              com.google.gwt.dev.protobuf.ByteString data)
-              throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+              com.google.protobuf.ByteString data)
+              throws com.google.protobuf.InvalidProtocolBufferException {
             return newBuilder().mergeFrom(data).buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RestartWebServer parseFrom(
-              com.google.gwt.dev.protobuf.ByteString data,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
-              throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+              com.google.protobuf.ByteString data,
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+              throws com.google.protobuf.InvalidProtocolBufferException {
             return newBuilder().mergeFrom(data, extensionRegistry)
                      .buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RestartWebServer parseFrom(byte[] data)
-              throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+              throws com.google.protobuf.InvalidProtocolBufferException {
             return newBuilder().mergeFrom(data).buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RestartWebServer parseFrom(
               byte[] data,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
-              throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+              throws com.google.protobuf.InvalidProtocolBufferException {
             return newBuilder().mergeFrom(data, extensionRegistry)
                      .buildParsed();
           }
@@ -5277,30 +8063,39 @@ public final class RemoteMessageProto {
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RestartWebServer parseFrom(
               java.io.InputStream input,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
               throws java.io.IOException {
             return newBuilder().mergeFrom(input, extensionRegistry)
                      .buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RestartWebServer parseDelimitedFrom(java.io.InputStream input)
               throws java.io.IOException {
-            return newBuilder().mergeDelimitedFrom(input).buildParsed();
+            Builder builder = newBuilder();
+            if (builder.mergeDelimitedFrom(input)) {
+              return builder.buildParsed();
+            } else {
+              return null;
+            }
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RestartWebServer parseDelimitedFrom(
               java.io.InputStream input,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
               throws java.io.IOException {
-            return newBuilder().mergeDelimitedFrom(input, extensionRegistry)
-                     .buildParsed();
+            Builder builder = newBuilder();
+            if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
+              return builder.buildParsed();
+            } else {
+              return null;
+            }
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RestartWebServer parseFrom(
-              com.google.gwt.dev.protobuf.CodedInputStream input)
+              com.google.protobuf.CodedInputStream input)
               throws java.io.IOException {
             return newBuilder().mergeFrom(input).buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RestartWebServer parseFrom(
-              com.google.gwt.dev.protobuf.CodedInputStream input,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+              com.google.protobuf.CodedInputStream input,
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
               throws java.io.IOException {
             return newBuilder().mergeFrom(input, extensionRegistry)
                      .buildParsed();
@@ -5313,37 +8108,52 @@ public final class RemoteMessageProto {
           }
           public Builder toBuilder() { return newBuilder(this); }
           
+          @java.lang.Override
+          protected Builder newBuilderForType(
+              com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+            Builder builder = new Builder(parent);
+            return builder;
+          }
           public static final class Builder extends
-              com.google.gwt.dev.protobuf.GeneratedMessage.Builder<Builder> {
-            private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RestartWebServer result;
+              com.google.protobuf.GeneratedMessage.Builder<Builder>
+             implements com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RestartWebServerOrBuilder {
+            public static final com.google.protobuf.Descriptors.Descriptor
+                getDescriptor() {
+              return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_DevModeRequest_RestartWebServer_descriptor;
+            }
             
-            // Construct using com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RestartWebServer.newBuilder()
-            private Builder() {}
+            protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+                internalGetFieldAccessorTable() {
+              return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_DevModeRequest_RestartWebServer_fieldAccessorTable;
+            }
             
-            private static Builder create() {
-              Builder builder = new Builder();
-              builder.result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RestartWebServer();
-              return builder;
+            // Construct using com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RestartWebServer.newBuilder()
+            private Builder() {
+              maybeForceBuilderInitialization();
             }
             
-            protected com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RestartWebServer internalGetResult() {
-              return result;
+            private Builder(BuilderParent parent) {
+              super(parent);
+              maybeForceBuilderInitialization();
+            }
+            private void maybeForceBuilderInitialization() {
+              if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+              }
+            }
+            private static Builder create() {
+              return new Builder();
             }
             
             public Builder clear() {
-              if (result == null) {
-                throw new IllegalStateException(
-                  "Cannot call clear() after build().");
-              }
-              result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RestartWebServer();
+              super.clear();
               return this;
             }
             
             public Builder clone() {
-              return create().mergeFrom(result);
+              return create().mergeFrom(buildPartial());
             }
             
-            public com.google.gwt.dev.protobuf.Descriptors.Descriptor
+            public com.google.protobuf.Descriptors.Descriptor
                 getDescriptorForType() {
               return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RestartWebServer.getDescriptor();
             }
@@ -5352,36 +8162,31 @@ public final class RemoteMessageProto {
               return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RestartWebServer.getDefaultInstance();
             }
             
-            public boolean isInitialized() {
-              return result.isInitialized();
-            }
             public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RestartWebServer build() {
-              if (result != null && !isInitialized()) {
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RestartWebServer result = buildPartial();
+              if (!result.isInitialized()) {
                 throw newUninitializedMessageException(result);
               }
-              return buildPartial();
+              return result;
             }
             
             private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RestartWebServer buildParsed()
-                throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
-              if (!isInitialized()) {
+                throws com.google.protobuf.InvalidProtocolBufferException {
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RestartWebServer result = buildPartial();
+              if (!result.isInitialized()) {
                 throw newUninitializedMessageException(
                   result).asInvalidProtocolBufferException();
               }
-              return buildPartial();
+              return result;
             }
             
             public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RestartWebServer buildPartial() {
-              if (result == null) {
-                throw new IllegalStateException(
-                  "build() has already been called on this Builder.");
-              }
-              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RestartWebServer returnMe = result;
-              result = null;
-              return returnMe;
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RestartWebServer result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RestartWebServer(this);
+              onBuilt();
+              return result;
             }
             
-            public Builder mergeFrom(com.google.gwt.dev.protobuf.Message other) {
+            public Builder mergeFrom(com.google.protobuf.Message other) {
               if (other instanceof com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RestartWebServer) {
                 return mergeFrom((com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RestartWebServer)other);
               } else {
@@ -5396,23 +8201,29 @@ public final class RemoteMessageProto {
               return this;
             }
             
+            public final boolean isInitialized() {
+              return true;
+            }
+            
             public Builder mergeFrom(
-                com.google.gwt.dev.protobuf.CodedInputStream input,
-                com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+                com.google.protobuf.CodedInputStream input,
+                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                 throws java.io.IOException {
-              com.google.gwt.dev.protobuf.UnknownFieldSet.Builder unknownFields =
-                com.google.gwt.dev.protobuf.UnknownFieldSet.newBuilder(
+              com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+                com.google.protobuf.UnknownFieldSet.newBuilder(
                   this.getUnknownFields());
               while (true) {
                 int tag = input.readTag();
                 switch (tag) {
                   case 0:
                     this.setUnknownFields(unknownFields.build());
+                    onChanged();
                     return this;
                   default: {
                     if (!parseUnknownField(input, unknownFields,
                                            extensionRegistry, tag)) {
                       this.setUnknownFields(unknownFields.build());
+                      onChanged();
                       return this;
                     }
                     break;
@@ -5421,52 +8232,80 @@ public final class RemoteMessageProto {
               }
             }
             
+            
+            // @@protoc_insertion_point(builder_scope:com.google.gwt.dev.shell.remoteui.Message.Request.DevModeRequest.RestartWebServer)
           }
           
           static {
-            com.google.gwt.dev.shell.remoteui.RemoteMessageProto.getDescriptor();
+            defaultInstance = new RestartWebServer(true);
+            defaultInstance.initFields();
           }
           
-          static {
-            com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internalForceInit();
-          }
+          // @@protoc_insertion_point(class_scope:com.google.gwt.dev.shell.remoteui.Message.Request.DevModeRequest.RestartWebServer)
         }
         
+        private int bitField0_;
         // optional .com.google.gwt.dev.shell.remoteui.Message.Request.DevModeRequest.RequestType requestType = 1;
         public static final int REQUESTTYPE_FIELD_NUMBER = 1;
-        private boolean hasRequestType;
-        private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RequestType requestType_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RequestType.CAPABILITY_EXCHANGE;
-        public boolean hasRequestType() { return hasRequestType; }
-        public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RequestType getRequestType() { return requestType_; }
+        private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RequestType requestType_;
+        public boolean hasRequestType() {
+          return ((bitField0_ & 0x00000001) == 0x00000001);
+        }
+        public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RequestType getRequestType() {
+          return requestType_;
+        }
         
         // optional .com.google.gwt.dev.shell.remoteui.Message.Request.DevModeRequest.CapabilityExchange capabilityExchange = 2;
         public static final int CAPABILITYEXCHANGE_FIELD_NUMBER = 2;
-        private boolean hasCapabilityExchange;
-        private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.CapabilityExchange capabilityExchange_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.CapabilityExchange.getDefaultInstance();
-        public boolean hasCapabilityExchange() { return hasCapabilityExchange; }
-        public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.CapabilityExchange getCapabilityExchange() { return capabilityExchange_; }
+        private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.CapabilityExchange capabilityExchange_;
+        public boolean hasCapabilityExchange() {
+          return ((bitField0_ & 0x00000002) == 0x00000002);
+        }
+        public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.CapabilityExchange getCapabilityExchange() {
+          return capabilityExchange_;
+        }
+        public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.CapabilityExchangeOrBuilder getCapabilityExchangeOrBuilder() {
+          return capabilityExchange_;
+        }
         
         // optional .com.google.gwt.dev.shell.remoteui.Message.Request.DevModeRequest.RestartWebServer restartWebServer = 3;
         public static final int RESTARTWEBSERVER_FIELD_NUMBER = 3;
-        private boolean hasRestartWebServer;
-        private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RestartWebServer restartWebServer_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RestartWebServer.getDefaultInstance();
-        public boolean hasRestartWebServer() { return hasRestartWebServer; }
-        public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RestartWebServer getRestartWebServer() { return restartWebServer_; }
+        private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RestartWebServer restartWebServer_;
+        public boolean hasRestartWebServer() {
+          return ((bitField0_ & 0x00000004) == 0x00000004);
+        }
+        public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RestartWebServer getRestartWebServer() {
+          return restartWebServer_;
+        }
+        public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RestartWebServerOrBuilder getRestartWebServerOrBuilder() {
+          return restartWebServer_;
+        }
         
+        private void initFields() {
+          requestType_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RequestType.CAPABILITY_EXCHANGE;
+          capabilityExchange_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.CapabilityExchange.getDefaultInstance();
+          restartWebServer_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RestartWebServer.getDefaultInstance();
+        }
+        private byte memoizedIsInitialized = -1;
         public final boolean isInitialized() {
+          byte isInitialized = memoizedIsInitialized;
+          if (isInitialized != -1) return isInitialized == 1;
+          
+          memoizedIsInitialized = 1;
           return true;
         }
         
-        public void writeTo(com.google.gwt.dev.protobuf.CodedOutputStream output)
+        public void writeTo(com.google.protobuf.CodedOutputStream output)
                             throws java.io.IOException {
-          if (hasRequestType()) {
-            output.writeEnum(1, getRequestType().getNumber());
+          getSerializedSize();
+          if (((bitField0_ & 0x00000001) == 0x00000001)) {
+            output.writeEnum(1, requestType_.getNumber());
           }
-          if (hasCapabilityExchange()) {
-            output.writeMessage(2, getCapabilityExchange());
+          if (((bitField0_ & 0x00000002) == 0x00000002)) {
+            output.writeMessage(2, capabilityExchange_);
           }
-          if (hasRestartWebServer()) {
-            output.writeMessage(3, getRestartWebServer());
+          if (((bitField0_ & 0x00000004) == 0x00000004)) {
+            output.writeMessage(3, restartWebServer_);
           }
           getUnknownFields().writeTo(output);
         }
@@ -5477,43 +8316,50 @@ public final class RemoteMessageProto {
           if (size != -1) return size;
         
           size = 0;
-          if (hasRequestType()) {
-            size += com.google.gwt.dev.protobuf.CodedOutputStream
-              .computeEnumSize(1, getRequestType().getNumber());
-          }
-          if (hasCapabilityExchange()) {
-            size += com.google.gwt.dev.protobuf.CodedOutputStream
-              .computeMessageSize(2, getCapabilityExchange());
-          }
-          if (hasRestartWebServer()) {
-            size += com.google.gwt.dev.protobuf.CodedOutputStream
-              .computeMessageSize(3, getRestartWebServer());
+          if (((bitField0_ & 0x00000001) == 0x00000001)) {
+            size += com.google.protobuf.CodedOutputStream
+              .computeEnumSize(1, requestType_.getNumber());
+          }
+          if (((bitField0_ & 0x00000002) == 0x00000002)) {
+            size += com.google.protobuf.CodedOutputStream
+              .computeMessageSize(2, capabilityExchange_);
+          }
+          if (((bitField0_ & 0x00000004) == 0x00000004)) {
+            size += com.google.protobuf.CodedOutputStream
+              .computeMessageSize(3, restartWebServer_);
           }
           size += getUnknownFields().getSerializedSize();
           memoizedSerializedSize = size;
           return size;
         }
         
+        private static final long serialVersionUID = 0L;
+        @java.lang.Override
+        protected java.lang.Object writeReplace()
+            throws java.io.ObjectStreamException {
+          return super.writeReplace();
+        }
+        
         public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest parseFrom(
-            com.google.gwt.dev.protobuf.ByteString data)
-            throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+            com.google.protobuf.ByteString data)
+            throws com.google.protobuf.InvalidProtocolBufferException {
           return newBuilder().mergeFrom(data).buildParsed();
         }
         public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest parseFrom(
-            com.google.gwt.dev.protobuf.ByteString data,
-            com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
-            throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+            com.google.protobuf.ByteString data,
+            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+            throws com.google.protobuf.InvalidProtocolBufferException {
           return newBuilder().mergeFrom(data, extensionRegistry)
                    .buildParsed();
         }
         public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest parseFrom(byte[] data)
-            throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+            throws com.google.protobuf.InvalidProtocolBufferException {
           return newBuilder().mergeFrom(data).buildParsed();
         }
         public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest parseFrom(
             byte[] data,
-            com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
-            throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+            throws com.google.protobuf.InvalidProtocolBufferException {
           return newBuilder().mergeFrom(data, extensionRegistry)
                    .buildParsed();
         }
@@ -5523,30 +8369,39 @@ public final class RemoteMessageProto {
         }
         public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest parseFrom(
             java.io.InputStream input,
-            com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws java.io.IOException {
           return newBuilder().mergeFrom(input, extensionRegistry)
                    .buildParsed();
         }
         public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest parseDelimitedFrom(java.io.InputStream input)
             throws java.io.IOException {
-          return newBuilder().mergeDelimitedFrom(input).buildParsed();
+          Builder builder = newBuilder();
+          if (builder.mergeDelimitedFrom(input)) {
+            return builder.buildParsed();
+          } else {
+            return null;
+          }
         }
         public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest parseDelimitedFrom(
             java.io.InputStream input,
-            com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws java.io.IOException {
-          return newBuilder().mergeDelimitedFrom(input, extensionRegistry)
-                   .buildParsed();
+          Builder builder = newBuilder();
+          if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
+            return builder.buildParsed();
+          } else {
+            return null;
+          }
         }
         public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest parseFrom(
-            com.google.gwt.dev.protobuf.CodedInputStream input)
+            com.google.protobuf.CodedInputStream input)
             throws java.io.IOException {
           return newBuilder().mergeFrom(input).buildParsed();
         }
         public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest parseFrom(
-            com.google.gwt.dev.protobuf.CodedInputStream input,
-            com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+            com.google.protobuf.CodedInputStream input,
+            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws java.io.IOException {
           return newBuilder().mergeFrom(input, extensionRegistry)
                    .buildParsed();
@@ -5559,37 +8414,68 @@ public final class RemoteMessageProto {
         }
         public Builder toBuilder() { return newBuilder(this); }
         
+        @java.lang.Override
+        protected Builder newBuilderForType(
+            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+          Builder builder = new Builder(parent);
+          return builder;
+        }
         public static final class Builder extends
-            com.google.gwt.dev.protobuf.GeneratedMessage.Builder<Builder> {
-          private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest result;
+            com.google.protobuf.GeneratedMessage.Builder<Builder>
+           implements com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequestOrBuilder {
+          public static final com.google.protobuf.Descriptors.Descriptor
+              getDescriptor() {
+            return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_DevModeRequest_descriptor;
+          }
           
-          // Construct using com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.newBuilder()
-          private Builder() {}
+          protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+              internalGetFieldAccessorTable() {
+            return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_DevModeRequest_fieldAccessorTable;
+          }
           
-          private static Builder create() {
-            Builder builder = new Builder();
-            builder.result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest();
-            return builder;
+          // Construct using com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.newBuilder()
+          private Builder() {
+            maybeForceBuilderInitialization();
           }
           
-          protected com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest internalGetResult() {
-            return result;
+          private Builder(BuilderParent parent) {
+            super(parent);
+            maybeForceBuilderInitialization();
+          }
+          private void maybeForceBuilderInitialization() {
+            if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+              getCapabilityExchangeFieldBuilder();
+              getRestartWebServerFieldBuilder();
+            }
+          }
+          private static Builder create() {
+            return new Builder();
           }
           
           public Builder clear() {
-            if (result == null) {
-              throw new IllegalStateException(
-                "Cannot call clear() after build().");
+            super.clear();
+            requestType_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RequestType.CAPABILITY_EXCHANGE;
+            bitField0_ = (bitField0_ & ~0x00000001);
+            if (capabilityExchangeBuilder_ == null) {
+              capabilityExchange_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.CapabilityExchange.getDefaultInstance();
+            } else {
+              capabilityExchangeBuilder_.clear();
+            }
+            bitField0_ = (bitField0_ & ~0x00000002);
+            if (restartWebServerBuilder_ == null) {
+              restartWebServer_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RestartWebServer.getDefaultInstance();
+            } else {
+              restartWebServerBuilder_.clear();
             }
-            result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest();
+            bitField0_ = (bitField0_ & ~0x00000004);
             return this;
           }
           
           public Builder clone() {
-            return create().mergeFrom(result);
+            return create().mergeFrom(buildPartial());
           }
           
-          public com.google.gwt.dev.protobuf.Descriptors.Descriptor
+          public com.google.protobuf.Descriptors.Descriptor
               getDescriptorForType() {
             return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.getDescriptor();
           }
@@ -5598,36 +8484,54 @@ public final class RemoteMessageProto {
             return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.getDefaultInstance();
           }
           
-          public boolean isInitialized() {
-            return result.isInitialized();
-          }
           public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest build() {
-            if (result != null && !isInitialized()) {
+            com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest result = buildPartial();
+            if (!result.isInitialized()) {
               throw newUninitializedMessageException(result);
             }
-            return buildPartial();
+            return result;
           }
           
           private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest buildParsed()
-              throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
-            if (!isInitialized()) {
+              throws com.google.protobuf.InvalidProtocolBufferException {
+            com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest result = buildPartial();
+            if (!result.isInitialized()) {
               throw newUninitializedMessageException(
                 result).asInvalidProtocolBufferException();
             }
-            return buildPartial();
+            return result;
           }
           
           public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest buildPartial() {
-            if (result == null) {
-              throw new IllegalStateException(
-                "build() has already been called on this Builder.");
+            com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest(this);
+            int from_bitField0_ = bitField0_;
+            int to_bitField0_ = 0;
+            if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+              to_bitField0_ |= 0x00000001;
+            }
+            result.requestType_ = requestType_;
+            if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
+              to_bitField0_ |= 0x00000002;
+            }
+            if (capabilityExchangeBuilder_ == null) {
+              result.capabilityExchange_ = capabilityExchange_;
+            } else {
+              result.capabilityExchange_ = capabilityExchangeBuilder_.build();
             }
-            com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest returnMe = result;
-            result = null;
-            return returnMe;
+            if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
+              to_bitField0_ |= 0x00000004;
+            }
+            if (restartWebServerBuilder_ == null) {
+              result.restartWebServer_ = restartWebServer_;
+            } else {
+              result.restartWebServer_ = restartWebServerBuilder_.build();
+            }
+            result.bitField0_ = to_bitField0_;
+            onBuilt();
+            return result;
           }
           
-          public Builder mergeFrom(com.google.gwt.dev.protobuf.Message other) {
+          public Builder mergeFrom(com.google.protobuf.Message other) {
             if (other instanceof com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest) {
               return mergeFrom((com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest)other);
             } else {
@@ -5651,23 +8555,29 @@ public final class RemoteMessageProto {
             return this;
           }
           
+          public final boolean isInitialized() {
+            return true;
+          }
+          
           public Builder mergeFrom(
-              com.google.gwt.dev.protobuf.CodedInputStream input,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+              com.google.protobuf.CodedInputStream input,
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
               throws java.io.IOException {
-            com.google.gwt.dev.protobuf.UnknownFieldSet.Builder unknownFields =
-              com.google.gwt.dev.protobuf.UnknownFieldSet.newBuilder(
+            com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+              com.google.protobuf.UnknownFieldSet.newBuilder(
                 this.getUnknownFields());
             while (true) {
               int tag = input.readTag();
               switch (tag) {
                 case 0:
                   this.setUnknownFields(unknownFields.build());
+                  onChanged();
                   return this;
                 default: {
                   if (!parseUnknownField(input, unknownFields,
                                          extensionRegistry, tag)) {
                     this.setUnknownFields(unknownFields.build());
+                    onChanged();
                     return this;
                   }
                   break;
@@ -5678,7 +8588,8 @@ public final class RemoteMessageProto {
                   if (value == null) {
                     unknownFields.mergeVarintField(1, rawValue);
                   } else {
-                    setRequestType(value);
+                    bitField0_ |= 0x00000001;
+                    requestType_ = value;
                   }
                   break;
                 }
@@ -5704,150 +8615,291 @@ public final class RemoteMessageProto {
             }
           }
           
+          private int bitField0_;
           
           // optional .com.google.gwt.dev.shell.remoteui.Message.Request.DevModeRequest.RequestType requestType = 1;
+          private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RequestType requestType_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RequestType.CAPABILITY_EXCHANGE;
           public boolean hasRequestType() {
-            return result.hasRequestType();
+            return ((bitField0_ & 0x00000001) == 0x00000001);
           }
           public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RequestType getRequestType() {
-            return result.getRequestType();
+            return requestType_;
           }
           public Builder setRequestType(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RequestType value) {
             if (value == null) {
               throw new NullPointerException();
             }
-            result.hasRequestType = true;
-            result.requestType_ = value;
+            bitField0_ |= 0x00000001;
+            requestType_ = value;
+            onChanged();
             return this;
           }
           public Builder clearRequestType() {
-            result.hasRequestType = false;
-            result.requestType_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RequestType.CAPABILITY_EXCHANGE;
+            bitField0_ = (bitField0_ & ~0x00000001);
+            requestType_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RequestType.CAPABILITY_EXCHANGE;
+            onChanged();
             return this;
           }
           
           // optional .com.google.gwt.dev.shell.remoteui.Message.Request.DevModeRequest.CapabilityExchange capabilityExchange = 2;
+          private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.CapabilityExchange capabilityExchange_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.CapabilityExchange.getDefaultInstance();
+          private com.google.protobuf.SingleFieldBuilder<
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.CapabilityExchange, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.CapabilityExchange.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.CapabilityExchangeOrBuilder> capabilityExchangeBuilder_;
           public boolean hasCapabilityExchange() {
-            return result.hasCapabilityExchange();
+            return ((bitField0_ & 0x00000002) == 0x00000002);
           }
           public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.CapabilityExchange getCapabilityExchange() {
-            return result.getCapabilityExchange();
+            if (capabilityExchangeBuilder_ == null) {
+              return capabilityExchange_;
+            } else {
+              return capabilityExchangeBuilder_.getMessage();
+            }
           }
           public Builder setCapabilityExchange(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.CapabilityExchange value) {
-            if (value == null) {
-              throw new NullPointerException();
+            if (capabilityExchangeBuilder_ == null) {
+              if (value == null) {
+                throw new NullPointerException();
+              }
+              capabilityExchange_ = value;
+              onChanged();
+            } else {
+              capabilityExchangeBuilder_.setMessage(value);
             }
-            result.hasCapabilityExchange = true;
-            result.capabilityExchange_ = value;
+            bitField0_ |= 0x00000002;
             return this;
           }
-          public Builder setCapabilityExchange(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.CapabilityExchange.Builder builderForValue) {
-            result.hasCapabilityExchange = true;
-            result.capabilityExchange_ = builderForValue.build();
+          public Builder setCapabilityExchange(
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.CapabilityExchange.Builder builderForValue) {
+            if (capabilityExchangeBuilder_ == null) {
+              capabilityExchange_ = builderForValue.build();
+              onChanged();
+            } else {
+              capabilityExchangeBuilder_.setMessage(builderForValue.build());
+            }
+            bitField0_ |= 0x00000002;
             return this;
           }
           public Builder mergeCapabilityExchange(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.CapabilityExchange value) {
-            if (result.hasCapabilityExchange() &&
-                result.capabilityExchange_ != com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.CapabilityExchange.getDefaultInstance()) {
-              result.capabilityExchange_ =
-                com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.CapabilityExchange.newBuilder(result.capabilityExchange_).mergeFrom(value).buildPartial();
+            if (capabilityExchangeBuilder_ == null) {
+              if (((bitField0_ & 0x00000002) == 0x00000002) &&
+                  capabilityExchange_ != com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.CapabilityExchange.getDefaultInstance()) {
+                capabilityExchange_ =
+                  com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.CapabilityExchange.newBuilder(capabilityExchange_).mergeFrom(value).buildPartial();
+              } else {
+                capabilityExchange_ = value;
+              }
+              onChanged();
             } else {
-              result.capabilityExchange_ = value;
+              capabilityExchangeBuilder_.mergeFrom(value);
             }
-            result.hasCapabilityExchange = true;
+            bitField0_ |= 0x00000002;
             return this;
           }
           public Builder clearCapabilityExchange() {
-            result.hasCapabilityExchange = false;
-            result.capabilityExchange_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.CapabilityExchange.getDefaultInstance();
+            if (capabilityExchangeBuilder_ == null) {
+              capabilityExchange_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.CapabilityExchange.getDefaultInstance();
+              onChanged();
+            } else {
+              capabilityExchangeBuilder_.clear();
+            }
+            bitField0_ = (bitField0_ & ~0x00000002);
             return this;
           }
+          public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.CapabilityExchange.Builder getCapabilityExchangeBuilder() {
+            bitField0_ |= 0x00000002;
+            onChanged();
+            return getCapabilityExchangeFieldBuilder().getBuilder();
+          }
+          public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.CapabilityExchangeOrBuilder getCapabilityExchangeOrBuilder() {
+            if (capabilityExchangeBuilder_ != null) {
+              return capabilityExchangeBuilder_.getMessageOrBuilder();
+            } else {
+              return capabilityExchange_;
+            }
+          }
+          private com.google.protobuf.SingleFieldBuilder<
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.CapabilityExchange, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.CapabilityExchange.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.CapabilityExchangeOrBuilder> 
+              getCapabilityExchangeFieldBuilder() {
+            if (capabilityExchangeBuilder_ == null) {
+              capabilityExchangeBuilder_ = new com.google.protobuf.SingleFieldBuilder<
+                  com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.CapabilityExchange, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.CapabilityExchange.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.CapabilityExchangeOrBuilder>(
+                      capabilityExchange_,
+                      getParentForChildren(),
+                      isClean());
+              capabilityExchange_ = null;
+            }
+            return capabilityExchangeBuilder_;
+          }
           
           // optional .com.google.gwt.dev.shell.remoteui.Message.Request.DevModeRequest.RestartWebServer restartWebServer = 3;
+          private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RestartWebServer restartWebServer_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RestartWebServer.getDefaultInstance();
+          private com.google.protobuf.SingleFieldBuilder<
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RestartWebServer, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RestartWebServer.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RestartWebServerOrBuilder> restartWebServerBuilder_;
           public boolean hasRestartWebServer() {
-            return result.hasRestartWebServer();
+            return ((bitField0_ & 0x00000004) == 0x00000004);
           }
           public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RestartWebServer getRestartWebServer() {
-            return result.getRestartWebServer();
+            if (restartWebServerBuilder_ == null) {
+              return restartWebServer_;
+            } else {
+              return restartWebServerBuilder_.getMessage();
+            }
           }
           public Builder setRestartWebServer(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RestartWebServer value) {
-            if (value == null) {
-              throw new NullPointerException();
+            if (restartWebServerBuilder_ == null) {
+              if (value == null) {
+                throw new NullPointerException();
+              }
+              restartWebServer_ = value;
+              onChanged();
+            } else {
+              restartWebServerBuilder_.setMessage(value);
             }
-            result.hasRestartWebServer = true;
-            result.restartWebServer_ = value;
+            bitField0_ |= 0x00000004;
             return this;
           }
-          public Builder setRestartWebServer(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RestartWebServer.Builder builderForValue) {
-            result.hasRestartWebServer = true;
-            result.restartWebServer_ = builderForValue.build();
+          public Builder setRestartWebServer(
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RestartWebServer.Builder builderForValue) {
+            if (restartWebServerBuilder_ == null) {
+              restartWebServer_ = builderForValue.build();
+              onChanged();
+            } else {
+              restartWebServerBuilder_.setMessage(builderForValue.build());
+            }
+            bitField0_ |= 0x00000004;
             return this;
           }
           public Builder mergeRestartWebServer(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RestartWebServer value) {
-            if (result.hasRestartWebServer() &&
-                result.restartWebServer_ != com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RestartWebServer.getDefaultInstance()) {
-              result.restartWebServer_ =
-                com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RestartWebServer.newBuilder(result.restartWebServer_).mergeFrom(value).buildPartial();
+            if (restartWebServerBuilder_ == null) {
+              if (((bitField0_ & 0x00000004) == 0x00000004) &&
+                  restartWebServer_ != com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RestartWebServer.getDefaultInstance()) {
+                restartWebServer_ =
+                  com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RestartWebServer.newBuilder(restartWebServer_).mergeFrom(value).buildPartial();
+              } else {
+                restartWebServer_ = value;
+              }
+              onChanged();
             } else {
-              result.restartWebServer_ = value;
+              restartWebServerBuilder_.mergeFrom(value);
             }
-            result.hasRestartWebServer = true;
+            bitField0_ |= 0x00000004;
             return this;
           }
           public Builder clearRestartWebServer() {
-            result.hasRestartWebServer = false;
-            result.restartWebServer_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RestartWebServer.getDefaultInstance();
+            if (restartWebServerBuilder_ == null) {
+              restartWebServer_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RestartWebServer.getDefaultInstance();
+              onChanged();
+            } else {
+              restartWebServerBuilder_.clear();
+            }
+            bitField0_ = (bitField0_ & ~0x00000004);
             return this;
           }
+          public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RestartWebServer.Builder getRestartWebServerBuilder() {
+            bitField0_ |= 0x00000004;
+            onChanged();
+            return getRestartWebServerFieldBuilder().getBuilder();
+          }
+          public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RestartWebServerOrBuilder getRestartWebServerOrBuilder() {
+            if (restartWebServerBuilder_ != null) {
+              return restartWebServerBuilder_.getMessageOrBuilder();
+            } else {
+              return restartWebServer_;
+            }
+          }
+          private com.google.protobuf.SingleFieldBuilder<
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RestartWebServer, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RestartWebServer.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RestartWebServerOrBuilder> 
+              getRestartWebServerFieldBuilder() {
+            if (restartWebServerBuilder_ == null) {
+              restartWebServerBuilder_ = new com.google.protobuf.SingleFieldBuilder<
+                  com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RestartWebServer, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RestartWebServer.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RestartWebServerOrBuilder>(
+                      restartWebServer_,
+                      getParentForChildren(),
+                      isClean());
+              restartWebServer_ = null;
+            }
+            return restartWebServerBuilder_;
+          }
+          
+          // @@protoc_insertion_point(builder_scope:com.google.gwt.dev.shell.remoteui.Message.Request.DevModeRequest)
         }
         
         static {
-          com.google.gwt.dev.shell.remoteui.RemoteMessageProto.getDescriptor();
+          defaultInstance = new DevModeRequest(true);
+          defaultInstance.initFields();
         }
         
-        static {
-          com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internalForceInit();
-        }
+        // @@protoc_insertion_point(class_scope:com.google.gwt.dev.shell.remoteui.Message.Request.DevModeRequest)
       }
       
+      private int bitField0_;
       // optional .com.google.gwt.dev.shell.remoteui.Message.Request.ServiceType serviceType = 1;
       public static final int SERVICETYPE_FIELD_NUMBER = 1;
-      private boolean hasServiceType;
-      private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ServiceType serviceType_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ServiceType.VIEWER;
-      public boolean hasServiceType() { return hasServiceType; }
-      public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ServiceType getServiceType() { return serviceType_; }
+      private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ServiceType serviceType_;
+      public boolean hasServiceType() {
+        return ((bitField0_ & 0x00000001) == 0x00000001);
+      }
+      public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ServiceType getServiceType() {
+        return serviceType_;
+      }
       
       // optional .com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest viewerRequest = 2;
       public static final int VIEWERREQUEST_FIELD_NUMBER = 2;
-      private boolean hasViewerRequest;
-      private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest viewerRequest_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.getDefaultInstance();
-      public boolean hasViewerRequest() { return hasViewerRequest; }
-      public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest getViewerRequest() { return viewerRequest_; }
+      private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest viewerRequest_;
+      public boolean hasViewerRequest() {
+        return ((bitField0_ & 0x00000002) == 0x00000002);
+      }
+      public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest getViewerRequest() {
+        return viewerRequest_;
+      }
+      public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequestOrBuilder getViewerRequestOrBuilder() {
+        return viewerRequest_;
+      }
       
       // optional .com.google.gwt.dev.shell.remoteui.Message.Request.DevModeRequest devModeRequest = 3;
       public static final int DEVMODEREQUEST_FIELD_NUMBER = 3;
-      private boolean hasDevModeRequest;
-      private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest devModeRequest_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.getDefaultInstance();
-      public boolean hasDevModeRequest() { return hasDevModeRequest; }
-      public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest getDevModeRequest() { return devModeRequest_; }
+      private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest devModeRequest_;
+      public boolean hasDevModeRequest() {
+        return ((bitField0_ & 0x00000004) == 0x00000004);
+      }
+      public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest getDevModeRequest() {
+        return devModeRequest_;
+      }
+      public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequestOrBuilder getDevModeRequestOrBuilder() {
+        return devModeRequest_;
+      }
       
+      private void initFields() {
+        serviceType_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ServiceType.VIEWER;
+        viewerRequest_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.getDefaultInstance();
+        devModeRequest_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.getDefaultInstance();
+      }
+      private byte memoizedIsInitialized = -1;
       public final boolean isInitialized() {
+        byte isInitialized = memoizedIsInitialized;
+        if (isInitialized != -1) return isInitialized == 1;
+        
         if (hasViewerRequest()) {
-          if (!getViewerRequest().isInitialized()) return false;
+          if (!getViewerRequest().isInitialized()) {
+            memoizedIsInitialized = 0;
+            return false;
+          }
         }
+        memoizedIsInitialized = 1;
         return true;
       }
       
-      public void writeTo(com.google.gwt.dev.protobuf.CodedOutputStream output)
+      public void writeTo(com.google.protobuf.CodedOutputStream output)
                           throws java.io.IOException {
-        if (hasServiceType()) {
-          output.writeEnum(1, getServiceType().getNumber());
+        getSerializedSize();
+        if (((bitField0_ & 0x00000001) == 0x00000001)) {
+          output.writeEnum(1, serviceType_.getNumber());
         }
-        if (hasViewerRequest()) {
-          output.writeMessage(2, getViewerRequest());
+        if (((bitField0_ & 0x00000002) == 0x00000002)) {
+          output.writeMessage(2, viewerRequest_);
         }
-        if (hasDevModeRequest()) {
-          output.writeMessage(3, getDevModeRequest());
+        if (((bitField0_ & 0x00000004) == 0x00000004)) {
+          output.writeMessage(3, devModeRequest_);
         }
         getUnknownFields().writeTo(output);
       }
@@ -5858,43 +8910,50 @@ public final class RemoteMessageProto {
         if (size != -1) return size;
       
         size = 0;
-        if (hasServiceType()) {
-          size += com.google.gwt.dev.protobuf.CodedOutputStream
-            .computeEnumSize(1, getServiceType().getNumber());
-        }
-        if (hasViewerRequest()) {
-          size += com.google.gwt.dev.protobuf.CodedOutputStream
-            .computeMessageSize(2, getViewerRequest());
-        }
-        if (hasDevModeRequest()) {
-          size += com.google.gwt.dev.protobuf.CodedOutputStream
-            .computeMessageSize(3, getDevModeRequest());
+        if (((bitField0_ & 0x00000001) == 0x00000001)) {
+          size += com.google.protobuf.CodedOutputStream
+            .computeEnumSize(1, serviceType_.getNumber());
+        }
+        if (((bitField0_ & 0x00000002) == 0x00000002)) {
+          size += com.google.protobuf.CodedOutputStream
+            .computeMessageSize(2, viewerRequest_);
+        }
+        if (((bitField0_ & 0x00000004) == 0x00000004)) {
+          size += com.google.protobuf.CodedOutputStream
+            .computeMessageSize(3, devModeRequest_);
         }
         size += getUnknownFields().getSerializedSize();
         memoizedSerializedSize = size;
         return size;
       }
       
+      private static final long serialVersionUID = 0L;
+      @java.lang.Override
+      protected java.lang.Object writeReplace()
+          throws java.io.ObjectStreamException {
+        return super.writeReplace();
+      }
+      
       public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request parseFrom(
-          com.google.gwt.dev.protobuf.ByteString data)
-          throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+          com.google.protobuf.ByteString data)
+          throws com.google.protobuf.InvalidProtocolBufferException {
         return newBuilder().mergeFrom(data).buildParsed();
       }
       public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request parseFrom(
-          com.google.gwt.dev.protobuf.ByteString data,
-          com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+          com.google.protobuf.ByteString data,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
         return newBuilder().mergeFrom(data, extensionRegistry)
                  .buildParsed();
       }
       public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request parseFrom(byte[] data)
-          throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+          throws com.google.protobuf.InvalidProtocolBufferException {
         return newBuilder().mergeFrom(data).buildParsed();
       }
       public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request parseFrom(
           byte[] data,
-          com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
         return newBuilder().mergeFrom(data, extensionRegistry)
                  .buildParsed();
       }
@@ -5904,30 +8963,39 @@ public final class RemoteMessageProto {
       }
       public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request parseFrom(
           java.io.InputStream input,
-          com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws java.io.IOException {
         return newBuilder().mergeFrom(input, extensionRegistry)
                  .buildParsed();
       }
       public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request parseDelimitedFrom(java.io.InputStream input)
           throws java.io.IOException {
-        return newBuilder().mergeDelimitedFrom(input).buildParsed();
+        Builder builder = newBuilder();
+        if (builder.mergeDelimitedFrom(input)) {
+          return builder.buildParsed();
+        } else {
+          return null;
+        }
       }
       public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request parseDelimitedFrom(
           java.io.InputStream input,
-          com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws java.io.IOException {
-        return newBuilder().mergeDelimitedFrom(input, extensionRegistry)
-                 .buildParsed();
+        Builder builder = newBuilder();
+        if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
+          return builder.buildParsed();
+        } else {
+          return null;
+        }
       }
       public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request parseFrom(
-          com.google.gwt.dev.protobuf.CodedInputStream input)
+          com.google.protobuf.CodedInputStream input)
           throws java.io.IOException {
         return newBuilder().mergeFrom(input).buildParsed();
       }
       public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request parseFrom(
-          com.google.gwt.dev.protobuf.CodedInputStream input,
-          com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws java.io.IOException {
         return newBuilder().mergeFrom(input, extensionRegistry)
                  .buildParsed();
@@ -5940,37 +9008,68 @@ public final class RemoteMessageProto {
       }
       public Builder toBuilder() { return newBuilder(this); }
       
+      @java.lang.Override
+      protected Builder newBuilderForType(
+          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+        Builder builder = new Builder(parent);
+        return builder;
+      }
       public static final class Builder extends
-          com.google.gwt.dev.protobuf.GeneratedMessage.Builder<Builder> {
-        private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request result;
+          com.google.protobuf.GeneratedMessage.Builder<Builder>
+         implements com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.RequestOrBuilder {
+        public static final com.google.protobuf.Descriptors.Descriptor
+            getDescriptor() {
+          return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_descriptor;
+        }
         
-        // Construct using com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.newBuilder()
-        private Builder() {}
+        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+            internalGetFieldAccessorTable() {
+          return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_fieldAccessorTable;
+        }
         
-        private static Builder create() {
-          Builder builder = new Builder();
-          builder.result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request();
-          return builder;
+        // Construct using com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.newBuilder()
+        private Builder() {
+          maybeForceBuilderInitialization();
         }
         
-        protected com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request internalGetResult() {
-          return result;
+        private Builder(BuilderParent parent) {
+          super(parent);
+          maybeForceBuilderInitialization();
+        }
+        private void maybeForceBuilderInitialization() {
+          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+            getViewerRequestFieldBuilder();
+            getDevModeRequestFieldBuilder();
+          }
+        }
+        private static Builder create() {
+          return new Builder();
         }
         
         public Builder clear() {
-          if (result == null) {
-            throw new IllegalStateException(
-              "Cannot call clear() after build().");
+          super.clear();
+          serviceType_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ServiceType.VIEWER;
+          bitField0_ = (bitField0_ & ~0x00000001);
+          if (viewerRequestBuilder_ == null) {
+            viewerRequest_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.getDefaultInstance();
+          } else {
+            viewerRequestBuilder_.clear();
+          }
+          bitField0_ = (bitField0_ & ~0x00000002);
+          if (devModeRequestBuilder_ == null) {
+            devModeRequest_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.getDefaultInstance();
+          } else {
+            devModeRequestBuilder_.clear();
           }
-          result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request();
+          bitField0_ = (bitField0_ & ~0x00000004);
           return this;
         }
         
         public Builder clone() {
-          return create().mergeFrom(result);
+          return create().mergeFrom(buildPartial());
         }
         
-        public com.google.gwt.dev.protobuf.Descriptors.Descriptor
+        public com.google.protobuf.Descriptors.Descriptor
             getDescriptorForType() {
           return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.getDescriptor();
         }
@@ -5979,36 +9078,54 @@ public final class RemoteMessageProto {
           return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.getDefaultInstance();
         }
         
-        public boolean isInitialized() {
-          return result.isInitialized();
-        }
         public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request build() {
-          if (result != null && !isInitialized()) {
+          com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request result = buildPartial();
+          if (!result.isInitialized()) {
             throw newUninitializedMessageException(result);
           }
-          return buildPartial();
+          return result;
         }
         
         private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request buildParsed()
-            throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
-          if (!isInitialized()) {
+            throws com.google.protobuf.InvalidProtocolBufferException {
+          com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request result = buildPartial();
+          if (!result.isInitialized()) {
             throw newUninitializedMessageException(
               result).asInvalidProtocolBufferException();
           }
-          return buildPartial();
+          return result;
         }
         
         public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request buildPartial() {
-          if (result == null) {
-            throw new IllegalStateException(
-              "build() has already been called on this Builder.");
+          com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request(this);
+          int from_bitField0_ = bitField0_;
+          int to_bitField0_ = 0;
+          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+            to_bitField0_ |= 0x00000001;
+          }
+          result.serviceType_ = serviceType_;
+          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
+            to_bitField0_ |= 0x00000002;
+          }
+          if (viewerRequestBuilder_ == null) {
+            result.viewerRequest_ = viewerRequest_;
+          } else {
+            result.viewerRequest_ = viewerRequestBuilder_.build();
           }
-          com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request returnMe = result;
-          result = null;
-          return returnMe;
+          if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
+            to_bitField0_ |= 0x00000004;
+          }
+          if (devModeRequestBuilder_ == null) {
+            result.devModeRequest_ = devModeRequest_;
+          } else {
+            result.devModeRequest_ = devModeRequestBuilder_.build();
+          }
+          result.bitField0_ = to_bitField0_;
+          onBuilt();
+          return result;
         }
         
-        public Builder mergeFrom(com.google.gwt.dev.protobuf.Message other) {
+        public Builder mergeFrom(com.google.protobuf.Message other) {
           if (other instanceof com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request) {
             return mergeFrom((com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request)other);
           } else {
@@ -6032,23 +9149,35 @@ public final class RemoteMessageProto {
           return this;
         }
         
+        public final boolean isInitialized() {
+          if (hasViewerRequest()) {
+            if (!getViewerRequest().isInitialized()) {
+              
+              return false;
+            }
+          }
+          return true;
+        }
+        
         public Builder mergeFrom(
-            com.google.gwt.dev.protobuf.CodedInputStream input,
-            com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+            com.google.protobuf.CodedInputStream input,
+            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws java.io.IOException {
-          com.google.gwt.dev.protobuf.UnknownFieldSet.Builder unknownFields =
-            com.google.gwt.dev.protobuf.UnknownFieldSet.newBuilder(
+          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+            com.google.protobuf.UnknownFieldSet.newBuilder(
               this.getUnknownFields());
           while (true) {
             int tag = input.readTag();
             switch (tag) {
               case 0:
                 this.setUnknownFields(unknownFields.build());
+                onChanged();
                 return this;
               default: {
                 if (!parseUnknownField(input, unknownFields,
                                        extensionRegistry, tag)) {
                   this.setUnknownFields(unknownFields.build());
+                  onChanged();
                   return this;
                 }
                 break;
@@ -6059,7 +9188,8 @@ public final class RemoteMessageProto {
                 if (value == null) {
                   unknownFields.mergeVarintField(1, rawValue);
                 } else {
-                  setServiceType(value);
+                  bitField0_ |= 0x00000001;
+                  serviceType_ = value;
                 }
                 break;
               }
@@ -6085,118 +9215,246 @@ public final class RemoteMessageProto {
           }
         }
         
+        private int bitField0_;
         
         // optional .com.google.gwt.dev.shell.remoteui.Message.Request.ServiceType serviceType = 1;
+        private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ServiceType serviceType_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ServiceType.VIEWER;
         public boolean hasServiceType() {
-          return result.hasServiceType();
+          return ((bitField0_ & 0x00000001) == 0x00000001);
         }
         public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ServiceType getServiceType() {
-          return result.getServiceType();
+          return serviceType_;
         }
         public Builder setServiceType(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ServiceType value) {
           if (value == null) {
             throw new NullPointerException();
           }
-          result.hasServiceType = true;
-          result.serviceType_ = value;
+          bitField0_ |= 0x00000001;
+          serviceType_ = value;
+          onChanged();
           return this;
         }
         public Builder clearServiceType() {
-          result.hasServiceType = false;
-          result.serviceType_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ServiceType.VIEWER;
+          bitField0_ = (bitField0_ & ~0x00000001);
+          serviceType_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ServiceType.VIEWER;
+          onChanged();
           return this;
         }
         
         // optional .com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest viewerRequest = 2;
+        private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest viewerRequest_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.getDefaultInstance();
+        private com.google.protobuf.SingleFieldBuilder<
+            com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequestOrBuilder> viewerRequestBuilder_;
         public boolean hasViewerRequest() {
-          return result.hasViewerRequest();
+          return ((bitField0_ & 0x00000002) == 0x00000002);
         }
         public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest getViewerRequest() {
-          return result.getViewerRequest();
+          if (viewerRequestBuilder_ == null) {
+            return viewerRequest_;
+          } else {
+            return viewerRequestBuilder_.getMessage();
+          }
         }
         public Builder setViewerRequest(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest value) {
-          if (value == null) {
-            throw new NullPointerException();
+          if (viewerRequestBuilder_ == null) {
+            if (value == null) {
+              throw new NullPointerException();
+            }
+            viewerRequest_ = value;
+            onChanged();
+          } else {
+            viewerRequestBuilder_.setMessage(value);
           }
-          result.hasViewerRequest = true;
-          result.viewerRequest_ = value;
+          bitField0_ |= 0x00000002;
           return this;
         }
-        public Builder setViewerRequest(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.Builder builderForValue) {
-          result.hasViewerRequest = true;
-          result.viewerRequest_ = builderForValue.build();
+        public Builder setViewerRequest(
+            com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.Builder builderForValue) {
+          if (viewerRequestBuilder_ == null) {
+            viewerRequest_ = builderForValue.build();
+            onChanged();
+          } else {
+            viewerRequestBuilder_.setMessage(builderForValue.build());
+          }
+          bitField0_ |= 0x00000002;
           return this;
         }
         public Builder mergeViewerRequest(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest value) {
-          if (result.hasViewerRequest() &&
-              result.viewerRequest_ != com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.getDefaultInstance()) {
-            result.viewerRequest_ =
-              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.newBuilder(result.viewerRequest_).mergeFrom(value).buildPartial();
+          if (viewerRequestBuilder_ == null) {
+            if (((bitField0_ & 0x00000002) == 0x00000002) &&
+                viewerRequest_ != com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.getDefaultInstance()) {
+              viewerRequest_ =
+                com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.newBuilder(viewerRequest_).mergeFrom(value).buildPartial();
+            } else {
+              viewerRequest_ = value;
+            }
+            onChanged();
           } else {
-            result.viewerRequest_ = value;
+            viewerRequestBuilder_.mergeFrom(value);
           }
-          result.hasViewerRequest = true;
+          bitField0_ |= 0x00000002;
           return this;
         }
         public Builder clearViewerRequest() {
-          result.hasViewerRequest = false;
-          result.viewerRequest_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.getDefaultInstance();
+          if (viewerRequestBuilder_ == null) {
+            viewerRequest_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.getDefaultInstance();
+            onChanged();
+          } else {
+            viewerRequestBuilder_.clear();
+          }
+          bitField0_ = (bitField0_ & ~0x00000002);
           return this;
         }
+        public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.Builder getViewerRequestBuilder() {
+          bitField0_ |= 0x00000002;
+          onChanged();
+          return getViewerRequestFieldBuilder().getBuilder();
+        }
+        public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequestOrBuilder getViewerRequestOrBuilder() {
+          if (viewerRequestBuilder_ != null) {
+            return viewerRequestBuilder_.getMessageOrBuilder();
+          } else {
+            return viewerRequest_;
+          }
+        }
+        private com.google.protobuf.SingleFieldBuilder<
+            com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequestOrBuilder> 
+            getViewerRequestFieldBuilder() {
+          if (viewerRequestBuilder_ == null) {
+            viewerRequestBuilder_ = new com.google.protobuf.SingleFieldBuilder<
+                com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequestOrBuilder>(
+                    viewerRequest_,
+                    getParentForChildren(),
+                    isClean());
+            viewerRequest_ = null;
+          }
+          return viewerRequestBuilder_;
+        }
         
         // optional .com.google.gwt.dev.shell.remoteui.Message.Request.DevModeRequest devModeRequest = 3;
+        private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest devModeRequest_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.getDefaultInstance();
+        private com.google.protobuf.SingleFieldBuilder<
+            com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequestOrBuilder> devModeRequestBuilder_;
         public boolean hasDevModeRequest() {
-          return result.hasDevModeRequest();
+          return ((bitField0_ & 0x00000004) == 0x00000004);
         }
         public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest getDevModeRequest() {
-          return result.getDevModeRequest();
+          if (devModeRequestBuilder_ == null) {
+            return devModeRequest_;
+          } else {
+            return devModeRequestBuilder_.getMessage();
+          }
         }
         public Builder setDevModeRequest(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest value) {
-          if (value == null) {
-            throw new NullPointerException();
+          if (devModeRequestBuilder_ == null) {
+            if (value == null) {
+              throw new NullPointerException();
+            }
+            devModeRequest_ = value;
+            onChanged();
+          } else {
+            devModeRequestBuilder_.setMessage(value);
           }
-          result.hasDevModeRequest = true;
-          result.devModeRequest_ = value;
+          bitField0_ |= 0x00000004;
           return this;
         }
-        public Builder setDevModeRequest(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.Builder builderForValue) {
-          result.hasDevModeRequest = true;
-          result.devModeRequest_ = builderForValue.build();
+        public Builder setDevModeRequest(
+            com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.Builder builderForValue) {
+          if (devModeRequestBuilder_ == null) {
+            devModeRequest_ = builderForValue.build();
+            onChanged();
+          } else {
+            devModeRequestBuilder_.setMessage(builderForValue.build());
+          }
+          bitField0_ |= 0x00000004;
           return this;
         }
         public Builder mergeDevModeRequest(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest value) {
-          if (result.hasDevModeRequest() &&
-              result.devModeRequest_ != com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.getDefaultInstance()) {
-            result.devModeRequest_ =
-              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.newBuilder(result.devModeRequest_).mergeFrom(value).buildPartial();
+          if (devModeRequestBuilder_ == null) {
+            if (((bitField0_ & 0x00000004) == 0x00000004) &&
+                devModeRequest_ != com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.getDefaultInstance()) {
+              devModeRequest_ =
+                com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.newBuilder(devModeRequest_).mergeFrom(value).buildPartial();
+            } else {
+              devModeRequest_ = value;
+            }
+            onChanged();
           } else {
-            result.devModeRequest_ = value;
+            devModeRequestBuilder_.mergeFrom(value);
           }
-          result.hasDevModeRequest = true;
+          bitField0_ |= 0x00000004;
           return this;
         }
         public Builder clearDevModeRequest() {
-          result.hasDevModeRequest = false;
-          result.devModeRequest_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.getDefaultInstance();
+          if (devModeRequestBuilder_ == null) {
+            devModeRequest_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.getDefaultInstance();
+            onChanged();
+          } else {
+            devModeRequestBuilder_.clear();
+          }
+          bitField0_ = (bitField0_ & ~0x00000004);
           return this;
         }
+        public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.Builder getDevModeRequestBuilder() {
+          bitField0_ |= 0x00000004;
+          onChanged();
+          return getDevModeRequestFieldBuilder().getBuilder();
+        }
+        public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequestOrBuilder getDevModeRequestOrBuilder() {
+          if (devModeRequestBuilder_ != null) {
+            return devModeRequestBuilder_.getMessageOrBuilder();
+          } else {
+            return devModeRequest_;
+          }
+        }
+        private com.google.protobuf.SingleFieldBuilder<
+            com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequestOrBuilder> 
+            getDevModeRequestFieldBuilder() {
+          if (devModeRequestBuilder_ == null) {
+            devModeRequestBuilder_ = new com.google.protobuf.SingleFieldBuilder<
+                com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequestOrBuilder>(
+                    devModeRequest_,
+                    getParentForChildren(),
+                    isClean());
+            devModeRequest_ = null;
+          }
+          return devModeRequestBuilder_;
+        }
+        
+        // @@protoc_insertion_point(builder_scope:com.google.gwt.dev.shell.remoteui.Message.Request)
       }
       
       static {
-        com.google.gwt.dev.shell.remoteui.RemoteMessageProto.getDescriptor();
+        defaultInstance = new Request(true);
+        defaultInstance.initFields();
       }
       
-      static {
-        com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internalForceInit();
-      }
+      // @@protoc_insertion_point(class_scope:com.google.gwt.dev.shell.remoteui.Message.Request)
     }
     
+    public interface ResponseOrBuilder
+        extends com.google.protobuf.MessageOrBuilder {
+      
+      // optional .com.google.gwt.dev.shell.remoteui.Message.Response.ViewerResponse viewerResponse = 1;
+      boolean hasViewerResponse();
+      com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse getViewerResponse();
+      com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponseOrBuilder getViewerResponseOrBuilder();
+      
+      // optional .com.google.gwt.dev.shell.remoteui.Message.Response.DevModeResponse devModeResponse = 2;
+      boolean hasDevModeResponse();
+      com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse getDevModeResponse();
+      com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponseOrBuilder getDevModeResponseOrBuilder();
+    }
     public static final class Response extends
-        com.google.gwt.dev.protobuf.GeneratedMessage {
+        com.google.protobuf.GeneratedMessage
+        implements ResponseOrBuilder {
       // Use Response.newBuilder() to construct.
-      private Response() {}
+      private Response(Builder builder) {
+        super(builder);
+      }
+      private Response(boolean noInit) {}
       
-      private static final Response defaultInstance = new Response();
+      private static final Response defaultInstance;
       public static Response getDefaultInstance() {
         return defaultInstance;
       }
@@ -6205,22 +9463,48 @@ public final class RemoteMessageProto {
         return defaultInstance;
       }
       
-      public static final com.google.gwt.dev.protobuf.Descriptors.Descriptor
+      public static final com.google.protobuf.Descriptors.Descriptor
           getDescriptor() {
         return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_descriptor;
       }
       
-      protected com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable
+      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
           internalGetFieldAccessorTable() {
         return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_fieldAccessorTable;
       }
       
+      public interface ViewerResponseOrBuilder
+          extends com.google.protobuf.MessageOrBuilder {
+        
+        // optional .com.google.gwt.dev.shell.remoteui.Message.Response.ViewerResponse.ResponseType responseType = 1;
+        boolean hasResponseType();
+        com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.ResponseType getResponseType();
+        
+        // optional .com.google.gwt.dev.shell.remoteui.Message.Response.ViewerResponse.CapabilityExchange capabilityExchange = 2;
+        boolean hasCapabilityExchange();
+        com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange getCapabilityExchange();
+        com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchangeOrBuilder getCapabilityExchangeOrBuilder();
+        
+        // optional .com.google.gwt.dev.shell.remoteui.Message.Response.ViewerResponse.AddLog addLog = 3;
+        boolean hasAddLog();
+        com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLog getAddLog();
+        com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogOrBuilder getAddLogOrBuilder();
+        
+        // optional .com.google.gwt.dev.shell.remoteui.Message.Response.ViewerResponse.AddLogBranch addLogBranch = 4;
+        boolean hasAddLogBranch();
+        com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogBranch getAddLogBranch();
+        com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogBranchOrBuilder getAddLogBranchOrBuilder();
+      }
       public static final class ViewerResponse extends
-          com.google.gwt.dev.protobuf.GeneratedMessage {
+          com.google.protobuf.GeneratedMessage
+          implements ViewerResponseOrBuilder {
         // Use ViewerResponse.newBuilder() to construct.
-        private ViewerResponse() {}
+        private ViewerResponse(Builder builder) {
+          super(builder);
+        }
+        private ViewerResponse(boolean noInit) {}
         
-        private static final ViewerResponse defaultInstance = new ViewerResponse();
+        private static final ViewerResponse defaultInstance;
         public static ViewerResponse getDefaultInstance() {
           return defaultInstance;
         }
@@ -6229,23 +9513,27 @@ public final class RemoteMessageProto {
           return defaultInstance;
         }
         
-        public static final com.google.gwt.dev.protobuf.Descriptors.Descriptor
+        public static final com.google.protobuf.Descriptors.Descriptor
             getDescriptor() {
           return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_ViewerResponse_descriptor;
         }
         
-        protected com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable
+        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
             internalGetFieldAccessorTable() {
           return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_ViewerResponse_fieldAccessorTable;
         }
         
         public enum ResponseType
-            implements com.google.gwt.dev.protobuf.ProtocolMessageEnum {
+            implements com.google.protobuf.ProtocolMessageEnum {
           CAPABILITY_EXCHANGE(0, 0),
           ADD_LOG(1, 1),
           ADD_LOG_BRANCH(2, 2),
           ;
           
+          public static final int CAPABILITY_EXCHANGE_VALUE = 0;
+          public static final int ADD_LOG_VALUE = 1;
+          public static final int ADD_LOG_BRANCH_VALUE = 2;
+          
           
           public final int getNumber() { return value; }
           
@@ -6258,27 +9546,27 @@ public final class RemoteMessageProto {
             }
           }
           
-          public static com.google.gwt.dev.protobuf.Internal.EnumLiteMap<ResponseType>
+          public static com.google.protobuf.Internal.EnumLiteMap<ResponseType>
               internalGetValueMap() {
             return internalValueMap;
           }
-          private static com.google.gwt.dev.protobuf.Internal.EnumLiteMap<ResponseType>
+          private static com.google.protobuf.Internal.EnumLiteMap<ResponseType>
               internalValueMap =
-                new com.google.gwt.dev.protobuf.Internal.EnumLiteMap<ResponseType>() {
+                new com.google.protobuf.Internal.EnumLiteMap<ResponseType>() {
                   public ResponseType findValueByNumber(int number) {
-                    return ResponseType.valueOf(number)
-          ;        }
+                    return ResponseType.valueOf(number);
+                  }
                 };
           
-          public final com.google.gwt.dev.protobuf.Descriptors.EnumValueDescriptor
+          public final com.google.protobuf.Descriptors.EnumValueDescriptor
               getValueDescriptor() {
             return getDescriptor().getValues().get(index);
           }
-          public final com.google.gwt.dev.protobuf.Descriptors.EnumDescriptor
+          public final com.google.protobuf.Descriptors.EnumDescriptor
               getDescriptorForType() {
             return getDescriptor();
           }
-          public static final com.google.gwt.dev.protobuf.Descriptors.EnumDescriptor
+          public static final com.google.protobuf.Descriptors.EnumDescriptor
               getDescriptor() {
             return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.getDescriptor().getEnumTypes().get(0);
           }
@@ -6286,32 +9574,50 @@ public final class RemoteMessageProto {
           private static final ResponseType[] VALUES = {
             CAPABILITY_EXCHANGE, ADD_LOG, ADD_LOG_BRANCH, 
           };
+          
           public static ResponseType valueOf(
-              com.google.gwt.dev.protobuf.Descriptors.EnumValueDescriptor desc) {
+              com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
             if (desc.getType() != getDescriptor()) {
               throw new java.lang.IllegalArgumentException(
                 "EnumValueDescriptor is not for this type.");
             }
             return VALUES[desc.getIndex()];
           }
+          
           private final int index;
           private final int value;
+          
           private ResponseType(int index, int value) {
             this.index = index;
             this.value = value;
           }
           
-          static {
-            com.google.gwt.dev.shell.remoteui.RemoteMessageProto.getDescriptor();
-          }
+          // @@protoc_insertion_point(enum_scope:com.google.gwt.dev.shell.remoteui.Message.Response.ViewerResponse.ResponseType)
         }
         
+        public interface CapabilityExchangeOrBuilder
+            extends com.google.protobuf.MessageOrBuilder {
+          
+          // repeated .com.google.gwt.dev.shell.remoteui.Message.Response.ViewerResponse.CapabilityExchange.Capability capabilities = 2;
+          java.util.List<com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Capability> 
+              getCapabilitiesList();
+          com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Capability getCapabilities(int index);
+          int getCapabilitiesCount();
+          java.util.List<? extends com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.CapabilityOrBuilder> 
+              getCapabilitiesOrBuilderList();
+          com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.CapabilityOrBuilder getCapabilitiesOrBuilder(
+              int index);
+        }
         public static final class CapabilityExchange extends
-            com.google.gwt.dev.protobuf.GeneratedMessage {
+            com.google.protobuf.GeneratedMessage
+            implements CapabilityExchangeOrBuilder {
           // Use CapabilityExchange.newBuilder() to construct.
-          private CapabilityExchange() {}
+          private CapabilityExchange(Builder builder) {
+            super(builder);
+          }
+          private CapabilityExchange(boolean noInit) {}
           
-          private static final CapabilityExchange defaultInstance = new CapabilityExchange();
+          private static final CapabilityExchange defaultInstance;
           public static CapabilityExchange getDefaultInstance() {
             return defaultInstance;
           }
@@ -6320,22 +9626,33 @@ public final class RemoteMessageProto {
             return defaultInstance;
           }
           
-          public static final com.google.gwt.dev.protobuf.Descriptors.Descriptor
+          public static final com.google.protobuf.Descriptors.Descriptor
               getDescriptor() {
             return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_ViewerResponse_CapabilityExchange_descriptor;
           }
           
-          protected com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable
+          protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
               internalGetFieldAccessorTable() {
             return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_ViewerResponse_CapabilityExchange_fieldAccessorTable;
           }
           
+          public interface CapabilityOrBuilder
+              extends com.google.protobuf.MessageOrBuilder {
+            
+            // optional .com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest.RequestType capability = 1;
+            boolean hasCapability();
+            com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.RequestType getCapability();
+          }
           public static final class Capability extends
-              com.google.gwt.dev.protobuf.GeneratedMessage {
+              com.google.protobuf.GeneratedMessage
+              implements CapabilityOrBuilder {
             // Use Capability.newBuilder() to construct.
-            private Capability() {}
+            private Capability(Builder builder) {
+              super(builder);
+            }
+            private Capability(boolean noInit) {}
             
-            private static final Capability defaultInstance = new Capability();
+            private static final Capability defaultInstance;
             public static Capability getDefaultInstance() {
               return defaultInstance;
             }
@@ -6344,31 +9661,44 @@ public final class RemoteMessageProto {
               return defaultInstance;
             }
             
-            public static final com.google.gwt.dev.protobuf.Descriptors.Descriptor
+            public static final com.google.protobuf.Descriptors.Descriptor
                 getDescriptor() {
               return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_ViewerResponse_CapabilityExchange_Capability_descriptor;
             }
             
-            protected com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable
+            protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
                 internalGetFieldAccessorTable() {
               return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_ViewerResponse_CapabilityExchange_Capability_fieldAccessorTable;
             }
             
+            private int bitField0_;
             // optional .com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest.RequestType capability = 1;
             public static final int CAPABILITY_FIELD_NUMBER = 1;
-            private boolean hasCapability;
-            private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.RequestType capability_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.RequestType.CAPABILITY_EXCHANGE;
-            public boolean hasCapability() { return hasCapability; }
-            public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.RequestType getCapability() { return capability_; }
+            private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.RequestType capability_;
+            public boolean hasCapability() {
+              return ((bitField0_ & 0x00000001) == 0x00000001);
+            }
+            public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.RequestType getCapability() {
+              return capability_;
+            }
             
+            private void initFields() {
+              capability_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.RequestType.CAPABILITY_EXCHANGE;
+            }
+            private byte memoizedIsInitialized = -1;
             public final boolean isInitialized() {
+              byte isInitialized = memoizedIsInitialized;
+              if (isInitialized != -1) return isInitialized == 1;
+              
+              memoizedIsInitialized = 1;
               return true;
             }
             
-            public void writeTo(com.google.gwt.dev.protobuf.CodedOutputStream output)
+            public void writeTo(com.google.protobuf.CodedOutputStream output)
                                 throws java.io.IOException {
-              if (hasCapability()) {
-                output.writeEnum(1, getCapability().getNumber());
+              getSerializedSize();
+              if (((bitField0_ & 0x00000001) == 0x00000001)) {
+                output.writeEnum(1, capability_.getNumber());
               }
               getUnknownFields().writeTo(output);
             }
@@ -6379,35 +9709,42 @@ public final class RemoteMessageProto {
               if (size != -1) return size;
             
               size = 0;
-              if (hasCapability()) {
-                size += com.google.gwt.dev.protobuf.CodedOutputStream
-                  .computeEnumSize(1, getCapability().getNumber());
+              if (((bitField0_ & 0x00000001) == 0x00000001)) {
+                size += com.google.protobuf.CodedOutputStream
+                  .computeEnumSize(1, capability_.getNumber());
               }
               size += getUnknownFields().getSerializedSize();
               memoizedSerializedSize = size;
               return size;
             }
             
+            private static final long serialVersionUID = 0L;
+            @java.lang.Override
+            protected java.lang.Object writeReplace()
+                throws java.io.ObjectStreamException {
+              return super.writeReplace();
+            }
+            
             public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Capability parseFrom(
-                com.google.gwt.dev.protobuf.ByteString data)
-                throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+                com.google.protobuf.ByteString data)
+                throws com.google.protobuf.InvalidProtocolBufferException {
               return newBuilder().mergeFrom(data).buildParsed();
             }
             public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Capability parseFrom(
-                com.google.gwt.dev.protobuf.ByteString data,
-                com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
-                throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+                com.google.protobuf.ByteString data,
+                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+                throws com.google.protobuf.InvalidProtocolBufferException {
               return newBuilder().mergeFrom(data, extensionRegistry)
                        .buildParsed();
             }
             public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Capability parseFrom(byte[] data)
-                throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+                throws com.google.protobuf.InvalidProtocolBufferException {
               return newBuilder().mergeFrom(data).buildParsed();
             }
             public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Capability parseFrom(
                 byte[] data,
-                com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
-                throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+                throws com.google.protobuf.InvalidProtocolBufferException {
               return newBuilder().mergeFrom(data, extensionRegistry)
                        .buildParsed();
             }
@@ -6417,30 +9754,39 @@ public final class RemoteMessageProto {
             }
             public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Capability parseFrom(
                 java.io.InputStream input,
-                com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                 throws java.io.IOException {
               return newBuilder().mergeFrom(input, extensionRegistry)
                        .buildParsed();
             }
             public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Capability parseDelimitedFrom(java.io.InputStream input)
                 throws java.io.IOException {
-              return newBuilder().mergeDelimitedFrom(input).buildParsed();
+              Builder builder = newBuilder();
+              if (builder.mergeDelimitedFrom(input)) {
+                return builder.buildParsed();
+              } else {
+                return null;
+              }
             }
             public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Capability parseDelimitedFrom(
                 java.io.InputStream input,
-                com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                 throws java.io.IOException {
-              return newBuilder().mergeDelimitedFrom(input, extensionRegistry)
-                       .buildParsed();
+              Builder builder = newBuilder();
+              if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
+                return builder.buildParsed();
+              } else {
+                return null;
+              }
             }
             public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Capability parseFrom(
-                com.google.gwt.dev.protobuf.CodedInputStream input)
+                com.google.protobuf.CodedInputStream input)
                 throws java.io.IOException {
               return newBuilder().mergeFrom(input).buildParsed();
             }
             public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Capability parseFrom(
-                com.google.gwt.dev.protobuf.CodedInputStream input,
-                com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+                com.google.protobuf.CodedInputStream input,
+                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                 throws java.io.IOException {
               return newBuilder().mergeFrom(input, extensionRegistry)
                        .buildParsed();
@@ -6453,37 +9799,54 @@ public final class RemoteMessageProto {
             }
             public Builder toBuilder() { return newBuilder(this); }
             
+            @java.lang.Override
+            protected Builder newBuilderForType(
+                com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+              Builder builder = new Builder(parent);
+              return builder;
+            }
             public static final class Builder extends
-                com.google.gwt.dev.protobuf.GeneratedMessage.Builder<Builder> {
-              private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Capability result;
+                com.google.protobuf.GeneratedMessage.Builder<Builder>
+               implements com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.CapabilityOrBuilder {
+              public static final com.google.protobuf.Descriptors.Descriptor
+                  getDescriptor() {
+                return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_ViewerResponse_CapabilityExchange_Capability_descriptor;
+              }
               
-              // Construct using com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Capability.newBuilder()
-              private Builder() {}
+              protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+                  internalGetFieldAccessorTable() {
+                return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_ViewerResponse_CapabilityExchange_Capability_fieldAccessorTable;
+              }
               
-              private static Builder create() {
-                Builder builder = new Builder();
-                builder.result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Capability();
-                return builder;
+              // Construct using com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Capability.newBuilder()
+              private Builder() {
+                maybeForceBuilderInitialization();
               }
               
-              protected com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Capability internalGetResult() {
-                return result;
+              private Builder(BuilderParent parent) {
+                super(parent);
+                maybeForceBuilderInitialization();
+              }
+              private void maybeForceBuilderInitialization() {
+                if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+                }
+              }
+              private static Builder create() {
+                return new Builder();
               }
               
               public Builder clear() {
-                if (result == null) {
-                  throw new IllegalStateException(
-                    "Cannot call clear() after build().");
-                }
-                result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Capability();
+                super.clear();
+                capability_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.RequestType.CAPABILITY_EXCHANGE;
+                bitField0_ = (bitField0_ & ~0x00000001);
                 return this;
               }
               
               public Builder clone() {
-                return create().mergeFrom(result);
+                return create().mergeFrom(buildPartial());
               }
               
-              public com.google.gwt.dev.protobuf.Descriptors.Descriptor
+              public com.google.protobuf.Descriptors.Descriptor
                   getDescriptorForType() {
                 return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Capability.getDescriptor();
               }
@@ -6492,36 +9855,38 @@ public final class RemoteMessageProto {
                 return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Capability.getDefaultInstance();
               }
               
-              public boolean isInitialized() {
-                return result.isInitialized();
-              }
               public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Capability build() {
-                if (result != null && !isInitialized()) {
+                com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Capability result = buildPartial();
+                if (!result.isInitialized()) {
                   throw newUninitializedMessageException(result);
                 }
-                return buildPartial();
+                return result;
               }
               
               private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Capability buildParsed()
-                  throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
-                if (!isInitialized()) {
+                  throws com.google.protobuf.InvalidProtocolBufferException {
+                com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Capability result = buildPartial();
+                if (!result.isInitialized()) {
                   throw newUninitializedMessageException(
                     result).asInvalidProtocolBufferException();
                 }
-                return buildPartial();
+                return result;
               }
               
               public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Capability buildPartial() {
-                if (result == null) {
-                  throw new IllegalStateException(
-                    "build() has already been called on this Builder.");
-                }
-                com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Capability returnMe = result;
-                result = null;
-                return returnMe;
+                com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Capability result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Capability(this);
+                int from_bitField0_ = bitField0_;
+                int to_bitField0_ = 0;
+                if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+                  to_bitField0_ |= 0x00000001;
+                }
+                result.capability_ = capability_;
+                result.bitField0_ = to_bitField0_;
+                onBuilt();
+                return result;
               }
               
-              public Builder mergeFrom(com.google.gwt.dev.protobuf.Message other) {
+              public Builder mergeFrom(com.google.protobuf.Message other) {
                 if (other instanceof com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Capability) {
                   return mergeFrom((com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Capability)other);
                 } else {
@@ -6539,23 +9904,29 @@ public final class RemoteMessageProto {
                 return this;
               }
               
+              public final boolean isInitialized() {
+                return true;
+              }
+              
               public Builder mergeFrom(
-                  com.google.gwt.dev.protobuf.CodedInputStream input,
-                  com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+                  com.google.protobuf.CodedInputStream input,
+                  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                   throws java.io.IOException {
-                com.google.gwt.dev.protobuf.UnknownFieldSet.Builder unknownFields =
-                  com.google.gwt.dev.protobuf.UnknownFieldSet.newBuilder(
+                com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+                  com.google.protobuf.UnknownFieldSet.newBuilder(
                     this.getUnknownFields());
                 while (true) {
                   int tag = input.readTag();
                   switch (tag) {
                     case 0:
                       this.setUnknownFields(unknownFields.build());
+                      onChanged();
                       return this;
                     default: {
                       if (!parseUnknownField(input, unknownFields,
                                              extensionRegistry, tag)) {
                         this.setUnknownFields(unknownFields.build());
+                        onChanged();
                         return this;
                       }
                       break;
@@ -6566,7 +9937,8 @@ public final class RemoteMessageProto {
                       if (value == null) {
                         unknownFields.mergeVarintField(1, rawValue);
                       } else {
-                        setCapability(value);
+                        bitField0_ |= 0x00000001;
+                        capability_ = value;
                       }
                       break;
                     }
@@ -6574,58 +9946,81 @@ public final class RemoteMessageProto {
                 }
               }
               
+              private int bitField0_;
               
               // optional .com.google.gwt.dev.shell.remoteui.Message.Request.ViewerRequest.RequestType capability = 1;
+              private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.RequestType capability_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.RequestType.CAPABILITY_EXCHANGE;
               public boolean hasCapability() {
-                return result.hasCapability();
+                return ((bitField0_ & 0x00000001) == 0x00000001);
               }
               public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.RequestType getCapability() {
-                return result.getCapability();
+                return capability_;
               }
               public Builder setCapability(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.RequestType value) {
                 if (value == null) {
                   throw new NullPointerException();
                 }
-                result.hasCapability = true;
-                result.capability_ = value;
+                bitField0_ |= 0x00000001;
+                capability_ = value;
+                onChanged();
                 return this;
               }
               public Builder clearCapability() {
-                result.hasCapability = false;
-                result.capability_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.RequestType.CAPABILITY_EXCHANGE;
+                bitField0_ = (bitField0_ & ~0x00000001);
+                capability_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.RequestType.CAPABILITY_EXCHANGE;
+                onChanged();
                 return this;
               }
+              
+              // @@protoc_insertion_point(builder_scope:com.google.gwt.dev.shell.remoteui.Message.Response.ViewerResponse.CapabilityExchange.Capability)
             }
             
             static {
-              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.getDescriptor();
+              defaultInstance = new Capability(true);
+              defaultInstance.initFields();
             }
             
-            static {
-              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internalForceInit();
-            }
+            // @@protoc_insertion_point(class_scope:com.google.gwt.dev.shell.remoteui.Message.Response.ViewerResponse.CapabilityExchange.Capability)
           }
           
           // repeated .com.google.gwt.dev.shell.remoteui.Message.Response.ViewerResponse.CapabilityExchange.Capability capabilities = 2;
           public static final int CAPABILITIES_FIELD_NUMBER = 2;
-          private java.util.List<com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Capability> capabilities_ =
-            java.util.Collections.emptyList();
+          private java.util.List<com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Capability> capabilities_;
           public java.util.List<com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Capability> getCapabilitiesList() {
             return capabilities_;
           }
-          public int getCapabilitiesCount() { return capabilities_.size(); }
+          public java.util.List<? extends com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.CapabilityOrBuilder> 
+              getCapabilitiesOrBuilderList() {
+            return capabilities_;
+          }
+          public int getCapabilitiesCount() {
+            return capabilities_.size();
+          }
           public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Capability getCapabilities(int index) {
             return capabilities_.get(index);
           }
+          public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.CapabilityOrBuilder getCapabilitiesOrBuilder(
+              int index) {
+            return capabilities_.get(index);
+          }
           
+          private void initFields() {
+            capabilities_ = java.util.Collections.emptyList();
+          }
+          private byte memoizedIsInitialized = -1;
           public final boolean isInitialized() {
+            byte isInitialized = memoizedIsInitialized;
+            if (isInitialized != -1) return isInitialized == 1;
+            
+            memoizedIsInitialized = 1;
             return true;
           }
           
-          public void writeTo(com.google.gwt.dev.protobuf.CodedOutputStream output)
+          public void writeTo(com.google.protobuf.CodedOutputStream output)
                               throws java.io.IOException {
-            for (com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Capability element : getCapabilitiesList()) {
-              output.writeMessage(2, element);
+            getSerializedSize();
+            for (int i = 0; i < capabilities_.size(); i++) {
+              output.writeMessage(2, capabilities_.get(i));
             }
             getUnknownFields().writeTo(output);
           }
@@ -6636,35 +10031,42 @@ public final class RemoteMessageProto {
             if (size != -1) return size;
           
             size = 0;
-            for (com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Capability element : getCapabilitiesList()) {
-              size += com.google.gwt.dev.protobuf.CodedOutputStream
-                .computeMessageSize(2, element);
+            for (int i = 0; i < capabilities_.size(); i++) {
+              size += com.google.protobuf.CodedOutputStream
+                .computeMessageSize(2, capabilities_.get(i));
             }
             size += getUnknownFields().getSerializedSize();
             memoizedSerializedSize = size;
             return size;
           }
           
+          private static final long serialVersionUID = 0L;
+          @java.lang.Override
+          protected java.lang.Object writeReplace()
+              throws java.io.ObjectStreamException {
+            return super.writeReplace();
+          }
+          
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange parseFrom(
-              com.google.gwt.dev.protobuf.ByteString data)
-              throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+              com.google.protobuf.ByteString data)
+              throws com.google.protobuf.InvalidProtocolBufferException {
             return newBuilder().mergeFrom(data).buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange parseFrom(
-              com.google.gwt.dev.protobuf.ByteString data,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
-              throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+              com.google.protobuf.ByteString data,
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+              throws com.google.protobuf.InvalidProtocolBufferException {
             return newBuilder().mergeFrom(data, extensionRegistry)
                      .buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange parseFrom(byte[] data)
-              throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+              throws com.google.protobuf.InvalidProtocolBufferException {
             return newBuilder().mergeFrom(data).buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange parseFrom(
               byte[] data,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
-              throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+              throws com.google.protobuf.InvalidProtocolBufferException {
             return newBuilder().mergeFrom(data, extensionRegistry)
                      .buildParsed();
           }
@@ -6674,30 +10076,39 @@ public final class RemoteMessageProto {
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange parseFrom(
               java.io.InputStream input,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
               throws java.io.IOException {
             return newBuilder().mergeFrom(input, extensionRegistry)
                      .buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange parseDelimitedFrom(java.io.InputStream input)
               throws java.io.IOException {
-            return newBuilder().mergeDelimitedFrom(input).buildParsed();
+            Builder builder = newBuilder();
+            if (builder.mergeDelimitedFrom(input)) {
+              return builder.buildParsed();
+            } else {
+              return null;
+            }
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange parseDelimitedFrom(
               java.io.InputStream input,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
               throws java.io.IOException {
-            return newBuilder().mergeDelimitedFrom(input, extensionRegistry)
-                     .buildParsed();
+            Builder builder = newBuilder();
+            if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
+              return builder.buildParsed();
+            } else {
+              return null;
+            }
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange parseFrom(
-              com.google.gwt.dev.protobuf.CodedInputStream input)
+              com.google.protobuf.CodedInputStream input)
               throws java.io.IOException {
             return newBuilder().mergeFrom(input).buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange parseFrom(
-              com.google.gwt.dev.protobuf.CodedInputStream input,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+              com.google.protobuf.CodedInputStream input,
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
               throws java.io.IOException {
             return newBuilder().mergeFrom(input, extensionRegistry)
                      .buildParsed();
@@ -6710,37 +10121,59 @@ public final class RemoteMessageProto {
           }
           public Builder toBuilder() { return newBuilder(this); }
           
+          @java.lang.Override
+          protected Builder newBuilderForType(
+              com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+            Builder builder = new Builder(parent);
+            return builder;
+          }
           public static final class Builder extends
-              com.google.gwt.dev.protobuf.GeneratedMessage.Builder<Builder> {
-            private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange result;
+              com.google.protobuf.GeneratedMessage.Builder<Builder>
+             implements com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchangeOrBuilder {
+            public static final com.google.protobuf.Descriptors.Descriptor
+                getDescriptor() {
+              return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_ViewerResponse_CapabilityExchange_descriptor;
+            }
             
-            // Construct using com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.newBuilder()
-            private Builder() {}
+            protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+                internalGetFieldAccessorTable() {
+              return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_ViewerResponse_CapabilityExchange_fieldAccessorTable;
+            }
             
-            private static Builder create() {
-              Builder builder = new Builder();
-              builder.result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange();
-              return builder;
+            // Construct using com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.newBuilder()
+            private Builder() {
+              maybeForceBuilderInitialization();
             }
             
-            protected com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange internalGetResult() {
-              return result;
+            private Builder(BuilderParent parent) {
+              super(parent);
+              maybeForceBuilderInitialization();
+            }
+            private void maybeForceBuilderInitialization() {
+              if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+                getCapabilitiesFieldBuilder();
+              }
+            }
+            private static Builder create() {
+              return new Builder();
             }
             
             public Builder clear() {
-              if (result == null) {
-                throw new IllegalStateException(
-                  "Cannot call clear() after build().");
+              super.clear();
+              if (capabilitiesBuilder_ == null) {
+                capabilities_ = java.util.Collections.emptyList();
+                bitField0_ = (bitField0_ & ~0x00000001);
+              } else {
+                capabilitiesBuilder_.clear();
               }
-              result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange();
               return this;
             }
             
             public Builder clone() {
-              return create().mergeFrom(result);
+              return create().mergeFrom(buildPartial());
             }
             
-            public com.google.gwt.dev.protobuf.Descriptors.Descriptor
+            public com.google.protobuf.Descriptors.Descriptor
                 getDescriptorForType() {
               return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.getDescriptor();
             }
@@ -6749,40 +10182,41 @@ public final class RemoteMessageProto {
               return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.getDefaultInstance();
             }
             
-            public boolean isInitialized() {
-              return result.isInitialized();
-            }
             public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange build() {
-              if (result != null && !isInitialized()) {
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange result = buildPartial();
+              if (!result.isInitialized()) {
                 throw newUninitializedMessageException(result);
               }
-              return buildPartial();
+              return result;
             }
             
             private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange buildParsed()
-                throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
-              if (!isInitialized()) {
+                throws com.google.protobuf.InvalidProtocolBufferException {
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange result = buildPartial();
+              if (!result.isInitialized()) {
                 throw newUninitializedMessageException(
                   result).asInvalidProtocolBufferException();
               }
-              return buildPartial();
+              return result;
             }
             
             public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange buildPartial() {
-              if (result == null) {
-                throw new IllegalStateException(
-                  "build() has already been called on this Builder.");
-              }
-              if (result.capabilities_ != java.util.Collections.EMPTY_LIST) {
-                result.capabilities_ =
-                  java.util.Collections.unmodifiableList(result.capabilities_);
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange(this);
+              int from_bitField0_ = bitField0_;
+              if (capabilitiesBuilder_ == null) {
+                if (((bitField0_ & 0x00000001) == 0x00000001)) {
+                  capabilities_ = java.util.Collections.unmodifiableList(capabilities_);
+                  bitField0_ = (bitField0_ & ~0x00000001);
+                }
+                result.capabilities_ = capabilities_;
+              } else {
+                result.capabilities_ = capabilitiesBuilder_.build();
               }
-              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange returnMe = result;
-              result = null;
-              return returnMe;
+              onBuilt();
+              return result;
             }
             
-            public Builder mergeFrom(com.google.gwt.dev.protobuf.Message other) {
+            public Builder mergeFrom(com.google.protobuf.Message other) {
               if (other instanceof com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange) {
                 return mergeFrom((com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange)other);
               } else {
@@ -6793,33 +10227,59 @@ public final class RemoteMessageProto {
             
             public Builder mergeFrom(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange other) {
               if (other == com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.getDefaultInstance()) return this;
-              if (!other.capabilities_.isEmpty()) {
-                if (result.capabilities_.isEmpty()) {
-                  result.capabilities_ = new java.util.ArrayList<com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Capability>();
+              if (capabilitiesBuilder_ == null) {
+                if (!other.capabilities_.isEmpty()) {
+                  if (capabilities_.isEmpty()) {
+                    capabilities_ = other.capabilities_;
+                    bitField0_ = (bitField0_ & ~0x00000001);
+                  } else {
+                    ensureCapabilitiesIsMutable();
+                    capabilities_.addAll(other.capabilities_);
+                  }
+                  onChanged();
+                }
+              } else {
+                if (!other.capabilities_.isEmpty()) {
+                  if (capabilitiesBuilder_.isEmpty()) {
+                    capabilitiesBuilder_.dispose();
+                    capabilitiesBuilder_ = null;
+                    capabilities_ = other.capabilities_;
+                    bitField0_ = (bitField0_ & ~0x00000001);
+                    capabilitiesBuilder_ = 
+                      com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
+                         getCapabilitiesFieldBuilder() : null;
+                  } else {
+                    capabilitiesBuilder_.addAllMessages(other.capabilities_);
+                  }
                 }
-                result.capabilities_.addAll(other.capabilities_);
               }
               this.mergeUnknownFields(other.getUnknownFields());
               return this;
             }
             
+            public final boolean isInitialized() {
+              return true;
+            }
+            
             public Builder mergeFrom(
-                com.google.gwt.dev.protobuf.CodedInputStream input,
-                com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+                com.google.protobuf.CodedInputStream input,
+                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                 throws java.io.IOException {
-              com.google.gwt.dev.protobuf.UnknownFieldSet.Builder unknownFields =
-                com.google.gwt.dev.protobuf.UnknownFieldSet.newBuilder(
+              com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+                com.google.protobuf.UnknownFieldSet.newBuilder(
                   this.getUnknownFields());
               while (true) {
                 int tag = input.readTag();
                 switch (tag) {
                   case 0:
                     this.setUnknownFields(unknownFields.build());
+                    onChanged();
                     return this;
                   default: {
                     if (!parseUnknownField(input, unknownFields,
                                            extensionRegistry, tag)) {
                       this.setUnknownFields(unknownFields.build());
+                      onChanged();
                       return this;
                     }
                     break;
@@ -6834,74 +10294,222 @@ public final class RemoteMessageProto {
               }
             }
             
+            private int bitField0_;
             
             // repeated .com.google.gwt.dev.shell.remoteui.Message.Response.ViewerResponse.CapabilityExchange.Capability capabilities = 2;
+            private java.util.List<com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Capability> capabilities_ =
+              java.util.Collections.emptyList();
+            private void ensureCapabilitiesIsMutable() {
+              if (!((bitField0_ & 0x00000001) == 0x00000001)) {
+                capabilities_ = new java.util.ArrayList<com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Capability>(capabilities_);
+                bitField0_ |= 0x00000001;
+               }
+            }
+            
+            private com.google.protobuf.RepeatedFieldBuilder<
+                com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Capability, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Capability.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.CapabilityOrBuilder> capabilitiesBuilder_;
+            
             public java.util.List<com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Capability> getCapabilitiesList() {
-              return java.util.Collections.unmodifiableList(result.capabilities_);
+              if (capabilitiesBuilder_ == null) {
+                return java.util.Collections.unmodifiableList(capabilities_);
+              } else {
+                return capabilitiesBuilder_.getMessageList();
+              }
             }
             public int getCapabilitiesCount() {
-              return result.getCapabilitiesCount();
+              if (capabilitiesBuilder_ == null) {
+                return capabilities_.size();
+              } else {
+                return capabilitiesBuilder_.getCount();
+              }
             }
             public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Capability getCapabilities(int index) {
-              return result.getCapabilities(index);
+              if (capabilitiesBuilder_ == null) {
+                return capabilities_.get(index);
+              } else {
+                return capabilitiesBuilder_.getMessage(index);
+              }
             }
-            public Builder setCapabilities(int index, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Capability value) {
-              if (value == null) {
-                throw new NullPointerException();
+            public Builder setCapabilities(
+                int index, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Capability value) {
+              if (capabilitiesBuilder_ == null) {
+                if (value == null) {
+                  throw new NullPointerException();
+                }
+                ensureCapabilitiesIsMutable();
+                capabilities_.set(index, value);
+                onChanged();
+              } else {
+                capabilitiesBuilder_.setMessage(index, value);
               }
-              result.capabilities_.set(index, value);
               return this;
             }
-            public Builder setCapabilities(int index, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Capability.Builder builderForValue) {
-              result.capabilities_.set(index, builderForValue.build());
+            public Builder setCapabilities(
+                int index, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Capability.Builder builderForValue) {
+              if (capabilitiesBuilder_ == null) {
+                ensureCapabilitiesIsMutable();
+                capabilities_.set(index, builderForValue.build());
+                onChanged();
+              } else {
+                capabilitiesBuilder_.setMessage(index, builderForValue.build());
+              }
               return this;
             }
             public Builder addCapabilities(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Capability value) {
-              if (value == null) {
-                throw new NullPointerException();
+              if (capabilitiesBuilder_ == null) {
+                if (value == null) {
+                  throw new NullPointerException();
+                }
+                ensureCapabilitiesIsMutable();
+                capabilities_.add(value);
+                onChanged();
+              } else {
+                capabilitiesBuilder_.addMessage(value);
+              }
+              return this;
+            }
+            public Builder addCapabilities(
+                int index, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Capability value) {
+              if (capabilitiesBuilder_ == null) {
+                if (value == null) {
+                  throw new NullPointerException();
+                }
+                ensureCapabilitiesIsMutable();
+                capabilities_.add(index, value);
+                onChanged();
+              } else {
+                capabilitiesBuilder_.addMessage(index, value);
               }
-              if (result.capabilities_.isEmpty()) {
-                result.capabilities_ = new java.util.ArrayList<com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Capability>();
+              return this;
+            }
+            public Builder addCapabilities(
+                com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Capability.Builder builderForValue) {
+              if (capabilitiesBuilder_ == null) {
+                ensureCapabilitiesIsMutable();
+                capabilities_.add(builderForValue.build());
+                onChanged();
+              } else {
+                capabilitiesBuilder_.addMessage(builderForValue.build());
               }
-              result.capabilities_.add(value);
               return this;
             }
-            public Builder addCapabilities(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Capability.Builder builderForValue) {
-              if (result.capabilities_.isEmpty()) {
-                result.capabilities_ = new java.util.ArrayList<com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Capability>();
+            public Builder addCapabilities(
+                int index, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Capability.Builder builderForValue) {
+              if (capabilitiesBuilder_ == null) {
+                ensureCapabilitiesIsMutable();
+                capabilities_.add(index, builderForValue.build());
+                onChanged();
+              } else {
+                capabilitiesBuilder_.addMessage(index, builderForValue.build());
               }
-              result.capabilities_.add(builderForValue.build());
               return this;
             }
             public Builder addAllCapabilities(
                 java.lang.Iterable<? extends com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Capability> values) {
-              if (result.capabilities_.isEmpty()) {
-                result.capabilities_ = new java.util.ArrayList<com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Capability>();
+              if (capabilitiesBuilder_ == null) {
+                ensureCapabilitiesIsMutable();
+                super.addAll(values, capabilities_);
+                onChanged();
+              } else {
+                capabilitiesBuilder_.addAllMessages(values);
               }
-              super.addAll(values, result.capabilities_);
               return this;
             }
             public Builder clearCapabilities() {
-              result.capabilities_ = java.util.Collections.emptyList();
+              if (capabilitiesBuilder_ == null) {
+                capabilities_ = java.util.Collections.emptyList();
+                bitField0_ = (bitField0_ & ~0x00000001);
+                onChanged();
+              } else {
+                capabilitiesBuilder_.clear();
+              }
+              return this;
+            }
+            public Builder removeCapabilities(int index) {
+              if (capabilitiesBuilder_ == null) {
+                ensureCapabilitiesIsMutable();
+                capabilities_.remove(index);
+                onChanged();
+              } else {
+                capabilitiesBuilder_.remove(index);
+              }
               return this;
             }
+            public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Capability.Builder getCapabilitiesBuilder(
+                int index) {
+              return getCapabilitiesFieldBuilder().getBuilder(index);
+            }
+            public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.CapabilityOrBuilder getCapabilitiesOrBuilder(
+                int index) {
+              if (capabilitiesBuilder_ == null) {
+                return capabilities_.get(index);  } else {
+                return capabilitiesBuilder_.getMessageOrBuilder(index);
+              }
+            }
+            public java.util.List<? extends com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.CapabilityOrBuilder> 
+                 getCapabilitiesOrBuilderList() {
+              if (capabilitiesBuilder_ != null) {
+                return capabilitiesBuilder_.getMessageOrBuilderList();
+              } else {
+                return java.util.Collections.unmodifiableList(capabilities_);
+              }
+            }
+            public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Capability.Builder addCapabilitiesBuilder() {
+              return getCapabilitiesFieldBuilder().addBuilder(
+                  com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Capability.getDefaultInstance());
+            }
+            public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Capability.Builder addCapabilitiesBuilder(
+                int index) {
+              return getCapabilitiesFieldBuilder().addBuilder(
+                  index, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Capability.getDefaultInstance());
+            }
+            public java.util.List<com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Capability.Builder> 
+                 getCapabilitiesBuilderList() {
+              return getCapabilitiesFieldBuilder().getBuilderList();
+            }
+            private com.google.protobuf.RepeatedFieldBuilder<
+                com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Capability, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Capability.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.CapabilityOrBuilder> 
+                getCapabilitiesFieldBuilder() {
+              if (capabilitiesBuilder_ == null) {
+                capabilitiesBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
+                    com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Capability, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Capability.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.CapabilityOrBuilder>(
+                        capabilities_,
+                        ((bitField0_ & 0x00000001) == 0x00000001),
+                        getParentForChildren(),
+                        isClean());
+                capabilities_ = null;
+              }
+              return capabilitiesBuilder_;
+            }
+            
+            // @@protoc_insertion_point(builder_scope:com.google.gwt.dev.shell.remoteui.Message.Response.ViewerResponse.CapabilityExchange)
           }
           
           static {
-            com.google.gwt.dev.shell.remoteui.RemoteMessageProto.getDescriptor();
+            defaultInstance = new CapabilityExchange(true);
+            defaultInstance.initFields();
           }
           
-          static {
-            com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internalForceInit();
-          }
+          // @@protoc_insertion_point(class_scope:com.google.gwt.dev.shell.remoteui.Message.Response.ViewerResponse.CapabilityExchange)
         }
         
+        public interface AddLogOrBuilder
+            extends com.google.protobuf.MessageOrBuilder {
+          
+          // required uint32 logHandle = 1;
+          boolean hasLogHandle();
+          int getLogHandle();
+        }
         public static final class AddLog extends
-            com.google.gwt.dev.protobuf.GeneratedMessage {
+            com.google.protobuf.GeneratedMessage
+            implements AddLogOrBuilder {
           // Use AddLog.newBuilder() to construct.
-          private AddLog() {}
+          private AddLog(Builder builder) {
+            super(builder);
+          }
+          private AddLog(boolean noInit) {}
           
-          private static final AddLog defaultInstance = new AddLog();
+          private static final AddLog defaultInstance;
           public static AddLog getDefaultInstance() {
             return defaultInstance;
           }
@@ -6910,32 +10518,48 @@ public final class RemoteMessageProto {
             return defaultInstance;
           }
           
-          public static final com.google.gwt.dev.protobuf.Descriptors.Descriptor
+          public static final com.google.protobuf.Descriptors.Descriptor
               getDescriptor() {
             return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_ViewerResponse_AddLog_descriptor;
           }
           
-          protected com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable
+          protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
               internalGetFieldAccessorTable() {
             return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_ViewerResponse_AddLog_fieldAccessorTable;
           }
           
+          private int bitField0_;
           // required uint32 logHandle = 1;
           public static final int LOGHANDLE_FIELD_NUMBER = 1;
-          private boolean hasLogHandle;
-          private int logHandle_ = 0;
-          public boolean hasLogHandle() { return hasLogHandle; }
-          public int getLogHandle() { return logHandle_; }
+          private int logHandle_;
+          public boolean hasLogHandle() {
+            return ((bitField0_ & 0x00000001) == 0x00000001);
+          }
+          public int getLogHandle() {
+            return logHandle_;
+          }
           
+          private void initFields() {
+            logHandle_ = 0;
+          }
+          private byte memoizedIsInitialized = -1;
           public final boolean isInitialized() {
-            if (!hasLogHandle) return false;
+            byte isInitialized = memoizedIsInitialized;
+            if (isInitialized != -1) return isInitialized == 1;
+            
+            if (!hasLogHandle()) {
+              memoizedIsInitialized = 0;
+              return false;
+            }
+            memoizedIsInitialized = 1;
             return true;
           }
           
-          public void writeTo(com.google.gwt.dev.protobuf.CodedOutputStream output)
+          public void writeTo(com.google.protobuf.CodedOutputStream output)
                               throws java.io.IOException {
-            if (hasLogHandle()) {
-              output.writeUInt32(1, getLogHandle());
+            getSerializedSize();
+            if (((bitField0_ & 0x00000001) == 0x00000001)) {
+              output.writeUInt32(1, logHandle_);
             }
             getUnknownFields().writeTo(output);
           }
@@ -6946,35 +10570,42 @@ public final class RemoteMessageProto {
             if (size != -1) return size;
           
             size = 0;
-            if (hasLogHandle()) {
-              size += com.google.gwt.dev.protobuf.CodedOutputStream
-                .computeUInt32Size(1, getLogHandle());
+            if (((bitField0_ & 0x00000001) == 0x00000001)) {
+              size += com.google.protobuf.CodedOutputStream
+                .computeUInt32Size(1, logHandle_);
             }
             size += getUnknownFields().getSerializedSize();
             memoizedSerializedSize = size;
             return size;
           }
           
+          private static final long serialVersionUID = 0L;
+          @java.lang.Override
+          protected java.lang.Object writeReplace()
+              throws java.io.ObjectStreamException {
+            return super.writeReplace();
+          }
+          
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLog parseFrom(
-              com.google.gwt.dev.protobuf.ByteString data)
-              throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+              com.google.protobuf.ByteString data)
+              throws com.google.protobuf.InvalidProtocolBufferException {
             return newBuilder().mergeFrom(data).buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLog parseFrom(
-              com.google.gwt.dev.protobuf.ByteString data,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
-              throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+              com.google.protobuf.ByteString data,
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+              throws com.google.protobuf.InvalidProtocolBufferException {
             return newBuilder().mergeFrom(data, extensionRegistry)
                      .buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLog parseFrom(byte[] data)
-              throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+              throws com.google.protobuf.InvalidProtocolBufferException {
             return newBuilder().mergeFrom(data).buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLog parseFrom(
               byte[] data,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
-              throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+              throws com.google.protobuf.InvalidProtocolBufferException {
             return newBuilder().mergeFrom(data, extensionRegistry)
                      .buildParsed();
           }
@@ -6984,30 +10615,39 @@ public final class RemoteMessageProto {
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLog parseFrom(
               java.io.InputStream input,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
               throws java.io.IOException {
             return newBuilder().mergeFrom(input, extensionRegistry)
                      .buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLog parseDelimitedFrom(java.io.InputStream input)
               throws java.io.IOException {
-            return newBuilder().mergeDelimitedFrom(input).buildParsed();
+            Builder builder = newBuilder();
+            if (builder.mergeDelimitedFrom(input)) {
+              return builder.buildParsed();
+            } else {
+              return null;
+            }
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLog parseDelimitedFrom(
               java.io.InputStream input,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
               throws java.io.IOException {
-            return newBuilder().mergeDelimitedFrom(input, extensionRegistry)
-                     .buildParsed();
+            Builder builder = newBuilder();
+            if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
+              return builder.buildParsed();
+            } else {
+              return null;
+            }
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLog parseFrom(
-              com.google.gwt.dev.protobuf.CodedInputStream input)
+              com.google.protobuf.CodedInputStream input)
               throws java.io.IOException {
             return newBuilder().mergeFrom(input).buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLog parseFrom(
-              com.google.gwt.dev.protobuf.CodedInputStream input,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+              com.google.protobuf.CodedInputStream input,
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
               throws java.io.IOException {
             return newBuilder().mergeFrom(input, extensionRegistry)
                      .buildParsed();
@@ -7020,37 +10660,54 @@ public final class RemoteMessageProto {
           }
           public Builder toBuilder() { return newBuilder(this); }
           
+          @java.lang.Override
+          protected Builder newBuilderForType(
+              com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+            Builder builder = new Builder(parent);
+            return builder;
+          }
           public static final class Builder extends
-              com.google.gwt.dev.protobuf.GeneratedMessage.Builder<Builder> {
-            private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLog result;
+              com.google.protobuf.GeneratedMessage.Builder<Builder>
+             implements com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogOrBuilder {
+            public static final com.google.protobuf.Descriptors.Descriptor
+                getDescriptor() {
+              return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_ViewerResponse_AddLog_descriptor;
+            }
             
-            // Construct using com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLog.newBuilder()
-            private Builder() {}
+            protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+                internalGetFieldAccessorTable() {
+              return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_ViewerResponse_AddLog_fieldAccessorTable;
+            }
             
-            private static Builder create() {
-              Builder builder = new Builder();
-              builder.result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLog();
-              return builder;
+            // Construct using com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLog.newBuilder()
+            private Builder() {
+              maybeForceBuilderInitialization();
             }
             
-            protected com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLog internalGetResult() {
-              return result;
+            private Builder(BuilderParent parent) {
+              super(parent);
+              maybeForceBuilderInitialization();
+            }
+            private void maybeForceBuilderInitialization() {
+              if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+              }
+            }
+            private static Builder create() {
+              return new Builder();
             }
             
             public Builder clear() {
-              if (result == null) {
-                throw new IllegalStateException(
-                  "Cannot call clear() after build().");
-              }
-              result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLog();
+              super.clear();
+              logHandle_ = 0;
+              bitField0_ = (bitField0_ & ~0x00000001);
               return this;
             }
             
             public Builder clone() {
-              return create().mergeFrom(result);
+              return create().mergeFrom(buildPartial());
             }
             
-            public com.google.gwt.dev.protobuf.Descriptors.Descriptor
+            public com.google.protobuf.Descriptors.Descriptor
                 getDescriptorForType() {
               return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLog.getDescriptor();
             }
@@ -7059,36 +10716,38 @@ public final class RemoteMessageProto {
               return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLog.getDefaultInstance();
             }
             
-            public boolean isInitialized() {
-              return result.isInitialized();
-            }
             public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLog build() {
-              if (result != null && !isInitialized()) {
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLog result = buildPartial();
+              if (!result.isInitialized()) {
                 throw newUninitializedMessageException(result);
               }
-              return buildPartial();
+              return result;
             }
             
             private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLog buildParsed()
-                throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
-              if (!isInitialized()) {
+                throws com.google.protobuf.InvalidProtocolBufferException {
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLog result = buildPartial();
+              if (!result.isInitialized()) {
                 throw newUninitializedMessageException(
                   result).asInvalidProtocolBufferException();
               }
-              return buildPartial();
+              return result;
             }
             
             public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLog buildPartial() {
-              if (result == null) {
-                throw new IllegalStateException(
-                  "build() has already been called on this Builder.");
-              }
-              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLog returnMe = result;
-              result = null;
-              return returnMe;
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLog result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLog(this);
+              int from_bitField0_ = bitField0_;
+              int to_bitField0_ = 0;
+              if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+                to_bitField0_ |= 0x00000001;
+              }
+              result.logHandle_ = logHandle_;
+              result.bitField0_ = to_bitField0_;
+              onBuilt();
+              return result;
             }
             
-            public Builder mergeFrom(com.google.gwt.dev.protobuf.Message other) {
+            public Builder mergeFrom(com.google.protobuf.Message other) {
               if (other instanceof com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLog) {
                 return mergeFrom((com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLog)other);
               } else {
@@ -7106,70 +10765,97 @@ public final class RemoteMessageProto {
               return this;
             }
             
+            public final boolean isInitialized() {
+              if (!hasLogHandle()) {
+                
+                return false;
+              }
+              return true;
+            }
+            
             public Builder mergeFrom(
-                com.google.gwt.dev.protobuf.CodedInputStream input,
-                com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+                com.google.protobuf.CodedInputStream input,
+                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                 throws java.io.IOException {
-              com.google.gwt.dev.protobuf.UnknownFieldSet.Builder unknownFields =
-                com.google.gwt.dev.protobuf.UnknownFieldSet.newBuilder(
+              com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+                com.google.protobuf.UnknownFieldSet.newBuilder(
                   this.getUnknownFields());
               while (true) {
                 int tag = input.readTag();
                 switch (tag) {
                   case 0:
                     this.setUnknownFields(unknownFields.build());
+                    onChanged();
                     return this;
                   default: {
                     if (!parseUnknownField(input, unknownFields,
                                            extensionRegistry, tag)) {
                       this.setUnknownFields(unknownFields.build());
+                      onChanged();
                       return this;
                     }
                     break;
                   }
                   case 8: {
-                    setLogHandle(input.readUInt32());
+                    bitField0_ |= 0x00000001;
+                    logHandle_ = input.readUInt32();
                     break;
                   }
                 }
               }
             }
             
+            private int bitField0_;
             
             // required uint32 logHandle = 1;
+            private int logHandle_ ;
             public boolean hasLogHandle() {
-              return result.hasLogHandle();
+              return ((bitField0_ & 0x00000001) == 0x00000001);
             }
             public int getLogHandle() {
-              return result.getLogHandle();
+              return logHandle_;
             }
             public Builder setLogHandle(int value) {
-              result.hasLogHandle = true;
-              result.logHandle_ = value;
+              bitField0_ |= 0x00000001;
+              logHandle_ = value;
+              onChanged();
               return this;
             }
             public Builder clearLogHandle() {
-              result.hasLogHandle = false;
-              result.logHandle_ = 0;
+              bitField0_ = (bitField0_ & ~0x00000001);
+              logHandle_ = 0;
+              onChanged();
               return this;
             }
+            
+            // @@protoc_insertion_point(builder_scope:com.google.gwt.dev.shell.remoteui.Message.Response.ViewerResponse.AddLog)
           }
           
           static {
-            com.google.gwt.dev.shell.remoteui.RemoteMessageProto.getDescriptor();
+            defaultInstance = new AddLog(true);
+            defaultInstance.initFields();
           }
           
-          static {
-            com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internalForceInit();
-          }
+          // @@protoc_insertion_point(class_scope:com.google.gwt.dev.shell.remoteui.Message.Response.ViewerResponse.AddLog)
         }
         
+        public interface AddLogBranchOrBuilder
+            extends com.google.protobuf.MessageOrBuilder {
+          
+          // required uint32 logHandle = 1;
+          boolean hasLogHandle();
+          int getLogHandle();
+        }
         public static final class AddLogBranch extends
-            com.google.gwt.dev.protobuf.GeneratedMessage {
+            com.google.protobuf.GeneratedMessage
+            implements AddLogBranchOrBuilder {
           // Use AddLogBranch.newBuilder() to construct.
-          private AddLogBranch() {}
+          private AddLogBranch(Builder builder) {
+            super(builder);
+          }
+          private AddLogBranch(boolean noInit) {}
           
-          private static final AddLogBranch defaultInstance = new AddLogBranch();
+          private static final AddLogBranch defaultInstance;
           public static AddLogBranch getDefaultInstance() {
             return defaultInstance;
           }
@@ -7178,32 +10864,48 @@ public final class RemoteMessageProto {
             return defaultInstance;
           }
           
-          public static final com.google.gwt.dev.protobuf.Descriptors.Descriptor
+          public static final com.google.protobuf.Descriptors.Descriptor
               getDescriptor() {
             return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_ViewerResponse_AddLogBranch_descriptor;
           }
           
-          protected com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable
+          protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
               internalGetFieldAccessorTable() {
             return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_ViewerResponse_AddLogBranch_fieldAccessorTable;
           }
           
+          private int bitField0_;
           // required uint32 logHandle = 1;
           public static final int LOGHANDLE_FIELD_NUMBER = 1;
-          private boolean hasLogHandle;
-          private int logHandle_ = 0;
-          public boolean hasLogHandle() { return hasLogHandle; }
-          public int getLogHandle() { return logHandle_; }
+          private int logHandle_;
+          public boolean hasLogHandle() {
+            return ((bitField0_ & 0x00000001) == 0x00000001);
+          }
+          public int getLogHandle() {
+            return logHandle_;
+          }
           
+          private void initFields() {
+            logHandle_ = 0;
+          }
+          private byte memoizedIsInitialized = -1;
           public final boolean isInitialized() {
-            if (!hasLogHandle) return false;
+            byte isInitialized = memoizedIsInitialized;
+            if (isInitialized != -1) return isInitialized == 1;
+            
+            if (!hasLogHandle()) {
+              memoizedIsInitialized = 0;
+              return false;
+            }
+            memoizedIsInitialized = 1;
             return true;
           }
           
-          public void writeTo(com.google.gwt.dev.protobuf.CodedOutputStream output)
+          public void writeTo(com.google.protobuf.CodedOutputStream output)
                               throws java.io.IOException {
-            if (hasLogHandle()) {
-              output.writeUInt32(1, getLogHandle());
+            getSerializedSize();
+            if (((bitField0_ & 0x00000001) == 0x00000001)) {
+              output.writeUInt32(1, logHandle_);
             }
             getUnknownFields().writeTo(output);
           }
@@ -7214,35 +10916,42 @@ public final class RemoteMessageProto {
             if (size != -1) return size;
           
             size = 0;
-            if (hasLogHandle()) {
-              size += com.google.gwt.dev.protobuf.CodedOutputStream
-                .computeUInt32Size(1, getLogHandle());
+            if (((bitField0_ & 0x00000001) == 0x00000001)) {
+              size += com.google.protobuf.CodedOutputStream
+                .computeUInt32Size(1, logHandle_);
             }
             size += getUnknownFields().getSerializedSize();
             memoizedSerializedSize = size;
             return size;
           }
           
+          private static final long serialVersionUID = 0L;
+          @java.lang.Override
+          protected java.lang.Object writeReplace()
+              throws java.io.ObjectStreamException {
+            return super.writeReplace();
+          }
+          
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogBranch parseFrom(
-              com.google.gwt.dev.protobuf.ByteString data)
-              throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+              com.google.protobuf.ByteString data)
+              throws com.google.protobuf.InvalidProtocolBufferException {
             return newBuilder().mergeFrom(data).buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogBranch parseFrom(
-              com.google.gwt.dev.protobuf.ByteString data,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
-              throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+              com.google.protobuf.ByteString data,
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+              throws com.google.protobuf.InvalidProtocolBufferException {
             return newBuilder().mergeFrom(data, extensionRegistry)
                      .buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogBranch parseFrom(byte[] data)
-              throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+              throws com.google.protobuf.InvalidProtocolBufferException {
             return newBuilder().mergeFrom(data).buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogBranch parseFrom(
               byte[] data,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
-              throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+              throws com.google.protobuf.InvalidProtocolBufferException {
             return newBuilder().mergeFrom(data, extensionRegistry)
                      .buildParsed();
           }
@@ -7252,30 +10961,39 @@ public final class RemoteMessageProto {
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogBranch parseFrom(
               java.io.InputStream input,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
               throws java.io.IOException {
             return newBuilder().mergeFrom(input, extensionRegistry)
                      .buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogBranch parseDelimitedFrom(java.io.InputStream input)
               throws java.io.IOException {
-            return newBuilder().mergeDelimitedFrom(input).buildParsed();
+            Builder builder = newBuilder();
+            if (builder.mergeDelimitedFrom(input)) {
+              return builder.buildParsed();
+            } else {
+              return null;
+            }
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogBranch parseDelimitedFrom(
               java.io.InputStream input,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
               throws java.io.IOException {
-            return newBuilder().mergeDelimitedFrom(input, extensionRegistry)
-                     .buildParsed();
+            Builder builder = newBuilder();
+            if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
+              return builder.buildParsed();
+            } else {
+              return null;
+            }
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogBranch parseFrom(
-              com.google.gwt.dev.protobuf.CodedInputStream input)
+              com.google.protobuf.CodedInputStream input)
               throws java.io.IOException {
             return newBuilder().mergeFrom(input).buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogBranch parseFrom(
-              com.google.gwt.dev.protobuf.CodedInputStream input,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+              com.google.protobuf.CodedInputStream input,
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
               throws java.io.IOException {
             return newBuilder().mergeFrom(input, extensionRegistry)
                      .buildParsed();
@@ -7288,37 +11006,54 @@ public final class RemoteMessageProto {
           }
           public Builder toBuilder() { return newBuilder(this); }
           
+          @java.lang.Override
+          protected Builder newBuilderForType(
+              com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+            Builder builder = new Builder(parent);
+            return builder;
+          }
           public static final class Builder extends
-              com.google.gwt.dev.protobuf.GeneratedMessage.Builder<Builder> {
-            private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogBranch result;
+              com.google.protobuf.GeneratedMessage.Builder<Builder>
+             implements com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogBranchOrBuilder {
+            public static final com.google.protobuf.Descriptors.Descriptor
+                getDescriptor() {
+              return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_ViewerResponse_AddLogBranch_descriptor;
+            }
             
-            // Construct using com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogBranch.newBuilder()
-            private Builder() {}
+            protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+                internalGetFieldAccessorTable() {
+              return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_ViewerResponse_AddLogBranch_fieldAccessorTable;
+            }
             
-            private static Builder create() {
-              Builder builder = new Builder();
-              builder.result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogBranch();
-              return builder;
+            // Construct using com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogBranch.newBuilder()
+            private Builder() {
+              maybeForceBuilderInitialization();
             }
             
-            protected com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogBranch internalGetResult() {
-              return result;
+            private Builder(BuilderParent parent) {
+              super(parent);
+              maybeForceBuilderInitialization();
+            }
+            private void maybeForceBuilderInitialization() {
+              if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+              }
+            }
+            private static Builder create() {
+              return new Builder();
             }
             
             public Builder clear() {
-              if (result == null) {
-                throw new IllegalStateException(
-                  "Cannot call clear() after build().");
-              }
-              result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogBranch();
+              super.clear();
+              logHandle_ = 0;
+              bitField0_ = (bitField0_ & ~0x00000001);
               return this;
             }
             
             public Builder clone() {
-              return create().mergeFrom(result);
+              return create().mergeFrom(buildPartial());
             }
             
-            public com.google.gwt.dev.protobuf.Descriptors.Descriptor
+            public com.google.protobuf.Descriptors.Descriptor
                 getDescriptorForType() {
               return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogBranch.getDescriptor();
             }
@@ -7327,36 +11062,38 @@ public final class RemoteMessageProto {
               return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogBranch.getDefaultInstance();
             }
             
-            public boolean isInitialized() {
-              return result.isInitialized();
-            }
             public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogBranch build() {
-              if (result != null && !isInitialized()) {
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogBranch result = buildPartial();
+              if (!result.isInitialized()) {
                 throw newUninitializedMessageException(result);
               }
-              return buildPartial();
+              return result;
             }
             
             private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogBranch buildParsed()
-                throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
-              if (!isInitialized()) {
+                throws com.google.protobuf.InvalidProtocolBufferException {
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogBranch result = buildPartial();
+              if (!result.isInitialized()) {
                 throw newUninitializedMessageException(
                   result).asInvalidProtocolBufferException();
               }
-              return buildPartial();
+              return result;
             }
             
             public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogBranch buildPartial() {
-              if (result == null) {
-                throw new IllegalStateException(
-                  "build() has already been called on this Builder.");
-              }
-              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogBranch returnMe = result;
-              result = null;
-              return returnMe;
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogBranch result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogBranch(this);
+              int from_bitField0_ = bitField0_;
+              int to_bitField0_ = 0;
+              if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+                to_bitField0_ |= 0x00000001;
+              }
+              result.logHandle_ = logHandle_;
+              result.bitField0_ = to_bitField0_;
+              onBuilt();
+              return result;
             }
             
-            public Builder mergeFrom(com.google.gwt.dev.protobuf.Message other) {
+            public Builder mergeFrom(com.google.protobuf.Message other) {
               if (other instanceof com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogBranch) {
                 return mergeFrom((com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogBranch)other);
               } else {
@@ -7374,115 +11111,171 @@ public final class RemoteMessageProto {
               return this;
             }
             
+            public final boolean isInitialized() {
+              if (!hasLogHandle()) {
+                
+                return false;
+              }
+              return true;
+            }
+            
             public Builder mergeFrom(
-                com.google.gwt.dev.protobuf.CodedInputStream input,
-                com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+                com.google.protobuf.CodedInputStream input,
+                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                 throws java.io.IOException {
-              com.google.gwt.dev.protobuf.UnknownFieldSet.Builder unknownFields =
-                com.google.gwt.dev.protobuf.UnknownFieldSet.newBuilder(
+              com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+                com.google.protobuf.UnknownFieldSet.newBuilder(
                   this.getUnknownFields());
               while (true) {
                 int tag = input.readTag();
                 switch (tag) {
                   case 0:
                     this.setUnknownFields(unknownFields.build());
+                    onChanged();
                     return this;
                   default: {
                     if (!parseUnknownField(input, unknownFields,
                                            extensionRegistry, tag)) {
                       this.setUnknownFields(unknownFields.build());
+                      onChanged();
                       return this;
                     }
                     break;
                   }
                   case 8: {
-                    setLogHandle(input.readUInt32());
+                    bitField0_ |= 0x00000001;
+                    logHandle_ = input.readUInt32();
                     break;
                   }
                 }
               }
             }
             
+            private int bitField0_;
             
             // required uint32 logHandle = 1;
+            private int logHandle_ ;
             public boolean hasLogHandle() {
-              return result.hasLogHandle();
+              return ((bitField0_ & 0x00000001) == 0x00000001);
             }
             public int getLogHandle() {
-              return result.getLogHandle();
+              return logHandle_;
             }
             public Builder setLogHandle(int value) {
-              result.hasLogHandle = true;
-              result.logHandle_ = value;
+              bitField0_ |= 0x00000001;
+              logHandle_ = value;
+              onChanged();
               return this;
             }
             public Builder clearLogHandle() {
-              result.hasLogHandle = false;
-              result.logHandle_ = 0;
+              bitField0_ = (bitField0_ & ~0x00000001);
+              logHandle_ = 0;
+              onChanged();
               return this;
             }
+            
+            // @@protoc_insertion_point(builder_scope:com.google.gwt.dev.shell.remoteui.Message.Response.ViewerResponse.AddLogBranch)
           }
           
           static {
-            com.google.gwt.dev.shell.remoteui.RemoteMessageProto.getDescriptor();
+            defaultInstance = new AddLogBranch(true);
+            defaultInstance.initFields();
           }
           
-          static {
-            com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internalForceInit();
-          }
+          // @@protoc_insertion_point(class_scope:com.google.gwt.dev.shell.remoteui.Message.Response.ViewerResponse.AddLogBranch)
         }
         
+        private int bitField0_;
         // optional .com.google.gwt.dev.shell.remoteui.Message.Response.ViewerResponse.ResponseType responseType = 1;
         public static final int RESPONSETYPE_FIELD_NUMBER = 1;
-        private boolean hasResponseType;
-        private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.ResponseType responseType_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.ResponseType.CAPABILITY_EXCHANGE;
-        public boolean hasResponseType() { return hasResponseType; }
-        public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.ResponseType getResponseType() { return responseType_; }
+        private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.ResponseType responseType_;
+        public boolean hasResponseType() {
+          return ((bitField0_ & 0x00000001) == 0x00000001);
+        }
+        public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.ResponseType getResponseType() {
+          return responseType_;
+        }
         
         // optional .com.google.gwt.dev.shell.remoteui.Message.Response.ViewerResponse.CapabilityExchange capabilityExchange = 2;
         public static final int CAPABILITYEXCHANGE_FIELD_NUMBER = 2;
-        private boolean hasCapabilityExchange;
-        private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange capabilityExchange_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.getDefaultInstance();
-        public boolean hasCapabilityExchange() { return hasCapabilityExchange; }
-        public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange getCapabilityExchange() { return capabilityExchange_; }
+        private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange capabilityExchange_;
+        public boolean hasCapabilityExchange() {
+          return ((bitField0_ & 0x00000002) == 0x00000002);
+        }
+        public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange getCapabilityExchange() {
+          return capabilityExchange_;
+        }
+        public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchangeOrBuilder getCapabilityExchangeOrBuilder() {
+          return capabilityExchange_;
+        }
         
         // optional .com.google.gwt.dev.shell.remoteui.Message.Response.ViewerResponse.AddLog addLog = 3;
         public static final int ADDLOG_FIELD_NUMBER = 3;
-        private boolean hasAddLog;
-        private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLog addLog_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLog.getDefaultInstance();
-        public boolean hasAddLog() { return hasAddLog; }
-        public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLog getAddLog() { return addLog_; }
+        private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLog addLog_;
+        public boolean hasAddLog() {
+          return ((bitField0_ & 0x00000004) == 0x00000004);
+        }
+        public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLog getAddLog() {
+          return addLog_;
+        }
+        public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogOrBuilder getAddLogOrBuilder() {
+          return addLog_;
+        }
         
         // optional .com.google.gwt.dev.shell.remoteui.Message.Response.ViewerResponse.AddLogBranch addLogBranch = 4;
         public static final int ADDLOGBRANCH_FIELD_NUMBER = 4;
-        private boolean hasAddLogBranch;
-        private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogBranch addLogBranch_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogBranch.getDefaultInstance();
-        public boolean hasAddLogBranch() { return hasAddLogBranch; }
-        public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogBranch getAddLogBranch() { return addLogBranch_; }
+        private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogBranch addLogBranch_;
+        public boolean hasAddLogBranch() {
+          return ((bitField0_ & 0x00000008) == 0x00000008);
+        }
+        public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogBranch getAddLogBranch() {
+          return addLogBranch_;
+        }
+        public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogBranchOrBuilder getAddLogBranchOrBuilder() {
+          return addLogBranch_;
+        }
         
+        private void initFields() {
+          responseType_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.ResponseType.CAPABILITY_EXCHANGE;
+          capabilityExchange_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.getDefaultInstance();
+          addLog_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLog.getDefaultInstance();
+          addLogBranch_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogBranch.getDefaultInstance();
+        }
+        private byte memoizedIsInitialized = -1;
         public final boolean isInitialized() {
+          byte isInitialized = memoizedIsInitialized;
+          if (isInitialized != -1) return isInitialized == 1;
+          
           if (hasAddLog()) {
-            if (!getAddLog().isInitialized()) return false;
+            if (!getAddLog().isInitialized()) {
+              memoizedIsInitialized = 0;
+              return false;
+            }
           }
           if (hasAddLogBranch()) {
-            if (!getAddLogBranch().isInitialized()) return false;
+            if (!getAddLogBranch().isInitialized()) {
+              memoizedIsInitialized = 0;
+              return false;
+            }
           }
+          memoizedIsInitialized = 1;
           return true;
         }
         
-        public void writeTo(com.google.gwt.dev.protobuf.CodedOutputStream output)
+        public void writeTo(com.google.protobuf.CodedOutputStream output)
                             throws java.io.IOException {
-          if (hasResponseType()) {
-            output.writeEnum(1, getResponseType().getNumber());
+          getSerializedSize();
+          if (((bitField0_ & 0x00000001) == 0x00000001)) {
+            output.writeEnum(1, responseType_.getNumber());
           }
-          if (hasCapabilityExchange()) {
-            output.writeMessage(2, getCapabilityExchange());
+          if (((bitField0_ & 0x00000002) == 0x00000002)) {
+            output.writeMessage(2, capabilityExchange_);
           }
-          if (hasAddLog()) {
-            output.writeMessage(3, getAddLog());
+          if (((bitField0_ & 0x00000004) == 0x00000004)) {
+            output.writeMessage(3, addLog_);
           }
-          if (hasAddLogBranch()) {
-            output.writeMessage(4, getAddLogBranch());
+          if (((bitField0_ & 0x00000008) == 0x00000008)) {
+            output.writeMessage(4, addLogBranch_);
           }
           getUnknownFields().writeTo(output);
         }
@@ -7493,47 +11286,54 @@ public final class RemoteMessageProto {
           if (size != -1) return size;
         
           size = 0;
-          if (hasResponseType()) {
-            size += com.google.gwt.dev.protobuf.CodedOutputStream
-              .computeEnumSize(1, getResponseType().getNumber());
-          }
-          if (hasCapabilityExchange()) {
-            size += com.google.gwt.dev.protobuf.CodedOutputStream
-              .computeMessageSize(2, getCapabilityExchange());
-          }
-          if (hasAddLog()) {
-            size += com.google.gwt.dev.protobuf.CodedOutputStream
-              .computeMessageSize(3, getAddLog());
-          }
-          if (hasAddLogBranch()) {
-            size += com.google.gwt.dev.protobuf.CodedOutputStream
-              .computeMessageSize(4, getAddLogBranch());
+          if (((bitField0_ & 0x00000001) == 0x00000001)) {
+            size += com.google.protobuf.CodedOutputStream
+              .computeEnumSize(1, responseType_.getNumber());
+          }
+          if (((bitField0_ & 0x00000002) == 0x00000002)) {
+            size += com.google.protobuf.CodedOutputStream
+              .computeMessageSize(2, capabilityExchange_);
+          }
+          if (((bitField0_ & 0x00000004) == 0x00000004)) {
+            size += com.google.protobuf.CodedOutputStream
+              .computeMessageSize(3, addLog_);
+          }
+          if (((bitField0_ & 0x00000008) == 0x00000008)) {
+            size += com.google.protobuf.CodedOutputStream
+              .computeMessageSize(4, addLogBranch_);
           }
           size += getUnknownFields().getSerializedSize();
           memoizedSerializedSize = size;
           return size;
         }
         
+        private static final long serialVersionUID = 0L;
+        @java.lang.Override
+        protected java.lang.Object writeReplace()
+            throws java.io.ObjectStreamException {
+          return super.writeReplace();
+        }
+        
         public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse parseFrom(
-            com.google.gwt.dev.protobuf.ByteString data)
-            throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+            com.google.protobuf.ByteString data)
+            throws com.google.protobuf.InvalidProtocolBufferException {
           return newBuilder().mergeFrom(data).buildParsed();
         }
         public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse parseFrom(
-            com.google.gwt.dev.protobuf.ByteString data,
-            com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
-            throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+            com.google.protobuf.ByteString data,
+            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+            throws com.google.protobuf.InvalidProtocolBufferException {
           return newBuilder().mergeFrom(data, extensionRegistry)
                    .buildParsed();
         }
         public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse parseFrom(byte[] data)
-            throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+            throws com.google.protobuf.InvalidProtocolBufferException {
           return newBuilder().mergeFrom(data).buildParsed();
         }
         public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse parseFrom(
             byte[] data,
-            com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
-            throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+            throws com.google.protobuf.InvalidProtocolBufferException {
           return newBuilder().mergeFrom(data, extensionRegistry)
                    .buildParsed();
         }
@@ -7543,30 +11343,39 @@ public final class RemoteMessageProto {
         }
         public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse parseFrom(
             java.io.InputStream input,
-            com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws java.io.IOException {
           return newBuilder().mergeFrom(input, extensionRegistry)
                    .buildParsed();
         }
         public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse parseDelimitedFrom(java.io.InputStream input)
             throws java.io.IOException {
-          return newBuilder().mergeDelimitedFrom(input).buildParsed();
+          Builder builder = newBuilder();
+          if (builder.mergeDelimitedFrom(input)) {
+            return builder.buildParsed();
+          } else {
+            return null;
+          }
         }
         public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse parseDelimitedFrom(
             java.io.InputStream input,
-            com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws java.io.IOException {
-          return newBuilder().mergeDelimitedFrom(input, extensionRegistry)
-                   .buildParsed();
+          Builder builder = newBuilder();
+          if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
+            return builder.buildParsed();
+          } else {
+            return null;
+          }
         }
         public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse parseFrom(
-            com.google.gwt.dev.protobuf.CodedInputStream input)
+            com.google.protobuf.CodedInputStream input)
             throws java.io.IOException {
           return newBuilder().mergeFrom(input).buildParsed();
         }
         public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse parseFrom(
-            com.google.gwt.dev.protobuf.CodedInputStream input,
-            com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+            com.google.protobuf.CodedInputStream input,
+            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws java.io.IOException {
           return newBuilder().mergeFrom(input, extensionRegistry)
                    .buildParsed();
@@ -7579,37 +11388,75 @@ public final class RemoteMessageProto {
         }
         public Builder toBuilder() { return newBuilder(this); }
         
+        @java.lang.Override
+        protected Builder newBuilderForType(
+            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+          Builder builder = new Builder(parent);
+          return builder;
+        }
         public static final class Builder extends
-            com.google.gwt.dev.protobuf.GeneratedMessage.Builder<Builder> {
-          private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse result;
+            com.google.protobuf.GeneratedMessage.Builder<Builder>
+           implements com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponseOrBuilder {
+          public static final com.google.protobuf.Descriptors.Descriptor
+              getDescriptor() {
+            return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_ViewerResponse_descriptor;
+          }
           
-          // Construct using com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.newBuilder()
-          private Builder() {}
+          protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+              internalGetFieldAccessorTable() {
+            return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_ViewerResponse_fieldAccessorTable;
+          }
           
-          private static Builder create() {
-            Builder builder = new Builder();
-            builder.result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse();
-            return builder;
+          // Construct using com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.newBuilder()
+          private Builder() {
+            maybeForceBuilderInitialization();
           }
           
-          protected com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse internalGetResult() {
-            return result;
+          private Builder(BuilderParent parent) {
+            super(parent);
+            maybeForceBuilderInitialization();
+          }
+          private void maybeForceBuilderInitialization() {
+            if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+              getCapabilityExchangeFieldBuilder();
+              getAddLogFieldBuilder();
+              getAddLogBranchFieldBuilder();
+            }
+          }
+          private static Builder create() {
+            return new Builder();
           }
           
           public Builder clear() {
-            if (result == null) {
-              throw new IllegalStateException(
-                "Cannot call clear() after build().");
+            super.clear();
+            responseType_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.ResponseType.CAPABILITY_EXCHANGE;
+            bitField0_ = (bitField0_ & ~0x00000001);
+            if (capabilityExchangeBuilder_ == null) {
+              capabilityExchange_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.getDefaultInstance();
+            } else {
+              capabilityExchangeBuilder_.clear();
+            }
+            bitField0_ = (bitField0_ & ~0x00000002);
+            if (addLogBuilder_ == null) {
+              addLog_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLog.getDefaultInstance();
+            } else {
+              addLogBuilder_.clear();
+            }
+            bitField0_ = (bitField0_ & ~0x00000004);
+            if (addLogBranchBuilder_ == null) {
+              addLogBranch_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogBranch.getDefaultInstance();
+            } else {
+              addLogBranchBuilder_.clear();
             }
-            result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse();
+            bitField0_ = (bitField0_ & ~0x00000008);
             return this;
           }
           
           public Builder clone() {
-            return create().mergeFrom(result);
+            return create().mergeFrom(buildPartial());
           }
           
-          public com.google.gwt.dev.protobuf.Descriptors.Descriptor
+          public com.google.protobuf.Descriptors.Descriptor
               getDescriptorForType() {
             return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.getDescriptor();
           }
@@ -7618,36 +11465,62 @@ public final class RemoteMessageProto {
             return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.getDefaultInstance();
           }
           
-          public boolean isInitialized() {
-            return result.isInitialized();
-          }
           public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse build() {
-            if (result != null && !isInitialized()) {
+            com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse result = buildPartial();
+            if (!result.isInitialized()) {
               throw newUninitializedMessageException(result);
             }
-            return buildPartial();
+            return result;
           }
           
           private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse buildParsed()
-              throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
-            if (!isInitialized()) {
+              throws com.google.protobuf.InvalidProtocolBufferException {
+            com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse result = buildPartial();
+            if (!result.isInitialized()) {
               throw newUninitializedMessageException(
                 result).asInvalidProtocolBufferException();
             }
-            return buildPartial();
+            return result;
           }
           
           public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse buildPartial() {
-            if (result == null) {
-              throw new IllegalStateException(
-                "build() has already been called on this Builder.");
+            com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse(this);
+            int from_bitField0_ = bitField0_;
+            int to_bitField0_ = 0;
+            if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+              to_bitField0_ |= 0x00000001;
+            }
+            result.responseType_ = responseType_;
+            if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
+              to_bitField0_ |= 0x00000002;
+            }
+            if (capabilityExchangeBuilder_ == null) {
+              result.capabilityExchange_ = capabilityExchange_;
+            } else {
+              result.capabilityExchange_ = capabilityExchangeBuilder_.build();
+            }
+            if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
+              to_bitField0_ |= 0x00000004;
+            }
+            if (addLogBuilder_ == null) {
+              result.addLog_ = addLog_;
+            } else {
+              result.addLog_ = addLogBuilder_.build();
+            }
+            if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
+              to_bitField0_ |= 0x00000008;
+            }
+            if (addLogBranchBuilder_ == null) {
+              result.addLogBranch_ = addLogBranch_;
+            } else {
+              result.addLogBranch_ = addLogBranchBuilder_.build();
             }
-            com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse returnMe = result;
-            result = null;
-            return returnMe;
+            result.bitField0_ = to_bitField0_;
+            onBuilt();
+            return result;
           }
           
-          public Builder mergeFrom(com.google.gwt.dev.protobuf.Message other) {
+          public Builder mergeFrom(com.google.protobuf.Message other) {
             if (other instanceof com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse) {
               return mergeFrom((com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse)other);
             } else {
@@ -7674,23 +11547,41 @@ public final class RemoteMessageProto {
             return this;
           }
           
+          public final boolean isInitialized() {
+            if (hasAddLog()) {
+              if (!getAddLog().isInitialized()) {
+                
+                return false;
+              }
+            }
+            if (hasAddLogBranch()) {
+              if (!getAddLogBranch().isInitialized()) {
+                
+                return false;
+              }
+            }
+            return true;
+          }
+          
           public Builder mergeFrom(
-              com.google.gwt.dev.protobuf.CodedInputStream input,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+              com.google.protobuf.CodedInputStream input,
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
               throws java.io.IOException {
-            com.google.gwt.dev.protobuf.UnknownFieldSet.Builder unknownFields =
-              com.google.gwt.dev.protobuf.UnknownFieldSet.newBuilder(
+            com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+              com.google.protobuf.UnknownFieldSet.newBuilder(
                 this.getUnknownFields());
             while (true) {
               int tag = input.readTag();
               switch (tag) {
                 case 0:
                   this.setUnknownFields(unknownFields.build());
+                  onChanged();
                   return this;
                 default: {
                   if (!parseUnknownField(input, unknownFields,
                                          extensionRegistry, tag)) {
                     this.setUnknownFields(unknownFields.build());
+                    onChanged();
                     return this;
                   }
                   break;
@@ -7701,7 +11592,8 @@ public final class RemoteMessageProto {
                   if (value == null) {
                     unknownFields.mergeVarintField(1, rawValue);
                   } else {
-                    setResponseType(value);
+                    bitField0_ |= 0x00000001;
+                    responseType_ = value;
                   }
                   break;
                 }
@@ -7736,155 +11628,340 @@ public final class RemoteMessageProto {
             }
           }
           
+          private int bitField0_;
           
           // optional .com.google.gwt.dev.shell.remoteui.Message.Response.ViewerResponse.ResponseType responseType = 1;
+          private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.ResponseType responseType_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.ResponseType.CAPABILITY_EXCHANGE;
           public boolean hasResponseType() {
-            return result.hasResponseType();
+            return ((bitField0_ & 0x00000001) == 0x00000001);
           }
           public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.ResponseType getResponseType() {
-            return result.getResponseType();
+            return responseType_;
           }
           public Builder setResponseType(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.ResponseType value) {
             if (value == null) {
               throw new NullPointerException();
             }
-            result.hasResponseType = true;
-            result.responseType_ = value;
+            bitField0_ |= 0x00000001;
+            responseType_ = value;
+            onChanged();
             return this;
           }
           public Builder clearResponseType() {
-            result.hasResponseType = false;
-            result.responseType_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.ResponseType.CAPABILITY_EXCHANGE;
+            bitField0_ = (bitField0_ & ~0x00000001);
+            responseType_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.ResponseType.CAPABILITY_EXCHANGE;
+            onChanged();
             return this;
           }
           
           // optional .com.google.gwt.dev.shell.remoteui.Message.Response.ViewerResponse.CapabilityExchange capabilityExchange = 2;
+          private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange capabilityExchange_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.getDefaultInstance();
+          private com.google.protobuf.SingleFieldBuilder<
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchangeOrBuilder> capabilityExchangeBuilder_;
           public boolean hasCapabilityExchange() {
-            return result.hasCapabilityExchange();
+            return ((bitField0_ & 0x00000002) == 0x00000002);
           }
           public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange getCapabilityExchange() {
-            return result.getCapabilityExchange();
+            if (capabilityExchangeBuilder_ == null) {
+              return capabilityExchange_;
+            } else {
+              return capabilityExchangeBuilder_.getMessage();
+            }
           }
           public Builder setCapabilityExchange(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange value) {
-            if (value == null) {
-              throw new NullPointerException();
+            if (capabilityExchangeBuilder_ == null) {
+              if (value == null) {
+                throw new NullPointerException();
+              }
+              capabilityExchange_ = value;
+              onChanged();
+            } else {
+              capabilityExchangeBuilder_.setMessage(value);
             }
-            result.hasCapabilityExchange = true;
-            result.capabilityExchange_ = value;
+            bitField0_ |= 0x00000002;
             return this;
           }
-          public Builder setCapabilityExchange(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Builder builderForValue) {
-            result.hasCapabilityExchange = true;
-            result.capabilityExchange_ = builderForValue.build();
+          public Builder setCapabilityExchange(
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Builder builderForValue) {
+            if (capabilityExchangeBuilder_ == null) {
+              capabilityExchange_ = builderForValue.build();
+              onChanged();
+            } else {
+              capabilityExchangeBuilder_.setMessage(builderForValue.build());
+            }
+            bitField0_ |= 0x00000002;
             return this;
           }
           public Builder mergeCapabilityExchange(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange value) {
-            if (result.hasCapabilityExchange() &&
-                result.capabilityExchange_ != com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.getDefaultInstance()) {
-              result.capabilityExchange_ =
-                com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.newBuilder(result.capabilityExchange_).mergeFrom(value).buildPartial();
+            if (capabilityExchangeBuilder_ == null) {
+              if (((bitField0_ & 0x00000002) == 0x00000002) &&
+                  capabilityExchange_ != com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.getDefaultInstance()) {
+                capabilityExchange_ =
+                  com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.newBuilder(capabilityExchange_).mergeFrom(value).buildPartial();
+              } else {
+                capabilityExchange_ = value;
+              }
+              onChanged();
             } else {
-              result.capabilityExchange_ = value;
+              capabilityExchangeBuilder_.mergeFrom(value);
             }
-            result.hasCapabilityExchange = true;
+            bitField0_ |= 0x00000002;
             return this;
           }
           public Builder clearCapabilityExchange() {
-            result.hasCapabilityExchange = false;
-            result.capabilityExchange_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.getDefaultInstance();
+            if (capabilityExchangeBuilder_ == null) {
+              capabilityExchange_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.getDefaultInstance();
+              onChanged();
+            } else {
+              capabilityExchangeBuilder_.clear();
+            }
+            bitField0_ = (bitField0_ & ~0x00000002);
             return this;
           }
+          public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Builder getCapabilityExchangeBuilder() {
+            bitField0_ |= 0x00000002;
+            onChanged();
+            return getCapabilityExchangeFieldBuilder().getBuilder();
+          }
+          public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchangeOrBuilder getCapabilityExchangeOrBuilder() {
+            if (capabilityExchangeBuilder_ != null) {
+              return capabilityExchangeBuilder_.getMessageOrBuilder();
+            } else {
+              return capabilityExchange_;
+            }
+          }
+          private com.google.protobuf.SingleFieldBuilder<
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchangeOrBuilder> 
+              getCapabilityExchangeFieldBuilder() {
+            if (capabilityExchangeBuilder_ == null) {
+              capabilityExchangeBuilder_ = new com.google.protobuf.SingleFieldBuilder<
+                  com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchangeOrBuilder>(
+                      capabilityExchange_,
+                      getParentForChildren(),
+                      isClean());
+              capabilityExchange_ = null;
+            }
+            return capabilityExchangeBuilder_;
+          }
           
           // optional .com.google.gwt.dev.shell.remoteui.Message.Response.ViewerResponse.AddLog addLog = 3;
+          private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLog addLog_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLog.getDefaultInstance();
+          private com.google.protobuf.SingleFieldBuilder<
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLog, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLog.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogOrBuilder> addLogBuilder_;
           public boolean hasAddLog() {
-            return result.hasAddLog();
+            return ((bitField0_ & 0x00000004) == 0x00000004);
           }
           public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLog getAddLog() {
-            return result.getAddLog();
+            if (addLogBuilder_ == null) {
+              return addLog_;
+            } else {
+              return addLogBuilder_.getMessage();
+            }
           }
           public Builder setAddLog(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLog value) {
-            if (value == null) {
-              throw new NullPointerException();
+            if (addLogBuilder_ == null) {
+              if (value == null) {
+                throw new NullPointerException();
+              }
+              addLog_ = value;
+              onChanged();
+            } else {
+              addLogBuilder_.setMessage(value);
             }
-            result.hasAddLog = true;
-            result.addLog_ = value;
+            bitField0_ |= 0x00000004;
             return this;
           }
-          public Builder setAddLog(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLog.Builder builderForValue) {
-            result.hasAddLog = true;
-            result.addLog_ = builderForValue.build();
+          public Builder setAddLog(
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLog.Builder builderForValue) {
+            if (addLogBuilder_ == null) {
+              addLog_ = builderForValue.build();
+              onChanged();
+            } else {
+              addLogBuilder_.setMessage(builderForValue.build());
+            }
+            bitField0_ |= 0x00000004;
             return this;
           }
           public Builder mergeAddLog(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLog value) {
-            if (result.hasAddLog() &&
-                result.addLog_ != com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLog.getDefaultInstance()) {
-              result.addLog_ =
-                com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLog.newBuilder(result.addLog_).mergeFrom(value).buildPartial();
+            if (addLogBuilder_ == null) {
+              if (((bitField0_ & 0x00000004) == 0x00000004) &&
+                  addLog_ != com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLog.getDefaultInstance()) {
+                addLog_ =
+                  com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLog.newBuilder(addLog_).mergeFrom(value).buildPartial();
+              } else {
+                addLog_ = value;
+              }
+              onChanged();
             } else {
-              result.addLog_ = value;
+              addLogBuilder_.mergeFrom(value);
             }
-            result.hasAddLog = true;
+            bitField0_ |= 0x00000004;
             return this;
           }
           public Builder clearAddLog() {
-            result.hasAddLog = false;
-            result.addLog_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLog.getDefaultInstance();
+            if (addLogBuilder_ == null) {
+              addLog_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLog.getDefaultInstance();
+              onChanged();
+            } else {
+              addLogBuilder_.clear();
+            }
+            bitField0_ = (bitField0_ & ~0x00000004);
             return this;
           }
+          public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLog.Builder getAddLogBuilder() {
+            bitField0_ |= 0x00000004;
+            onChanged();
+            return getAddLogFieldBuilder().getBuilder();
+          }
+          public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogOrBuilder getAddLogOrBuilder() {
+            if (addLogBuilder_ != null) {
+              return addLogBuilder_.getMessageOrBuilder();
+            } else {
+              return addLog_;
+            }
+          }
+          private com.google.protobuf.SingleFieldBuilder<
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLog, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLog.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogOrBuilder> 
+              getAddLogFieldBuilder() {
+            if (addLogBuilder_ == null) {
+              addLogBuilder_ = new com.google.protobuf.SingleFieldBuilder<
+                  com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLog, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLog.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogOrBuilder>(
+                      addLog_,
+                      getParentForChildren(),
+                      isClean());
+              addLog_ = null;
+            }
+            return addLogBuilder_;
+          }
           
           // optional .com.google.gwt.dev.shell.remoteui.Message.Response.ViewerResponse.AddLogBranch addLogBranch = 4;
+          private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogBranch addLogBranch_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogBranch.getDefaultInstance();
+          private com.google.protobuf.SingleFieldBuilder<
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogBranch, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogBranch.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogBranchOrBuilder> addLogBranchBuilder_;
           public boolean hasAddLogBranch() {
-            return result.hasAddLogBranch();
+            return ((bitField0_ & 0x00000008) == 0x00000008);
           }
           public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogBranch getAddLogBranch() {
-            return result.getAddLogBranch();
+            if (addLogBranchBuilder_ == null) {
+              return addLogBranch_;
+            } else {
+              return addLogBranchBuilder_.getMessage();
+            }
           }
           public Builder setAddLogBranch(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogBranch value) {
-            if (value == null) {
-              throw new NullPointerException();
+            if (addLogBranchBuilder_ == null) {
+              if (value == null) {
+                throw new NullPointerException();
+              }
+              addLogBranch_ = value;
+              onChanged();
+            } else {
+              addLogBranchBuilder_.setMessage(value);
             }
-            result.hasAddLogBranch = true;
-            result.addLogBranch_ = value;
+            bitField0_ |= 0x00000008;
             return this;
           }
-          public Builder setAddLogBranch(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogBranch.Builder builderForValue) {
-            result.hasAddLogBranch = true;
-            result.addLogBranch_ = builderForValue.build();
+          public Builder setAddLogBranch(
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogBranch.Builder builderForValue) {
+            if (addLogBranchBuilder_ == null) {
+              addLogBranch_ = builderForValue.build();
+              onChanged();
+            } else {
+              addLogBranchBuilder_.setMessage(builderForValue.build());
+            }
+            bitField0_ |= 0x00000008;
             return this;
           }
           public Builder mergeAddLogBranch(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogBranch value) {
-            if (result.hasAddLogBranch() &&
-                result.addLogBranch_ != com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogBranch.getDefaultInstance()) {
-              result.addLogBranch_ =
-                com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogBranch.newBuilder(result.addLogBranch_).mergeFrom(value).buildPartial();
+            if (addLogBranchBuilder_ == null) {
+              if (((bitField0_ & 0x00000008) == 0x00000008) &&
+                  addLogBranch_ != com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogBranch.getDefaultInstance()) {
+                addLogBranch_ =
+                  com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogBranch.newBuilder(addLogBranch_).mergeFrom(value).buildPartial();
+              } else {
+                addLogBranch_ = value;
+              }
+              onChanged();
             } else {
-              result.addLogBranch_ = value;
+              addLogBranchBuilder_.mergeFrom(value);
             }
-            result.hasAddLogBranch = true;
+            bitField0_ |= 0x00000008;
             return this;
           }
           public Builder clearAddLogBranch() {
-            result.hasAddLogBranch = false;
-            result.addLogBranch_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogBranch.getDefaultInstance();
+            if (addLogBranchBuilder_ == null) {
+              addLogBranch_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogBranch.getDefaultInstance();
+              onChanged();
+            } else {
+              addLogBranchBuilder_.clear();
+            }
+            bitField0_ = (bitField0_ & ~0x00000008);
             return this;
           }
+          public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogBranch.Builder getAddLogBranchBuilder() {
+            bitField0_ |= 0x00000008;
+            onChanged();
+            return getAddLogBranchFieldBuilder().getBuilder();
+          }
+          public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogBranchOrBuilder getAddLogBranchOrBuilder() {
+            if (addLogBranchBuilder_ != null) {
+              return addLogBranchBuilder_.getMessageOrBuilder();
+            } else {
+              return addLogBranch_;
+            }
+          }
+          private com.google.protobuf.SingleFieldBuilder<
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogBranch, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogBranch.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogBranchOrBuilder> 
+              getAddLogBranchFieldBuilder() {
+            if (addLogBranchBuilder_ == null) {
+              addLogBranchBuilder_ = new com.google.protobuf.SingleFieldBuilder<
+                  com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogBranch, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogBranch.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogBranchOrBuilder>(
+                      addLogBranch_,
+                      getParentForChildren(),
+                      isClean());
+              addLogBranch_ = null;
+            }
+            return addLogBranchBuilder_;
+          }
+          
+          // @@protoc_insertion_point(builder_scope:com.google.gwt.dev.shell.remoteui.Message.Response.ViewerResponse)
         }
         
         static {
-          com.google.gwt.dev.shell.remoteui.RemoteMessageProto.getDescriptor();
+          defaultInstance = new ViewerResponse(true);
+          defaultInstance.initFields();
         }
         
-        static {
-          com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internalForceInit();
-        }
+        // @@protoc_insertion_point(class_scope:com.google.gwt.dev.shell.remoteui.Message.Response.ViewerResponse)
       }
       
+      public interface DevModeResponseOrBuilder
+          extends com.google.protobuf.MessageOrBuilder {
+        
+        // optional .com.google.gwt.dev.shell.remoteui.Message.Response.DevModeResponse.ResponseType responseType = 1;
+        boolean hasResponseType();
+        com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.ResponseType getResponseType();
+        
+        // optional .com.google.gwt.dev.shell.remoteui.Message.Response.DevModeResponse.CapabilityExchange capabilityExchange = 2;
+        boolean hasCapabilityExchange();
+        com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange getCapabilityExchange();
+        com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchangeOrBuilder getCapabilityExchangeOrBuilder();
+        
+        // optional .com.google.gwt.dev.shell.remoteui.Message.Response.DevModeResponse.RestartWebServer restartWebServer = 3;
+        boolean hasRestartWebServer();
+        com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.RestartWebServer getRestartWebServer();
+        com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.RestartWebServerOrBuilder getRestartWebServerOrBuilder();
+      }
       public static final class DevModeResponse extends
-          com.google.gwt.dev.protobuf.GeneratedMessage {
+          com.google.protobuf.GeneratedMessage
+          implements DevModeResponseOrBuilder {
         // Use DevModeResponse.newBuilder() to construct.
-        private DevModeResponse() {}
+        private DevModeResponse(Builder builder) {
+          super(builder);
+        }
+        private DevModeResponse(boolean noInit) {}
         
-        private static final DevModeResponse defaultInstance = new DevModeResponse();
+        private static final DevModeResponse defaultInstance;
         public static DevModeResponse getDefaultInstance() {
           return defaultInstance;
         }
@@ -7893,22 +11970,25 @@ public final class RemoteMessageProto {
           return defaultInstance;
         }
         
-        public static final com.google.gwt.dev.protobuf.Descriptors.Descriptor
+        public static final com.google.protobuf.Descriptors.Descriptor
             getDescriptor() {
           return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_DevModeResponse_descriptor;
         }
         
-        protected com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable
+        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
             internalGetFieldAccessorTable() {
           return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_DevModeResponse_fieldAccessorTable;
         }
         
         public enum ResponseType
-            implements com.google.gwt.dev.protobuf.ProtocolMessageEnum {
+            implements com.google.protobuf.ProtocolMessageEnum {
           CAPABILITY_EXCHANGE(0, 0),
           RESTART_WEB_SERVER(1, 1),
           ;
           
+          public static final int CAPABILITY_EXCHANGE_VALUE = 0;
+          public static final int RESTART_WEB_SERVER_VALUE = 1;
+          
           
           public final int getNumber() { return value; }
           
@@ -7920,27 +12000,27 @@ public final class RemoteMessageProto {
             }
           }
           
-          public static com.google.gwt.dev.protobuf.Internal.EnumLiteMap<ResponseType>
+          public static com.google.protobuf.Internal.EnumLiteMap<ResponseType>
               internalGetValueMap() {
             return internalValueMap;
           }
-          private static com.google.gwt.dev.protobuf.Internal.EnumLiteMap<ResponseType>
+          private static com.google.protobuf.Internal.EnumLiteMap<ResponseType>
               internalValueMap =
-                new com.google.gwt.dev.protobuf.Internal.EnumLiteMap<ResponseType>() {
+                new com.google.protobuf.Internal.EnumLiteMap<ResponseType>() {
                   public ResponseType findValueByNumber(int number) {
-                    return ResponseType.valueOf(number)
-          ;        }
+                    return ResponseType.valueOf(number);
+                  }
                 };
           
-          public final com.google.gwt.dev.protobuf.Descriptors.EnumValueDescriptor
+          public final com.google.protobuf.Descriptors.EnumValueDescriptor
               getValueDescriptor() {
             return getDescriptor().getValues().get(index);
           }
-          public final com.google.gwt.dev.protobuf.Descriptors.EnumDescriptor
+          public final com.google.protobuf.Descriptors.EnumDescriptor
               getDescriptorForType() {
             return getDescriptor();
           }
-          public static final com.google.gwt.dev.protobuf.Descriptors.EnumDescriptor
+          public static final com.google.protobuf.Descriptors.EnumDescriptor
               getDescriptor() {
             return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.getDescriptor().getEnumTypes().get(0);
           }
@@ -7948,32 +12028,50 @@ public final class RemoteMessageProto {
           private static final ResponseType[] VALUES = {
             CAPABILITY_EXCHANGE, RESTART_WEB_SERVER, 
           };
+          
           public static ResponseType valueOf(
-              com.google.gwt.dev.protobuf.Descriptors.EnumValueDescriptor desc) {
+              com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
             if (desc.getType() != getDescriptor()) {
               throw new java.lang.IllegalArgumentException(
                 "EnumValueDescriptor is not for this type.");
             }
             return VALUES[desc.getIndex()];
           }
+          
           private final int index;
           private final int value;
+          
           private ResponseType(int index, int value) {
             this.index = index;
             this.value = value;
           }
           
-          static {
-            com.google.gwt.dev.shell.remoteui.RemoteMessageProto.getDescriptor();
-          }
+          // @@protoc_insertion_point(enum_scope:com.google.gwt.dev.shell.remoteui.Message.Response.DevModeResponse.ResponseType)
         }
         
+        public interface CapabilityExchangeOrBuilder
+            extends com.google.protobuf.MessageOrBuilder {
+          
+          // repeated .com.google.gwt.dev.shell.remoteui.Message.Response.DevModeResponse.CapabilityExchange.Capability capabilities = 2;
+          java.util.List<com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Capability> 
+              getCapabilitiesList();
+          com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Capability getCapabilities(int index);
+          int getCapabilitiesCount();
+          java.util.List<? extends com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.CapabilityOrBuilder> 
+              getCapabilitiesOrBuilderList();
+          com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.CapabilityOrBuilder getCapabilitiesOrBuilder(
+              int index);
+        }
         public static final class CapabilityExchange extends
-            com.google.gwt.dev.protobuf.GeneratedMessage {
+            com.google.protobuf.GeneratedMessage
+            implements CapabilityExchangeOrBuilder {
           // Use CapabilityExchange.newBuilder() to construct.
-          private CapabilityExchange() {}
+          private CapabilityExchange(Builder builder) {
+            super(builder);
+          }
+          private CapabilityExchange(boolean noInit) {}
           
-          private static final CapabilityExchange defaultInstance = new CapabilityExchange();
+          private static final CapabilityExchange defaultInstance;
           public static CapabilityExchange getDefaultInstance() {
             return defaultInstance;
           }
@@ -7982,22 +12080,33 @@ public final class RemoteMessageProto {
             return defaultInstance;
           }
           
-          public static final com.google.gwt.dev.protobuf.Descriptors.Descriptor
+          public static final com.google.protobuf.Descriptors.Descriptor
               getDescriptor() {
             return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_DevModeResponse_CapabilityExchange_descriptor;
           }
           
-          protected com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable
+          protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
               internalGetFieldAccessorTable() {
             return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_DevModeResponse_CapabilityExchange_fieldAccessorTable;
           }
           
+          public interface CapabilityOrBuilder
+              extends com.google.protobuf.MessageOrBuilder {
+            
+            // optional .com.google.gwt.dev.shell.remoteui.Message.Request.DevModeRequest.RequestType capability = 1;
+            boolean hasCapability();
+            com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RequestType getCapability();
+          }
           public static final class Capability extends
-              com.google.gwt.dev.protobuf.GeneratedMessage {
+              com.google.protobuf.GeneratedMessage
+              implements CapabilityOrBuilder {
             // Use Capability.newBuilder() to construct.
-            private Capability() {}
+            private Capability(Builder builder) {
+              super(builder);
+            }
+            private Capability(boolean noInit) {}
             
-            private static final Capability defaultInstance = new Capability();
+            private static final Capability defaultInstance;
             public static Capability getDefaultInstance() {
               return defaultInstance;
             }
@@ -8006,31 +12115,44 @@ public final class RemoteMessageProto {
               return defaultInstance;
             }
             
-            public static final com.google.gwt.dev.protobuf.Descriptors.Descriptor
+            public static final com.google.protobuf.Descriptors.Descriptor
                 getDescriptor() {
               return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_DevModeResponse_CapabilityExchange_Capability_descriptor;
             }
             
-            protected com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable
+            protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
                 internalGetFieldAccessorTable() {
               return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_DevModeResponse_CapabilityExchange_Capability_fieldAccessorTable;
             }
             
+            private int bitField0_;
             // optional .com.google.gwt.dev.shell.remoteui.Message.Request.DevModeRequest.RequestType capability = 1;
             public static final int CAPABILITY_FIELD_NUMBER = 1;
-            private boolean hasCapability;
-            private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RequestType capability_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RequestType.CAPABILITY_EXCHANGE;
-            public boolean hasCapability() { return hasCapability; }
-            public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RequestType getCapability() { return capability_; }
+            private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RequestType capability_;
+            public boolean hasCapability() {
+              return ((bitField0_ & 0x00000001) == 0x00000001);
+            }
+            public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RequestType getCapability() {
+              return capability_;
+            }
             
+            private void initFields() {
+              capability_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RequestType.CAPABILITY_EXCHANGE;
+            }
+            private byte memoizedIsInitialized = -1;
             public final boolean isInitialized() {
+              byte isInitialized = memoizedIsInitialized;
+              if (isInitialized != -1) return isInitialized == 1;
+              
+              memoizedIsInitialized = 1;
               return true;
             }
             
-            public void writeTo(com.google.gwt.dev.protobuf.CodedOutputStream output)
+            public void writeTo(com.google.protobuf.CodedOutputStream output)
                                 throws java.io.IOException {
-              if (hasCapability()) {
-                output.writeEnum(1, getCapability().getNumber());
+              getSerializedSize();
+              if (((bitField0_ & 0x00000001) == 0x00000001)) {
+                output.writeEnum(1, capability_.getNumber());
               }
               getUnknownFields().writeTo(output);
             }
@@ -8041,35 +12163,42 @@ public final class RemoteMessageProto {
               if (size != -1) return size;
             
               size = 0;
-              if (hasCapability()) {
-                size += com.google.gwt.dev.protobuf.CodedOutputStream
-                  .computeEnumSize(1, getCapability().getNumber());
+              if (((bitField0_ & 0x00000001) == 0x00000001)) {
+                size += com.google.protobuf.CodedOutputStream
+                  .computeEnumSize(1, capability_.getNumber());
               }
               size += getUnknownFields().getSerializedSize();
               memoizedSerializedSize = size;
               return size;
             }
             
+            private static final long serialVersionUID = 0L;
+            @java.lang.Override
+            protected java.lang.Object writeReplace()
+                throws java.io.ObjectStreamException {
+              return super.writeReplace();
+            }
+            
             public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Capability parseFrom(
-                com.google.gwt.dev.protobuf.ByteString data)
-                throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+                com.google.protobuf.ByteString data)
+                throws com.google.protobuf.InvalidProtocolBufferException {
               return newBuilder().mergeFrom(data).buildParsed();
             }
             public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Capability parseFrom(
-                com.google.gwt.dev.protobuf.ByteString data,
-                com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
-                throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+                com.google.protobuf.ByteString data,
+                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+                throws com.google.protobuf.InvalidProtocolBufferException {
               return newBuilder().mergeFrom(data, extensionRegistry)
                        .buildParsed();
             }
             public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Capability parseFrom(byte[] data)
-                throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+                throws com.google.protobuf.InvalidProtocolBufferException {
               return newBuilder().mergeFrom(data).buildParsed();
             }
             public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Capability parseFrom(
                 byte[] data,
-                com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
-                throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+                throws com.google.protobuf.InvalidProtocolBufferException {
               return newBuilder().mergeFrom(data, extensionRegistry)
                        .buildParsed();
             }
@@ -8079,30 +12208,39 @@ public final class RemoteMessageProto {
             }
             public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Capability parseFrom(
                 java.io.InputStream input,
-                com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                 throws java.io.IOException {
               return newBuilder().mergeFrom(input, extensionRegistry)
                        .buildParsed();
             }
             public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Capability parseDelimitedFrom(java.io.InputStream input)
                 throws java.io.IOException {
-              return newBuilder().mergeDelimitedFrom(input).buildParsed();
+              Builder builder = newBuilder();
+              if (builder.mergeDelimitedFrom(input)) {
+                return builder.buildParsed();
+              } else {
+                return null;
+              }
             }
             public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Capability parseDelimitedFrom(
                 java.io.InputStream input,
-                com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                 throws java.io.IOException {
-              return newBuilder().mergeDelimitedFrom(input, extensionRegistry)
-                       .buildParsed();
+              Builder builder = newBuilder();
+              if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
+                return builder.buildParsed();
+              } else {
+                return null;
+              }
             }
             public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Capability parseFrom(
-                com.google.gwt.dev.protobuf.CodedInputStream input)
+                com.google.protobuf.CodedInputStream input)
                 throws java.io.IOException {
               return newBuilder().mergeFrom(input).buildParsed();
             }
             public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Capability parseFrom(
-                com.google.gwt.dev.protobuf.CodedInputStream input,
-                com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+                com.google.protobuf.CodedInputStream input,
+                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                 throws java.io.IOException {
               return newBuilder().mergeFrom(input, extensionRegistry)
                        .buildParsed();
@@ -8115,37 +12253,54 @@ public final class RemoteMessageProto {
             }
             public Builder toBuilder() { return newBuilder(this); }
             
+            @java.lang.Override
+            protected Builder newBuilderForType(
+                com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+              Builder builder = new Builder(parent);
+              return builder;
+            }
             public static final class Builder extends
-                com.google.gwt.dev.protobuf.GeneratedMessage.Builder<Builder> {
-              private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Capability result;
+                com.google.protobuf.GeneratedMessage.Builder<Builder>
+               implements com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.CapabilityOrBuilder {
+              public static final com.google.protobuf.Descriptors.Descriptor
+                  getDescriptor() {
+                return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_DevModeResponse_CapabilityExchange_Capability_descriptor;
+              }
               
-              // Construct using com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Capability.newBuilder()
-              private Builder() {}
+              protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+                  internalGetFieldAccessorTable() {
+                return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_DevModeResponse_CapabilityExchange_Capability_fieldAccessorTable;
+              }
               
-              private static Builder create() {
-                Builder builder = new Builder();
-                builder.result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Capability();
-                return builder;
+              // Construct using com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Capability.newBuilder()
+              private Builder() {
+                maybeForceBuilderInitialization();
               }
               
-              protected com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Capability internalGetResult() {
-                return result;
+              private Builder(BuilderParent parent) {
+                super(parent);
+                maybeForceBuilderInitialization();
+              }
+              private void maybeForceBuilderInitialization() {
+                if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+                }
+              }
+              private static Builder create() {
+                return new Builder();
               }
               
               public Builder clear() {
-                if (result == null) {
-                  throw new IllegalStateException(
-                    "Cannot call clear() after build().");
-                }
-                result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Capability();
+                super.clear();
+                capability_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RequestType.CAPABILITY_EXCHANGE;
+                bitField0_ = (bitField0_ & ~0x00000001);
                 return this;
               }
               
               public Builder clone() {
-                return create().mergeFrom(result);
+                return create().mergeFrom(buildPartial());
               }
               
-              public com.google.gwt.dev.protobuf.Descriptors.Descriptor
+              public com.google.protobuf.Descriptors.Descriptor
                   getDescriptorForType() {
                 return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Capability.getDescriptor();
               }
@@ -8154,36 +12309,38 @@ public final class RemoteMessageProto {
                 return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Capability.getDefaultInstance();
               }
               
-              public boolean isInitialized() {
-                return result.isInitialized();
-              }
               public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Capability build() {
-                if (result != null && !isInitialized()) {
+                com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Capability result = buildPartial();
+                if (!result.isInitialized()) {
                   throw newUninitializedMessageException(result);
                 }
-                return buildPartial();
+                return result;
               }
               
               private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Capability buildParsed()
-                  throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
-                if (!isInitialized()) {
+                  throws com.google.protobuf.InvalidProtocolBufferException {
+                com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Capability result = buildPartial();
+                if (!result.isInitialized()) {
                   throw newUninitializedMessageException(
                     result).asInvalidProtocolBufferException();
                 }
-                return buildPartial();
+                return result;
               }
               
               public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Capability buildPartial() {
-                if (result == null) {
-                  throw new IllegalStateException(
-                    "build() has already been called on this Builder.");
-                }
-                com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Capability returnMe = result;
-                result = null;
-                return returnMe;
+                com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Capability result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Capability(this);
+                int from_bitField0_ = bitField0_;
+                int to_bitField0_ = 0;
+                if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+                  to_bitField0_ |= 0x00000001;
+                }
+                result.capability_ = capability_;
+                result.bitField0_ = to_bitField0_;
+                onBuilt();
+                return result;
               }
               
-              public Builder mergeFrom(com.google.gwt.dev.protobuf.Message other) {
+              public Builder mergeFrom(com.google.protobuf.Message other) {
                 if (other instanceof com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Capability) {
                   return mergeFrom((com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Capability)other);
                 } else {
@@ -8201,23 +12358,29 @@ public final class RemoteMessageProto {
                 return this;
               }
               
+              public final boolean isInitialized() {
+                return true;
+              }
+              
               public Builder mergeFrom(
-                  com.google.gwt.dev.protobuf.CodedInputStream input,
-                  com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+                  com.google.protobuf.CodedInputStream input,
+                  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                   throws java.io.IOException {
-                com.google.gwt.dev.protobuf.UnknownFieldSet.Builder unknownFields =
-                  com.google.gwt.dev.protobuf.UnknownFieldSet.newBuilder(
+                com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+                  com.google.protobuf.UnknownFieldSet.newBuilder(
                     this.getUnknownFields());
                 while (true) {
                   int tag = input.readTag();
                   switch (tag) {
                     case 0:
                       this.setUnknownFields(unknownFields.build());
+                      onChanged();
                       return this;
                     default: {
                       if (!parseUnknownField(input, unknownFields,
                                              extensionRegistry, tag)) {
                         this.setUnknownFields(unknownFields.build());
+                        onChanged();
                         return this;
                       }
                       break;
@@ -8228,7 +12391,8 @@ public final class RemoteMessageProto {
                       if (value == null) {
                         unknownFields.mergeVarintField(1, rawValue);
                       } else {
-                        setCapability(value);
+                        bitField0_ |= 0x00000001;
+                        capability_ = value;
                       }
                       break;
                     }
@@ -8236,58 +12400,81 @@ public final class RemoteMessageProto {
                 }
               }
               
+              private int bitField0_;
               
               // optional .com.google.gwt.dev.shell.remoteui.Message.Request.DevModeRequest.RequestType capability = 1;
+              private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RequestType capability_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RequestType.CAPABILITY_EXCHANGE;
               public boolean hasCapability() {
-                return result.hasCapability();
+                return ((bitField0_ & 0x00000001) == 0x00000001);
               }
               public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RequestType getCapability() {
-                return result.getCapability();
+                return capability_;
               }
               public Builder setCapability(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RequestType value) {
                 if (value == null) {
                   throw new NullPointerException();
                 }
-                result.hasCapability = true;
-                result.capability_ = value;
+                bitField0_ |= 0x00000001;
+                capability_ = value;
+                onChanged();
                 return this;
               }
               public Builder clearCapability() {
-                result.hasCapability = false;
-                result.capability_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RequestType.CAPABILITY_EXCHANGE;
+                bitField0_ = (bitField0_ & ~0x00000001);
+                capability_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RequestType.CAPABILITY_EXCHANGE;
+                onChanged();
                 return this;
               }
+              
+              // @@protoc_insertion_point(builder_scope:com.google.gwt.dev.shell.remoteui.Message.Response.DevModeResponse.CapabilityExchange.Capability)
             }
             
             static {
-              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.getDescriptor();
+              defaultInstance = new Capability(true);
+              defaultInstance.initFields();
             }
             
-            static {
-              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internalForceInit();
-            }
+            // @@protoc_insertion_point(class_scope:com.google.gwt.dev.shell.remoteui.Message.Response.DevModeResponse.CapabilityExchange.Capability)
           }
           
           // repeated .com.google.gwt.dev.shell.remoteui.Message.Response.DevModeResponse.CapabilityExchange.Capability capabilities = 2;
           public static final int CAPABILITIES_FIELD_NUMBER = 2;
-          private java.util.List<com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Capability> capabilities_ =
-            java.util.Collections.emptyList();
+          private java.util.List<com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Capability> capabilities_;
           public java.util.List<com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Capability> getCapabilitiesList() {
             return capabilities_;
           }
-          public int getCapabilitiesCount() { return capabilities_.size(); }
+          public java.util.List<? extends com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.CapabilityOrBuilder> 
+              getCapabilitiesOrBuilderList() {
+            return capabilities_;
+          }
+          public int getCapabilitiesCount() {
+            return capabilities_.size();
+          }
           public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Capability getCapabilities(int index) {
             return capabilities_.get(index);
           }
+          public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.CapabilityOrBuilder getCapabilitiesOrBuilder(
+              int index) {
+            return capabilities_.get(index);
+          }
           
+          private void initFields() {
+            capabilities_ = java.util.Collections.emptyList();
+          }
+          private byte memoizedIsInitialized = -1;
           public final boolean isInitialized() {
+            byte isInitialized = memoizedIsInitialized;
+            if (isInitialized != -1) return isInitialized == 1;
+            
+            memoizedIsInitialized = 1;
             return true;
           }
           
-          public void writeTo(com.google.gwt.dev.protobuf.CodedOutputStream output)
+          public void writeTo(com.google.protobuf.CodedOutputStream output)
                               throws java.io.IOException {
-            for (com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Capability element : getCapabilitiesList()) {
-              output.writeMessage(2, element);
+            getSerializedSize();
+            for (int i = 0; i < capabilities_.size(); i++) {
+              output.writeMessage(2, capabilities_.get(i));
             }
             getUnknownFields().writeTo(output);
           }
@@ -8298,35 +12485,42 @@ public final class RemoteMessageProto {
             if (size != -1) return size;
           
             size = 0;
-            for (com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Capability element : getCapabilitiesList()) {
-              size += com.google.gwt.dev.protobuf.CodedOutputStream
-                .computeMessageSize(2, element);
+            for (int i = 0; i < capabilities_.size(); i++) {
+              size += com.google.protobuf.CodedOutputStream
+                .computeMessageSize(2, capabilities_.get(i));
             }
             size += getUnknownFields().getSerializedSize();
             memoizedSerializedSize = size;
             return size;
           }
           
+          private static final long serialVersionUID = 0L;
+          @java.lang.Override
+          protected java.lang.Object writeReplace()
+              throws java.io.ObjectStreamException {
+            return super.writeReplace();
+          }
+          
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange parseFrom(
-              com.google.gwt.dev.protobuf.ByteString data)
-              throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+              com.google.protobuf.ByteString data)
+              throws com.google.protobuf.InvalidProtocolBufferException {
             return newBuilder().mergeFrom(data).buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange parseFrom(
-              com.google.gwt.dev.protobuf.ByteString data,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
-              throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+              com.google.protobuf.ByteString data,
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+              throws com.google.protobuf.InvalidProtocolBufferException {
             return newBuilder().mergeFrom(data, extensionRegistry)
                      .buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange parseFrom(byte[] data)
-              throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+              throws com.google.protobuf.InvalidProtocolBufferException {
             return newBuilder().mergeFrom(data).buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange parseFrom(
               byte[] data,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
-              throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+              throws com.google.protobuf.InvalidProtocolBufferException {
             return newBuilder().mergeFrom(data, extensionRegistry)
                      .buildParsed();
           }
@@ -8336,30 +12530,39 @@ public final class RemoteMessageProto {
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange parseFrom(
               java.io.InputStream input,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
               throws java.io.IOException {
             return newBuilder().mergeFrom(input, extensionRegistry)
                      .buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange parseDelimitedFrom(java.io.InputStream input)
               throws java.io.IOException {
-            return newBuilder().mergeDelimitedFrom(input).buildParsed();
+            Builder builder = newBuilder();
+            if (builder.mergeDelimitedFrom(input)) {
+              return builder.buildParsed();
+            } else {
+              return null;
+            }
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange parseDelimitedFrom(
               java.io.InputStream input,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
               throws java.io.IOException {
-            return newBuilder().mergeDelimitedFrom(input, extensionRegistry)
-                     .buildParsed();
+            Builder builder = newBuilder();
+            if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
+              return builder.buildParsed();
+            } else {
+              return null;
+            }
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange parseFrom(
-              com.google.gwt.dev.protobuf.CodedInputStream input)
+              com.google.protobuf.CodedInputStream input)
               throws java.io.IOException {
             return newBuilder().mergeFrom(input).buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange parseFrom(
-              com.google.gwt.dev.protobuf.CodedInputStream input,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+              com.google.protobuf.CodedInputStream input,
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
               throws java.io.IOException {
             return newBuilder().mergeFrom(input, extensionRegistry)
                      .buildParsed();
@@ -8372,37 +12575,59 @@ public final class RemoteMessageProto {
           }
           public Builder toBuilder() { return newBuilder(this); }
           
+          @java.lang.Override
+          protected Builder newBuilderForType(
+              com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+            Builder builder = new Builder(parent);
+            return builder;
+          }
           public static final class Builder extends
-              com.google.gwt.dev.protobuf.GeneratedMessage.Builder<Builder> {
-            private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange result;
+              com.google.protobuf.GeneratedMessage.Builder<Builder>
+             implements com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchangeOrBuilder {
+            public static final com.google.protobuf.Descriptors.Descriptor
+                getDescriptor() {
+              return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_DevModeResponse_CapabilityExchange_descriptor;
+            }
             
-            // Construct using com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.newBuilder()
-            private Builder() {}
+            protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+                internalGetFieldAccessorTable() {
+              return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_DevModeResponse_CapabilityExchange_fieldAccessorTable;
+            }
             
-            private static Builder create() {
-              Builder builder = new Builder();
-              builder.result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange();
-              return builder;
+            // Construct using com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.newBuilder()
+            private Builder() {
+              maybeForceBuilderInitialization();
             }
             
-            protected com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange internalGetResult() {
-              return result;
+            private Builder(BuilderParent parent) {
+              super(parent);
+              maybeForceBuilderInitialization();
+            }
+            private void maybeForceBuilderInitialization() {
+              if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+                getCapabilitiesFieldBuilder();
+              }
+            }
+            private static Builder create() {
+              return new Builder();
             }
             
             public Builder clear() {
-              if (result == null) {
-                throw new IllegalStateException(
-                  "Cannot call clear() after build().");
+              super.clear();
+              if (capabilitiesBuilder_ == null) {
+                capabilities_ = java.util.Collections.emptyList();
+                bitField0_ = (bitField0_ & ~0x00000001);
+              } else {
+                capabilitiesBuilder_.clear();
               }
-              result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange();
               return this;
             }
             
             public Builder clone() {
-              return create().mergeFrom(result);
+              return create().mergeFrom(buildPartial());
             }
             
-            public com.google.gwt.dev.protobuf.Descriptors.Descriptor
+            public com.google.protobuf.Descriptors.Descriptor
                 getDescriptorForType() {
               return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.getDescriptor();
             }
@@ -8411,40 +12636,41 @@ public final class RemoteMessageProto {
               return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.getDefaultInstance();
             }
             
-            public boolean isInitialized() {
-              return result.isInitialized();
-            }
             public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange build() {
-              if (result != null && !isInitialized()) {
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange result = buildPartial();
+              if (!result.isInitialized()) {
                 throw newUninitializedMessageException(result);
               }
-              return buildPartial();
+              return result;
             }
             
             private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange buildParsed()
-                throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
-              if (!isInitialized()) {
+                throws com.google.protobuf.InvalidProtocolBufferException {
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange result = buildPartial();
+              if (!result.isInitialized()) {
                 throw newUninitializedMessageException(
                   result).asInvalidProtocolBufferException();
               }
-              return buildPartial();
+              return result;
             }
             
             public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange buildPartial() {
-              if (result == null) {
-                throw new IllegalStateException(
-                  "build() has already been called on this Builder.");
-              }
-              if (result.capabilities_ != java.util.Collections.EMPTY_LIST) {
-                result.capabilities_ =
-                  java.util.Collections.unmodifiableList(result.capabilities_);
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange(this);
+              int from_bitField0_ = bitField0_;
+              if (capabilitiesBuilder_ == null) {
+                if (((bitField0_ & 0x00000001) == 0x00000001)) {
+                  capabilities_ = java.util.Collections.unmodifiableList(capabilities_);
+                  bitField0_ = (bitField0_ & ~0x00000001);
+                }
+                result.capabilities_ = capabilities_;
+              } else {
+                result.capabilities_ = capabilitiesBuilder_.build();
               }
-              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange returnMe = result;
-              result = null;
-              return returnMe;
+              onBuilt();
+              return result;
             }
             
-            public Builder mergeFrom(com.google.gwt.dev.protobuf.Message other) {
+            public Builder mergeFrom(com.google.protobuf.Message other) {
               if (other instanceof com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange) {
                 return mergeFrom((com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange)other);
               } else {
@@ -8455,33 +12681,59 @@ public final class RemoteMessageProto {
             
             public Builder mergeFrom(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange other) {
               if (other == com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.getDefaultInstance()) return this;
-              if (!other.capabilities_.isEmpty()) {
-                if (result.capabilities_.isEmpty()) {
-                  result.capabilities_ = new java.util.ArrayList<com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Capability>();
+              if (capabilitiesBuilder_ == null) {
+                if (!other.capabilities_.isEmpty()) {
+                  if (capabilities_.isEmpty()) {
+                    capabilities_ = other.capabilities_;
+                    bitField0_ = (bitField0_ & ~0x00000001);
+                  } else {
+                    ensureCapabilitiesIsMutable();
+                    capabilities_.addAll(other.capabilities_);
+                  }
+                  onChanged();
+                }
+              } else {
+                if (!other.capabilities_.isEmpty()) {
+                  if (capabilitiesBuilder_.isEmpty()) {
+                    capabilitiesBuilder_.dispose();
+                    capabilitiesBuilder_ = null;
+                    capabilities_ = other.capabilities_;
+                    bitField0_ = (bitField0_ & ~0x00000001);
+                    capabilitiesBuilder_ = 
+                      com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
+                         getCapabilitiesFieldBuilder() : null;
+                  } else {
+                    capabilitiesBuilder_.addAllMessages(other.capabilities_);
+                  }
                 }
-                result.capabilities_.addAll(other.capabilities_);
               }
               this.mergeUnknownFields(other.getUnknownFields());
               return this;
             }
             
+            public final boolean isInitialized() {
+              return true;
+            }
+            
             public Builder mergeFrom(
-                com.google.gwt.dev.protobuf.CodedInputStream input,
-                com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+                com.google.protobuf.CodedInputStream input,
+                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                 throws java.io.IOException {
-              com.google.gwt.dev.protobuf.UnknownFieldSet.Builder unknownFields =
-                com.google.gwt.dev.protobuf.UnknownFieldSet.newBuilder(
+              com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+                com.google.protobuf.UnknownFieldSet.newBuilder(
                   this.getUnknownFields());
               while (true) {
                 int tag = input.readTag();
                 switch (tag) {
                   case 0:
                     this.setUnknownFields(unknownFields.build());
+                    onChanged();
                     return this;
                   default: {
                     if (!parseUnknownField(input, unknownFields,
                                            extensionRegistry, tag)) {
                       this.setUnknownFields(unknownFields.build());
+                      onChanged();
                       return this;
                     }
                     break;
@@ -8496,74 +12748,218 @@ public final class RemoteMessageProto {
               }
             }
             
+            private int bitField0_;
             
             // repeated .com.google.gwt.dev.shell.remoteui.Message.Response.DevModeResponse.CapabilityExchange.Capability capabilities = 2;
+            private java.util.List<com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Capability> capabilities_ =
+              java.util.Collections.emptyList();
+            private void ensureCapabilitiesIsMutable() {
+              if (!((bitField0_ & 0x00000001) == 0x00000001)) {
+                capabilities_ = new java.util.ArrayList<com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Capability>(capabilities_);
+                bitField0_ |= 0x00000001;
+               }
+            }
+            
+            private com.google.protobuf.RepeatedFieldBuilder<
+                com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Capability, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Capability.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.CapabilityOrBuilder> capabilitiesBuilder_;
+            
             public java.util.List<com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Capability> getCapabilitiesList() {
-              return java.util.Collections.unmodifiableList(result.capabilities_);
+              if (capabilitiesBuilder_ == null) {
+                return java.util.Collections.unmodifiableList(capabilities_);
+              } else {
+                return capabilitiesBuilder_.getMessageList();
+              }
             }
             public int getCapabilitiesCount() {
-              return result.getCapabilitiesCount();
+              if (capabilitiesBuilder_ == null) {
+                return capabilities_.size();
+              } else {
+                return capabilitiesBuilder_.getCount();
+              }
             }
             public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Capability getCapabilities(int index) {
-              return result.getCapabilities(index);
+              if (capabilitiesBuilder_ == null) {
+                return capabilities_.get(index);
+              } else {
+                return capabilitiesBuilder_.getMessage(index);
+              }
             }
-            public Builder setCapabilities(int index, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Capability value) {
-              if (value == null) {
-                throw new NullPointerException();
+            public Builder setCapabilities(
+                int index, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Capability value) {
+              if (capabilitiesBuilder_ == null) {
+                if (value == null) {
+                  throw new NullPointerException();
+                }
+                ensureCapabilitiesIsMutable();
+                capabilities_.set(index, value);
+                onChanged();
+              } else {
+                capabilitiesBuilder_.setMessage(index, value);
               }
-              result.capabilities_.set(index, value);
               return this;
             }
-            public Builder setCapabilities(int index, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Capability.Builder builderForValue) {
-              result.capabilities_.set(index, builderForValue.build());
+            public Builder setCapabilities(
+                int index, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Capability.Builder builderForValue) {
+              if (capabilitiesBuilder_ == null) {
+                ensureCapabilitiesIsMutable();
+                capabilities_.set(index, builderForValue.build());
+                onChanged();
+              } else {
+                capabilitiesBuilder_.setMessage(index, builderForValue.build());
+              }
               return this;
             }
             public Builder addCapabilities(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Capability value) {
-              if (value == null) {
-                throw new NullPointerException();
+              if (capabilitiesBuilder_ == null) {
+                if (value == null) {
+                  throw new NullPointerException();
+                }
+                ensureCapabilitiesIsMutable();
+                capabilities_.add(value);
+                onChanged();
+              } else {
+                capabilitiesBuilder_.addMessage(value);
+              }
+              return this;
+            }
+            public Builder addCapabilities(
+                int index, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Capability value) {
+              if (capabilitiesBuilder_ == null) {
+                if (value == null) {
+                  throw new NullPointerException();
+                }
+                ensureCapabilitiesIsMutable();
+                capabilities_.add(index, value);
+                onChanged();
+              } else {
+                capabilitiesBuilder_.addMessage(index, value);
               }
-              if (result.capabilities_.isEmpty()) {
-                result.capabilities_ = new java.util.ArrayList<com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Capability>();
+              return this;
+            }
+            public Builder addCapabilities(
+                com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Capability.Builder builderForValue) {
+              if (capabilitiesBuilder_ == null) {
+                ensureCapabilitiesIsMutable();
+                capabilities_.add(builderForValue.build());
+                onChanged();
+              } else {
+                capabilitiesBuilder_.addMessage(builderForValue.build());
               }
-              result.capabilities_.add(value);
               return this;
             }
-            public Builder addCapabilities(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Capability.Builder builderForValue) {
-              if (result.capabilities_.isEmpty()) {
-                result.capabilities_ = new java.util.ArrayList<com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Capability>();
+            public Builder addCapabilities(
+                int index, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Capability.Builder builderForValue) {
+              if (capabilitiesBuilder_ == null) {
+                ensureCapabilitiesIsMutable();
+                capabilities_.add(index, builderForValue.build());
+                onChanged();
+              } else {
+                capabilitiesBuilder_.addMessage(index, builderForValue.build());
               }
-              result.capabilities_.add(builderForValue.build());
               return this;
             }
             public Builder addAllCapabilities(
                 java.lang.Iterable<? extends com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Capability> values) {
-              if (result.capabilities_.isEmpty()) {
-                result.capabilities_ = new java.util.ArrayList<com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Capability>();
+              if (capabilitiesBuilder_ == null) {
+                ensureCapabilitiesIsMutable();
+                super.addAll(values, capabilities_);
+                onChanged();
+              } else {
+                capabilitiesBuilder_.addAllMessages(values);
               }
-              super.addAll(values, result.capabilities_);
               return this;
             }
             public Builder clearCapabilities() {
-              result.capabilities_ = java.util.Collections.emptyList();
+              if (capabilitiesBuilder_ == null) {
+                capabilities_ = java.util.Collections.emptyList();
+                bitField0_ = (bitField0_ & ~0x00000001);
+                onChanged();
+              } else {
+                capabilitiesBuilder_.clear();
+              }
+              return this;
+            }
+            public Builder removeCapabilities(int index) {
+              if (capabilitiesBuilder_ == null) {
+                ensureCapabilitiesIsMutable();
+                capabilities_.remove(index);
+                onChanged();
+              } else {
+                capabilitiesBuilder_.remove(index);
+              }
               return this;
             }
+            public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Capability.Builder getCapabilitiesBuilder(
+                int index) {
+              return getCapabilitiesFieldBuilder().getBuilder(index);
+            }
+            public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.CapabilityOrBuilder getCapabilitiesOrBuilder(
+                int index) {
+              if (capabilitiesBuilder_ == null) {
+                return capabilities_.get(index);  } else {
+                return capabilitiesBuilder_.getMessageOrBuilder(index);
+              }
+            }
+            public java.util.List<? extends com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.CapabilityOrBuilder> 
+                 getCapabilitiesOrBuilderList() {
+              if (capabilitiesBuilder_ != null) {
+                return capabilitiesBuilder_.getMessageOrBuilderList();
+              } else {
+                return java.util.Collections.unmodifiableList(capabilities_);
+              }
+            }
+            public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Capability.Builder addCapabilitiesBuilder() {
+              return getCapabilitiesFieldBuilder().addBuilder(
+                  com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Capability.getDefaultInstance());
+            }
+            public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Capability.Builder addCapabilitiesBuilder(
+                int index) {
+              return getCapabilitiesFieldBuilder().addBuilder(
+                  index, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Capability.getDefaultInstance());
+            }
+            public java.util.List<com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Capability.Builder> 
+                 getCapabilitiesBuilderList() {
+              return getCapabilitiesFieldBuilder().getBuilderList();
+            }
+            private com.google.protobuf.RepeatedFieldBuilder<
+                com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Capability, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Capability.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.CapabilityOrBuilder> 
+                getCapabilitiesFieldBuilder() {
+              if (capabilitiesBuilder_ == null) {
+                capabilitiesBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
+                    com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Capability, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Capability.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.CapabilityOrBuilder>(
+                        capabilities_,
+                        ((bitField0_ & 0x00000001) == 0x00000001),
+                        getParentForChildren(),
+                        isClean());
+                capabilities_ = null;
+              }
+              return capabilitiesBuilder_;
+            }
+            
+            // @@protoc_insertion_point(builder_scope:com.google.gwt.dev.shell.remoteui.Message.Response.DevModeResponse.CapabilityExchange)
           }
           
           static {
-            com.google.gwt.dev.shell.remoteui.RemoteMessageProto.getDescriptor();
+            defaultInstance = new CapabilityExchange(true);
+            defaultInstance.initFields();
           }
           
-          static {
-            com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internalForceInit();
-          }
+          // @@protoc_insertion_point(class_scope:com.google.gwt.dev.shell.remoteui.Message.Response.DevModeResponse.CapabilityExchange)
         }
         
+        public interface RestartWebServerOrBuilder
+            extends com.google.protobuf.MessageOrBuilder {
+        }
         public static final class RestartWebServer extends
-            com.google.gwt.dev.protobuf.GeneratedMessage {
+            com.google.protobuf.GeneratedMessage
+            implements RestartWebServerOrBuilder {
           // Use RestartWebServer.newBuilder() to construct.
-          private RestartWebServer() {}
+          private RestartWebServer(Builder builder) {
+            super(builder);
+          }
+          private RestartWebServer(boolean noInit) {}
           
-          private static final RestartWebServer defaultInstance = new RestartWebServer();
+          private static final RestartWebServer defaultInstance;
           public static RestartWebServer getDefaultInstance() {
             return defaultInstance;
           }
@@ -8572,22 +12968,30 @@ public final class RemoteMessageProto {
             return defaultInstance;
           }
           
-          public static final com.google.gwt.dev.protobuf.Descriptors.Descriptor
+          public static final com.google.protobuf.Descriptors.Descriptor
               getDescriptor() {
             return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_DevModeResponse_RestartWebServer_descriptor;
           }
           
-          protected com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable
+          protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
               internalGetFieldAccessorTable() {
             return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_DevModeResponse_RestartWebServer_fieldAccessorTable;
           }
           
+          private void initFields() {
+          }
+          private byte memoizedIsInitialized = -1;
           public final boolean isInitialized() {
+            byte isInitialized = memoizedIsInitialized;
+            if (isInitialized != -1) return isInitialized == 1;
+            
+            memoizedIsInitialized = 1;
             return true;
           }
           
-          public void writeTo(com.google.gwt.dev.protobuf.CodedOutputStream output)
+          public void writeTo(com.google.protobuf.CodedOutputStream output)
                               throws java.io.IOException {
+            getSerializedSize();
             getUnknownFields().writeTo(output);
           }
           
@@ -8602,26 +13006,33 @@ public final class RemoteMessageProto {
             return size;
           }
           
+          private static final long serialVersionUID = 0L;
+          @java.lang.Override
+          protected java.lang.Object writeReplace()
+              throws java.io.ObjectStreamException {
+            return super.writeReplace();
+          }
+          
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.RestartWebServer parseFrom(
-              com.google.gwt.dev.protobuf.ByteString data)
-              throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+              com.google.protobuf.ByteString data)
+              throws com.google.protobuf.InvalidProtocolBufferException {
             return newBuilder().mergeFrom(data).buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.RestartWebServer parseFrom(
-              com.google.gwt.dev.protobuf.ByteString data,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
-              throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+              com.google.protobuf.ByteString data,
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+              throws com.google.protobuf.InvalidProtocolBufferException {
             return newBuilder().mergeFrom(data, extensionRegistry)
                      .buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.RestartWebServer parseFrom(byte[] data)
-              throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+              throws com.google.protobuf.InvalidProtocolBufferException {
             return newBuilder().mergeFrom(data).buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.RestartWebServer parseFrom(
               byte[] data,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
-              throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+              throws com.google.protobuf.InvalidProtocolBufferException {
             return newBuilder().mergeFrom(data, extensionRegistry)
                      .buildParsed();
           }
@@ -8631,30 +13042,39 @@ public final class RemoteMessageProto {
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.RestartWebServer parseFrom(
               java.io.InputStream input,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
               throws java.io.IOException {
             return newBuilder().mergeFrom(input, extensionRegistry)
                      .buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.RestartWebServer parseDelimitedFrom(java.io.InputStream input)
               throws java.io.IOException {
-            return newBuilder().mergeDelimitedFrom(input).buildParsed();
+            Builder builder = newBuilder();
+            if (builder.mergeDelimitedFrom(input)) {
+              return builder.buildParsed();
+            } else {
+              return null;
+            }
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.RestartWebServer parseDelimitedFrom(
               java.io.InputStream input,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
               throws java.io.IOException {
-            return newBuilder().mergeDelimitedFrom(input, extensionRegistry)
-                     .buildParsed();
+            Builder builder = newBuilder();
+            if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
+              return builder.buildParsed();
+            } else {
+              return null;
+            }
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.RestartWebServer parseFrom(
-              com.google.gwt.dev.protobuf.CodedInputStream input)
+              com.google.protobuf.CodedInputStream input)
               throws java.io.IOException {
             return newBuilder().mergeFrom(input).buildParsed();
           }
           public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.RestartWebServer parseFrom(
-              com.google.gwt.dev.protobuf.CodedInputStream input,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+              com.google.protobuf.CodedInputStream input,
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
               throws java.io.IOException {
             return newBuilder().mergeFrom(input, extensionRegistry)
                      .buildParsed();
@@ -8667,37 +13087,52 @@ public final class RemoteMessageProto {
           }
           public Builder toBuilder() { return newBuilder(this); }
           
+          @java.lang.Override
+          protected Builder newBuilderForType(
+              com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+            Builder builder = new Builder(parent);
+            return builder;
+          }
           public static final class Builder extends
-              com.google.gwt.dev.protobuf.GeneratedMessage.Builder<Builder> {
-            private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.RestartWebServer result;
+              com.google.protobuf.GeneratedMessage.Builder<Builder>
+             implements com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.RestartWebServerOrBuilder {
+            public static final com.google.protobuf.Descriptors.Descriptor
+                getDescriptor() {
+              return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_DevModeResponse_RestartWebServer_descriptor;
+            }
             
-            // Construct using com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.RestartWebServer.newBuilder()
-            private Builder() {}
+            protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+                internalGetFieldAccessorTable() {
+              return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_DevModeResponse_RestartWebServer_fieldAccessorTable;
+            }
             
-            private static Builder create() {
-              Builder builder = new Builder();
-              builder.result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.RestartWebServer();
-              return builder;
+            // Construct using com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.RestartWebServer.newBuilder()
+            private Builder() {
+              maybeForceBuilderInitialization();
             }
             
-            protected com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.RestartWebServer internalGetResult() {
-              return result;
+            private Builder(BuilderParent parent) {
+              super(parent);
+              maybeForceBuilderInitialization();
+            }
+            private void maybeForceBuilderInitialization() {
+              if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+              }
+            }
+            private static Builder create() {
+              return new Builder();
             }
             
             public Builder clear() {
-              if (result == null) {
-                throw new IllegalStateException(
-                  "Cannot call clear() after build().");
-              }
-              result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.RestartWebServer();
+              super.clear();
               return this;
             }
             
             public Builder clone() {
-              return create().mergeFrom(result);
+              return create().mergeFrom(buildPartial());
             }
             
-            public com.google.gwt.dev.protobuf.Descriptors.Descriptor
+            public com.google.protobuf.Descriptors.Descriptor
                 getDescriptorForType() {
               return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.RestartWebServer.getDescriptor();
             }
@@ -8706,36 +13141,31 @@ public final class RemoteMessageProto {
               return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.RestartWebServer.getDefaultInstance();
             }
             
-            public boolean isInitialized() {
-              return result.isInitialized();
-            }
             public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.RestartWebServer build() {
-              if (result != null && !isInitialized()) {
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.RestartWebServer result = buildPartial();
+              if (!result.isInitialized()) {
                 throw newUninitializedMessageException(result);
               }
-              return buildPartial();
+              return result;
             }
             
             private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.RestartWebServer buildParsed()
-                throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
-              if (!isInitialized()) {
+                throws com.google.protobuf.InvalidProtocolBufferException {
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.RestartWebServer result = buildPartial();
+              if (!result.isInitialized()) {
                 throw newUninitializedMessageException(
                   result).asInvalidProtocolBufferException();
               }
-              return buildPartial();
+              return result;
             }
             
             public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.RestartWebServer buildPartial() {
-              if (result == null) {
-                throw new IllegalStateException(
-                  "build() has already been called on this Builder.");
-              }
-              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.RestartWebServer returnMe = result;
-              result = null;
-              return returnMe;
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.RestartWebServer result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.RestartWebServer(this);
+              onBuilt();
+              return result;
             }
             
-            public Builder mergeFrom(com.google.gwt.dev.protobuf.Message other) {
+            public Builder mergeFrom(com.google.protobuf.Message other) {
               if (other instanceof com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.RestartWebServer) {
                 return mergeFrom((com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.RestartWebServer)other);
               } else {
@@ -8750,23 +13180,29 @@ public final class RemoteMessageProto {
               return this;
             }
             
+            public final boolean isInitialized() {
+              return true;
+            }
+            
             public Builder mergeFrom(
-                com.google.gwt.dev.protobuf.CodedInputStream input,
-                com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+                com.google.protobuf.CodedInputStream input,
+                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                 throws java.io.IOException {
-              com.google.gwt.dev.protobuf.UnknownFieldSet.Builder unknownFields =
-                com.google.gwt.dev.protobuf.UnknownFieldSet.newBuilder(
+              com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+                com.google.protobuf.UnknownFieldSet.newBuilder(
                   this.getUnknownFields());
               while (true) {
                 int tag = input.readTag();
                 switch (tag) {
                   case 0:
                     this.setUnknownFields(unknownFields.build());
+                    onChanged();
                     return this;
                   default: {
                     if (!parseUnknownField(input, unknownFields,
                                            extensionRegistry, tag)) {
                       this.setUnknownFields(unknownFields.build());
+                      onChanged();
                       return this;
                     }
                     break;
@@ -8775,52 +13211,80 @@ public final class RemoteMessageProto {
               }
             }
             
+            
+            // @@protoc_insertion_point(builder_scope:com.google.gwt.dev.shell.remoteui.Message.Response.DevModeResponse.RestartWebServer)
           }
           
           static {
-            com.google.gwt.dev.shell.remoteui.RemoteMessageProto.getDescriptor();
+            defaultInstance = new RestartWebServer(true);
+            defaultInstance.initFields();
           }
           
-          static {
-            com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internalForceInit();
-          }
+          // @@protoc_insertion_point(class_scope:com.google.gwt.dev.shell.remoteui.Message.Response.DevModeResponse.RestartWebServer)
         }
         
+        private int bitField0_;
         // optional .com.google.gwt.dev.shell.remoteui.Message.Response.DevModeResponse.ResponseType responseType = 1;
         public static final int RESPONSETYPE_FIELD_NUMBER = 1;
-        private boolean hasResponseType;
-        private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.ResponseType responseType_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.ResponseType.CAPABILITY_EXCHANGE;
-        public boolean hasResponseType() { return hasResponseType; }
-        public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.ResponseType getResponseType() { return responseType_; }
+        private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.ResponseType responseType_;
+        public boolean hasResponseType() {
+          return ((bitField0_ & 0x00000001) == 0x00000001);
+        }
+        public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.ResponseType getResponseType() {
+          return responseType_;
+        }
         
         // optional .com.google.gwt.dev.shell.remoteui.Message.Response.DevModeResponse.CapabilityExchange capabilityExchange = 2;
         public static final int CAPABILITYEXCHANGE_FIELD_NUMBER = 2;
-        private boolean hasCapabilityExchange;
-        private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange capabilityExchange_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.getDefaultInstance();
-        public boolean hasCapabilityExchange() { return hasCapabilityExchange; }
-        public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange getCapabilityExchange() { return capabilityExchange_; }
+        private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange capabilityExchange_;
+        public boolean hasCapabilityExchange() {
+          return ((bitField0_ & 0x00000002) == 0x00000002);
+        }
+        public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange getCapabilityExchange() {
+          return capabilityExchange_;
+        }
+        public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchangeOrBuilder getCapabilityExchangeOrBuilder() {
+          return capabilityExchange_;
+        }
         
         // optional .com.google.gwt.dev.shell.remoteui.Message.Response.DevModeResponse.RestartWebServer restartWebServer = 3;
         public static final int RESTARTWEBSERVER_FIELD_NUMBER = 3;
-        private boolean hasRestartWebServer;
-        private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.RestartWebServer restartWebServer_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.RestartWebServer.getDefaultInstance();
-        public boolean hasRestartWebServer() { return hasRestartWebServer; }
-        public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.RestartWebServer getRestartWebServer() { return restartWebServer_; }
+        private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.RestartWebServer restartWebServer_;
+        public boolean hasRestartWebServer() {
+          return ((bitField0_ & 0x00000004) == 0x00000004);
+        }
+        public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.RestartWebServer getRestartWebServer() {
+          return restartWebServer_;
+        }
+        public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.RestartWebServerOrBuilder getRestartWebServerOrBuilder() {
+          return restartWebServer_;
+        }
         
+        private void initFields() {
+          responseType_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.ResponseType.CAPABILITY_EXCHANGE;
+          capabilityExchange_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.getDefaultInstance();
+          restartWebServer_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.RestartWebServer.getDefaultInstance();
+        }
+        private byte memoizedIsInitialized = -1;
         public final boolean isInitialized() {
+          byte isInitialized = memoizedIsInitialized;
+          if (isInitialized != -1) return isInitialized == 1;
+          
+          memoizedIsInitialized = 1;
           return true;
         }
         
-        public void writeTo(com.google.gwt.dev.protobuf.CodedOutputStream output)
+        public void writeTo(com.google.protobuf.CodedOutputStream output)
                             throws java.io.IOException {
-          if (hasResponseType()) {
-            output.writeEnum(1, getResponseType().getNumber());
+          getSerializedSize();
+          if (((bitField0_ & 0x00000001) == 0x00000001)) {
+            output.writeEnum(1, responseType_.getNumber());
           }
-          if (hasCapabilityExchange()) {
-            output.writeMessage(2, getCapabilityExchange());
+          if (((bitField0_ & 0x00000002) == 0x00000002)) {
+            output.writeMessage(2, capabilityExchange_);
           }
-          if (hasRestartWebServer()) {
-            output.writeMessage(3, getRestartWebServer());
+          if (((bitField0_ & 0x00000004) == 0x00000004)) {
+            output.writeMessage(3, restartWebServer_);
           }
           getUnknownFields().writeTo(output);
         }
@@ -8831,43 +13295,50 @@ public final class RemoteMessageProto {
           if (size != -1) return size;
         
           size = 0;
-          if (hasResponseType()) {
-            size += com.google.gwt.dev.protobuf.CodedOutputStream
-              .computeEnumSize(1, getResponseType().getNumber());
-          }
-          if (hasCapabilityExchange()) {
-            size += com.google.gwt.dev.protobuf.CodedOutputStream
-              .computeMessageSize(2, getCapabilityExchange());
-          }
-          if (hasRestartWebServer()) {
-            size += com.google.gwt.dev.protobuf.CodedOutputStream
-              .computeMessageSize(3, getRestartWebServer());
+          if (((bitField0_ & 0x00000001) == 0x00000001)) {
+            size += com.google.protobuf.CodedOutputStream
+              .computeEnumSize(1, responseType_.getNumber());
+          }
+          if (((bitField0_ & 0x00000002) == 0x00000002)) {
+            size += com.google.protobuf.CodedOutputStream
+              .computeMessageSize(2, capabilityExchange_);
+          }
+          if (((bitField0_ & 0x00000004) == 0x00000004)) {
+            size += com.google.protobuf.CodedOutputStream
+              .computeMessageSize(3, restartWebServer_);
           }
           size += getUnknownFields().getSerializedSize();
           memoizedSerializedSize = size;
           return size;
         }
         
+        private static final long serialVersionUID = 0L;
+        @java.lang.Override
+        protected java.lang.Object writeReplace()
+            throws java.io.ObjectStreamException {
+          return super.writeReplace();
+        }
+        
         public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse parseFrom(
-            com.google.gwt.dev.protobuf.ByteString data)
-            throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+            com.google.protobuf.ByteString data)
+            throws com.google.protobuf.InvalidProtocolBufferException {
           return newBuilder().mergeFrom(data).buildParsed();
         }
         public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse parseFrom(
-            com.google.gwt.dev.protobuf.ByteString data,
-            com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
-            throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+            com.google.protobuf.ByteString data,
+            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+            throws com.google.protobuf.InvalidProtocolBufferException {
           return newBuilder().mergeFrom(data, extensionRegistry)
                    .buildParsed();
         }
         public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse parseFrom(byte[] data)
-            throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+            throws com.google.protobuf.InvalidProtocolBufferException {
           return newBuilder().mergeFrom(data).buildParsed();
         }
         public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse parseFrom(
             byte[] data,
-            com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
-            throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+            throws com.google.protobuf.InvalidProtocolBufferException {
           return newBuilder().mergeFrom(data, extensionRegistry)
                    .buildParsed();
         }
@@ -8877,30 +13348,39 @@ public final class RemoteMessageProto {
         }
         public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse parseFrom(
             java.io.InputStream input,
-            com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws java.io.IOException {
           return newBuilder().mergeFrom(input, extensionRegistry)
                    .buildParsed();
         }
         public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse parseDelimitedFrom(java.io.InputStream input)
             throws java.io.IOException {
-          return newBuilder().mergeDelimitedFrom(input).buildParsed();
+          Builder builder = newBuilder();
+          if (builder.mergeDelimitedFrom(input)) {
+            return builder.buildParsed();
+          } else {
+            return null;
+          }
         }
         public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse parseDelimitedFrom(
             java.io.InputStream input,
-            com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws java.io.IOException {
-          return newBuilder().mergeDelimitedFrom(input, extensionRegistry)
-                   .buildParsed();
+          Builder builder = newBuilder();
+          if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
+            return builder.buildParsed();
+          } else {
+            return null;
+          }
         }
         public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse parseFrom(
-            com.google.gwt.dev.protobuf.CodedInputStream input)
+            com.google.protobuf.CodedInputStream input)
             throws java.io.IOException {
           return newBuilder().mergeFrom(input).buildParsed();
         }
         public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse parseFrom(
-            com.google.gwt.dev.protobuf.CodedInputStream input,
-            com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+            com.google.protobuf.CodedInputStream input,
+            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws java.io.IOException {
           return newBuilder().mergeFrom(input, extensionRegistry)
                    .buildParsed();
@@ -8913,37 +13393,68 @@ public final class RemoteMessageProto {
         }
         public Builder toBuilder() { return newBuilder(this); }
         
+        @java.lang.Override
+        protected Builder newBuilderForType(
+            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+          Builder builder = new Builder(parent);
+          return builder;
+        }
         public static final class Builder extends
-            com.google.gwt.dev.protobuf.GeneratedMessage.Builder<Builder> {
-          private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse result;
+            com.google.protobuf.GeneratedMessage.Builder<Builder>
+           implements com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponseOrBuilder {
+          public static final com.google.protobuf.Descriptors.Descriptor
+              getDescriptor() {
+            return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_DevModeResponse_descriptor;
+          }
           
-          // Construct using com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.newBuilder()
-          private Builder() {}
+          protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+              internalGetFieldAccessorTable() {
+            return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_DevModeResponse_fieldAccessorTable;
+          }
           
-          private static Builder create() {
-            Builder builder = new Builder();
-            builder.result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse();
-            return builder;
+          // Construct using com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.newBuilder()
+          private Builder() {
+            maybeForceBuilderInitialization();
           }
           
-          protected com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse internalGetResult() {
-            return result;
+          private Builder(BuilderParent parent) {
+            super(parent);
+            maybeForceBuilderInitialization();
+          }
+          private void maybeForceBuilderInitialization() {
+            if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+              getCapabilityExchangeFieldBuilder();
+              getRestartWebServerFieldBuilder();
+            }
+          }
+          private static Builder create() {
+            return new Builder();
           }
           
           public Builder clear() {
-            if (result == null) {
-              throw new IllegalStateException(
-                "Cannot call clear() after build().");
+            super.clear();
+            responseType_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.ResponseType.CAPABILITY_EXCHANGE;
+            bitField0_ = (bitField0_ & ~0x00000001);
+            if (capabilityExchangeBuilder_ == null) {
+              capabilityExchange_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.getDefaultInstance();
+            } else {
+              capabilityExchangeBuilder_.clear();
+            }
+            bitField0_ = (bitField0_ & ~0x00000002);
+            if (restartWebServerBuilder_ == null) {
+              restartWebServer_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.RestartWebServer.getDefaultInstance();
+            } else {
+              restartWebServerBuilder_.clear();
             }
-            result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse();
+            bitField0_ = (bitField0_ & ~0x00000004);
             return this;
           }
           
           public Builder clone() {
-            return create().mergeFrom(result);
+            return create().mergeFrom(buildPartial());
           }
           
-          public com.google.gwt.dev.protobuf.Descriptors.Descriptor
+          public com.google.protobuf.Descriptors.Descriptor
               getDescriptorForType() {
             return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.getDescriptor();
           }
@@ -8952,36 +13463,54 @@ public final class RemoteMessageProto {
             return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.getDefaultInstance();
           }
           
-          public boolean isInitialized() {
-            return result.isInitialized();
-          }
           public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse build() {
-            if (result != null && !isInitialized()) {
+            com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse result = buildPartial();
+            if (!result.isInitialized()) {
               throw newUninitializedMessageException(result);
             }
-            return buildPartial();
+            return result;
           }
           
           private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse buildParsed()
-              throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
-            if (!isInitialized()) {
+              throws com.google.protobuf.InvalidProtocolBufferException {
+            com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse result = buildPartial();
+            if (!result.isInitialized()) {
               throw newUninitializedMessageException(
                 result).asInvalidProtocolBufferException();
             }
-            return buildPartial();
+            return result;
           }
           
           public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse buildPartial() {
-            if (result == null) {
-              throw new IllegalStateException(
-                "build() has already been called on this Builder.");
+            com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse(this);
+            int from_bitField0_ = bitField0_;
+            int to_bitField0_ = 0;
+            if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+              to_bitField0_ |= 0x00000001;
+            }
+            result.responseType_ = responseType_;
+            if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
+              to_bitField0_ |= 0x00000002;
+            }
+            if (capabilityExchangeBuilder_ == null) {
+              result.capabilityExchange_ = capabilityExchange_;
+            } else {
+              result.capabilityExchange_ = capabilityExchangeBuilder_.build();
+            }
+            if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
+              to_bitField0_ |= 0x00000004;
+            }
+            if (restartWebServerBuilder_ == null) {
+              result.restartWebServer_ = restartWebServer_;
+            } else {
+              result.restartWebServer_ = restartWebServerBuilder_.build();
             }
-            com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse returnMe = result;
-            result = null;
-            return returnMe;
+            result.bitField0_ = to_bitField0_;
+            onBuilt();
+            return result;
           }
           
-          public Builder mergeFrom(com.google.gwt.dev.protobuf.Message other) {
+          public Builder mergeFrom(com.google.protobuf.Message other) {
             if (other instanceof com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse) {
               return mergeFrom((com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse)other);
             } else {
@@ -9005,23 +13534,29 @@ public final class RemoteMessageProto {
             return this;
           }
           
+          public final boolean isInitialized() {
+            return true;
+          }
+          
           public Builder mergeFrom(
-              com.google.gwt.dev.protobuf.CodedInputStream input,
-              com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+              com.google.protobuf.CodedInputStream input,
+              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
               throws java.io.IOException {
-            com.google.gwt.dev.protobuf.UnknownFieldSet.Builder unknownFields =
-              com.google.gwt.dev.protobuf.UnknownFieldSet.newBuilder(
+            com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+              com.google.protobuf.UnknownFieldSet.newBuilder(
                 this.getUnknownFields());
             while (true) {
               int tag = input.readTag();
               switch (tag) {
                 case 0:
                   this.setUnknownFields(unknownFields.build());
+                  onChanged();
                   return this;
                 default: {
                   if (!parseUnknownField(input, unknownFields,
                                          extensionRegistry, tag)) {
                     this.setUnknownFields(unknownFields.build());
+                    onChanged();
                     return this;
                   }
                   break;
@@ -9032,7 +13567,8 @@ public final class RemoteMessageProto {
                   if (value == null) {
                     unknownFields.mergeVarintField(1, rawValue);
                   } else {
-                    setResponseType(value);
+                    bitField0_ |= 0x00000001;
+                    responseType_ = value;
                   }
                   break;
                 }
@@ -9058,140 +13594,277 @@ public final class RemoteMessageProto {
             }
           }
           
+          private int bitField0_;
           
           // optional .com.google.gwt.dev.shell.remoteui.Message.Response.DevModeResponse.ResponseType responseType = 1;
+          private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.ResponseType responseType_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.ResponseType.CAPABILITY_EXCHANGE;
           public boolean hasResponseType() {
-            return result.hasResponseType();
+            return ((bitField0_ & 0x00000001) == 0x00000001);
           }
           public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.ResponseType getResponseType() {
-            return result.getResponseType();
+            return responseType_;
           }
           public Builder setResponseType(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.ResponseType value) {
             if (value == null) {
               throw new NullPointerException();
             }
-            result.hasResponseType = true;
-            result.responseType_ = value;
+            bitField0_ |= 0x00000001;
+            responseType_ = value;
+            onChanged();
             return this;
           }
           public Builder clearResponseType() {
-            result.hasResponseType = false;
-            result.responseType_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.ResponseType.CAPABILITY_EXCHANGE;
+            bitField0_ = (bitField0_ & ~0x00000001);
+            responseType_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.ResponseType.CAPABILITY_EXCHANGE;
+            onChanged();
             return this;
           }
           
           // optional .com.google.gwt.dev.shell.remoteui.Message.Response.DevModeResponse.CapabilityExchange capabilityExchange = 2;
+          private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange capabilityExchange_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.getDefaultInstance();
+          private com.google.protobuf.SingleFieldBuilder<
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchangeOrBuilder> capabilityExchangeBuilder_;
           public boolean hasCapabilityExchange() {
-            return result.hasCapabilityExchange();
+            return ((bitField0_ & 0x00000002) == 0x00000002);
           }
           public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange getCapabilityExchange() {
-            return result.getCapabilityExchange();
+            if (capabilityExchangeBuilder_ == null) {
+              return capabilityExchange_;
+            } else {
+              return capabilityExchangeBuilder_.getMessage();
+            }
           }
           public Builder setCapabilityExchange(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange value) {
-            if (value == null) {
-              throw new NullPointerException();
+            if (capabilityExchangeBuilder_ == null) {
+              if (value == null) {
+                throw new NullPointerException();
+              }
+              capabilityExchange_ = value;
+              onChanged();
+            } else {
+              capabilityExchangeBuilder_.setMessage(value);
             }
-            result.hasCapabilityExchange = true;
-            result.capabilityExchange_ = value;
+            bitField0_ |= 0x00000002;
             return this;
           }
-          public Builder setCapabilityExchange(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Builder builderForValue) {
-            result.hasCapabilityExchange = true;
-            result.capabilityExchange_ = builderForValue.build();
+          public Builder setCapabilityExchange(
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Builder builderForValue) {
+            if (capabilityExchangeBuilder_ == null) {
+              capabilityExchange_ = builderForValue.build();
+              onChanged();
+            } else {
+              capabilityExchangeBuilder_.setMessage(builderForValue.build());
+            }
+            bitField0_ |= 0x00000002;
             return this;
           }
           public Builder mergeCapabilityExchange(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange value) {
-            if (result.hasCapabilityExchange() &&
-                result.capabilityExchange_ != com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.getDefaultInstance()) {
-              result.capabilityExchange_ =
-                com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.newBuilder(result.capabilityExchange_).mergeFrom(value).buildPartial();
+            if (capabilityExchangeBuilder_ == null) {
+              if (((bitField0_ & 0x00000002) == 0x00000002) &&
+                  capabilityExchange_ != com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.getDefaultInstance()) {
+                capabilityExchange_ =
+                  com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.newBuilder(capabilityExchange_).mergeFrom(value).buildPartial();
+              } else {
+                capabilityExchange_ = value;
+              }
+              onChanged();
             } else {
-              result.capabilityExchange_ = value;
+              capabilityExchangeBuilder_.mergeFrom(value);
             }
-            result.hasCapabilityExchange = true;
+            bitField0_ |= 0x00000002;
             return this;
           }
           public Builder clearCapabilityExchange() {
-            result.hasCapabilityExchange = false;
-            result.capabilityExchange_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.getDefaultInstance();
+            if (capabilityExchangeBuilder_ == null) {
+              capabilityExchange_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.getDefaultInstance();
+              onChanged();
+            } else {
+              capabilityExchangeBuilder_.clear();
+            }
+            bitField0_ = (bitField0_ & ~0x00000002);
             return this;
           }
+          public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Builder getCapabilityExchangeBuilder() {
+            bitField0_ |= 0x00000002;
+            onChanged();
+            return getCapabilityExchangeFieldBuilder().getBuilder();
+          }
+          public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchangeOrBuilder getCapabilityExchangeOrBuilder() {
+            if (capabilityExchangeBuilder_ != null) {
+              return capabilityExchangeBuilder_.getMessageOrBuilder();
+            } else {
+              return capabilityExchange_;
+            }
+          }
+          private com.google.protobuf.SingleFieldBuilder<
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchangeOrBuilder> 
+              getCapabilityExchangeFieldBuilder() {
+            if (capabilityExchangeBuilder_ == null) {
+              capabilityExchangeBuilder_ = new com.google.protobuf.SingleFieldBuilder<
+                  com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchangeOrBuilder>(
+                      capabilityExchange_,
+                      getParentForChildren(),
+                      isClean());
+              capabilityExchange_ = null;
+            }
+            return capabilityExchangeBuilder_;
+          }
           
           // optional .com.google.gwt.dev.shell.remoteui.Message.Response.DevModeResponse.RestartWebServer restartWebServer = 3;
+          private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.RestartWebServer restartWebServer_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.RestartWebServer.getDefaultInstance();
+          private com.google.protobuf.SingleFieldBuilder<
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.RestartWebServer, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.RestartWebServer.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.RestartWebServerOrBuilder> restartWebServerBuilder_;
           public boolean hasRestartWebServer() {
-            return result.hasRestartWebServer();
+            return ((bitField0_ & 0x00000004) == 0x00000004);
           }
           public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.RestartWebServer getRestartWebServer() {
-            return result.getRestartWebServer();
+            if (restartWebServerBuilder_ == null) {
+              return restartWebServer_;
+            } else {
+              return restartWebServerBuilder_.getMessage();
+            }
           }
           public Builder setRestartWebServer(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.RestartWebServer value) {
-            if (value == null) {
-              throw new NullPointerException();
+            if (restartWebServerBuilder_ == null) {
+              if (value == null) {
+                throw new NullPointerException();
+              }
+              restartWebServer_ = value;
+              onChanged();
+            } else {
+              restartWebServerBuilder_.setMessage(value);
             }
-            result.hasRestartWebServer = true;
-            result.restartWebServer_ = value;
+            bitField0_ |= 0x00000004;
             return this;
           }
-          public Builder setRestartWebServer(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.RestartWebServer.Builder builderForValue) {
-            result.hasRestartWebServer = true;
-            result.restartWebServer_ = builderForValue.build();
+          public Builder setRestartWebServer(
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.RestartWebServer.Builder builderForValue) {
+            if (restartWebServerBuilder_ == null) {
+              restartWebServer_ = builderForValue.build();
+              onChanged();
+            } else {
+              restartWebServerBuilder_.setMessage(builderForValue.build());
+            }
+            bitField0_ |= 0x00000004;
             return this;
           }
           public Builder mergeRestartWebServer(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.RestartWebServer value) {
-            if (result.hasRestartWebServer() &&
-                result.restartWebServer_ != com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.RestartWebServer.getDefaultInstance()) {
-              result.restartWebServer_ =
-                com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.RestartWebServer.newBuilder(result.restartWebServer_).mergeFrom(value).buildPartial();
+            if (restartWebServerBuilder_ == null) {
+              if (((bitField0_ & 0x00000004) == 0x00000004) &&
+                  restartWebServer_ != com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.RestartWebServer.getDefaultInstance()) {
+                restartWebServer_ =
+                  com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.RestartWebServer.newBuilder(restartWebServer_).mergeFrom(value).buildPartial();
+              } else {
+                restartWebServer_ = value;
+              }
+              onChanged();
             } else {
-              result.restartWebServer_ = value;
+              restartWebServerBuilder_.mergeFrom(value);
             }
-            result.hasRestartWebServer = true;
+            bitField0_ |= 0x00000004;
             return this;
           }
           public Builder clearRestartWebServer() {
-            result.hasRestartWebServer = false;
-            result.restartWebServer_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.RestartWebServer.getDefaultInstance();
+            if (restartWebServerBuilder_ == null) {
+              restartWebServer_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.RestartWebServer.getDefaultInstance();
+              onChanged();
+            } else {
+              restartWebServerBuilder_.clear();
+            }
+            bitField0_ = (bitField0_ & ~0x00000004);
             return this;
           }
+          public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.RestartWebServer.Builder getRestartWebServerBuilder() {
+            bitField0_ |= 0x00000004;
+            onChanged();
+            return getRestartWebServerFieldBuilder().getBuilder();
+          }
+          public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.RestartWebServerOrBuilder getRestartWebServerOrBuilder() {
+            if (restartWebServerBuilder_ != null) {
+              return restartWebServerBuilder_.getMessageOrBuilder();
+            } else {
+              return restartWebServer_;
+            }
+          }
+          private com.google.protobuf.SingleFieldBuilder<
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.RestartWebServer, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.RestartWebServer.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.RestartWebServerOrBuilder> 
+              getRestartWebServerFieldBuilder() {
+            if (restartWebServerBuilder_ == null) {
+              restartWebServerBuilder_ = new com.google.protobuf.SingleFieldBuilder<
+                  com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.RestartWebServer, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.RestartWebServer.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.RestartWebServerOrBuilder>(
+                      restartWebServer_,
+                      getParentForChildren(),
+                      isClean());
+              restartWebServer_ = null;
+            }
+            return restartWebServerBuilder_;
+          }
+          
+          // @@protoc_insertion_point(builder_scope:com.google.gwt.dev.shell.remoteui.Message.Response.DevModeResponse)
         }
         
         static {
-          com.google.gwt.dev.shell.remoteui.RemoteMessageProto.getDescriptor();
+          defaultInstance = new DevModeResponse(true);
+          defaultInstance.initFields();
         }
         
-        static {
-          com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internalForceInit();
-        }
+        // @@protoc_insertion_point(class_scope:com.google.gwt.dev.shell.remoteui.Message.Response.DevModeResponse)
       }
       
+      private int bitField0_;
       // optional .com.google.gwt.dev.shell.remoteui.Message.Response.ViewerResponse viewerResponse = 1;
       public static final int VIEWERRESPONSE_FIELD_NUMBER = 1;
-      private boolean hasViewerResponse;
-      private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse viewerResponse_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.getDefaultInstance();
-      public boolean hasViewerResponse() { return hasViewerResponse; }
-      public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse getViewerResponse() { return viewerResponse_; }
+      private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse viewerResponse_;
+      public boolean hasViewerResponse() {
+        return ((bitField0_ & 0x00000001) == 0x00000001);
+      }
+      public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse getViewerResponse() {
+        return viewerResponse_;
+      }
+      public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponseOrBuilder getViewerResponseOrBuilder() {
+        return viewerResponse_;
+      }
       
       // optional .com.google.gwt.dev.shell.remoteui.Message.Response.DevModeResponse devModeResponse = 2;
       public static final int DEVMODERESPONSE_FIELD_NUMBER = 2;
-      private boolean hasDevModeResponse;
-      private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse devModeResponse_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.getDefaultInstance();
-      public boolean hasDevModeResponse() { return hasDevModeResponse; }
-      public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse getDevModeResponse() { return devModeResponse_; }
+      private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse devModeResponse_;
+      public boolean hasDevModeResponse() {
+        return ((bitField0_ & 0x00000002) == 0x00000002);
+      }
+      public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse getDevModeResponse() {
+        return devModeResponse_;
+      }
+      public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponseOrBuilder getDevModeResponseOrBuilder() {
+        return devModeResponse_;
+      }
       
+      private void initFields() {
+        viewerResponse_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.getDefaultInstance();
+        devModeResponse_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.getDefaultInstance();
+      }
+      private byte memoizedIsInitialized = -1;
       public final boolean isInitialized() {
+        byte isInitialized = memoizedIsInitialized;
+        if (isInitialized != -1) return isInitialized == 1;
+        
         if (hasViewerResponse()) {
-          if (!getViewerResponse().isInitialized()) return false;
+          if (!getViewerResponse().isInitialized()) {
+            memoizedIsInitialized = 0;
+            return false;
+          }
         }
+        memoizedIsInitialized = 1;
         return true;
       }
       
-      public void writeTo(com.google.gwt.dev.protobuf.CodedOutputStream output)
+      public void writeTo(com.google.protobuf.CodedOutputStream output)
                           throws java.io.IOException {
-        if (hasViewerResponse()) {
-          output.writeMessage(1, getViewerResponse());
+        getSerializedSize();
+        if (((bitField0_ & 0x00000001) == 0x00000001)) {
+          output.writeMessage(1, viewerResponse_);
         }
-        if (hasDevModeResponse()) {
-          output.writeMessage(2, getDevModeResponse());
+        if (((bitField0_ & 0x00000002) == 0x00000002)) {
+          output.writeMessage(2, devModeResponse_);
         }
         getUnknownFields().writeTo(output);
       }
@@ -9202,39 +13875,46 @@ public final class RemoteMessageProto {
         if (size != -1) return size;
       
         size = 0;
-        if (hasViewerResponse()) {
-          size += com.google.gwt.dev.protobuf.CodedOutputStream
-            .computeMessageSize(1, getViewerResponse());
-        }
-        if (hasDevModeResponse()) {
-          size += com.google.gwt.dev.protobuf.CodedOutputStream
-            .computeMessageSize(2, getDevModeResponse());
+        if (((bitField0_ & 0x00000001) == 0x00000001)) {
+          size += com.google.protobuf.CodedOutputStream
+            .computeMessageSize(1, viewerResponse_);
+        }
+        if (((bitField0_ & 0x00000002) == 0x00000002)) {
+          size += com.google.protobuf.CodedOutputStream
+            .computeMessageSize(2, devModeResponse_);
         }
         size += getUnknownFields().getSerializedSize();
         memoizedSerializedSize = size;
         return size;
       }
       
+      private static final long serialVersionUID = 0L;
+      @java.lang.Override
+      protected java.lang.Object writeReplace()
+          throws java.io.ObjectStreamException {
+        return super.writeReplace();
+      }
+      
       public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response parseFrom(
-          com.google.gwt.dev.protobuf.ByteString data)
-          throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+          com.google.protobuf.ByteString data)
+          throws com.google.protobuf.InvalidProtocolBufferException {
         return newBuilder().mergeFrom(data).buildParsed();
       }
       public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response parseFrom(
-          com.google.gwt.dev.protobuf.ByteString data,
-          com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+          com.google.protobuf.ByteString data,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
         return newBuilder().mergeFrom(data, extensionRegistry)
                  .buildParsed();
       }
       public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response parseFrom(byte[] data)
-          throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+          throws com.google.protobuf.InvalidProtocolBufferException {
         return newBuilder().mergeFrom(data).buildParsed();
       }
       public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response parseFrom(
           byte[] data,
-          com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
         return newBuilder().mergeFrom(data, extensionRegistry)
                  .buildParsed();
       }
@@ -9244,30 +13924,39 @@ public final class RemoteMessageProto {
       }
       public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response parseFrom(
           java.io.InputStream input,
-          com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws java.io.IOException {
         return newBuilder().mergeFrom(input, extensionRegistry)
                  .buildParsed();
       }
       public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response parseDelimitedFrom(java.io.InputStream input)
           throws java.io.IOException {
-        return newBuilder().mergeDelimitedFrom(input).buildParsed();
+        Builder builder = newBuilder();
+        if (builder.mergeDelimitedFrom(input)) {
+          return builder.buildParsed();
+        } else {
+          return null;
+        }
       }
       public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response parseDelimitedFrom(
           java.io.InputStream input,
-          com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws java.io.IOException {
-        return newBuilder().mergeDelimitedFrom(input, extensionRegistry)
-                 .buildParsed();
+        Builder builder = newBuilder();
+        if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
+          return builder.buildParsed();
+        } else {
+          return null;
+        }
       }
       public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response parseFrom(
-          com.google.gwt.dev.protobuf.CodedInputStream input)
+          com.google.protobuf.CodedInputStream input)
           throws java.io.IOException {
         return newBuilder().mergeFrom(input).buildParsed();
       }
       public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response parseFrom(
-          com.google.gwt.dev.protobuf.CodedInputStream input,
-          com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws java.io.IOException {
         return newBuilder().mergeFrom(input, extensionRegistry)
                  .buildParsed();
@@ -9280,37 +13969,66 @@ public final class RemoteMessageProto {
       }
       public Builder toBuilder() { return newBuilder(this); }
       
+      @java.lang.Override
+      protected Builder newBuilderForType(
+          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+        Builder builder = new Builder(parent);
+        return builder;
+      }
       public static final class Builder extends
-          com.google.gwt.dev.protobuf.GeneratedMessage.Builder<Builder> {
-        private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response result;
+          com.google.protobuf.GeneratedMessage.Builder<Builder>
+         implements com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.ResponseOrBuilder {
+        public static final com.google.protobuf.Descriptors.Descriptor
+            getDescriptor() {
+          return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_descriptor;
+        }
         
-        // Construct using com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.newBuilder()
-        private Builder() {}
+        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+            internalGetFieldAccessorTable() {
+          return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_fieldAccessorTable;
+        }
         
-        private static Builder create() {
-          Builder builder = new Builder();
-          builder.result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response();
-          return builder;
+        // Construct using com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.newBuilder()
+        private Builder() {
+          maybeForceBuilderInitialization();
         }
         
-        protected com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response internalGetResult() {
-          return result;
+        private Builder(BuilderParent parent) {
+          super(parent);
+          maybeForceBuilderInitialization();
+        }
+        private void maybeForceBuilderInitialization() {
+          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+            getViewerResponseFieldBuilder();
+            getDevModeResponseFieldBuilder();
+          }
+        }
+        private static Builder create() {
+          return new Builder();
         }
         
         public Builder clear() {
-          if (result == null) {
-            throw new IllegalStateException(
-              "Cannot call clear() after build().");
+          super.clear();
+          if (viewerResponseBuilder_ == null) {
+            viewerResponse_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.getDefaultInstance();
+          } else {
+            viewerResponseBuilder_.clear();
+          }
+          bitField0_ = (bitField0_ & ~0x00000001);
+          if (devModeResponseBuilder_ == null) {
+            devModeResponse_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.getDefaultInstance();
+          } else {
+            devModeResponseBuilder_.clear();
           }
-          result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response();
+          bitField0_ = (bitField0_ & ~0x00000002);
           return this;
         }
         
         public Builder clone() {
-          return create().mergeFrom(result);
+          return create().mergeFrom(buildPartial());
         }
         
-        public com.google.gwt.dev.protobuf.Descriptors.Descriptor
+        public com.google.protobuf.Descriptors.Descriptor
             getDescriptorForType() {
           return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.getDescriptor();
         }
@@ -9319,36 +14037,50 @@ public final class RemoteMessageProto {
           return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.getDefaultInstance();
         }
         
-        public boolean isInitialized() {
-          return result.isInitialized();
-        }
         public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response build() {
-          if (result != null && !isInitialized()) {
+          com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response result = buildPartial();
+          if (!result.isInitialized()) {
             throw newUninitializedMessageException(result);
           }
-          return buildPartial();
+          return result;
         }
         
         private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response buildParsed()
-            throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
-          if (!isInitialized()) {
+            throws com.google.protobuf.InvalidProtocolBufferException {
+          com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response result = buildPartial();
+          if (!result.isInitialized()) {
             throw newUninitializedMessageException(
               result).asInvalidProtocolBufferException();
           }
-          return buildPartial();
+          return result;
         }
         
         public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response buildPartial() {
-          if (result == null) {
-            throw new IllegalStateException(
-              "build() has already been called on this Builder.");
+          com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response(this);
+          int from_bitField0_ = bitField0_;
+          int to_bitField0_ = 0;
+          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+            to_bitField0_ |= 0x00000001;
+          }
+          if (viewerResponseBuilder_ == null) {
+            result.viewerResponse_ = viewerResponse_;
+          } else {
+            result.viewerResponse_ = viewerResponseBuilder_.build();
           }
-          com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response returnMe = result;
-          result = null;
-          return returnMe;
+          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
+            to_bitField0_ |= 0x00000002;
+          }
+          if (devModeResponseBuilder_ == null) {
+            result.devModeResponse_ = devModeResponse_;
+          } else {
+            result.devModeResponse_ = devModeResponseBuilder_.build();
+          }
+          result.bitField0_ = to_bitField0_;
+          onBuilt();
+          return result;
         }
         
-        public Builder mergeFrom(com.google.gwt.dev.protobuf.Message other) {
+        public Builder mergeFrom(com.google.protobuf.Message other) {
           if (other instanceof com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response) {
             return mergeFrom((com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response)other);
           } else {
@@ -9369,23 +14101,35 @@ public final class RemoteMessageProto {
           return this;
         }
         
+        public final boolean isInitialized() {
+          if (hasViewerResponse()) {
+            if (!getViewerResponse().isInitialized()) {
+              
+              return false;
+            }
+          }
+          return true;
+        }
+        
         public Builder mergeFrom(
-            com.google.gwt.dev.protobuf.CodedInputStream input,
-            com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+            com.google.protobuf.CodedInputStream input,
+            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws java.io.IOException {
-          com.google.gwt.dev.protobuf.UnknownFieldSet.Builder unknownFields =
-            com.google.gwt.dev.protobuf.UnknownFieldSet.newBuilder(
+          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+            com.google.protobuf.UnknownFieldSet.newBuilder(
               this.getUnknownFields());
           while (true) {
             int tag = input.readTag();
             switch (tag) {
               case 0:
                 this.setUnknownFields(unknownFields.build());
+                onChanged();
                 return this;
               default: {
                 if (!parseUnknownField(input, unknownFields,
                                        extensionRegistry, tag)) {
                   this.setUnknownFields(unknownFields.build());
+                  onChanged();
                   return this;
                 }
                 break;
@@ -9412,97 +14156,220 @@ public final class RemoteMessageProto {
           }
         }
         
+        private int bitField0_;
         
         // optional .com.google.gwt.dev.shell.remoteui.Message.Response.ViewerResponse viewerResponse = 1;
+        private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse viewerResponse_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.getDefaultInstance();
+        private com.google.protobuf.SingleFieldBuilder<
+            com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponseOrBuilder> viewerResponseBuilder_;
         public boolean hasViewerResponse() {
-          return result.hasViewerResponse();
+          return ((bitField0_ & 0x00000001) == 0x00000001);
         }
         public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse getViewerResponse() {
-          return result.getViewerResponse();
+          if (viewerResponseBuilder_ == null) {
+            return viewerResponse_;
+          } else {
+            return viewerResponseBuilder_.getMessage();
+          }
         }
         public Builder setViewerResponse(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse value) {
-          if (value == null) {
-            throw new NullPointerException();
+          if (viewerResponseBuilder_ == null) {
+            if (value == null) {
+              throw new NullPointerException();
+            }
+            viewerResponse_ = value;
+            onChanged();
+          } else {
+            viewerResponseBuilder_.setMessage(value);
           }
-          result.hasViewerResponse = true;
-          result.viewerResponse_ = value;
+          bitField0_ |= 0x00000001;
           return this;
         }
-        public Builder setViewerResponse(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.Builder builderForValue) {
-          result.hasViewerResponse = true;
-          result.viewerResponse_ = builderForValue.build();
+        public Builder setViewerResponse(
+            com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.Builder builderForValue) {
+          if (viewerResponseBuilder_ == null) {
+            viewerResponse_ = builderForValue.build();
+            onChanged();
+          } else {
+            viewerResponseBuilder_.setMessage(builderForValue.build());
+          }
+          bitField0_ |= 0x00000001;
           return this;
         }
         public Builder mergeViewerResponse(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse value) {
-          if (result.hasViewerResponse() &&
-              result.viewerResponse_ != com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.getDefaultInstance()) {
-            result.viewerResponse_ =
-              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.newBuilder(result.viewerResponse_).mergeFrom(value).buildPartial();
+          if (viewerResponseBuilder_ == null) {
+            if (((bitField0_ & 0x00000001) == 0x00000001) &&
+                viewerResponse_ != com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.getDefaultInstance()) {
+              viewerResponse_ =
+                com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.newBuilder(viewerResponse_).mergeFrom(value).buildPartial();
+            } else {
+              viewerResponse_ = value;
+            }
+            onChanged();
           } else {
-            result.viewerResponse_ = value;
+            viewerResponseBuilder_.mergeFrom(value);
           }
-          result.hasViewerResponse = true;
+          bitField0_ |= 0x00000001;
           return this;
         }
         public Builder clearViewerResponse() {
-          result.hasViewerResponse = false;
-          result.viewerResponse_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.getDefaultInstance();
+          if (viewerResponseBuilder_ == null) {
+            viewerResponse_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.getDefaultInstance();
+            onChanged();
+          } else {
+            viewerResponseBuilder_.clear();
+          }
+          bitField0_ = (bitField0_ & ~0x00000001);
           return this;
         }
+        public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.Builder getViewerResponseBuilder() {
+          bitField0_ |= 0x00000001;
+          onChanged();
+          return getViewerResponseFieldBuilder().getBuilder();
+        }
+        public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponseOrBuilder getViewerResponseOrBuilder() {
+          if (viewerResponseBuilder_ != null) {
+            return viewerResponseBuilder_.getMessageOrBuilder();
+          } else {
+            return viewerResponse_;
+          }
+        }
+        private com.google.protobuf.SingleFieldBuilder<
+            com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponseOrBuilder> 
+            getViewerResponseFieldBuilder() {
+          if (viewerResponseBuilder_ == null) {
+            viewerResponseBuilder_ = new com.google.protobuf.SingleFieldBuilder<
+                com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponseOrBuilder>(
+                    viewerResponse_,
+                    getParentForChildren(),
+                    isClean());
+            viewerResponse_ = null;
+          }
+          return viewerResponseBuilder_;
+        }
         
         // optional .com.google.gwt.dev.shell.remoteui.Message.Response.DevModeResponse devModeResponse = 2;
+        private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse devModeResponse_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.getDefaultInstance();
+        private com.google.protobuf.SingleFieldBuilder<
+            com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponseOrBuilder> devModeResponseBuilder_;
         public boolean hasDevModeResponse() {
-          return result.hasDevModeResponse();
+          return ((bitField0_ & 0x00000002) == 0x00000002);
         }
         public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse getDevModeResponse() {
-          return result.getDevModeResponse();
+          if (devModeResponseBuilder_ == null) {
+            return devModeResponse_;
+          } else {
+            return devModeResponseBuilder_.getMessage();
+          }
         }
         public Builder setDevModeResponse(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse value) {
-          if (value == null) {
-            throw new NullPointerException();
+          if (devModeResponseBuilder_ == null) {
+            if (value == null) {
+              throw new NullPointerException();
+            }
+            devModeResponse_ = value;
+            onChanged();
+          } else {
+            devModeResponseBuilder_.setMessage(value);
           }
-          result.hasDevModeResponse = true;
-          result.devModeResponse_ = value;
+          bitField0_ |= 0x00000002;
           return this;
         }
-        public Builder setDevModeResponse(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.Builder builderForValue) {
-          result.hasDevModeResponse = true;
-          result.devModeResponse_ = builderForValue.build();
+        public Builder setDevModeResponse(
+            com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.Builder builderForValue) {
+          if (devModeResponseBuilder_ == null) {
+            devModeResponse_ = builderForValue.build();
+            onChanged();
+          } else {
+            devModeResponseBuilder_.setMessage(builderForValue.build());
+          }
+          bitField0_ |= 0x00000002;
           return this;
         }
         public Builder mergeDevModeResponse(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse value) {
-          if (result.hasDevModeResponse() &&
-              result.devModeResponse_ != com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.getDefaultInstance()) {
-            result.devModeResponse_ =
-              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.newBuilder(result.devModeResponse_).mergeFrom(value).buildPartial();
+          if (devModeResponseBuilder_ == null) {
+            if (((bitField0_ & 0x00000002) == 0x00000002) &&
+                devModeResponse_ != com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.getDefaultInstance()) {
+              devModeResponse_ =
+                com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.newBuilder(devModeResponse_).mergeFrom(value).buildPartial();
+            } else {
+              devModeResponse_ = value;
+            }
+            onChanged();
           } else {
-            result.devModeResponse_ = value;
+            devModeResponseBuilder_.mergeFrom(value);
           }
-          result.hasDevModeResponse = true;
+          bitField0_ |= 0x00000002;
           return this;
         }
         public Builder clearDevModeResponse() {
-          result.hasDevModeResponse = false;
-          result.devModeResponse_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.getDefaultInstance();
+          if (devModeResponseBuilder_ == null) {
+            devModeResponse_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.getDefaultInstance();
+            onChanged();
+          } else {
+            devModeResponseBuilder_.clear();
+          }
+          bitField0_ = (bitField0_ & ~0x00000002);
           return this;
         }
+        public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.Builder getDevModeResponseBuilder() {
+          bitField0_ |= 0x00000002;
+          onChanged();
+          return getDevModeResponseFieldBuilder().getBuilder();
+        }
+        public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponseOrBuilder getDevModeResponseOrBuilder() {
+          if (devModeResponseBuilder_ != null) {
+            return devModeResponseBuilder_.getMessageOrBuilder();
+          } else {
+            return devModeResponse_;
+          }
+        }
+        private com.google.protobuf.SingleFieldBuilder<
+            com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponseOrBuilder> 
+            getDevModeResponseFieldBuilder() {
+          if (devModeResponseBuilder_ == null) {
+            devModeResponseBuilder_ = new com.google.protobuf.SingleFieldBuilder<
+                com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponseOrBuilder>(
+                    devModeResponse_,
+                    getParentForChildren(),
+                    isClean());
+            devModeResponse_ = null;
+          }
+          return devModeResponseBuilder_;
+        }
+        
+        // @@protoc_insertion_point(builder_scope:com.google.gwt.dev.shell.remoteui.Message.Response)
       }
       
       static {
-        com.google.gwt.dev.shell.remoteui.RemoteMessageProto.getDescriptor();
+        defaultInstance = new Response(true);
+        defaultInstance.initFields();
       }
       
-      static {
-        com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internalForceInit();
-      }
+      // @@protoc_insertion_point(class_scope:com.google.gwt.dev.shell.remoteui.Message.Response)
     }
     
+    public interface FailureOrBuilder
+        extends com.google.protobuf.MessageOrBuilder {
+      
+      // optional string message = 1;
+      boolean hasMessage();
+      String getMessage();
+      
+      // optional string stackTrace = 2;
+      boolean hasStackTrace();
+      String getStackTrace();
+    }
     public static final class Failure extends
-        com.google.gwt.dev.protobuf.GeneratedMessage {
+        com.google.protobuf.GeneratedMessage
+        implements FailureOrBuilder {
       // Use Failure.newBuilder() to construct.
-      private Failure() {}
+      private Failure(Builder builder) {
+        super(builder);
+      }
+      private Failure(boolean noInit) {}
       
-      private static final Failure defaultInstance = new Failure();
+      private static final Failure defaultInstance;
       public static Failure getDefaultInstance() {
         return defaultInstance;
       }
@@ -9511,41 +14378,102 @@ public final class RemoteMessageProto {
         return defaultInstance;
       }
       
-      public static final com.google.gwt.dev.protobuf.Descriptors.Descriptor
+      public static final com.google.protobuf.Descriptors.Descriptor
           getDescriptor() {
         return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Failure_descriptor;
       }
       
-      protected com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable
+      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
           internalGetFieldAccessorTable() {
         return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Failure_fieldAccessorTable;
       }
       
+      private int bitField0_;
       // optional string message = 1;
       public static final int MESSAGE_FIELD_NUMBER = 1;
-      private boolean hasMessage;
-      private java.lang.String message_ = "";
-      public boolean hasMessage() { return hasMessage; }
-      public java.lang.String getMessage() { return message_; }
+      private java.lang.Object message_;
+      public boolean hasMessage() {
+        return ((bitField0_ & 0x00000001) == 0x00000001);
+      }
+      public String getMessage() {
+        java.lang.Object ref = message_;
+        if (ref instanceof String) {
+          return (String) ref;
+        } else {
+          com.google.protobuf.ByteString bs = 
+              (com.google.protobuf.ByteString) ref;
+          String s = bs.toStringUtf8();
+          if (com.google.protobuf.Internal.isValidUtf8(bs)) {
+            message_ = s;
+          }
+          return s;
+        }
+      }
+      private com.google.protobuf.ByteString getMessageBytes() {
+        java.lang.Object ref = message_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8((String) ref);
+          message_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
       
       // optional string stackTrace = 2;
       public static final int STACKTRACE_FIELD_NUMBER = 2;
-      private boolean hasStackTrace;
-      private java.lang.String stackTrace_ = "";
-      public boolean hasStackTrace() { return hasStackTrace; }
-      public java.lang.String getStackTrace() { return stackTrace_; }
+      private java.lang.Object stackTrace_;
+      public boolean hasStackTrace() {
+        return ((bitField0_ & 0x00000002) == 0x00000002);
+      }
+      public String getStackTrace() {
+        java.lang.Object ref = stackTrace_;
+        if (ref instanceof String) {
+          return (String) ref;
+        } else {
+          com.google.protobuf.ByteString bs = 
+              (com.google.protobuf.ByteString) ref;
+          String s = bs.toStringUtf8();
+          if (com.google.protobuf.Internal.isValidUtf8(bs)) {
+            stackTrace_ = s;
+          }
+          return s;
+        }
+      }
+      private com.google.protobuf.ByteString getStackTraceBytes() {
+        java.lang.Object ref = stackTrace_;
+        if (ref instanceof String) {
+          com.google.protobuf.ByteString b = 
+              com.google.protobuf.ByteString.copyFromUtf8((String) ref);
+          stackTrace_ = b;
+          return b;
+        } else {
+          return (com.google.protobuf.ByteString) ref;
+        }
+      }
       
+      private void initFields() {
+        message_ = "";
+        stackTrace_ = "";
+      }
+      private byte memoizedIsInitialized = -1;
       public final boolean isInitialized() {
+        byte isInitialized = memoizedIsInitialized;
+        if (isInitialized != -1) return isInitialized == 1;
+        
+        memoizedIsInitialized = 1;
         return true;
       }
       
-      public void writeTo(com.google.gwt.dev.protobuf.CodedOutputStream output)
+      public void writeTo(com.google.protobuf.CodedOutputStream output)
                           throws java.io.IOException {
-        if (hasMessage()) {
-          output.writeString(1, getMessage());
+        getSerializedSize();
+        if (((bitField0_ & 0x00000001) == 0x00000001)) {
+          output.writeBytes(1, getMessageBytes());
         }
-        if (hasStackTrace()) {
-          output.writeString(2, getStackTrace());
+        if (((bitField0_ & 0x00000002) == 0x00000002)) {
+          output.writeBytes(2, getStackTraceBytes());
         }
         getUnknownFields().writeTo(output);
       }
@@ -9556,39 +14484,46 @@ public final class RemoteMessageProto {
         if (size != -1) return size;
       
         size = 0;
-        if (hasMessage()) {
-          size += com.google.gwt.dev.protobuf.CodedOutputStream
-            .computeStringSize(1, getMessage());
-        }
-        if (hasStackTrace()) {
-          size += com.google.gwt.dev.protobuf.CodedOutputStream
-            .computeStringSize(2, getStackTrace());
+        if (((bitField0_ & 0x00000001) == 0x00000001)) {
+          size += com.google.protobuf.CodedOutputStream
+            .computeBytesSize(1, getMessageBytes());
+        }
+        if (((bitField0_ & 0x00000002) == 0x00000002)) {
+          size += com.google.protobuf.CodedOutputStream
+            .computeBytesSize(2, getStackTraceBytes());
         }
         size += getUnknownFields().getSerializedSize();
         memoizedSerializedSize = size;
         return size;
       }
       
+      private static final long serialVersionUID = 0L;
+      @java.lang.Override
+      protected java.lang.Object writeReplace()
+          throws java.io.ObjectStreamException {
+        return super.writeReplace();
+      }
+      
       public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Failure parseFrom(
-          com.google.gwt.dev.protobuf.ByteString data)
-          throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+          com.google.protobuf.ByteString data)
+          throws com.google.protobuf.InvalidProtocolBufferException {
         return newBuilder().mergeFrom(data).buildParsed();
       }
       public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Failure parseFrom(
-          com.google.gwt.dev.protobuf.ByteString data,
-          com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+          com.google.protobuf.ByteString data,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
         return newBuilder().mergeFrom(data, extensionRegistry)
                  .buildParsed();
       }
       public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Failure parseFrom(byte[] data)
-          throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+          throws com.google.protobuf.InvalidProtocolBufferException {
         return newBuilder().mergeFrom(data).buildParsed();
       }
       public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Failure parseFrom(
           byte[] data,
-          com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+          throws com.google.protobuf.InvalidProtocolBufferException {
         return newBuilder().mergeFrom(data, extensionRegistry)
                  .buildParsed();
       }
@@ -9598,30 +14533,39 @@ public final class RemoteMessageProto {
       }
       public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Failure parseFrom(
           java.io.InputStream input,
-          com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws java.io.IOException {
         return newBuilder().mergeFrom(input, extensionRegistry)
                  .buildParsed();
       }
       public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Failure parseDelimitedFrom(java.io.InputStream input)
           throws java.io.IOException {
-        return newBuilder().mergeDelimitedFrom(input).buildParsed();
+        Builder builder = newBuilder();
+        if (builder.mergeDelimitedFrom(input)) {
+          return builder.buildParsed();
+        } else {
+          return null;
+        }
       }
       public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Failure parseDelimitedFrom(
           java.io.InputStream input,
-          com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws java.io.IOException {
-        return newBuilder().mergeDelimitedFrom(input, extensionRegistry)
-                 .buildParsed();
+        Builder builder = newBuilder();
+        if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
+          return builder.buildParsed();
+        } else {
+          return null;
+        }
       }
       public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Failure parseFrom(
-          com.google.gwt.dev.protobuf.CodedInputStream input)
+          com.google.protobuf.CodedInputStream input)
           throws java.io.IOException {
         return newBuilder().mergeFrom(input).buildParsed();
       }
       public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Failure parseFrom(
-          com.google.gwt.dev.protobuf.CodedInputStream input,
-          com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws java.io.IOException {
         return newBuilder().mergeFrom(input, extensionRegistry)
                  .buildParsed();
@@ -9634,37 +14578,56 @@ public final class RemoteMessageProto {
       }
       public Builder toBuilder() { return newBuilder(this); }
       
+      @java.lang.Override
+      protected Builder newBuilderForType(
+          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+        Builder builder = new Builder(parent);
+        return builder;
+      }
       public static final class Builder extends
-          com.google.gwt.dev.protobuf.GeneratedMessage.Builder<Builder> {
-        private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Failure result;
+          com.google.protobuf.GeneratedMessage.Builder<Builder>
+         implements com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.FailureOrBuilder {
+        public static final com.google.protobuf.Descriptors.Descriptor
+            getDescriptor() {
+          return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Failure_descriptor;
+        }
         
-        // Construct using com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Failure.newBuilder()
-        private Builder() {}
+        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+            internalGetFieldAccessorTable() {
+          return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_Failure_fieldAccessorTable;
+        }
         
-        private static Builder create() {
-          Builder builder = new Builder();
-          builder.result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Failure();
-          return builder;
+        // Construct using com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Failure.newBuilder()
+        private Builder() {
+          maybeForceBuilderInitialization();
         }
         
-        protected com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Failure internalGetResult() {
-          return result;
+        private Builder(BuilderParent parent) {
+          super(parent);
+          maybeForceBuilderInitialization();
+        }
+        private void maybeForceBuilderInitialization() {
+          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+          }
+        }
+        private static Builder create() {
+          return new Builder();
         }
         
         public Builder clear() {
-          if (result == null) {
-            throw new IllegalStateException(
-              "Cannot call clear() after build().");
-          }
-          result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Failure();
+          super.clear();
+          message_ = "";
+          bitField0_ = (bitField0_ & ~0x00000001);
+          stackTrace_ = "";
+          bitField0_ = (bitField0_ & ~0x00000002);
           return this;
         }
         
         public Builder clone() {
-          return create().mergeFrom(result);
+          return create().mergeFrom(buildPartial());
         }
         
-        public com.google.gwt.dev.protobuf.Descriptors.Descriptor
+        public com.google.protobuf.Descriptors.Descriptor
             getDescriptorForType() {
           return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Failure.getDescriptor();
         }
@@ -9673,36 +14636,42 @@ public final class RemoteMessageProto {
           return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Failure.getDefaultInstance();
         }
         
-        public boolean isInitialized() {
-          return result.isInitialized();
-        }
         public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Failure build() {
-          if (result != null && !isInitialized()) {
+          com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Failure result = buildPartial();
+          if (!result.isInitialized()) {
             throw newUninitializedMessageException(result);
           }
-          return buildPartial();
+          return result;
         }
         
         private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Failure buildParsed()
-            throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
-          if (!isInitialized()) {
+            throws com.google.protobuf.InvalidProtocolBufferException {
+          com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Failure result = buildPartial();
+          if (!result.isInitialized()) {
             throw newUninitializedMessageException(
               result).asInvalidProtocolBufferException();
           }
-          return buildPartial();
+          return result;
         }
         
         public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Failure buildPartial() {
-          if (result == null) {
-            throw new IllegalStateException(
-              "build() has already been called on this Builder.");
-          }
-          com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Failure returnMe = result;
-          result = null;
-          return returnMe;
+          com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Failure result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Failure(this);
+          int from_bitField0_ = bitField0_;
+          int to_bitField0_ = 0;
+          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+            to_bitField0_ |= 0x00000001;
+          }
+          result.message_ = message_;
+          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
+            to_bitField0_ |= 0x00000002;
+          }
+          result.stackTrace_ = stackTrace_;
+          result.bitField0_ = to_bitField0_;
+          onBuilt();
+          return result;
         }
         
-        public Builder mergeFrom(com.google.gwt.dev.protobuf.Message other) {
+        public Builder mergeFrom(com.google.protobuf.Message other) {
           if (other instanceof com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Failure) {
             return mergeFrom((com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Failure)other);
           } else {
@@ -9723,164 +14692,277 @@ public final class RemoteMessageProto {
           return this;
         }
         
+        public final boolean isInitialized() {
+          return true;
+        }
+        
         public Builder mergeFrom(
-            com.google.gwt.dev.protobuf.CodedInputStream input,
-            com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+            com.google.protobuf.CodedInputStream input,
+            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
             throws java.io.IOException {
-          com.google.gwt.dev.protobuf.UnknownFieldSet.Builder unknownFields =
-            com.google.gwt.dev.protobuf.UnknownFieldSet.newBuilder(
+          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+            com.google.protobuf.UnknownFieldSet.newBuilder(
               this.getUnknownFields());
           while (true) {
             int tag = input.readTag();
             switch (tag) {
               case 0:
                 this.setUnknownFields(unknownFields.build());
+                onChanged();
                 return this;
               default: {
                 if (!parseUnknownField(input, unknownFields,
                                        extensionRegistry, tag)) {
                   this.setUnknownFields(unknownFields.build());
+                  onChanged();
                   return this;
                 }
                 break;
               }
               case 10: {
-                setMessage(input.readString());
+                bitField0_ |= 0x00000001;
+                message_ = input.readBytes();
                 break;
               }
               case 18: {
-                setStackTrace(input.readString());
+                bitField0_ |= 0x00000002;
+                stackTrace_ = input.readBytes();
                 break;
               }
             }
           }
         }
         
+        private int bitField0_;
         
         // optional string message = 1;
+        private java.lang.Object message_ = "";
         public boolean hasMessage() {
-          return result.hasMessage();
+          return ((bitField0_ & 0x00000001) == 0x00000001);
         }
-        public java.lang.String getMessage() {
-          return result.getMessage();
+        public String getMessage() {
+          java.lang.Object ref = message_;
+          if (!(ref instanceof String)) {
+            String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
+            message_ = s;
+            return s;
+          } else {
+            return (String) ref;
+          }
         }
-        public Builder setMessage(java.lang.String value) {
+        public Builder setMessage(String value) {
           if (value == null) {
     throw new NullPointerException();
   }
-  result.hasMessage = true;
-          result.message_ = value;
+  bitField0_ |= 0x00000001;
+          message_ = value;
+          onChanged();
           return this;
         }
         public Builder clearMessage() {
-          result.hasMessage = false;
-          result.message_ = getDefaultInstance().getMessage();
+          bitField0_ = (bitField0_ & ~0x00000001);
+          message_ = getDefaultInstance().getMessage();
+          onChanged();
           return this;
         }
+        void setMessage(com.google.protobuf.ByteString value) {
+          bitField0_ |= 0x00000001;
+          message_ = value;
+          onChanged();
+        }
         
         // optional string stackTrace = 2;
+        private java.lang.Object stackTrace_ = "";
         public boolean hasStackTrace() {
-          return result.hasStackTrace();
+          return ((bitField0_ & 0x00000002) == 0x00000002);
         }
-        public java.lang.String getStackTrace() {
-          return result.getStackTrace();
+        public String getStackTrace() {
+          java.lang.Object ref = stackTrace_;
+          if (!(ref instanceof String)) {
+            String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
+            stackTrace_ = s;
+            return s;
+          } else {
+            return (String) ref;
+          }
         }
-        public Builder setStackTrace(java.lang.String value) {
+        public Builder setStackTrace(String value) {
           if (value == null) {
     throw new NullPointerException();
   }
-  result.hasStackTrace = true;
-          result.stackTrace_ = value;
+  bitField0_ |= 0x00000002;
+          stackTrace_ = value;
+          onChanged();
           return this;
         }
         public Builder clearStackTrace() {
-          result.hasStackTrace = false;
-          result.stackTrace_ = getDefaultInstance().getStackTrace();
+          bitField0_ = (bitField0_ & ~0x00000002);
+          stackTrace_ = getDefaultInstance().getStackTrace();
+          onChanged();
           return this;
         }
+        void setStackTrace(com.google.protobuf.ByteString value) {
+          bitField0_ |= 0x00000002;
+          stackTrace_ = value;
+          onChanged();
+        }
+        
+        // @@protoc_insertion_point(builder_scope:com.google.gwt.dev.shell.remoteui.Message.Failure)
       }
       
       static {
-        com.google.gwt.dev.shell.remoteui.RemoteMessageProto.getDescriptor();
+        defaultInstance = new Failure(true);
+        defaultInstance.initFields();
       }
       
-      static {
-        com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internalForceInit();
-      }
+      // @@protoc_insertion_point(class_scope:com.google.gwt.dev.shell.remoteui.Message.Failure)
     }
     
+    private int bitField0_;
     // optional string protocolVersion = 1;
     public static final int PROTOCOLVERSION_FIELD_NUMBER = 1;
-    private boolean hasProtocolVersion;
-    private java.lang.String protocolVersion_ = "";
-    public boolean hasProtocolVersion() { return hasProtocolVersion; }
-    public java.lang.String getProtocolVersion() { return protocolVersion_; }
+    private java.lang.Object protocolVersion_;
+    public boolean hasProtocolVersion() {
+      return ((bitField0_ & 0x00000001) == 0x00000001);
+    }
+    public String getProtocolVersion() {
+      java.lang.Object ref = protocolVersion_;
+      if (ref instanceof String) {
+        return (String) ref;
+      } else {
+        com.google.protobuf.ByteString bs = 
+            (com.google.protobuf.ByteString) ref;
+        String s = bs.toStringUtf8();
+        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
+          protocolVersion_ = s;
+        }
+        return s;
+      }
+    }
+    private com.google.protobuf.ByteString getProtocolVersionBytes() {
+      java.lang.Object ref = protocolVersion_;
+      if (ref instanceof String) {
+        com.google.protobuf.ByteString b = 
+            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
+        protocolVersion_ = b;
+        return b;
+      } else {
+        return (com.google.protobuf.ByteString) ref;
+      }
+    }
     
     // optional .com.google.gwt.dev.shell.remoteui.Message.MessageType messageType = 2;
     public static final int MESSAGETYPE_FIELD_NUMBER = 2;
-    private boolean hasMessageType;
-    private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.MessageType messageType_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.MessageType.REQUEST;
-    public boolean hasMessageType() { return hasMessageType; }
-    public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.MessageType getMessageType() { return messageType_; }
+    private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.MessageType messageType_;
+    public boolean hasMessageType() {
+      return ((bitField0_ & 0x00000002) == 0x00000002);
+    }
+    public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.MessageType getMessageType() {
+      return messageType_;
+    }
     
     // required uint32 messageId = 3;
     public static final int MESSAGEID_FIELD_NUMBER = 3;
-    private boolean hasMessageId;
-    private int messageId_ = 0;
-    public boolean hasMessageId() { return hasMessageId; }
-    public int getMessageId() { return messageId_; }
+    private int messageId_;
+    public boolean hasMessageId() {
+      return ((bitField0_ & 0x00000004) == 0x00000004);
+    }
+    public int getMessageId() {
+      return messageId_;
+    }
     
     // optional .com.google.gwt.dev.shell.remoteui.Message.Request request = 4;
     public static final int REQUEST_FIELD_NUMBER = 4;
-    private boolean hasRequest;
-    private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request request_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.getDefaultInstance();
-    public boolean hasRequest() { return hasRequest; }
-    public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request getRequest() { return request_; }
+    private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request request_;
+    public boolean hasRequest() {
+      return ((bitField0_ & 0x00000008) == 0x00000008);
+    }
+    public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request getRequest() {
+      return request_;
+    }
+    public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.RequestOrBuilder getRequestOrBuilder() {
+      return request_;
+    }
     
     // optional .com.google.gwt.dev.shell.remoteui.Message.Response response = 5;
     public static final int RESPONSE_FIELD_NUMBER = 5;
-    private boolean hasResponse;
-    private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response response_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.getDefaultInstance();
-    public boolean hasResponse() { return hasResponse; }
-    public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response getResponse() { return response_; }
+    private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response response_;
+    public boolean hasResponse() {
+      return ((bitField0_ & 0x00000010) == 0x00000010);
+    }
+    public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response getResponse() {
+      return response_;
+    }
+    public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.ResponseOrBuilder getResponseOrBuilder() {
+      return response_;
+    }
     
     // optional .com.google.gwt.dev.shell.remoteui.Message.Failure failure = 6;
     public static final int FAILURE_FIELD_NUMBER = 6;
-    private boolean hasFailure;
-    private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Failure failure_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Failure.getDefaultInstance();
-    public boolean hasFailure() { return hasFailure; }
-    public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Failure getFailure() { return failure_; }
+    private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Failure failure_;
+    public boolean hasFailure() {
+      return ((bitField0_ & 0x00000020) == 0x00000020);
+    }
+    public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Failure getFailure() {
+      return failure_;
+    }
+    public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.FailureOrBuilder getFailureOrBuilder() {
+      return failure_;
+    }
     
+    private void initFields() {
+      protocolVersion_ = "";
+      messageType_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.MessageType.REQUEST;
+      messageId_ = 0;
+      request_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.getDefaultInstance();
+      response_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.getDefaultInstance();
+      failure_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Failure.getDefaultInstance();
+    }
+    private byte memoizedIsInitialized = -1;
     public final boolean isInitialized() {
-      if (!hasMessageId) return false;
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized != -1) return isInitialized == 1;
+      
+      if (!hasMessageId()) {
+        memoizedIsInitialized = 0;
+        return false;
+      }
       if (hasRequest()) {
-        if (!getRequest().isInitialized()) return false;
+        if (!getRequest().isInitialized()) {
+          memoizedIsInitialized = 0;
+          return false;
+        }
       }
       if (hasResponse()) {
-        if (!getResponse().isInitialized()) return false;
+        if (!getResponse().isInitialized()) {
+          memoizedIsInitialized = 0;
+          return false;
+        }
       }
+      memoizedIsInitialized = 1;
       return true;
     }
     
-    public void writeTo(com.google.gwt.dev.protobuf.CodedOutputStream output)
+    public void writeTo(com.google.protobuf.CodedOutputStream output)
                         throws java.io.IOException {
-      if (hasProtocolVersion()) {
-        output.writeString(1, getProtocolVersion());
+      getSerializedSize();
+      if (((bitField0_ & 0x00000001) == 0x00000001)) {
+        output.writeBytes(1, getProtocolVersionBytes());
       }
-      if (hasMessageType()) {
-        output.writeEnum(2, getMessageType().getNumber());
+      if (((bitField0_ & 0x00000002) == 0x00000002)) {
+        output.writeEnum(2, messageType_.getNumber());
       }
-      if (hasMessageId()) {
-        output.writeUInt32(3, getMessageId());
+      if (((bitField0_ & 0x00000004) == 0x00000004)) {
+        output.writeUInt32(3, messageId_);
       }
-      if (hasRequest()) {
-        output.writeMessage(4, getRequest());
+      if (((bitField0_ & 0x00000008) == 0x00000008)) {
+        output.writeMessage(4, request_);
       }
-      if (hasResponse()) {
-        output.writeMessage(5, getResponse());
+      if (((bitField0_ & 0x00000010) == 0x00000010)) {
+        output.writeMessage(5, response_);
       }
-      if (hasFailure()) {
-        output.writeMessage(6, getFailure());
+      if (((bitField0_ & 0x00000020) == 0x00000020)) {
+        output.writeMessage(6, failure_);
       }
       getUnknownFields().writeTo(output);
     }
@@ -9891,55 +14973,62 @@ public final class RemoteMessageProto {
       if (size != -1) return size;
     
       size = 0;
-      if (hasProtocolVersion()) {
-        size += com.google.gwt.dev.protobuf.CodedOutputStream
-          .computeStringSize(1, getProtocolVersion());
-      }
-      if (hasMessageType()) {
-        size += com.google.gwt.dev.protobuf.CodedOutputStream
-          .computeEnumSize(2, getMessageType().getNumber());
-      }
-      if (hasMessageId()) {
-        size += com.google.gwt.dev.protobuf.CodedOutputStream
-          .computeUInt32Size(3, getMessageId());
-      }
-      if (hasRequest()) {
-        size += com.google.gwt.dev.protobuf.CodedOutputStream
-          .computeMessageSize(4, getRequest());
-      }
-      if (hasResponse()) {
-        size += com.google.gwt.dev.protobuf.CodedOutputStream
-          .computeMessageSize(5, getResponse());
-      }
-      if (hasFailure()) {
-        size += com.google.gwt.dev.protobuf.CodedOutputStream
-          .computeMessageSize(6, getFailure());
+      if (((bitField0_ & 0x00000001) == 0x00000001)) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeBytesSize(1, getProtocolVersionBytes());
+      }
+      if (((bitField0_ & 0x00000002) == 0x00000002)) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeEnumSize(2, messageType_.getNumber());
+      }
+      if (((bitField0_ & 0x00000004) == 0x00000004)) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeUInt32Size(3, messageId_);
+      }
+      if (((bitField0_ & 0x00000008) == 0x00000008)) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(4, request_);
+      }
+      if (((bitField0_ & 0x00000010) == 0x00000010)) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(5, response_);
+      }
+      if (((bitField0_ & 0x00000020) == 0x00000020)) {
+        size += com.google.protobuf.CodedOutputStream
+          .computeMessageSize(6, failure_);
       }
       size += getUnknownFields().getSerializedSize();
       memoizedSerializedSize = size;
       return size;
     }
     
+    private static final long serialVersionUID = 0L;
+    @java.lang.Override
+    protected java.lang.Object writeReplace()
+        throws java.io.ObjectStreamException {
+      return super.writeReplace();
+    }
+    
     public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message parseFrom(
-        com.google.gwt.dev.protobuf.ByteString data)
-        throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+        com.google.protobuf.ByteString data)
+        throws com.google.protobuf.InvalidProtocolBufferException {
       return newBuilder().mergeFrom(data).buildParsed();
     }
     public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message parseFrom(
-        com.google.gwt.dev.protobuf.ByteString data,
-        com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+        com.google.protobuf.ByteString data,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
       return newBuilder().mergeFrom(data, extensionRegistry)
                .buildParsed();
     }
     public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message parseFrom(byte[] data)
-        throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+        throws com.google.protobuf.InvalidProtocolBufferException {
       return newBuilder().mergeFrom(data).buildParsed();
     }
     public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message parseFrom(
         byte[] data,
-        com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+        throws com.google.protobuf.InvalidProtocolBufferException {
       return newBuilder().mergeFrom(data, extensionRegistry)
                .buildParsed();
     }
@@ -9949,30 +15038,39 @@ public final class RemoteMessageProto {
     }
     public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message parseFrom(
         java.io.InputStream input,
-        com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
       return newBuilder().mergeFrom(input, extensionRegistry)
                .buildParsed();
     }
     public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message parseDelimitedFrom(java.io.InputStream input)
         throws java.io.IOException {
-      return newBuilder().mergeDelimitedFrom(input).buildParsed();
+      Builder builder = newBuilder();
+      if (builder.mergeDelimitedFrom(input)) {
+        return builder.buildParsed();
+      } else {
+        return null;
+      }
     }
     public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message parseDelimitedFrom(
         java.io.InputStream input,
-        com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
-      return newBuilder().mergeDelimitedFrom(input, extensionRegistry)
-               .buildParsed();
+      Builder builder = newBuilder();
+      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
+        return builder.buildParsed();
+      } else {
+        return null;
+      }
     }
     public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message parseFrom(
-        com.google.gwt.dev.protobuf.CodedInputStream input)
+        com.google.protobuf.CodedInputStream input)
         throws java.io.IOException {
       return newBuilder().mergeFrom(input).buildParsed();
     }
     public static com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message parseFrom(
-        com.google.gwt.dev.protobuf.CodedInputStream input,
-        com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+        com.google.protobuf.CodedInputStream input,
+        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
         throws java.io.IOException {
       return newBuilder().mergeFrom(input, extensionRegistry)
                .buildParsed();
@@ -9985,37 +15083,79 @@ public final class RemoteMessageProto {
     }
     public Builder toBuilder() { return newBuilder(this); }
     
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
     public static final class Builder extends
-        com.google.gwt.dev.protobuf.GeneratedMessage.Builder<Builder> {
-      private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message result;
+        com.google.protobuf.GeneratedMessage.Builder<Builder>
+       implements com.google.gwt.dev.shell.remoteui.RemoteMessageProto.MessageOrBuilder {
+      public static final com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_descriptor;
+      }
       
-      // Construct using com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.newBuilder()
-      private Builder() {}
+      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internal_static_com_google_gwt_dev_shell_remoteui_Message_fieldAccessorTable;
+      }
       
-      private static Builder create() {
-        Builder builder = new Builder();
-        builder.result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message();
-        return builder;
+      // Construct using com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
       }
       
-      protected com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message internalGetResult() {
-        return result;
+      private Builder(BuilderParent parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+          getRequestFieldBuilder();
+          getResponseFieldBuilder();
+          getFailureFieldBuilder();
+        }
+      }
+      private static Builder create() {
+        return new Builder();
       }
       
       public Builder clear() {
-        if (result == null) {
-          throw new IllegalStateException(
-            "Cannot call clear() after build().");
+        super.clear();
+        protocolVersion_ = "";
+        bitField0_ = (bitField0_ & ~0x00000001);
+        messageType_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.MessageType.REQUEST;
+        bitField0_ = (bitField0_ & ~0x00000002);
+        messageId_ = 0;
+        bitField0_ = (bitField0_ & ~0x00000004);
+        if (requestBuilder_ == null) {
+          request_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.getDefaultInstance();
+        } else {
+          requestBuilder_.clear();
+        }
+        bitField0_ = (bitField0_ & ~0x00000008);
+        if (responseBuilder_ == null) {
+          response_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.getDefaultInstance();
+        } else {
+          responseBuilder_.clear();
+        }
+        bitField0_ = (bitField0_ & ~0x00000010);
+        if (failureBuilder_ == null) {
+          failure_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Failure.getDefaultInstance();
+        } else {
+          failureBuilder_.clear();
         }
-        result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message();
+        bitField0_ = (bitField0_ & ~0x00000020);
         return this;
       }
       
       public Builder clone() {
-        return create().mergeFrom(result);
+        return create().mergeFrom(buildPartial());
       }
       
-      public com.google.gwt.dev.protobuf.Descriptors.Descriptor
+      public com.google.protobuf.Descriptors.Descriptor
           getDescriptorForType() {
         return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.getDescriptor();
       }
@@ -10024,36 +15164,70 @@ public final class RemoteMessageProto {
         return com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.getDefaultInstance();
       }
       
-      public boolean isInitialized() {
-        return result.isInitialized();
-      }
       public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message build() {
-        if (result != null && !isInitialized()) {
+        com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message result = buildPartial();
+        if (!result.isInitialized()) {
           throw newUninitializedMessageException(result);
         }
-        return buildPartial();
+        return result;
       }
       
       private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message buildParsed()
-          throws com.google.gwt.dev.protobuf.InvalidProtocolBufferException {
-        if (!isInitialized()) {
+          throws com.google.protobuf.InvalidProtocolBufferException {
+        com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message result = buildPartial();
+        if (!result.isInitialized()) {
           throw newUninitializedMessageException(
             result).asInvalidProtocolBufferException();
         }
-        return buildPartial();
+        return result;
       }
       
       public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message buildPartial() {
-        if (result == null) {
-          throw new IllegalStateException(
-            "build() has already been called on this Builder.");
+        com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message result = new com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message(this);
+        int from_bitField0_ = bitField0_;
+        int to_bitField0_ = 0;
+        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+          to_bitField0_ |= 0x00000001;
+        }
+        result.protocolVersion_ = protocolVersion_;
+        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
+          to_bitField0_ |= 0x00000002;
+        }
+        result.messageType_ = messageType_;
+        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
+          to_bitField0_ |= 0x00000004;
+        }
+        result.messageId_ = messageId_;
+        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
+          to_bitField0_ |= 0x00000008;
+        }
+        if (requestBuilder_ == null) {
+          result.request_ = request_;
+        } else {
+          result.request_ = requestBuilder_.build();
+        }
+        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
+          to_bitField0_ |= 0x00000010;
+        }
+        if (responseBuilder_ == null) {
+          result.response_ = response_;
+        } else {
+          result.response_ = responseBuilder_.build();
+        }
+        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
+          to_bitField0_ |= 0x00000020;
+        }
+        if (failureBuilder_ == null) {
+          result.failure_ = failure_;
+        } else {
+          result.failure_ = failureBuilder_.build();
         }
-        com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message returnMe = result;
-        result = null;
-        return returnMe;
+        result.bitField0_ = to_bitField0_;
+        onBuilt();
+        return result;
       }
       
-      public Builder mergeFrom(com.google.gwt.dev.protobuf.Message other) {
+      public Builder mergeFrom(com.google.protobuf.Message other) {
         if (other instanceof com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message) {
           return mergeFrom((com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message)other);
         } else {
@@ -10086,29 +15260,52 @@ public final class RemoteMessageProto {
         return this;
       }
       
+      public final boolean isInitialized() {
+        if (!hasMessageId()) {
+          
+          return false;
+        }
+        if (hasRequest()) {
+          if (!getRequest().isInitialized()) {
+            
+            return false;
+          }
+        }
+        if (hasResponse()) {
+          if (!getResponse().isInitialized()) {
+            
+            return false;
+          }
+        }
+        return true;
+      }
+      
       public Builder mergeFrom(
-          com.google.gwt.dev.protobuf.CodedInputStream input,
-          com.google.gwt.dev.protobuf.ExtensionRegistryLite extensionRegistry)
+          com.google.protobuf.CodedInputStream input,
+          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
           throws java.io.IOException {
-        com.google.gwt.dev.protobuf.UnknownFieldSet.Builder unknownFields =
-          com.google.gwt.dev.protobuf.UnknownFieldSet.newBuilder(
+        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+          com.google.protobuf.UnknownFieldSet.newBuilder(
             this.getUnknownFields());
         while (true) {
           int tag = input.readTag();
           switch (tag) {
             case 0:
               this.setUnknownFields(unknownFields.build());
+              onChanged();
               return this;
             default: {
               if (!parseUnknownField(input, unknownFields,
                                      extensionRegistry, tag)) {
                 this.setUnknownFields(unknownFields.build());
+                onChanged();
                 return this;
               }
               break;
             }
             case 10: {
-              setProtocolVersion(input.readString());
+              bitField0_ |= 0x00000001;
+              protocolVersion_ = input.readBytes();
               break;
             }
             case 16: {
@@ -10117,12 +15314,14 @@ public final class RemoteMessageProto {
               if (value == null) {
                 unknownFields.mergeVarintField(2, rawValue);
               } else {
-                setMessageType(value);
+                bitField0_ |= 0x00000002;
+                messageType_ = value;
               }
               break;
             }
             case 24: {
-              setMessageId(input.readUInt32());
+              bitField0_ |= 0x00000004;
+              messageId_ = input.readUInt32();
               break;
             }
             case 34: {
@@ -10156,334 +15355,516 @@ public final class RemoteMessageProto {
         }
       }
       
+      private int bitField0_;
       
       // optional string protocolVersion = 1;
+      private java.lang.Object protocolVersion_ = "";
       public boolean hasProtocolVersion() {
-        return result.hasProtocolVersion();
+        return ((bitField0_ & 0x00000001) == 0x00000001);
       }
-      public java.lang.String getProtocolVersion() {
-        return result.getProtocolVersion();
+      public String getProtocolVersion() {
+        java.lang.Object ref = protocolVersion_;
+        if (!(ref instanceof String)) {
+          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
+          protocolVersion_ = s;
+          return s;
+        } else {
+          return (String) ref;
+        }
       }
-      public Builder setProtocolVersion(java.lang.String value) {
+      public Builder setProtocolVersion(String value) {
         if (value == null) {
     throw new NullPointerException();
   }
-  result.hasProtocolVersion = true;
-        result.protocolVersion_ = value;
+  bitField0_ |= 0x00000001;
+        protocolVersion_ = value;
+        onChanged();
         return this;
       }
       public Builder clearProtocolVersion() {
-        result.hasProtocolVersion = false;
-        result.protocolVersion_ = getDefaultInstance().getProtocolVersion();
+        bitField0_ = (bitField0_ & ~0x00000001);
+        protocolVersion_ = getDefaultInstance().getProtocolVersion();
+        onChanged();
         return this;
       }
+      void setProtocolVersion(com.google.protobuf.ByteString value) {
+        bitField0_ |= 0x00000001;
+        protocolVersion_ = value;
+        onChanged();
+      }
       
       // optional .com.google.gwt.dev.shell.remoteui.Message.MessageType messageType = 2;
+      private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.MessageType messageType_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.MessageType.REQUEST;
       public boolean hasMessageType() {
-        return result.hasMessageType();
+        return ((bitField0_ & 0x00000002) == 0x00000002);
       }
       public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.MessageType getMessageType() {
-        return result.getMessageType();
+        return messageType_;
       }
       public Builder setMessageType(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.MessageType value) {
         if (value == null) {
           throw new NullPointerException();
         }
-        result.hasMessageType = true;
-        result.messageType_ = value;
+        bitField0_ |= 0x00000002;
+        messageType_ = value;
+        onChanged();
         return this;
       }
       public Builder clearMessageType() {
-        result.hasMessageType = false;
-        result.messageType_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.MessageType.REQUEST;
+        bitField0_ = (bitField0_ & ~0x00000002);
+        messageType_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.MessageType.REQUEST;
+        onChanged();
         return this;
       }
       
       // required uint32 messageId = 3;
+      private int messageId_ ;
       public boolean hasMessageId() {
-        return result.hasMessageId();
+        return ((bitField0_ & 0x00000004) == 0x00000004);
       }
       public int getMessageId() {
-        return result.getMessageId();
+        return messageId_;
       }
       public Builder setMessageId(int value) {
-        result.hasMessageId = true;
-        result.messageId_ = value;
+        bitField0_ |= 0x00000004;
+        messageId_ = value;
+        onChanged();
         return this;
       }
       public Builder clearMessageId() {
-        result.hasMessageId = false;
-        result.messageId_ = 0;
+        bitField0_ = (bitField0_ & ~0x00000004);
+        messageId_ = 0;
+        onChanged();
         return this;
       }
       
       // optional .com.google.gwt.dev.shell.remoteui.Message.Request request = 4;
+      private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request request_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.getDefaultInstance();
+      private com.google.protobuf.SingleFieldBuilder<
+          com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.RequestOrBuilder> requestBuilder_;
       public boolean hasRequest() {
-        return result.hasRequest();
+        return ((bitField0_ & 0x00000008) == 0x00000008);
       }
       public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request getRequest() {
-        return result.getRequest();
+        if (requestBuilder_ == null) {
+          return request_;
+        } else {
+          return requestBuilder_.getMessage();
+        }
       }
       public Builder setRequest(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request value) {
-        if (value == null) {
-          throw new NullPointerException();
+        if (requestBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          request_ = value;
+          onChanged();
+        } else {
+          requestBuilder_.setMessage(value);
         }
-        result.hasRequest = true;
-        result.request_ = value;
+        bitField0_ |= 0x00000008;
         return this;
       }
-      public Builder setRequest(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.Builder builderForValue) {
-        result.hasRequest = true;
-        result.request_ = builderForValue.build();
+      public Builder setRequest(
+          com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.Builder builderForValue) {
+        if (requestBuilder_ == null) {
+          request_ = builderForValue.build();
+          onChanged();
+        } else {
+          requestBuilder_.setMessage(builderForValue.build());
+        }
+        bitField0_ |= 0x00000008;
         return this;
       }
       public Builder mergeRequest(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request value) {
-        if (result.hasRequest() &&
-            result.request_ != com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.getDefaultInstance()) {
-          result.request_ =
-            com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.newBuilder(result.request_).mergeFrom(value).buildPartial();
+        if (requestBuilder_ == null) {
+          if (((bitField0_ & 0x00000008) == 0x00000008) &&
+              request_ != com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.getDefaultInstance()) {
+            request_ =
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.newBuilder(request_).mergeFrom(value).buildPartial();
+          } else {
+            request_ = value;
+          }
+          onChanged();
         } else {
-          result.request_ = value;
+          requestBuilder_.mergeFrom(value);
         }
-        result.hasRequest = true;
+        bitField0_ |= 0x00000008;
         return this;
       }
       public Builder clearRequest() {
-        result.hasRequest = false;
-        result.request_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.getDefaultInstance();
+        if (requestBuilder_ == null) {
+          request_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.getDefaultInstance();
+          onChanged();
+        } else {
+          requestBuilder_.clear();
+        }
+        bitField0_ = (bitField0_ & ~0x00000008);
         return this;
       }
+      public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.Builder getRequestBuilder() {
+        bitField0_ |= 0x00000008;
+        onChanged();
+        return getRequestFieldBuilder().getBuilder();
+      }
+      public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.RequestOrBuilder getRequestOrBuilder() {
+        if (requestBuilder_ != null) {
+          return requestBuilder_.getMessageOrBuilder();
+        } else {
+          return request_;
+        }
+      }
+      private com.google.protobuf.SingleFieldBuilder<
+          com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.RequestOrBuilder> 
+          getRequestFieldBuilder() {
+        if (requestBuilder_ == null) {
+          requestBuilder_ = new com.google.protobuf.SingleFieldBuilder<
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.RequestOrBuilder>(
+                  request_,
+                  getParentForChildren(),
+                  isClean());
+          request_ = null;
+        }
+        return requestBuilder_;
+      }
       
       // optional .com.google.gwt.dev.shell.remoteui.Message.Response response = 5;
+      private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response response_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.getDefaultInstance();
+      private com.google.protobuf.SingleFieldBuilder<
+          com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.ResponseOrBuilder> responseBuilder_;
       public boolean hasResponse() {
-        return result.hasResponse();
+        return ((bitField0_ & 0x00000010) == 0x00000010);
       }
       public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response getResponse() {
-        return result.getResponse();
+        if (responseBuilder_ == null) {
+          return response_;
+        } else {
+          return responseBuilder_.getMessage();
+        }
       }
       public Builder setResponse(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response value) {
-        if (value == null) {
-          throw new NullPointerException();
+        if (responseBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          response_ = value;
+          onChanged();
+        } else {
+          responseBuilder_.setMessage(value);
         }
-        result.hasResponse = true;
-        result.response_ = value;
+        bitField0_ |= 0x00000010;
         return this;
       }
-      public Builder setResponse(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.Builder builderForValue) {
-        result.hasResponse = true;
-        result.response_ = builderForValue.build();
+      public Builder setResponse(
+          com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.Builder builderForValue) {
+        if (responseBuilder_ == null) {
+          response_ = builderForValue.build();
+          onChanged();
+        } else {
+          responseBuilder_.setMessage(builderForValue.build());
+        }
+        bitField0_ |= 0x00000010;
         return this;
       }
       public Builder mergeResponse(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response value) {
-        if (result.hasResponse() &&
-            result.response_ != com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.getDefaultInstance()) {
-          result.response_ =
-            com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.newBuilder(result.response_).mergeFrom(value).buildPartial();
+        if (responseBuilder_ == null) {
+          if (((bitField0_ & 0x00000010) == 0x00000010) &&
+              response_ != com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.getDefaultInstance()) {
+            response_ =
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.newBuilder(response_).mergeFrom(value).buildPartial();
+          } else {
+            response_ = value;
+          }
+          onChanged();
         } else {
-          result.response_ = value;
+          responseBuilder_.mergeFrom(value);
         }
-        result.hasResponse = true;
+        bitField0_ |= 0x00000010;
         return this;
       }
       public Builder clearResponse() {
-        result.hasResponse = false;
-        result.response_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.getDefaultInstance();
+        if (responseBuilder_ == null) {
+          response_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.getDefaultInstance();
+          onChanged();
+        } else {
+          responseBuilder_.clear();
+        }
+        bitField0_ = (bitField0_ & ~0x00000010);
         return this;
       }
+      public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.Builder getResponseBuilder() {
+        bitField0_ |= 0x00000010;
+        onChanged();
+        return getResponseFieldBuilder().getBuilder();
+      }
+      public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.ResponseOrBuilder getResponseOrBuilder() {
+        if (responseBuilder_ != null) {
+          return responseBuilder_.getMessageOrBuilder();
+        } else {
+          return response_;
+        }
+      }
+      private com.google.protobuf.SingleFieldBuilder<
+          com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.ResponseOrBuilder> 
+          getResponseFieldBuilder() {
+        if (responseBuilder_ == null) {
+          responseBuilder_ = new com.google.protobuf.SingleFieldBuilder<
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.ResponseOrBuilder>(
+                  response_,
+                  getParentForChildren(),
+                  isClean());
+          response_ = null;
+        }
+        return responseBuilder_;
+      }
       
       // optional .com.google.gwt.dev.shell.remoteui.Message.Failure failure = 6;
+      private com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Failure failure_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Failure.getDefaultInstance();
+      private com.google.protobuf.SingleFieldBuilder<
+          com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Failure, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Failure.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.FailureOrBuilder> failureBuilder_;
       public boolean hasFailure() {
-        return result.hasFailure();
+        return ((bitField0_ & 0x00000020) == 0x00000020);
       }
       public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Failure getFailure() {
-        return result.getFailure();
+        if (failureBuilder_ == null) {
+          return failure_;
+        } else {
+          return failureBuilder_.getMessage();
+        }
       }
       public Builder setFailure(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Failure value) {
-        if (value == null) {
-          throw new NullPointerException();
+        if (failureBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          failure_ = value;
+          onChanged();
+        } else {
+          failureBuilder_.setMessage(value);
         }
-        result.hasFailure = true;
-        result.failure_ = value;
+        bitField0_ |= 0x00000020;
         return this;
       }
-      public Builder setFailure(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Failure.Builder builderForValue) {
-        result.hasFailure = true;
-        result.failure_ = builderForValue.build();
+      public Builder setFailure(
+          com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Failure.Builder builderForValue) {
+        if (failureBuilder_ == null) {
+          failure_ = builderForValue.build();
+          onChanged();
+        } else {
+          failureBuilder_.setMessage(builderForValue.build());
+        }
+        bitField0_ |= 0x00000020;
         return this;
       }
       public Builder mergeFailure(com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Failure value) {
-        if (result.hasFailure() &&
-            result.failure_ != com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Failure.getDefaultInstance()) {
-          result.failure_ =
-            com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Failure.newBuilder(result.failure_).mergeFrom(value).buildPartial();
+        if (failureBuilder_ == null) {
+          if (((bitField0_ & 0x00000020) == 0x00000020) &&
+              failure_ != com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Failure.getDefaultInstance()) {
+            failure_ =
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Failure.newBuilder(failure_).mergeFrom(value).buildPartial();
+          } else {
+            failure_ = value;
+          }
+          onChanged();
         } else {
-          result.failure_ = value;
+          failureBuilder_.mergeFrom(value);
         }
-        result.hasFailure = true;
+        bitField0_ |= 0x00000020;
         return this;
       }
       public Builder clearFailure() {
-        result.hasFailure = false;
-        result.failure_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Failure.getDefaultInstance();
+        if (failureBuilder_ == null) {
+          failure_ = com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Failure.getDefaultInstance();
+          onChanged();
+        } else {
+          failureBuilder_.clear();
+        }
+        bitField0_ = (bitField0_ & ~0x00000020);
         return this;
       }
+      public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Failure.Builder getFailureBuilder() {
+        bitField0_ |= 0x00000020;
+        onChanged();
+        return getFailureFieldBuilder().getBuilder();
+      }
+      public com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.FailureOrBuilder getFailureOrBuilder() {
+        if (failureBuilder_ != null) {
+          return failureBuilder_.getMessageOrBuilder();
+        } else {
+          return failure_;
+        }
+      }
+      private com.google.protobuf.SingleFieldBuilder<
+          com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Failure, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Failure.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.FailureOrBuilder> 
+          getFailureFieldBuilder() {
+        if (failureBuilder_ == null) {
+          failureBuilder_ = new com.google.protobuf.SingleFieldBuilder<
+              com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Failure, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Failure.Builder, com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.FailureOrBuilder>(
+                  failure_,
+                  getParentForChildren(),
+                  isClean());
+          failure_ = null;
+        }
+        return failureBuilder_;
+      }
+      
+      // @@protoc_insertion_point(builder_scope:com.google.gwt.dev.shell.remoteui.Message)
     }
     
     static {
-      com.google.gwt.dev.shell.remoteui.RemoteMessageProto.getDescriptor();
+      defaultInstance = new Message(true);
+      defaultInstance.initFields();
     }
     
-    static {
-      com.google.gwt.dev.shell.remoteui.RemoteMessageProto.internalForceInit();
-    }
+    // @@protoc_insertion_point(class_scope:com.google.gwt.dev.shell.remoteui.Message)
   }
   
-  private static com.google.gwt.dev.protobuf.Descriptors.Descriptor
+  private static com.google.protobuf.Descriptors.Descriptor
     internal_static_com_google_gwt_dev_shell_remoteui_Message_descriptor;
   private static
-    com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable
+    com.google.protobuf.GeneratedMessage.FieldAccessorTable
       internal_static_com_google_gwt_dev_shell_remoteui_Message_fieldAccessorTable;
-  private static com.google.gwt.dev.protobuf.Descriptors.Descriptor
+  private static com.google.protobuf.Descriptors.Descriptor
     internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_descriptor;
   private static
-    com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable
+    com.google.protobuf.GeneratedMessage.FieldAccessorTable
       internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_fieldAccessorTable;
-  private static com.google.gwt.dev.protobuf.Descriptors.Descriptor
+  private static com.google.protobuf.Descriptors.Descriptor
     internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_descriptor;
   private static
-    com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable
+    com.google.protobuf.GeneratedMessage.FieldAccessorTable
       internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_fieldAccessorTable;
-  private static com.google.gwt.dev.protobuf.Descriptors.Descriptor
+  private static com.google.protobuf.Descriptors.Descriptor
     internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_CapabilityExchange_descriptor;
   private static
-    com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable
+    com.google.protobuf.GeneratedMessage.FieldAccessorTable
       internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_CapabilityExchange_fieldAccessorTable;
-  private static com.google.gwt.dev.protobuf.Descriptors.Descriptor
+  private static com.google.protobuf.Descriptors.Descriptor
     internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_AddLog_descriptor;
   private static
-    com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable
+    com.google.protobuf.GeneratedMessage.FieldAccessorTable
       internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_AddLog_fieldAccessorTable;
-  private static com.google.gwt.dev.protobuf.Descriptors.Descriptor
+  private static com.google.protobuf.Descriptors.Descriptor
     internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_AddLog_ModuleLog_descriptor;
   private static
-    com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable
+    com.google.protobuf.GeneratedMessage.FieldAccessorTable
       internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_AddLog_ModuleLog_fieldAccessorTable;
-  private static com.google.gwt.dev.protobuf.Descriptors.Descriptor
+  private static com.google.protobuf.Descriptors.Descriptor
     internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_AddLog_ServerLog_descriptor;
   private static
-    com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable
+    com.google.protobuf.GeneratedMessage.FieldAccessorTable
       internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_AddLog_ServerLog_fieldAccessorTable;
-  private static com.google.gwt.dev.protobuf.Descriptors.Descriptor
+  private static com.google.protobuf.Descriptors.Descriptor
     internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_AddLog_MainLog_descriptor;
   private static
-    com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable
+    com.google.protobuf.GeneratedMessage.FieldAccessorTable
       internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_AddLog_MainLog_fieldAccessorTable;
-  private static com.google.gwt.dev.protobuf.Descriptors.Descriptor
+  private static com.google.protobuf.Descriptors.Descriptor
     internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_LogData_descriptor;
   private static
-    com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable
+    com.google.protobuf.GeneratedMessage.FieldAccessorTable
       internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_LogData_fieldAccessorTable;
-  private static com.google.gwt.dev.protobuf.Descriptors.Descriptor
+  private static com.google.protobuf.Descriptors.Descriptor
     internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_LogData_HelpInfo_descriptor;
   private static
-    com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable
+    com.google.protobuf.GeneratedMessage.FieldAccessorTable
       internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_LogData_HelpInfo_fieldAccessorTable;
-  private static com.google.gwt.dev.protobuf.Descriptors.Descriptor
+  private static com.google.protobuf.Descriptors.Descriptor
     internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_AddLogBranch_descriptor;
   private static
-    com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable
+    com.google.protobuf.GeneratedMessage.FieldAccessorTable
       internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_AddLogBranch_fieldAccessorTable;
-  private static com.google.gwt.dev.protobuf.Descriptors.Descriptor
+  private static com.google.protobuf.Descriptors.Descriptor
     internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_AddLogEntry_descriptor;
   private static
-    com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable
+    com.google.protobuf.GeneratedMessage.FieldAccessorTable
       internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_AddLogEntry_fieldAccessorTable;
-  private static com.google.gwt.dev.protobuf.Descriptors.Descriptor
+  private static com.google.protobuf.Descriptors.Descriptor
     internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_DisconnectLog_descriptor;
   private static
-    com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable
+    com.google.protobuf.GeneratedMessage.FieldAccessorTable
       internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_DisconnectLog_fieldAccessorTable;
-  private static com.google.gwt.dev.protobuf.Descriptors.Descriptor
+  private static com.google.protobuf.Descriptors.Descriptor
     internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_Initialize_descriptor;
   private static
-    com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable
+    com.google.protobuf.GeneratedMessage.FieldAccessorTable
       internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_Initialize_fieldAccessorTable;
-  private static com.google.gwt.dev.protobuf.Descriptors.Descriptor
+  private static com.google.protobuf.Descriptors.Descriptor
     internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_DevModeRequest_descriptor;
   private static
-    com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable
+    com.google.protobuf.GeneratedMessage.FieldAccessorTable
       internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_DevModeRequest_fieldAccessorTable;
-  private static com.google.gwt.dev.protobuf.Descriptors.Descriptor
+  private static com.google.protobuf.Descriptors.Descriptor
     internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_DevModeRequest_CapabilityExchange_descriptor;
   private static
-    com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable
+    com.google.protobuf.GeneratedMessage.FieldAccessorTable
       internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_DevModeRequest_CapabilityExchange_fieldAccessorTable;
-  private static com.google.gwt.dev.protobuf.Descriptors.Descriptor
+  private static com.google.protobuf.Descriptors.Descriptor
     internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_DevModeRequest_RestartWebServer_descriptor;
   private static
-    com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable
+    com.google.protobuf.GeneratedMessage.FieldAccessorTable
       internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_DevModeRequest_RestartWebServer_fieldAccessorTable;
-  private static com.google.gwt.dev.protobuf.Descriptors.Descriptor
+  private static com.google.protobuf.Descriptors.Descriptor
     internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_descriptor;
   private static
-    com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable
+    com.google.protobuf.GeneratedMessage.FieldAccessorTable
       internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_fieldAccessorTable;
-  private static com.google.gwt.dev.protobuf.Descriptors.Descriptor
+  private static com.google.protobuf.Descriptors.Descriptor
     internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_ViewerResponse_descriptor;
   private static
-    com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable
+    com.google.protobuf.GeneratedMessage.FieldAccessorTable
       internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_ViewerResponse_fieldAccessorTable;
-  private static com.google.gwt.dev.protobuf.Descriptors.Descriptor
+  private static com.google.protobuf.Descriptors.Descriptor
     internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_ViewerResponse_CapabilityExchange_descriptor;
   private static
-    com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable
+    com.google.protobuf.GeneratedMessage.FieldAccessorTable
       internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_ViewerResponse_CapabilityExchange_fieldAccessorTable;
-  private static com.google.gwt.dev.protobuf.Descriptors.Descriptor
+  private static com.google.protobuf.Descriptors.Descriptor
     internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_ViewerResponse_CapabilityExchange_Capability_descriptor;
   private static
-    com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable
+    com.google.protobuf.GeneratedMessage.FieldAccessorTable
       internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_ViewerResponse_CapabilityExchange_Capability_fieldAccessorTable;
-  private static com.google.gwt.dev.protobuf.Descriptors.Descriptor
+  private static com.google.protobuf.Descriptors.Descriptor
     internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_ViewerResponse_AddLog_descriptor;
   private static
-    com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable
+    com.google.protobuf.GeneratedMessage.FieldAccessorTable
       internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_ViewerResponse_AddLog_fieldAccessorTable;
-  private static com.google.gwt.dev.protobuf.Descriptors.Descriptor
+  private static com.google.protobuf.Descriptors.Descriptor
     internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_ViewerResponse_AddLogBranch_descriptor;
   private static
-    com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable
+    com.google.protobuf.GeneratedMessage.FieldAccessorTable
       internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_ViewerResponse_AddLogBranch_fieldAccessorTable;
-  private static com.google.gwt.dev.protobuf.Descriptors.Descriptor
+  private static com.google.protobuf.Descriptors.Descriptor
     internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_DevModeResponse_descriptor;
   private static
-    com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable
+    com.google.protobuf.GeneratedMessage.FieldAccessorTable
       internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_DevModeResponse_fieldAccessorTable;
-  private static com.google.gwt.dev.protobuf.Descriptors.Descriptor
+  private static com.google.protobuf.Descriptors.Descriptor
     internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_DevModeResponse_CapabilityExchange_descriptor;
   private static
-    com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable
+    com.google.protobuf.GeneratedMessage.FieldAccessorTable
       internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_DevModeResponse_CapabilityExchange_fieldAccessorTable;
-  private static com.google.gwt.dev.protobuf.Descriptors.Descriptor
+  private static com.google.protobuf.Descriptors.Descriptor
     internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_DevModeResponse_CapabilityExchange_Capability_descriptor;
   private static
-    com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable
+    com.google.protobuf.GeneratedMessage.FieldAccessorTable
       internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_DevModeResponse_CapabilityExchange_Capability_fieldAccessorTable;
-  private static com.google.gwt.dev.protobuf.Descriptors.Descriptor
+  private static com.google.protobuf.Descriptors.Descriptor
     internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_DevModeResponse_RestartWebServer_descriptor;
   private static
-    com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable
+    com.google.protobuf.GeneratedMessage.FieldAccessorTable
       internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_DevModeResponse_RestartWebServer_fieldAccessorTable;
-  private static com.google.gwt.dev.protobuf.Descriptors.Descriptor
+  private static com.google.protobuf.Descriptors.Descriptor
     internal_static_com_google_gwt_dev_shell_remoteui_Message_Failure_descriptor;
   private static
-    com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable
+    com.google.protobuf.GeneratedMessage.FieldAccessorTable
       internal_static_com_google_gwt_dev_shell_remoteui_Message_Failure_fieldAccessorTable;
   
-  public static com.google.gwt.dev.protobuf.Descriptors.FileDescriptor
+  public static com.google.protobuf.Descriptors.FileDescriptor
       getDescriptor() {
     return descriptor;
   }
-  private static com.google.gwt.dev.protobuf.Descriptors.FileDescriptor
+  private static com.google.protobuf.Descriptors.FileDescriptor
       descriptor;
   static {
     java.lang.String[] descriptorData = {
@@ -10618,15 +15999,15 @@ public final class RemoteMessageProto {
       "ST\020\000\022\014\n\010RESPONSE\020\001\022\013\n\007FAILURE\020\002B\024B\022Remot" +
       "eMessageProto"
     };
-    com.google.gwt.dev.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
-      new com.google.gwt.dev.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
-        public com.google.gwt.dev.protobuf.ExtensionRegistry assignDescriptors(
-            com.google.gwt.dev.protobuf.Descriptors.FileDescriptor root) {
+    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
+      new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
+        public com.google.protobuf.ExtensionRegistry assignDescriptors(
+            com.google.protobuf.Descriptors.FileDescriptor root) {
           descriptor = root;
           internal_static_com_google_gwt_dev_shell_remoteui_Message_descriptor =
             getDescriptor().getMessageTypes().get(0);
           internal_static_com_google_gwt_dev_shell_remoteui_Message_fieldAccessorTable = new
-            com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable(
+            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_com_google_gwt_dev_shell_remoteui_Message_descriptor,
               new java.lang.String[] { "ProtocolVersion", "MessageType", "MessageId", "Request", "Response", "Failure", },
               com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.class,
@@ -10634,7 +16015,7 @@ public final class RemoteMessageProto {
           internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_descriptor =
             internal_static_com_google_gwt_dev_shell_remoteui_Message_descriptor.getNestedTypes().get(0);
           internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_fieldAccessorTable = new
-            com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable(
+            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_descriptor,
               new java.lang.String[] { "ServiceType", "ViewerRequest", "DevModeRequest", },
               com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.class,
@@ -10642,7 +16023,7 @@ public final class RemoteMessageProto {
           internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_descriptor =
             internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_descriptor.getNestedTypes().get(0);
           internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_fieldAccessorTable = new
-            com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable(
+            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_descriptor,
               new java.lang.String[] { "RequestType", "CapabilityExchange", "AddLog", "AddLogBranch", "AddLogEntry", "DisconnectLog", "Initialize", },
               com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.class,
@@ -10650,7 +16031,7 @@ public final class RemoteMessageProto {
           internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_CapabilityExchange_descriptor =
             internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_descriptor.getNestedTypes().get(0);
           internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_CapabilityExchange_fieldAccessorTable = new
-            com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable(
+            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_CapabilityExchange_descriptor,
               new java.lang.String[] { },
               com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.CapabilityExchange.class,
@@ -10658,7 +16039,7 @@ public final class RemoteMessageProto {
           internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_AddLog_descriptor =
             internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_descriptor.getNestedTypes().get(1);
           internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_AddLog_fieldAccessorTable = new
-            com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable(
+            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_AddLog_descriptor,
               new java.lang.String[] { "Type", "ModuleLog", "ServerLog", "MainLog", },
               com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.class,
@@ -10666,7 +16047,7 @@ public final class RemoteMessageProto {
           internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_AddLog_ModuleLog_descriptor =
             internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_AddLog_descriptor.getNestedTypes().get(0);
           internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_AddLog_ModuleLog_fieldAccessorTable = new
-            com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable(
+            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_AddLog_ModuleLog_descriptor,
               new java.lang.String[] { "Name", "Icon", "SessionKey", "UserAgent", "Url", "TabKey", "RemoteHost", },
               com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ModuleLog.class,
@@ -10674,7 +16055,7 @@ public final class RemoteMessageProto {
           internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_AddLog_ServerLog_descriptor =
             internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_AddLog_descriptor.getNestedTypes().get(1);
           internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_AddLog_ServerLog_fieldAccessorTable = new
-            com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable(
+            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_AddLog_ServerLog_descriptor,
               new java.lang.String[] { "Name", "Icon", },
               com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.ServerLog.class,
@@ -10682,7 +16063,7 @@ public final class RemoteMessageProto {
           internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_AddLog_MainLog_descriptor =
             internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_AddLog_descriptor.getNestedTypes().get(2);
           internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_AddLog_MainLog_fieldAccessorTable = new
-            com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable(
+            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_AddLog_MainLog_descriptor,
               new java.lang.String[] { },
               com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLog.MainLog.class,
@@ -10690,7 +16071,7 @@ public final class RemoteMessageProto {
           internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_LogData_descriptor =
             internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_descriptor.getNestedTypes().get(2);
           internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_LogData_fieldAccessorTable = new
-            com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable(
+            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_LogData_descriptor,
               new java.lang.String[] { "Summary", "Level", "NeedsAttention", "Details", "HelpInfo", },
               com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.class,
@@ -10698,7 +16079,7 @@ public final class RemoteMessageProto {
           internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_LogData_HelpInfo_descriptor =
             internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_LogData_descriptor.getNestedTypes().get(0);
           internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_LogData_HelpInfo_fieldAccessorTable = new
-            com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable(
+            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_LogData_HelpInfo_descriptor,
               new java.lang.String[] { "Url", "Text", },
               com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.LogData.HelpInfo.class,
@@ -10706,7 +16087,7 @@ public final class RemoteMessageProto {
           internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_AddLogBranch_descriptor =
             internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_descriptor.getNestedTypes().get(3);
           internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_AddLogBranch_fieldAccessorTable = new
-            com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable(
+            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_AddLogBranch_descriptor,
               new java.lang.String[] { "ParentLogHandle", "IndexInParent", "LogData", },
               com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogBranch.class,
@@ -10714,7 +16095,7 @@ public final class RemoteMessageProto {
           internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_AddLogEntry_descriptor =
             internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_descriptor.getNestedTypes().get(4);
           internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_AddLogEntry_fieldAccessorTable = new
-            com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable(
+            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_AddLogEntry_descriptor,
               new java.lang.String[] { "LogHandle", "IndexInLog", "LogData", },
               com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.AddLogEntry.class,
@@ -10722,7 +16103,7 @@ public final class RemoteMessageProto {
           internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_DisconnectLog_descriptor =
             internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_descriptor.getNestedTypes().get(5);
           internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_DisconnectLog_fieldAccessorTable = new
-            com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable(
+            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_DisconnectLog_descriptor,
               new java.lang.String[] { "LogHandle", },
               com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.DisconnectLog.class,
@@ -10730,7 +16111,7 @@ public final class RemoteMessageProto {
           internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_Initialize_descriptor =
             internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_descriptor.getNestedTypes().get(6);
           internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_Initialize_fieldAccessorTable = new
-            com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable(
+            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_ViewerRequest_Initialize_descriptor,
               new java.lang.String[] { "ClientId", "StartupURLs", },
               com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.ViewerRequest.Initialize.class,
@@ -10738,7 +16119,7 @@ public final class RemoteMessageProto {
           internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_DevModeRequest_descriptor =
             internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_descriptor.getNestedTypes().get(1);
           internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_DevModeRequest_fieldAccessorTable = new
-            com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable(
+            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_DevModeRequest_descriptor,
               new java.lang.String[] { "RequestType", "CapabilityExchange", "RestartWebServer", },
               com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.class,
@@ -10746,7 +16127,7 @@ public final class RemoteMessageProto {
           internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_DevModeRequest_CapabilityExchange_descriptor =
             internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_DevModeRequest_descriptor.getNestedTypes().get(0);
           internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_DevModeRequest_CapabilityExchange_fieldAccessorTable = new
-            com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable(
+            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_DevModeRequest_CapabilityExchange_descriptor,
               new java.lang.String[] { },
               com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.CapabilityExchange.class,
@@ -10754,7 +16135,7 @@ public final class RemoteMessageProto {
           internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_DevModeRequest_RestartWebServer_descriptor =
             internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_DevModeRequest_descriptor.getNestedTypes().get(1);
           internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_DevModeRequest_RestartWebServer_fieldAccessorTable = new
-            com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable(
+            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_com_google_gwt_dev_shell_remoteui_Message_Request_DevModeRequest_RestartWebServer_descriptor,
               new java.lang.String[] { },
               com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Request.DevModeRequest.RestartWebServer.class,
@@ -10762,7 +16143,7 @@ public final class RemoteMessageProto {
           internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_descriptor =
             internal_static_com_google_gwt_dev_shell_remoteui_Message_descriptor.getNestedTypes().get(1);
           internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_fieldAccessorTable = new
-            com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable(
+            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_descriptor,
               new java.lang.String[] { "ViewerResponse", "DevModeResponse", },
               com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.class,
@@ -10770,7 +16151,7 @@ public final class RemoteMessageProto {
           internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_ViewerResponse_descriptor =
             internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_descriptor.getNestedTypes().get(0);
           internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_ViewerResponse_fieldAccessorTable = new
-            com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable(
+            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_ViewerResponse_descriptor,
               new java.lang.String[] { "ResponseType", "CapabilityExchange", "AddLog", "AddLogBranch", },
               com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.class,
@@ -10778,7 +16159,7 @@ public final class RemoteMessageProto {
           internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_ViewerResponse_CapabilityExchange_descriptor =
             internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_ViewerResponse_descriptor.getNestedTypes().get(0);
           internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_ViewerResponse_CapabilityExchange_fieldAccessorTable = new
-            com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable(
+            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_ViewerResponse_CapabilityExchange_descriptor,
               new java.lang.String[] { "Capabilities", },
               com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.class,
@@ -10786,7 +16167,7 @@ public final class RemoteMessageProto {
           internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_ViewerResponse_CapabilityExchange_Capability_descriptor =
             internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_ViewerResponse_CapabilityExchange_descriptor.getNestedTypes().get(0);
           internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_ViewerResponse_CapabilityExchange_Capability_fieldAccessorTable = new
-            com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable(
+            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_ViewerResponse_CapabilityExchange_Capability_descriptor,
               new java.lang.String[] { "Capability", },
               com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.CapabilityExchange.Capability.class,
@@ -10794,7 +16175,7 @@ public final class RemoteMessageProto {
           internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_ViewerResponse_AddLog_descriptor =
             internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_ViewerResponse_descriptor.getNestedTypes().get(1);
           internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_ViewerResponse_AddLog_fieldAccessorTable = new
-            com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable(
+            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_ViewerResponse_AddLog_descriptor,
               new java.lang.String[] { "LogHandle", },
               com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLog.class,
@@ -10802,7 +16183,7 @@ public final class RemoteMessageProto {
           internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_ViewerResponse_AddLogBranch_descriptor =
             internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_ViewerResponse_descriptor.getNestedTypes().get(2);
           internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_ViewerResponse_AddLogBranch_fieldAccessorTable = new
-            com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable(
+            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_ViewerResponse_AddLogBranch_descriptor,
               new java.lang.String[] { "LogHandle", },
               com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.ViewerResponse.AddLogBranch.class,
@@ -10810,7 +16191,7 @@ public final class RemoteMessageProto {
           internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_DevModeResponse_descriptor =
             internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_descriptor.getNestedTypes().get(1);
           internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_DevModeResponse_fieldAccessorTable = new
-            com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable(
+            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_DevModeResponse_descriptor,
               new java.lang.String[] { "ResponseType", "CapabilityExchange", "RestartWebServer", },
               com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.class,
@@ -10818,7 +16199,7 @@ public final class RemoteMessageProto {
           internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_DevModeResponse_CapabilityExchange_descriptor =
             internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_DevModeResponse_descriptor.getNestedTypes().get(0);
           internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_DevModeResponse_CapabilityExchange_fieldAccessorTable = new
-            com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable(
+            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_DevModeResponse_CapabilityExchange_descriptor,
               new java.lang.String[] { "Capabilities", },
               com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.class,
@@ -10826,7 +16207,7 @@ public final class RemoteMessageProto {
           internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_DevModeResponse_CapabilityExchange_Capability_descriptor =
             internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_DevModeResponse_CapabilityExchange_descriptor.getNestedTypes().get(0);
           internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_DevModeResponse_CapabilityExchange_Capability_fieldAccessorTable = new
-            com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable(
+            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_DevModeResponse_CapabilityExchange_Capability_descriptor,
               new java.lang.String[] { "Capability", },
               com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.CapabilityExchange.Capability.class,
@@ -10834,7 +16215,7 @@ public final class RemoteMessageProto {
           internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_DevModeResponse_RestartWebServer_descriptor =
             internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_DevModeResponse_descriptor.getNestedTypes().get(1);
           internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_DevModeResponse_RestartWebServer_fieldAccessorTable = new
-            com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable(
+            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_com_google_gwt_dev_shell_remoteui_Message_Response_DevModeResponse_RestartWebServer_descriptor,
               new java.lang.String[] { },
               com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Response.DevModeResponse.RestartWebServer.class,
@@ -10842,7 +16223,7 @@ public final class RemoteMessageProto {
           internal_static_com_google_gwt_dev_shell_remoteui_Message_Failure_descriptor =
             internal_static_com_google_gwt_dev_shell_remoteui_Message_descriptor.getNestedTypes().get(2);
           internal_static_com_google_gwt_dev_shell_remoteui_Message_Failure_fieldAccessorTable = new
-            com.google.gwt.dev.protobuf.GeneratedMessage.FieldAccessorTable(
+            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
               internal_static_com_google_gwt_dev_shell_remoteui_Message_Failure_descriptor,
               new java.lang.String[] { "Message", "StackTrace", },
               com.google.gwt.dev.shell.remoteui.RemoteMessageProto.Message.Failure.class,
@@ -10850,11 +16231,11 @@ public final class RemoteMessageProto {
           return null;
         }
       };
-    com.google.gwt.dev.protobuf.Descriptors.FileDescriptor
+    com.google.protobuf.Descriptors.FileDescriptor
       .internalBuildGeneratedFileFrom(descriptorData,
-        new com.google.gwt.dev.protobuf.Descriptors.FileDescriptor[] {
+        new com.google.protobuf.Descriptors.FileDescriptor[] {
         }, assigner);
   }
   
-  public static void internalForceInit() {}
+  // @@protoc_insertion_point(outer_class_scope)
 }
