// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: IlInstructions.proto

package soot.dotnet.proto;

public final class ProtoIlInstructions {
  private ProtoIlInstructions() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }

  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
    registerAllExtensions(
        (com.google.protobuf.ExtensionRegistryLite) registry);
  }
  public interface IlFunctionMsgOrBuilder extends
      // @@protoc_insertion_point(interface_extends:IlFunctionMsg)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>.IlBlockContainerMsg body = 1;</code>
     * @return Whether the body field is set.
     */
    boolean hasBody();
    /**
     * <code>.IlBlockContainerMsg body = 1;</code>
     * @return The body.
     */
    soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg getBody();
    /**
     * <code>.IlBlockContainerMsg body = 1;</code>
     */
    soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsgOrBuilder getBodyOrBuilder();

    /**
     * <code>repeated .IlVariableMsg variables = 2;</code>
     */
    java.util.List<soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg> 
        getVariablesList();
    /**
     * <code>repeated .IlVariableMsg variables = 2;</code>
     */
    soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg getVariables(int index);
    /**
     * <code>repeated .IlVariableMsg variables = 2;</code>
     */
    int getVariablesCount();
    /**
     * <code>repeated .IlVariableMsg variables = 2;</code>
     */
    java.util.List<? extends soot.dotnet.proto.ProtoIlInstructions.IlVariableMsgOrBuilder> 
        getVariablesOrBuilderList();
    /**
     * <code>repeated .IlVariableMsg variables = 2;</code>
     */
    soot.dotnet.proto.ProtoIlInstructions.IlVariableMsgOrBuilder getVariablesOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code IlFunctionMsg}
   */
  public static final class IlFunctionMsg extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:IlFunctionMsg)
      IlFunctionMsgOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use IlFunctionMsg.newBuilder() to construct.
    private IlFunctionMsg(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private IlFunctionMsg() {
      variables_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new IlFunctionMsg();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return soot.dotnet.proto.ProtoIlInstructions.internal_static_IlFunctionMsg_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return soot.dotnet.proto.ProtoIlInstructions.internal_static_IlFunctionMsg_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              soot.dotnet.proto.ProtoIlInstructions.IlFunctionMsg.class, soot.dotnet.proto.ProtoIlInstructions.IlFunctionMsg.Builder.class);
    }

    public static final int BODY_FIELD_NUMBER = 1;
    private soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg body_;
    /**
     * <code>.IlBlockContainerMsg body = 1;</code>
     * @return Whether the body field is set.
     */
    @java.lang.Override
    public boolean hasBody() {
      return body_ != null;
    }
    /**
     * <code>.IlBlockContainerMsg body = 1;</code>
     * @return The body.
     */
    @java.lang.Override
    public soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg getBody() {
      return body_ == null ? soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.getDefaultInstance() : body_;
    }
    /**
     * <code>.IlBlockContainerMsg body = 1;</code>
     */
    @java.lang.Override
    public soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsgOrBuilder getBodyOrBuilder() {
      return body_ == null ? soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.getDefaultInstance() : body_;
    }

    public static final int VARIABLES_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private java.util.List<soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg> variables_;
    /**
     * <code>repeated .IlVariableMsg variables = 2;</code>
     */
    @java.lang.Override
    public java.util.List<soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg> getVariablesList() {
      return variables_;
    }
    /**
     * <code>repeated .IlVariableMsg variables = 2;</code>
     */
    @java.lang.Override
    public java.util.List<? extends soot.dotnet.proto.ProtoIlInstructions.IlVariableMsgOrBuilder> 
        getVariablesOrBuilderList() {
      return variables_;
    }
    /**
     * <code>repeated .IlVariableMsg variables = 2;</code>
     */
    @java.lang.Override
    public int getVariablesCount() {
      return variables_.size();
    }
    /**
     * <code>repeated .IlVariableMsg variables = 2;</code>
     */
    @java.lang.Override
    public soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg getVariables(int index) {
      return variables_.get(index);
    }
    /**
     * <code>repeated .IlVariableMsg variables = 2;</code>
     */
    @java.lang.Override
    public soot.dotnet.proto.ProtoIlInstructions.IlVariableMsgOrBuilder getVariablesOrBuilder(
        int index) {
      return variables_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (body_ != null) {
        output.writeMessage(1, getBody());
      }
      for (int i = 0; i < variables_.size(); i++) {
        output.writeMessage(2, variables_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (body_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getBody());
      }
      for (int i = 0; i < variables_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, variables_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof soot.dotnet.proto.ProtoIlInstructions.IlFunctionMsg)) {
        return super.equals(obj);
      }
      soot.dotnet.proto.ProtoIlInstructions.IlFunctionMsg other = (soot.dotnet.proto.ProtoIlInstructions.IlFunctionMsg) obj;

      if (hasBody() != other.hasBody()) return false;
      if (hasBody()) {
        if (!getBody()
            .equals(other.getBody())) return false;
      }
      if (!getVariablesList()
          .equals(other.getVariablesList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasBody()) {
        hash = (37 * hash) + BODY_FIELD_NUMBER;
        hash = (53 * hash) + getBody().hashCode();
      }
      if (getVariablesCount() > 0) {
        hash = (37 * hash) + VARIABLES_FIELD_NUMBER;
        hash = (53 * hash) + getVariablesList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static soot.dotnet.proto.ProtoIlInstructions.IlFunctionMsg parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlFunctionMsg parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlFunctionMsg parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlFunctionMsg parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlFunctionMsg parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlFunctionMsg parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlFunctionMsg parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlFunctionMsg parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlFunctionMsg parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlFunctionMsg parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlFunctionMsg parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlFunctionMsg parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(soot.dotnet.proto.ProtoIlInstructions.IlFunctionMsg prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code IlFunctionMsg}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:IlFunctionMsg)
        soot.dotnet.proto.ProtoIlInstructions.IlFunctionMsgOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return soot.dotnet.proto.ProtoIlInstructions.internal_static_IlFunctionMsg_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return soot.dotnet.proto.ProtoIlInstructions.internal_static_IlFunctionMsg_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                soot.dotnet.proto.ProtoIlInstructions.IlFunctionMsg.class, soot.dotnet.proto.ProtoIlInstructions.IlFunctionMsg.Builder.class);
      }

      // Construct using soot.dotnet.proto.ProtoIlInstructions.IlFunctionMsg.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        body_ = null;
        if (bodyBuilder_ != null) {
          bodyBuilder_.dispose();
          bodyBuilder_ = null;
        }
        if (variablesBuilder_ == null) {
          variables_ = java.util.Collections.emptyList();
        } else {
          variables_ = null;
          variablesBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return soot.dotnet.proto.ProtoIlInstructions.internal_static_IlFunctionMsg_descriptor;
      }

      @java.lang.Override
      public soot.dotnet.proto.ProtoIlInstructions.IlFunctionMsg getDefaultInstanceForType() {
        return soot.dotnet.proto.ProtoIlInstructions.IlFunctionMsg.getDefaultInstance();
      }

      @java.lang.Override
      public soot.dotnet.proto.ProtoIlInstructions.IlFunctionMsg build() {
        soot.dotnet.proto.ProtoIlInstructions.IlFunctionMsg result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public soot.dotnet.proto.ProtoIlInstructions.IlFunctionMsg buildPartial() {
        soot.dotnet.proto.ProtoIlInstructions.IlFunctionMsg result = new soot.dotnet.proto.ProtoIlInstructions.IlFunctionMsg(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(soot.dotnet.proto.ProtoIlInstructions.IlFunctionMsg result) {
        if (variablesBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0)) {
            variables_ = java.util.Collections.unmodifiableList(variables_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.variables_ = variables_;
        } else {
          result.variables_ = variablesBuilder_.build();
        }
      }

      private void buildPartial0(soot.dotnet.proto.ProtoIlInstructions.IlFunctionMsg result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.body_ = bodyBuilder_ == null
              ? body_
              : bodyBuilder_.build();
        }
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof soot.dotnet.proto.ProtoIlInstructions.IlFunctionMsg) {
          return mergeFrom((soot.dotnet.proto.ProtoIlInstructions.IlFunctionMsg)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(soot.dotnet.proto.ProtoIlInstructions.IlFunctionMsg other) {
        if (other == soot.dotnet.proto.ProtoIlInstructions.IlFunctionMsg.getDefaultInstance()) return this;
        if (other.hasBody()) {
          mergeBody(other.getBody());
        }
        if (variablesBuilder_ == null) {
          if (!other.variables_.isEmpty()) {
            if (variables_.isEmpty()) {
              variables_ = other.variables_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureVariablesIsMutable();
              variables_.addAll(other.variables_);
            }
            onChanged();
          }
        } else {
          if (!other.variables_.isEmpty()) {
            if (variablesBuilder_.isEmpty()) {
              variablesBuilder_.dispose();
              variablesBuilder_ = null;
              variables_ = other.variables_;
              bitField0_ = (bitField0_ & ~0x00000002);
              variablesBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getVariablesFieldBuilder() : null;
            } else {
              variablesBuilder_.addAllMessages(other.variables_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                input.readMessage(
                    getBodyFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 18: {
                soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg m =
                    input.readMessage(
                        soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg.parser(),
                        extensionRegistry);
                if (variablesBuilder_ == null) {
                  ensureVariablesIsMutable();
                  variables_.add(m);
                } else {
                  variablesBuilder_.addMessage(m);
                }
                break;
              } // case 18
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg body_;
      private com.google.protobuf.SingleFieldBuilderV3<
          soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg, soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsgOrBuilder> bodyBuilder_;
      /**
       * <code>.IlBlockContainerMsg body = 1;</code>
       * @return Whether the body field is set.
       */
      public boolean hasBody() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>.IlBlockContainerMsg body = 1;</code>
       * @return The body.
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg getBody() {
        if (bodyBuilder_ == null) {
          return body_ == null ? soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.getDefaultInstance() : body_;
        } else {
          return bodyBuilder_.getMessage();
        }
      }
      /**
       * <code>.IlBlockContainerMsg body = 1;</code>
       */
      public Builder setBody(soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg value) {
        if (bodyBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          body_ = value;
        } else {
          bodyBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>.IlBlockContainerMsg body = 1;</code>
       */
      public Builder setBody(
          soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.Builder builderForValue) {
        if (bodyBuilder_ == null) {
          body_ = builderForValue.build();
        } else {
          bodyBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>.IlBlockContainerMsg body = 1;</code>
       */
      public Builder mergeBody(soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg value) {
        if (bodyBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
            body_ != null &&
            body_ != soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.getDefaultInstance()) {
            getBodyBuilder().mergeFrom(value);
          } else {
            body_ = value;
          }
        } else {
          bodyBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>.IlBlockContainerMsg body = 1;</code>
       */
      public Builder clearBody() {
        bitField0_ = (bitField0_ & ~0x00000001);
        body_ = null;
        if (bodyBuilder_ != null) {
          bodyBuilder_.dispose();
          bodyBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>.IlBlockContainerMsg body = 1;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.Builder getBodyBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getBodyFieldBuilder().getBuilder();
      }
      /**
       * <code>.IlBlockContainerMsg body = 1;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsgOrBuilder getBodyOrBuilder() {
        if (bodyBuilder_ != null) {
          return bodyBuilder_.getMessageOrBuilder();
        } else {
          return body_ == null ?
              soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.getDefaultInstance() : body_;
        }
      }
      /**
       * <code>.IlBlockContainerMsg body = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg, soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsgOrBuilder> 
          getBodyFieldBuilder() {
        if (bodyBuilder_ == null) {
          bodyBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg, soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsgOrBuilder>(
                  getBody(),
                  getParentForChildren(),
                  isClean());
          body_ = null;
        }
        return bodyBuilder_;
      }

      private java.util.List<soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg> variables_ =
        java.util.Collections.emptyList();
      private void ensureVariablesIsMutable() {
        if (!((bitField0_ & 0x00000002) != 0)) {
          variables_ = new java.util.ArrayList<soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg>(variables_);
          bitField0_ |= 0x00000002;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg, soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlVariableMsgOrBuilder> variablesBuilder_;

      /**
       * <code>repeated .IlVariableMsg variables = 2;</code>
       */
      public java.util.List<soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg> getVariablesList() {
        if (variablesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(variables_);
        } else {
          return variablesBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .IlVariableMsg variables = 2;</code>
       */
      public int getVariablesCount() {
        if (variablesBuilder_ == null) {
          return variables_.size();
        } else {
          return variablesBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .IlVariableMsg variables = 2;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg getVariables(int index) {
        if (variablesBuilder_ == null) {
          return variables_.get(index);
        } else {
          return variablesBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .IlVariableMsg variables = 2;</code>
       */
      public Builder setVariables(
          int index, soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg value) {
        if (variablesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureVariablesIsMutable();
          variables_.set(index, value);
          onChanged();
        } else {
          variablesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .IlVariableMsg variables = 2;</code>
       */
      public Builder setVariables(
          int index, soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg.Builder builderForValue) {
        if (variablesBuilder_ == null) {
          ensureVariablesIsMutable();
          variables_.set(index, builderForValue.build());
          onChanged();
        } else {
          variablesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .IlVariableMsg variables = 2;</code>
       */
      public Builder addVariables(soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg value) {
        if (variablesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureVariablesIsMutable();
          variables_.add(value);
          onChanged();
        } else {
          variablesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .IlVariableMsg variables = 2;</code>
       */
      public Builder addVariables(
          int index, soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg value) {
        if (variablesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureVariablesIsMutable();
          variables_.add(index, value);
          onChanged();
        } else {
          variablesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .IlVariableMsg variables = 2;</code>
       */
      public Builder addVariables(
          soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg.Builder builderForValue) {
        if (variablesBuilder_ == null) {
          ensureVariablesIsMutable();
          variables_.add(builderForValue.build());
          onChanged();
        } else {
          variablesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .IlVariableMsg variables = 2;</code>
       */
      public Builder addVariables(
          int index, soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg.Builder builderForValue) {
        if (variablesBuilder_ == null) {
          ensureVariablesIsMutable();
          variables_.add(index, builderForValue.build());
          onChanged();
        } else {
          variablesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .IlVariableMsg variables = 2;</code>
       */
      public Builder addAllVariables(
          java.lang.Iterable<? extends soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg> values) {
        if (variablesBuilder_ == null) {
          ensureVariablesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, variables_);
          onChanged();
        } else {
          variablesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .IlVariableMsg variables = 2;</code>
       */
      public Builder clearVariables() {
        if (variablesBuilder_ == null) {
          variables_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          variablesBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .IlVariableMsg variables = 2;</code>
       */
      public Builder removeVariables(int index) {
        if (variablesBuilder_ == null) {
          ensureVariablesIsMutable();
          variables_.remove(index);
          onChanged();
        } else {
          variablesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .IlVariableMsg variables = 2;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg.Builder getVariablesBuilder(
          int index) {
        return getVariablesFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .IlVariableMsg variables = 2;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlVariableMsgOrBuilder getVariablesOrBuilder(
          int index) {
        if (variablesBuilder_ == null) {
          return variables_.get(index);  } else {
          return variablesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .IlVariableMsg variables = 2;</code>
       */
      public java.util.List<? extends soot.dotnet.proto.ProtoIlInstructions.IlVariableMsgOrBuilder> 
           getVariablesOrBuilderList() {
        if (variablesBuilder_ != null) {
          return variablesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(variables_);
        }
      }
      /**
       * <code>repeated .IlVariableMsg variables = 2;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg.Builder addVariablesBuilder() {
        return getVariablesFieldBuilder().addBuilder(
            soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg.getDefaultInstance());
      }
      /**
       * <code>repeated .IlVariableMsg variables = 2;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg.Builder addVariablesBuilder(
          int index) {
        return getVariablesFieldBuilder().addBuilder(
            index, soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg.getDefaultInstance());
      }
      /**
       * <code>repeated .IlVariableMsg variables = 2;</code>
       */
      public java.util.List<soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg.Builder> 
           getVariablesBuilderList() {
        return getVariablesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg, soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlVariableMsgOrBuilder> 
          getVariablesFieldBuilder() {
        if (variablesBuilder_ == null) {
          variablesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg, soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlVariableMsgOrBuilder>(
                  variables_,
                  ((bitField0_ & 0x00000002) != 0),
                  getParentForChildren(),
                  isClean());
          variables_ = null;
        }
        return variablesBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:IlFunctionMsg)
    }

    // @@protoc_insertion_point(class_scope:IlFunctionMsg)
    private static final soot.dotnet.proto.ProtoIlInstructions.IlFunctionMsg DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new soot.dotnet.proto.ProtoIlInstructions.IlFunctionMsg();
    }

    public static soot.dotnet.proto.ProtoIlInstructions.IlFunctionMsg getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<IlFunctionMsg>
        PARSER = new com.google.protobuf.AbstractParser<IlFunctionMsg>() {
      @java.lang.Override
      public IlFunctionMsg parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<IlFunctionMsg> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<IlFunctionMsg> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public soot.dotnet.proto.ProtoIlInstructions.IlFunctionMsg getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface IlBlockContainerMsgOrBuilder extends
      // @@protoc_insertion_point(interface_extends:IlBlockContainerMsg)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * IL BlockContainer
     * </pre>
     *
     * <code>repeated .IlBlock blocks = 1;</code>
     */
    java.util.List<soot.dotnet.proto.ProtoIlInstructions.IlBlock> 
        getBlocksList();
    /**
     * <pre>
     * IL BlockContainer
     * </pre>
     *
     * <code>repeated .IlBlock blocks = 1;</code>
     */
    soot.dotnet.proto.ProtoIlInstructions.IlBlock getBlocks(int index);
    /**
     * <pre>
     * IL BlockContainer
     * </pre>
     *
     * <code>repeated .IlBlock blocks = 1;</code>
     */
    int getBlocksCount();
    /**
     * <pre>
     * IL BlockContainer
     * </pre>
     *
     * <code>repeated .IlBlock blocks = 1;</code>
     */
    java.util.List<? extends soot.dotnet.proto.ProtoIlInstructions.IlBlockOrBuilder> 
        getBlocksOrBuilderList();
    /**
     * <pre>
     * IL BlockContainer
     * </pre>
     *
     * <code>repeated .IlBlock blocks = 1;</code>
     */
    soot.dotnet.proto.ProtoIlInstructions.IlBlockOrBuilder getBlocksOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code IlBlockContainerMsg}
   */
  public static final class IlBlockContainerMsg extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:IlBlockContainerMsg)
      IlBlockContainerMsgOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use IlBlockContainerMsg.newBuilder() to construct.
    private IlBlockContainerMsg(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private IlBlockContainerMsg() {
      blocks_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new IlBlockContainerMsg();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return soot.dotnet.proto.ProtoIlInstructions.internal_static_IlBlockContainerMsg_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return soot.dotnet.proto.ProtoIlInstructions.internal_static_IlBlockContainerMsg_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.class, soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.Builder.class);
    }

    public static final int BLOCKS_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private java.util.List<soot.dotnet.proto.ProtoIlInstructions.IlBlock> blocks_;
    /**
     * <pre>
     * IL BlockContainer
     * </pre>
     *
     * <code>repeated .IlBlock blocks = 1;</code>
     */
    @java.lang.Override
    public java.util.List<soot.dotnet.proto.ProtoIlInstructions.IlBlock> getBlocksList() {
      return blocks_;
    }
    /**
     * <pre>
     * IL BlockContainer
     * </pre>
     *
     * <code>repeated .IlBlock blocks = 1;</code>
     */
    @java.lang.Override
    public java.util.List<? extends soot.dotnet.proto.ProtoIlInstructions.IlBlockOrBuilder> 
        getBlocksOrBuilderList() {
      return blocks_;
    }
    /**
     * <pre>
     * IL BlockContainer
     * </pre>
     *
     * <code>repeated .IlBlock blocks = 1;</code>
     */
    @java.lang.Override
    public int getBlocksCount() {
      return blocks_.size();
    }
    /**
     * <pre>
     * IL BlockContainer
     * </pre>
     *
     * <code>repeated .IlBlock blocks = 1;</code>
     */
    @java.lang.Override
    public soot.dotnet.proto.ProtoIlInstructions.IlBlock getBlocks(int index) {
      return blocks_.get(index);
    }
    /**
     * <pre>
     * IL BlockContainer
     * </pre>
     *
     * <code>repeated .IlBlock blocks = 1;</code>
     */
    @java.lang.Override
    public soot.dotnet.proto.ProtoIlInstructions.IlBlockOrBuilder getBlocksOrBuilder(
        int index) {
      return blocks_.get(index);
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < blocks_.size(); i++) {
        output.writeMessage(1, blocks_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < blocks_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, blocks_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg)) {
        return super.equals(obj);
      }
      soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg other = (soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg) obj;

      if (!getBlocksList()
          .equals(other.getBlocksList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getBlocksCount() > 0) {
        hash = (37 * hash) + BLOCKS_FIELD_NUMBER;
        hash = (53 * hash) + getBlocksList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code IlBlockContainerMsg}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:IlBlockContainerMsg)
        soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsgOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return soot.dotnet.proto.ProtoIlInstructions.internal_static_IlBlockContainerMsg_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return soot.dotnet.proto.ProtoIlInstructions.internal_static_IlBlockContainerMsg_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.class, soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.Builder.class);
      }

      // Construct using soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        if (blocksBuilder_ == null) {
          blocks_ = java.util.Collections.emptyList();
        } else {
          blocks_ = null;
          blocksBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return soot.dotnet.proto.ProtoIlInstructions.internal_static_IlBlockContainerMsg_descriptor;
      }

      @java.lang.Override
      public soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg getDefaultInstanceForType() {
        return soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.getDefaultInstance();
      }

      @java.lang.Override
      public soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg build() {
        soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg buildPartial() {
        soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg result = new soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg result) {
        if (blocksBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            blocks_ = java.util.Collections.unmodifiableList(blocks_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.blocks_ = blocks_;
        } else {
          result.blocks_ = blocksBuilder_.build();
        }
      }

      private void buildPartial0(soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg result) {
        int from_bitField0_ = bitField0_;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg) {
          return mergeFrom((soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg other) {
        if (other == soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.getDefaultInstance()) return this;
        if (blocksBuilder_ == null) {
          if (!other.blocks_.isEmpty()) {
            if (blocks_.isEmpty()) {
              blocks_ = other.blocks_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureBlocksIsMutable();
              blocks_.addAll(other.blocks_);
            }
            onChanged();
          }
        } else {
          if (!other.blocks_.isEmpty()) {
            if (blocksBuilder_.isEmpty()) {
              blocksBuilder_.dispose();
              blocksBuilder_ = null;
              blocks_ = other.blocks_;
              bitField0_ = (bitField0_ & ~0x00000001);
              blocksBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getBlocksFieldBuilder() : null;
            } else {
              blocksBuilder_.addAllMessages(other.blocks_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                soot.dotnet.proto.ProtoIlInstructions.IlBlock m =
                    input.readMessage(
                        soot.dotnet.proto.ProtoIlInstructions.IlBlock.parser(),
                        extensionRegistry);
                if (blocksBuilder_ == null) {
                  ensureBlocksIsMutable();
                  blocks_.add(m);
                } else {
                  blocksBuilder_.addMessage(m);
                }
                break;
              } // case 10
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.util.List<soot.dotnet.proto.ProtoIlInstructions.IlBlock> blocks_ =
        java.util.Collections.emptyList();
      private void ensureBlocksIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          blocks_ = new java.util.ArrayList<soot.dotnet.proto.ProtoIlInstructions.IlBlock>(blocks_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          soot.dotnet.proto.ProtoIlInstructions.IlBlock, soot.dotnet.proto.ProtoIlInstructions.IlBlock.Builder, soot.dotnet.proto.ProtoIlInstructions.IlBlockOrBuilder> blocksBuilder_;

      /**
       * <pre>
       * IL BlockContainer
       * </pre>
       *
       * <code>repeated .IlBlock blocks = 1;</code>
       */
      public java.util.List<soot.dotnet.proto.ProtoIlInstructions.IlBlock> getBlocksList() {
        if (blocksBuilder_ == null) {
          return java.util.Collections.unmodifiableList(blocks_);
        } else {
          return blocksBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * IL BlockContainer
       * </pre>
       *
       * <code>repeated .IlBlock blocks = 1;</code>
       */
      public int getBlocksCount() {
        if (blocksBuilder_ == null) {
          return blocks_.size();
        } else {
          return blocksBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * IL BlockContainer
       * </pre>
       *
       * <code>repeated .IlBlock blocks = 1;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlBlock getBlocks(int index) {
        if (blocksBuilder_ == null) {
          return blocks_.get(index);
        } else {
          return blocksBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * IL BlockContainer
       * </pre>
       *
       * <code>repeated .IlBlock blocks = 1;</code>
       */
      public Builder setBlocks(
          int index, soot.dotnet.proto.ProtoIlInstructions.IlBlock value) {
        if (blocksBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureBlocksIsMutable();
          blocks_.set(index, value);
          onChanged();
        } else {
          blocksBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * IL BlockContainer
       * </pre>
       *
       * <code>repeated .IlBlock blocks = 1;</code>
       */
      public Builder setBlocks(
          int index, soot.dotnet.proto.ProtoIlInstructions.IlBlock.Builder builderForValue) {
        if (blocksBuilder_ == null) {
          ensureBlocksIsMutable();
          blocks_.set(index, builderForValue.build());
          onChanged();
        } else {
          blocksBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * IL BlockContainer
       * </pre>
       *
       * <code>repeated .IlBlock blocks = 1;</code>
       */
      public Builder addBlocks(soot.dotnet.proto.ProtoIlInstructions.IlBlock value) {
        if (blocksBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureBlocksIsMutable();
          blocks_.add(value);
          onChanged();
        } else {
          blocksBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * IL BlockContainer
       * </pre>
       *
       * <code>repeated .IlBlock blocks = 1;</code>
       */
      public Builder addBlocks(
          int index, soot.dotnet.proto.ProtoIlInstructions.IlBlock value) {
        if (blocksBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureBlocksIsMutable();
          blocks_.add(index, value);
          onChanged();
        } else {
          blocksBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * IL BlockContainer
       * </pre>
       *
       * <code>repeated .IlBlock blocks = 1;</code>
       */
      public Builder addBlocks(
          soot.dotnet.proto.ProtoIlInstructions.IlBlock.Builder builderForValue) {
        if (blocksBuilder_ == null) {
          ensureBlocksIsMutable();
          blocks_.add(builderForValue.build());
          onChanged();
        } else {
          blocksBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * IL BlockContainer
       * </pre>
       *
       * <code>repeated .IlBlock blocks = 1;</code>
       */
      public Builder addBlocks(
          int index, soot.dotnet.proto.ProtoIlInstructions.IlBlock.Builder builderForValue) {
        if (blocksBuilder_ == null) {
          ensureBlocksIsMutable();
          blocks_.add(index, builderForValue.build());
          onChanged();
        } else {
          blocksBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * IL BlockContainer
       * </pre>
       *
       * <code>repeated .IlBlock blocks = 1;</code>
       */
      public Builder addAllBlocks(
          java.lang.Iterable<? extends soot.dotnet.proto.ProtoIlInstructions.IlBlock> values) {
        if (blocksBuilder_ == null) {
          ensureBlocksIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, blocks_);
          onChanged();
        } else {
          blocksBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * IL BlockContainer
       * </pre>
       *
       * <code>repeated .IlBlock blocks = 1;</code>
       */
      public Builder clearBlocks() {
        if (blocksBuilder_ == null) {
          blocks_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          blocksBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * IL BlockContainer
       * </pre>
       *
       * <code>repeated .IlBlock blocks = 1;</code>
       */
      public Builder removeBlocks(int index) {
        if (blocksBuilder_ == null) {
          ensureBlocksIsMutable();
          blocks_.remove(index);
          onChanged();
        } else {
          blocksBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * IL BlockContainer
       * </pre>
       *
       * <code>repeated .IlBlock blocks = 1;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlBlock.Builder getBlocksBuilder(
          int index) {
        return getBlocksFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * IL BlockContainer
       * </pre>
       *
       * <code>repeated .IlBlock blocks = 1;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlBlockOrBuilder getBlocksOrBuilder(
          int index) {
        if (blocksBuilder_ == null) {
          return blocks_.get(index);  } else {
          return blocksBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * IL BlockContainer
       * </pre>
       *
       * <code>repeated .IlBlock blocks = 1;</code>
       */
      public java.util.List<? extends soot.dotnet.proto.ProtoIlInstructions.IlBlockOrBuilder> 
           getBlocksOrBuilderList() {
        if (blocksBuilder_ != null) {
          return blocksBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(blocks_);
        }
      }
      /**
       * <pre>
       * IL BlockContainer
       * </pre>
       *
       * <code>repeated .IlBlock blocks = 1;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlBlock.Builder addBlocksBuilder() {
        return getBlocksFieldBuilder().addBuilder(
            soot.dotnet.proto.ProtoIlInstructions.IlBlock.getDefaultInstance());
      }
      /**
       * <pre>
       * IL BlockContainer
       * </pre>
       *
       * <code>repeated .IlBlock blocks = 1;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlBlock.Builder addBlocksBuilder(
          int index) {
        return getBlocksFieldBuilder().addBuilder(
            index, soot.dotnet.proto.ProtoIlInstructions.IlBlock.getDefaultInstance());
      }
      /**
       * <pre>
       * IL BlockContainer
       * </pre>
       *
       * <code>repeated .IlBlock blocks = 1;</code>
       */
      public java.util.List<soot.dotnet.proto.ProtoIlInstructions.IlBlock.Builder> 
           getBlocksBuilderList() {
        return getBlocksFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          soot.dotnet.proto.ProtoIlInstructions.IlBlock, soot.dotnet.proto.ProtoIlInstructions.IlBlock.Builder, soot.dotnet.proto.ProtoIlInstructions.IlBlockOrBuilder> 
          getBlocksFieldBuilder() {
        if (blocksBuilder_ == null) {
          blocksBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              soot.dotnet.proto.ProtoIlInstructions.IlBlock, soot.dotnet.proto.ProtoIlInstructions.IlBlock.Builder, soot.dotnet.proto.ProtoIlInstructions.IlBlockOrBuilder>(
                  blocks_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          blocks_ = null;
        }
        return blocksBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:IlBlockContainerMsg)
    }

    // @@protoc_insertion_point(class_scope:IlBlockContainerMsg)
    private static final soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg();
    }

    public static soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<IlBlockContainerMsg>
        PARSER = new com.google.protobuf.AbstractParser<IlBlockContainerMsg>() {
      @java.lang.Override
      public IlBlockContainerMsg parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<IlBlockContainerMsg> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<IlBlockContainerMsg> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface IlBlockOrBuilder extends
      // @@protoc_insertion_point(interface_extends:IlBlock)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>repeated .IlInstructionMsg list_of_il_instructions = 1;</code>
     */
    java.util.List<soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg> 
        getListOfIlInstructionsList();
    /**
     * <code>repeated .IlInstructionMsg list_of_il_instructions = 1;</code>
     */
    soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg getListOfIlInstructions(int index);
    /**
     * <code>repeated .IlInstructionMsg list_of_il_instructions = 1;</code>
     */
    int getListOfIlInstructionsCount();
    /**
     * <code>repeated .IlInstructionMsg list_of_il_instructions = 1;</code>
     */
    java.util.List<? extends soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder> 
        getListOfIlInstructionsOrBuilderList();
    /**
     * <code>repeated .IlInstructionMsg list_of_il_instructions = 1;</code>
     */
    soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder getListOfIlInstructionsOrBuilder(
        int index);

    /**
     * <code>string block_name = 2;</code>
     * @return The blockName.
     */
    java.lang.String getBlockName();
    /**
     * <code>string block_name = 2;</code>
     * @return The bytes for blockName.
     */
    com.google.protobuf.ByteString
        getBlockNameBytes();

    /**
     * <code>.IlInstructionMsg final_instruction = 3;</code>
     * @return Whether the finalInstruction field is set.
     */
    boolean hasFinalInstruction();
    /**
     * <code>.IlInstructionMsg final_instruction = 3;</code>
     * @return The finalInstruction.
     */
    soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg getFinalInstruction();
    /**
     * <code>.IlInstructionMsg final_instruction = 3;</code>
     */
    soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder getFinalInstructionOrBuilder();
  }
  /**
   * Protobuf type {@code IlBlock}
   */
  public static final class IlBlock extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:IlBlock)
      IlBlockOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use IlBlock.newBuilder() to construct.
    private IlBlock(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private IlBlock() {
      listOfIlInstructions_ = java.util.Collections.emptyList();
      blockName_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new IlBlock();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return soot.dotnet.proto.ProtoIlInstructions.internal_static_IlBlock_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return soot.dotnet.proto.ProtoIlInstructions.internal_static_IlBlock_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              soot.dotnet.proto.ProtoIlInstructions.IlBlock.class, soot.dotnet.proto.ProtoIlInstructions.IlBlock.Builder.class);
    }

    public static final int LIST_OF_IL_INSTRUCTIONS_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private java.util.List<soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg> listOfIlInstructions_;
    /**
     * <code>repeated .IlInstructionMsg list_of_il_instructions = 1;</code>
     */
    @java.lang.Override
    public java.util.List<soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg> getListOfIlInstructionsList() {
      return listOfIlInstructions_;
    }
    /**
     * <code>repeated .IlInstructionMsg list_of_il_instructions = 1;</code>
     */
    @java.lang.Override
    public java.util.List<? extends soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder> 
        getListOfIlInstructionsOrBuilderList() {
      return listOfIlInstructions_;
    }
    /**
     * <code>repeated .IlInstructionMsg list_of_il_instructions = 1;</code>
     */
    @java.lang.Override
    public int getListOfIlInstructionsCount() {
      return listOfIlInstructions_.size();
    }
    /**
     * <code>repeated .IlInstructionMsg list_of_il_instructions = 1;</code>
     */
    @java.lang.Override
    public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg getListOfIlInstructions(int index) {
      return listOfIlInstructions_.get(index);
    }
    /**
     * <code>repeated .IlInstructionMsg list_of_il_instructions = 1;</code>
     */
    @java.lang.Override
    public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder getListOfIlInstructionsOrBuilder(
        int index) {
      return listOfIlInstructions_.get(index);
    }

    public static final int BLOCK_NAME_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object blockName_ = "";
    /**
     * <code>string block_name = 2;</code>
     * @return The blockName.
     */
    @java.lang.Override
    public java.lang.String getBlockName() {
      java.lang.Object ref = blockName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        blockName_ = s;
        return s;
      }
    }
    /**
     * <code>string block_name = 2;</code>
     * @return The bytes for blockName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getBlockNameBytes() {
      java.lang.Object ref = blockName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        blockName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int FINAL_INSTRUCTION_FIELD_NUMBER = 3;
    private soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg finalInstruction_;
    /**
     * <code>.IlInstructionMsg final_instruction = 3;</code>
     * @return Whether the finalInstruction field is set.
     */
    @java.lang.Override
    public boolean hasFinalInstruction() {
      return finalInstruction_ != null;
    }
    /**
     * <code>.IlInstructionMsg final_instruction = 3;</code>
     * @return The finalInstruction.
     */
    @java.lang.Override
    public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg getFinalInstruction() {
      return finalInstruction_ == null ? soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance() : finalInstruction_;
    }
    /**
     * <code>.IlInstructionMsg final_instruction = 3;</code>
     */
    @java.lang.Override
    public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder getFinalInstructionOrBuilder() {
      return finalInstruction_ == null ? soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance() : finalInstruction_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < listOfIlInstructions_.size(); i++) {
        output.writeMessage(1, listOfIlInstructions_.get(i));
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(blockName_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, blockName_);
      }
      if (finalInstruction_ != null) {
        output.writeMessage(3, getFinalInstruction());
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < listOfIlInstructions_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, listOfIlInstructions_.get(i));
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(blockName_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, blockName_);
      }
      if (finalInstruction_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getFinalInstruction());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof soot.dotnet.proto.ProtoIlInstructions.IlBlock)) {
        return super.equals(obj);
      }
      soot.dotnet.proto.ProtoIlInstructions.IlBlock other = (soot.dotnet.proto.ProtoIlInstructions.IlBlock) obj;

      if (!getListOfIlInstructionsList()
          .equals(other.getListOfIlInstructionsList())) return false;
      if (!getBlockName()
          .equals(other.getBlockName())) return false;
      if (hasFinalInstruction() != other.hasFinalInstruction()) return false;
      if (hasFinalInstruction()) {
        if (!getFinalInstruction()
            .equals(other.getFinalInstruction())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getListOfIlInstructionsCount() > 0) {
        hash = (37 * hash) + LIST_OF_IL_INSTRUCTIONS_FIELD_NUMBER;
        hash = (53 * hash) + getListOfIlInstructionsList().hashCode();
      }
      hash = (37 * hash) + BLOCK_NAME_FIELD_NUMBER;
      hash = (53 * hash) + getBlockName().hashCode();
      if (hasFinalInstruction()) {
        hash = (37 * hash) + FINAL_INSTRUCTION_FIELD_NUMBER;
        hash = (53 * hash) + getFinalInstruction().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static soot.dotnet.proto.ProtoIlInstructions.IlBlock parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlBlock parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlBlock parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlBlock parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlBlock parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlBlock parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlBlock parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlBlock parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlBlock parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlBlock parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlBlock parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlBlock parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(soot.dotnet.proto.ProtoIlInstructions.IlBlock prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code IlBlock}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:IlBlock)
        soot.dotnet.proto.ProtoIlInstructions.IlBlockOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return soot.dotnet.proto.ProtoIlInstructions.internal_static_IlBlock_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return soot.dotnet.proto.ProtoIlInstructions.internal_static_IlBlock_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                soot.dotnet.proto.ProtoIlInstructions.IlBlock.class, soot.dotnet.proto.ProtoIlInstructions.IlBlock.Builder.class);
      }

      // Construct using soot.dotnet.proto.ProtoIlInstructions.IlBlock.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        if (listOfIlInstructionsBuilder_ == null) {
          listOfIlInstructions_ = java.util.Collections.emptyList();
        } else {
          listOfIlInstructions_ = null;
          listOfIlInstructionsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        blockName_ = "";
        finalInstruction_ = null;
        if (finalInstructionBuilder_ != null) {
          finalInstructionBuilder_.dispose();
          finalInstructionBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return soot.dotnet.proto.ProtoIlInstructions.internal_static_IlBlock_descriptor;
      }

      @java.lang.Override
      public soot.dotnet.proto.ProtoIlInstructions.IlBlock getDefaultInstanceForType() {
        return soot.dotnet.proto.ProtoIlInstructions.IlBlock.getDefaultInstance();
      }

      @java.lang.Override
      public soot.dotnet.proto.ProtoIlInstructions.IlBlock build() {
        soot.dotnet.proto.ProtoIlInstructions.IlBlock result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public soot.dotnet.proto.ProtoIlInstructions.IlBlock buildPartial() {
        soot.dotnet.proto.ProtoIlInstructions.IlBlock result = new soot.dotnet.proto.ProtoIlInstructions.IlBlock(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(soot.dotnet.proto.ProtoIlInstructions.IlBlock result) {
        if (listOfIlInstructionsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            listOfIlInstructions_ = java.util.Collections.unmodifiableList(listOfIlInstructions_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.listOfIlInstructions_ = listOfIlInstructions_;
        } else {
          result.listOfIlInstructions_ = listOfIlInstructionsBuilder_.build();
        }
      }

      private void buildPartial0(soot.dotnet.proto.ProtoIlInstructions.IlBlock result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.blockName_ = blockName_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.finalInstruction_ = finalInstructionBuilder_ == null
              ? finalInstruction_
              : finalInstructionBuilder_.build();
        }
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof soot.dotnet.proto.ProtoIlInstructions.IlBlock) {
          return mergeFrom((soot.dotnet.proto.ProtoIlInstructions.IlBlock)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(soot.dotnet.proto.ProtoIlInstructions.IlBlock other) {
        if (other == soot.dotnet.proto.ProtoIlInstructions.IlBlock.getDefaultInstance()) return this;
        if (listOfIlInstructionsBuilder_ == null) {
          if (!other.listOfIlInstructions_.isEmpty()) {
            if (listOfIlInstructions_.isEmpty()) {
              listOfIlInstructions_ = other.listOfIlInstructions_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureListOfIlInstructionsIsMutable();
              listOfIlInstructions_.addAll(other.listOfIlInstructions_);
            }
            onChanged();
          }
        } else {
          if (!other.listOfIlInstructions_.isEmpty()) {
            if (listOfIlInstructionsBuilder_.isEmpty()) {
              listOfIlInstructionsBuilder_.dispose();
              listOfIlInstructionsBuilder_ = null;
              listOfIlInstructions_ = other.listOfIlInstructions_;
              bitField0_ = (bitField0_ & ~0x00000001);
              listOfIlInstructionsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getListOfIlInstructionsFieldBuilder() : null;
            } else {
              listOfIlInstructionsBuilder_.addAllMessages(other.listOfIlInstructions_);
            }
          }
        }
        if (!other.getBlockName().isEmpty()) {
          blockName_ = other.blockName_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (other.hasFinalInstruction()) {
          mergeFinalInstruction(other.getFinalInstruction());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg m =
                    input.readMessage(
                        soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.parser(),
                        extensionRegistry);
                if (listOfIlInstructionsBuilder_ == null) {
                  ensureListOfIlInstructionsIsMutable();
                  listOfIlInstructions_.add(m);
                } else {
                  listOfIlInstructionsBuilder_.addMessage(m);
                }
                break;
              } // case 10
              case 18: {
                blockName_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 26: {
                input.readMessage(
                    getFinalInstructionFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.util.List<soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg> listOfIlInstructions_ =
        java.util.Collections.emptyList();
      private void ensureListOfIlInstructionsIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          listOfIlInstructions_ = new java.util.ArrayList<soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg>(listOfIlInstructions_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder> listOfIlInstructionsBuilder_;

      /**
       * <code>repeated .IlInstructionMsg list_of_il_instructions = 1;</code>
       */
      public java.util.List<soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg> getListOfIlInstructionsList() {
        if (listOfIlInstructionsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(listOfIlInstructions_);
        } else {
          return listOfIlInstructionsBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .IlInstructionMsg list_of_il_instructions = 1;</code>
       */
      public int getListOfIlInstructionsCount() {
        if (listOfIlInstructionsBuilder_ == null) {
          return listOfIlInstructions_.size();
        } else {
          return listOfIlInstructionsBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .IlInstructionMsg list_of_il_instructions = 1;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg getListOfIlInstructions(int index) {
        if (listOfIlInstructionsBuilder_ == null) {
          return listOfIlInstructions_.get(index);
        } else {
          return listOfIlInstructionsBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .IlInstructionMsg list_of_il_instructions = 1;</code>
       */
      public Builder setListOfIlInstructions(
          int index, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg value) {
        if (listOfIlInstructionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureListOfIlInstructionsIsMutable();
          listOfIlInstructions_.set(index, value);
          onChanged();
        } else {
          listOfIlInstructionsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .IlInstructionMsg list_of_il_instructions = 1;</code>
       */
      public Builder setListOfIlInstructions(
          int index, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder builderForValue) {
        if (listOfIlInstructionsBuilder_ == null) {
          ensureListOfIlInstructionsIsMutable();
          listOfIlInstructions_.set(index, builderForValue.build());
          onChanged();
        } else {
          listOfIlInstructionsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .IlInstructionMsg list_of_il_instructions = 1;</code>
       */
      public Builder addListOfIlInstructions(soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg value) {
        if (listOfIlInstructionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureListOfIlInstructionsIsMutable();
          listOfIlInstructions_.add(value);
          onChanged();
        } else {
          listOfIlInstructionsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .IlInstructionMsg list_of_il_instructions = 1;</code>
       */
      public Builder addListOfIlInstructions(
          int index, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg value) {
        if (listOfIlInstructionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureListOfIlInstructionsIsMutable();
          listOfIlInstructions_.add(index, value);
          onChanged();
        } else {
          listOfIlInstructionsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .IlInstructionMsg list_of_il_instructions = 1;</code>
       */
      public Builder addListOfIlInstructions(
          soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder builderForValue) {
        if (listOfIlInstructionsBuilder_ == null) {
          ensureListOfIlInstructionsIsMutable();
          listOfIlInstructions_.add(builderForValue.build());
          onChanged();
        } else {
          listOfIlInstructionsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .IlInstructionMsg list_of_il_instructions = 1;</code>
       */
      public Builder addListOfIlInstructions(
          int index, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder builderForValue) {
        if (listOfIlInstructionsBuilder_ == null) {
          ensureListOfIlInstructionsIsMutable();
          listOfIlInstructions_.add(index, builderForValue.build());
          onChanged();
        } else {
          listOfIlInstructionsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .IlInstructionMsg list_of_il_instructions = 1;</code>
       */
      public Builder addAllListOfIlInstructions(
          java.lang.Iterable<? extends soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg> values) {
        if (listOfIlInstructionsBuilder_ == null) {
          ensureListOfIlInstructionsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, listOfIlInstructions_);
          onChanged();
        } else {
          listOfIlInstructionsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .IlInstructionMsg list_of_il_instructions = 1;</code>
       */
      public Builder clearListOfIlInstructions() {
        if (listOfIlInstructionsBuilder_ == null) {
          listOfIlInstructions_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          listOfIlInstructionsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .IlInstructionMsg list_of_il_instructions = 1;</code>
       */
      public Builder removeListOfIlInstructions(int index) {
        if (listOfIlInstructionsBuilder_ == null) {
          ensureListOfIlInstructionsIsMutable();
          listOfIlInstructions_.remove(index);
          onChanged();
        } else {
          listOfIlInstructionsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .IlInstructionMsg list_of_il_instructions = 1;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder getListOfIlInstructionsBuilder(
          int index) {
        return getListOfIlInstructionsFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .IlInstructionMsg list_of_il_instructions = 1;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder getListOfIlInstructionsOrBuilder(
          int index) {
        if (listOfIlInstructionsBuilder_ == null) {
          return listOfIlInstructions_.get(index);  } else {
          return listOfIlInstructionsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .IlInstructionMsg list_of_il_instructions = 1;</code>
       */
      public java.util.List<? extends soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder> 
           getListOfIlInstructionsOrBuilderList() {
        if (listOfIlInstructionsBuilder_ != null) {
          return listOfIlInstructionsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(listOfIlInstructions_);
        }
      }
      /**
       * <code>repeated .IlInstructionMsg list_of_il_instructions = 1;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder addListOfIlInstructionsBuilder() {
        return getListOfIlInstructionsFieldBuilder().addBuilder(
            soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance());
      }
      /**
       * <code>repeated .IlInstructionMsg list_of_il_instructions = 1;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder addListOfIlInstructionsBuilder(
          int index) {
        return getListOfIlInstructionsFieldBuilder().addBuilder(
            index, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance());
      }
      /**
       * <code>repeated .IlInstructionMsg list_of_il_instructions = 1;</code>
       */
      public java.util.List<soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder> 
           getListOfIlInstructionsBuilderList() {
        return getListOfIlInstructionsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder> 
          getListOfIlInstructionsFieldBuilder() {
        if (listOfIlInstructionsBuilder_ == null) {
          listOfIlInstructionsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder>(
                  listOfIlInstructions_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          listOfIlInstructions_ = null;
        }
        return listOfIlInstructionsBuilder_;
      }

      private java.lang.Object blockName_ = "";
      /**
       * <code>string block_name = 2;</code>
       * @return The blockName.
       */
      public java.lang.String getBlockName() {
        java.lang.Object ref = blockName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          blockName_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string block_name = 2;</code>
       * @return The bytes for blockName.
       */
      public com.google.protobuf.ByteString
          getBlockNameBytes() {
        java.lang.Object ref = blockName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          blockName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string block_name = 2;</code>
       * @param value The blockName to set.
       * @return This builder for chaining.
       */
      public Builder setBlockName(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        blockName_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>string block_name = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearBlockName() {
        blockName_ = getDefaultInstance().getBlockName();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <code>string block_name = 2;</code>
       * @param value The bytes for blockName to set.
       * @return This builder for chaining.
       */
      public Builder setBlockNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        blockName_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg finalInstruction_;
      private com.google.protobuf.SingleFieldBuilderV3<
          soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder> finalInstructionBuilder_;
      /**
       * <code>.IlInstructionMsg final_instruction = 3;</code>
       * @return Whether the finalInstruction field is set.
       */
      public boolean hasFinalInstruction() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>.IlInstructionMsg final_instruction = 3;</code>
       * @return The finalInstruction.
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg getFinalInstruction() {
        if (finalInstructionBuilder_ == null) {
          return finalInstruction_ == null ? soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance() : finalInstruction_;
        } else {
          return finalInstructionBuilder_.getMessage();
        }
      }
      /**
       * <code>.IlInstructionMsg final_instruction = 3;</code>
       */
      public Builder setFinalInstruction(soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg value) {
        if (finalInstructionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          finalInstruction_ = value;
        } else {
          finalInstructionBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>.IlInstructionMsg final_instruction = 3;</code>
       */
      public Builder setFinalInstruction(
          soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder builderForValue) {
        if (finalInstructionBuilder_ == null) {
          finalInstruction_ = builderForValue.build();
        } else {
          finalInstructionBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>.IlInstructionMsg final_instruction = 3;</code>
       */
      public Builder mergeFinalInstruction(soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg value) {
        if (finalInstructionBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0) &&
            finalInstruction_ != null &&
            finalInstruction_ != soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance()) {
            getFinalInstructionBuilder().mergeFrom(value);
          } else {
            finalInstruction_ = value;
          }
        } else {
          finalInstructionBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>.IlInstructionMsg final_instruction = 3;</code>
       */
      public Builder clearFinalInstruction() {
        bitField0_ = (bitField0_ & ~0x00000004);
        finalInstruction_ = null;
        if (finalInstructionBuilder_ != null) {
          finalInstructionBuilder_.dispose();
          finalInstructionBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>.IlInstructionMsg final_instruction = 3;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder getFinalInstructionBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getFinalInstructionFieldBuilder().getBuilder();
      }
      /**
       * <code>.IlInstructionMsg final_instruction = 3;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder getFinalInstructionOrBuilder() {
        if (finalInstructionBuilder_ != null) {
          return finalInstructionBuilder_.getMessageOrBuilder();
        } else {
          return finalInstruction_ == null ?
              soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance() : finalInstruction_;
        }
      }
      /**
       * <code>.IlInstructionMsg final_instruction = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder> 
          getFinalInstructionFieldBuilder() {
        if (finalInstructionBuilder_ == null) {
          finalInstructionBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder>(
                  getFinalInstruction(),
                  getParentForChildren(),
                  isClean());
          finalInstruction_ = null;
        }
        return finalInstructionBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:IlBlock)
    }

    // @@protoc_insertion_point(class_scope:IlBlock)
    private static final soot.dotnet.proto.ProtoIlInstructions.IlBlock DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new soot.dotnet.proto.ProtoIlInstructions.IlBlock();
    }

    public static soot.dotnet.proto.ProtoIlInstructions.IlBlock getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<IlBlock>
        PARSER = new com.google.protobuf.AbstractParser<IlBlock>() {
      @java.lang.Override
      public IlBlock parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<IlBlock> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<IlBlock> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public soot.dotnet.proto.ProtoIlInstructions.IlBlock getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface IlInstructionMsgOrBuilder extends
      // @@protoc_insertion_point(interface_extends:IlInstructionMsg)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>.IlInstructionMsg.IlOpCode op_code = 1;</code>
     * @return The enum numeric value on the wire for opCode.
     */
    int getOpCodeValue();
    /**
     * <code>.IlInstructionMsg.IlOpCode op_code = 1;</code>
     * @return The opCode.
     */
    soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlOpCode getOpCode();

    /**
     * <pre>
     * CALL LDMEMBERTOKEN
     * </pre>
     *
     * <code>.MethodDefinition method = 4;</code>
     * @return Whether the method field is set.
     */
    boolean hasMethod();
    /**
     * <pre>
     * CALL LDMEMBERTOKEN
     * </pre>
     *
     * <code>.MethodDefinition method = 4;</code>
     * @return The method.
     */
    soot.dotnet.proto.ProtoAssemblyAllTypes.MethodDefinition getMethod();
    /**
     * <pre>
     * CALL LDMEMBERTOKEN
     * </pre>
     *
     * <code>.MethodDefinition method = 4;</code>
     */
    soot.dotnet.proto.ProtoAssemblyAllTypes.MethodDefinitionOrBuilder getMethodOrBuilder();

    /**
     * <code>repeated .IlInstructionMsg arguments = 5;</code>
     */
    java.util.List<soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg> 
        getArgumentsList();
    /**
     * <code>repeated .IlInstructionMsg arguments = 5;</code>
     */
    soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg getArguments(int index);
    /**
     * <code>repeated .IlInstructionMsg arguments = 5;</code>
     */
    int getArgumentsCount();
    /**
     * <code>repeated .IlInstructionMsg arguments = 5;</code>
     */
    java.util.List<? extends soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder> 
        getArgumentsOrBuilderList();
    /**
     * <code>repeated .IlInstructionMsg arguments = 5;</code>
     */
    soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder getArgumentsOrBuilder(
        int index);

    /**
     * <pre>
     * LEAVE STOBJ STLOC
     * </pre>
     *
     * <code>.IlInstructionMsg value_instruction = 6;</code>
     * @return Whether the valueInstruction field is set.
     */
    boolean hasValueInstruction();
    /**
     * <pre>
     * LEAVE STOBJ STLOC
     * </pre>
     *
     * <code>.IlInstructionMsg value_instruction = 6;</code>
     * @return The valueInstruction.
     */
    soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg getValueInstruction();
    /**
     * <pre>
     * LEAVE STOBJ STLOC
     * </pre>
     *
     * <code>.IlInstructionMsg value_instruction = 6;</code>
     */
    soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder getValueInstructionOrBuilder();

    /**
     * <code>.IlFunctionMsg lambdaFunction = 86;</code>
     * @return Whether the lambdaFunction field is set.
     */
    boolean hasLambdaFunction();
    /**
     * <code>.IlFunctionMsg lambdaFunction = 86;</code>
     * @return The lambdaFunction.
     */
    soot.dotnet.proto.ProtoIlInstructions.IlFunctionMsg getLambdaFunction();
    /**
     * <code>.IlFunctionMsg lambdaFunction = 86;</code>
     */
    soot.dotnet.proto.ProtoIlInstructions.IlFunctionMsgOrBuilder getLambdaFunctionOrBuilder();

    /**
     * <pre>
     * LDSTR LDC_I4
     * </pre>
     *
     * <code>string value_constant_string = 7;</code>
     * @return The valueConstantString.
     */
    java.lang.String getValueConstantString();
    /**
     * <pre>
     * LDSTR LDC_I4
     * </pre>
     *
     * <code>string value_constant_string = 7;</code>
     * @return The bytes for valueConstantString.
     */
    com.google.protobuf.ByteString
        getValueConstantStringBytes();

    /**
     * <code>int64 value_constant_int64 = 38;</code>
     * @return The valueConstantInt64.
     */
    long getValueConstantInt64();

    /**
     * <code>float value_constant_float = 39;</code>
     * @return The valueConstantFloat.
     */
    float getValueConstantFloat();

    /**
     * <code>double value_constant_double = 40;</code>
     * @return The valueConstantDouble.
     */
    double getValueConstantDouble();

    /**
     * <code>bool value_constant_bool = 61;</code>
     * @return The valueConstantBool.
     */
    boolean getValueConstantBool();

    /**
     * <code>uint64 value_constant_uint64 = 65;</code>
     * @return The valueConstantUint64.
     */
    long getValueConstantUint64();

    /**
     * <code>.IlType constant_type = 23;</code>
     * @return The enum numeric value on the wire for constantType.
     */
    int getConstantTypeValue();
    /**
     * <code>.IlType constant_type = 23;</code>
     * @return The constantType.
     */
    soot.dotnet.proto.ProtoAssemblyAllTypes.IlType getConstantType();

    /**
     * <pre>
     * STOBJ LDFLDA LDOBJ
     * </pre>
     *
     * <code>.IlInstructionMsg target = 8;</code>
     * @return Whether the target field is set.
     */
    boolean hasTarget();
    /**
     * <pre>
     * STOBJ LDFLDA LDOBJ
     * </pre>
     *
     * <code>.IlInstructionMsg target = 8;</code>
     * @return The target.
     */
    soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg getTarget();
    /**
     * <pre>
     * STOBJ LDFLDA LDOBJ
     * </pre>
     *
     * <code>.IlInstructionMsg target = 8;</code>
     */
    soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder getTargetOrBuilder();

    /**
     * <pre>
     * STOBJ LDOBJ NEWARR LDELEMA CASTCLASS ISINST UNBOXANY
     * </pre>
     *
     * <code>.TypeDefinition type = 9;</code>
     * @return Whether the type field is set.
     */
    boolean hasType();
    /**
     * <pre>
     * STOBJ LDOBJ NEWARR LDELEMA CASTCLASS ISINST UNBOXANY
     * </pre>
     *
     * <code>.TypeDefinition type = 9;</code>
     * @return The type.
     */
    soot.dotnet.proto.ProtoAssemblyAllTypes.TypeDefinition getType();
    /**
     * <pre>
     * STOBJ LDOBJ NEWARR LDELEMA CASTCLASS ISINST UNBOXANY
     * </pre>
     *
     * <code>.TypeDefinition type = 9;</code>
     */
    soot.dotnet.proto.ProtoAssemblyAllTypes.TypeDefinitionOrBuilder getTypeOrBuilder();

    /**
     * <pre>
     * LDFLDA LDMEMBERTOKEN
     * </pre>
     *
     * <code>.FieldDefinition field = 10;</code>
     * @return Whether the field field is set.
     */
    boolean hasField();
    /**
     * <pre>
     * LDFLDA LDMEMBERTOKEN
     * </pre>
     *
     * <code>.FieldDefinition field = 10;</code>
     * @return The field.
     */
    soot.dotnet.proto.ProtoAssemblyAllTypes.FieldDefinition getField();
    /**
     * <pre>
     * LDFLDA LDMEMBERTOKEN
     * </pre>
     *
     * <code>.FieldDefinition field = 10;</code>
     */
    soot.dotnet.proto.ProtoAssemblyAllTypes.FieldDefinitionOrBuilder getFieldOrBuilder();

    /**
     * <pre>
     * LDLOC STLOC TryCatchHandler
     * </pre>
     *
     * <code>.IlVariableMsg variable = 11;</code>
     * @return Whether the variable field is set.
     */
    boolean hasVariable();
    /**
     * <pre>
     * LDLOC STLOC TryCatchHandler
     * </pre>
     *
     * <code>.IlVariableMsg variable = 11;</code>
     * @return The variable.
     */
    soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg getVariable();
    /**
     * <pre>
     * LDLOC STLOC TryCatchHandler
     * </pre>
     *
     * <code>.IlVariableMsg variable = 11;</code>
     */
    soot.dotnet.proto.ProtoIlInstructions.IlVariableMsgOrBuilder getVariableOrBuilder();

    /**
     * <pre>
     * TODO may insert Result type + Underlying type
     * </pre>
     *
     * <code>.IlInstructionMsg.IlBinaryNumericOperator operator = 12;</code>
     * @return The enum numeric value on the wire for operator.
     */
    int getOperatorValue();
    /**
     * <pre>
     * TODO may insert Result type + Underlying type
     * </pre>
     *
     * <code>.IlInstructionMsg.IlBinaryNumericOperator operator = 12;</code>
     * @return The operator.
     */
    soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlBinaryNumericOperator getOperator();

    /**
     * <code>.IlInstructionMsg.IlSign sign = 20;</code>
     * @return The enum numeric value on the wire for sign.
     */
    int getSignValue();
    /**
     * <code>.IlInstructionMsg.IlSign sign = 20;</code>
     * @return The sign.
     */
    soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlSign getSign();

    /**
     * <code>.IlInstructionMsg left = 14;</code>
     * @return Whether the left field is set.
     */
    boolean hasLeft();
    /**
     * <code>.IlInstructionMsg left = 14;</code>
     * @return The left.
     */
    soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg getLeft();
    /**
     * <code>.IlInstructionMsg left = 14;</code>
     */
    soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder getLeftOrBuilder();

    /**
     * <code>.IlInstructionMsg right = 15;</code>
     * @return Whether the right field is set.
     */
    boolean hasRight();
    /**
     * <code>.IlInstructionMsg right = 15;</code>
     * @return The right.
     */
    soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg getRight();
    /**
     * <code>.IlInstructionMsg right = 15;</code>
     */
    soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder getRightOrBuilder();

    /**
     * <pre>
     * BRANCH
     * </pre>
     *
     * <code>string target_label = 18;</code>
     * @return The targetLabel.
     */
    java.lang.String getTargetLabel();
    /**
     * <pre>
     * BRANCH
     * </pre>
     *
     * <code>string target_label = 18;</code>
     * @return The bytes for targetLabel.
     */
    com.google.protobuf.ByteString
        getTargetLabelBytes();

    /**
     * <code>.IlInstructionMsg.IlComparisonKind comparison_kind = 21;</code>
     * @return The enum numeric value on the wire for comparisonKind.
     */
    int getComparisonKindValue();
    /**
     * <code>.IlInstructionMsg.IlComparisonKind comparison_kind = 21;</code>
     * @return The comparisonKind.
     */
    soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlComparisonKind getComparisonKind();

    /**
     * <pre>
     * IF_INSTRUCTION
     * </pre>
     *
     * <code>.IlInstructionMsg condition = 22;</code>
     * @return Whether the condition field is set.
     */
    boolean hasCondition();
    /**
     * <pre>
     * IF_INSTRUCTION
     * </pre>
     *
     * <code>.IlInstructionMsg condition = 22;</code>
     * @return The condition.
     */
    soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg getCondition();
    /**
     * <pre>
     * IF_INSTRUCTION
     * </pre>
     *
     * <code>.IlInstructionMsg condition = 22;</code>
     */
    soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder getConditionOrBuilder();

    /**
     * <code>.IlInstructionMsg true_inst = 83;</code>
     * @return Whether the trueInst field is set.
     */
    boolean hasTrueInst();
    /**
     * <code>.IlInstructionMsg true_inst = 83;</code>
     * @return The trueInst.
     */
    soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg getTrueInst();
    /**
     * <code>.IlInstructionMsg true_inst = 83;</code>
     */
    soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder getTrueInstOrBuilder();

    /**
     * <code>.IlInstructionMsg false_inst = 84;</code>
     * @return Whether the falseInst field is set.
     */
    boolean hasFalseInst();
    /**
     * <code>.IlInstructionMsg false_inst = 84;</code>
     * @return The falseInst.
     */
    soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg getFalseInst();
    /**
     * <code>.IlInstructionMsg false_inst = 84;</code>
     */
    soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder getFalseInstOrBuilder();

    /**
     * <pre>
     *LDLEN LDELEMA
     * </pre>
     *
     * <code>.IlInstructionMsg array = 30;</code>
     * @return Whether the array field is set.
     */
    boolean hasArray();
    /**
     * <pre>
     *LDLEN LDELEMA
     * </pre>
     *
     * <code>.IlInstructionMsg array = 30;</code>
     * @return The array.
     */
    soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg getArray();
    /**
     * <pre>
     *LDLEN LDELEMA
     * </pre>
     *
     * <code>.IlInstructionMsg array = 30;</code>
     */
    soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder getArrayOrBuilder();

    /**
     * <code>.IlInstructionMsg.IlConversionKind conversion_kind = 25;</code>
     * @return The enum numeric value on the wire for conversionKind.
     */
    int getConversionKindValue();
    /**
     * <code>.IlInstructionMsg.IlConversionKind conversion_kind = 25;</code>
     * @return The conversionKind.
     */
    soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlConversionKind getConversionKind();

    /**
     * <code>.IlInstructionMsg.IlStackType input_type = 26;</code>
     * @return The enum numeric value on the wire for inputType.
     */
    int getInputTypeValue();
    /**
     * <code>.IlInstructionMsg.IlStackType input_type = 26;</code>
     * @return The inputType.
     */
    soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlStackType getInputType();

    /**
     * <code>.IlInstructionMsg.IlPrimitiveType target_type = 28;</code>
     * @return The enum numeric value on the wire for targetType.
     */
    int getTargetTypeValue();
    /**
     * <code>.IlInstructionMsg.IlPrimitiveType target_type = 28;</code>
     * @return The targetType.
     */
    soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlPrimitiveType getTargetType();

    /**
     * <pre>
     * CONV CASTCLASS ISINST BOX UNBOXANY
     * </pre>
     *
     * <code>.IlInstructionMsg argument = 29;</code>
     * @return Whether the argument field is set.
     */
    boolean hasArgument();
    /**
     * <pre>
     * CONV CASTCLASS ISINST BOX UNBOXANY
     * </pre>
     *
     * <code>.IlInstructionMsg argument = 29;</code>
     * @return The argument.
     */
    soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg getArgument();
    /**
     * <pre>
     * CONV CASTCLASS ISINST BOX UNBOXANY
     * </pre>
     *
     * <code>.IlInstructionMsg argument = 29;</code>
     */
    soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder getArgumentOrBuilder();

    /**
     * <pre>
     * CONV LDLEN UNBOXANY
     * </pre>
     *
     * <code>.IlInstructionMsg.IlStackType result_type = 27;</code>
     * @return The enum numeric value on the wire for resultType.
     */
    int getResultTypeValue();
    /**
     * <pre>
     * CONV LDLEN UNBOXANY
     * </pre>
     *
     * <code>.IlInstructionMsg.IlStackType result_type = 27;</code>
     * @return The resultType.
     */
    soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlStackType getResultType();

    /**
     * <pre>
     * NEWARR LDELEMA
     * </pre>
     *
     * <code>repeated .IlInstructionMsg indices = 31;</code>
     */
    java.util.List<soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg> 
        getIndicesList();
    /**
     * <pre>
     * NEWARR LDELEMA
     * </pre>
     *
     * <code>repeated .IlInstructionMsg indices = 31;</code>
     */
    soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg getIndices(int index);
    /**
     * <pre>
     * NEWARR LDELEMA
     * </pre>
     *
     * <code>repeated .IlInstructionMsg indices = 31;</code>
     */
    int getIndicesCount();
    /**
     * <pre>
     * NEWARR LDELEMA
     * </pre>
     *
     * <code>repeated .IlInstructionMsg indices = 31;</code>
     */
    java.util.List<? extends soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder> 
        getIndicesOrBuilderList();
    /**
     * <pre>
     * NEWARR LDELEMA
     * </pre>
     *
     * <code>repeated .IlInstructionMsg indices = 31;</code>
     */
    soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder getIndicesOrBuilder(
        int index);

    /**
     * <pre>
     * TRY
     * </pre>
     *
     * <code>.IlBlockContainerMsg try_block = 32;</code>
     * @return Whether the tryBlock field is set.
     */
    boolean hasTryBlock();
    /**
     * <pre>
     * TRY
     * </pre>
     *
     * <code>.IlBlockContainerMsg try_block = 32;</code>
     * @return The tryBlock.
     */
    soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg getTryBlock();
    /**
     * <pre>
     * TRY
     * </pre>
     *
     * <code>.IlBlockContainerMsg try_block = 32;</code>
     */
    soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsgOrBuilder getTryBlockOrBuilder();

    /**
     * <code>repeated .IlTryCatchHandlerMsg handlers = 33;</code>
     */
    java.util.List<soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsg> 
        getHandlersList();
    /**
     * <code>repeated .IlTryCatchHandlerMsg handlers = 33;</code>
     */
    soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsg getHandlers(int index);
    /**
     * <code>repeated .IlTryCatchHandlerMsg handlers = 33;</code>
     */
    int getHandlersCount();
    /**
     * <code>repeated .IlTryCatchHandlerMsg handlers = 33;</code>
     */
    java.util.List<? extends soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsgOrBuilder> 
        getHandlersOrBuilderList();
    /**
     * <code>repeated .IlTryCatchHandlerMsg handlers = 33;</code>
     */
    soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsgOrBuilder getHandlersOrBuilder(
        int index);

    /**
     * <code>.IlBlockContainerMsg finally_block = 34;</code>
     * @return Whether the finallyBlock field is set.
     */
    boolean hasFinallyBlock();
    /**
     * <code>.IlBlockContainerMsg finally_block = 34;</code>
     * @return The finallyBlock.
     */
    soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg getFinallyBlock();
    /**
     * <code>.IlBlockContainerMsg finally_block = 34;</code>
     */
    soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsgOrBuilder getFinallyBlockOrBuilder();

    /**
     * <code>.IlBlockContainerMsg fault_block = 35;</code>
     * @return Whether the faultBlock field is set.
     */
    boolean hasFaultBlock();
    /**
     * <code>.IlBlockContainerMsg fault_block = 35;</code>
     * @return The faultBlock.
     */
    soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg getFaultBlock();
    /**
     * <code>.IlBlockContainerMsg fault_block = 35;</code>
     */
    soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsgOrBuilder getFaultBlockOrBuilder();

    /**
     * <pre>
     * TRYCATCHHANDLER
     * </pre>
     *
     * <code>.IlBlockContainerMsg body = 37;</code>
     * @return Whether the body field is set.
     */
    boolean hasBody();
    /**
     * <pre>
     * TRYCATCHHANDLER
     * </pre>
     *
     * <code>.IlBlockContainerMsg body = 37;</code>
     * @return The body.
     */
    soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg getBody();
    /**
     * <pre>
     * TRYCATCHHANDLER
     * </pre>
     *
     * <code>.IlBlockContainerMsg body = 37;</code>
     */
    soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsgOrBuilder getBodyOrBuilder();

    /**
     * <pre>
     * SWITCH_INSTR
     * </pre>
     *
     * <code>.IlInstructionMsg key_instr = 41;</code>
     * @return Whether the keyInstr field is set.
     */
    boolean hasKeyInstr();
    /**
     * <pre>
     * SWITCH_INSTR
     * </pre>
     *
     * <code>.IlInstructionMsg key_instr = 41;</code>
     * @return The keyInstr.
     */
    soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg getKeyInstr();
    /**
     * <pre>
     * SWITCH_INSTR
     * </pre>
     *
     * <code>.IlInstructionMsg key_instr = 41;</code>
     */
    soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder getKeyInstrOrBuilder();

    /**
     * <code>.IlInstructionMsg default_inst = 42;</code>
     * @return Whether the defaultInst field is set.
     */
    boolean hasDefaultInst();
    /**
     * <code>.IlInstructionMsg default_inst = 42;</code>
     * @return The defaultInst.
     */
    soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg getDefaultInst();
    /**
     * <code>.IlInstructionMsg default_inst = 42;</code>
     */
    soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder getDefaultInstOrBuilder();

    /**
     * <code>repeated .IlSwitchSectionMsg switch_sections = 43;</code>
     */
    java.util.List<soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsg> 
        getSwitchSectionsList();
    /**
     * <code>repeated .IlSwitchSectionMsg switch_sections = 43;</code>
     */
    soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsg getSwitchSections(int index);
    /**
     * <code>repeated .IlSwitchSectionMsg switch_sections = 43;</code>
     */
    int getSwitchSectionsCount();
    /**
     * <code>repeated .IlSwitchSectionMsg switch_sections = 43;</code>
     */
    java.util.List<? extends soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsgOrBuilder> 
        getSwitchSectionsOrBuilderList();
    /**
     * <code>repeated .IlSwitchSectionMsg switch_sections = 43;</code>
     */
    soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsgOrBuilder getSwitchSectionsOrBuilder(
        int index);

    /**
     * <code>bool check_for_overflow = 44;</code>
     * @return The checkForOverflow.
     */
    boolean getCheckForOverflow();

    /**
     * <code>bool is_leaving_function = 45;</code>
     * @return The isLeavingFunction.
     */
    boolean getIsLeavingFunction();
  }
  /**
   * Protobuf type {@code IlInstructionMsg}
   */
  public static final class IlInstructionMsg extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:IlInstructionMsg)
      IlInstructionMsgOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use IlInstructionMsg.newBuilder() to construct.
    private IlInstructionMsg(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private IlInstructionMsg() {
      opCode_ = 0;
      arguments_ = java.util.Collections.emptyList();
      valueConstantString_ = "";
      constantType_ = 0;
      operator_ = 0;
      sign_ = 0;
      targetLabel_ = "";
      comparisonKind_ = 0;
      conversionKind_ = 0;
      inputType_ = 0;
      targetType_ = 0;
      resultType_ = 0;
      indices_ = java.util.Collections.emptyList();
      handlers_ = java.util.Collections.emptyList();
      switchSections_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new IlInstructionMsg();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return soot.dotnet.proto.ProtoIlInstructions.internal_static_IlInstructionMsg_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return soot.dotnet.proto.ProtoIlInstructions.internal_static_IlInstructionMsg_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.class, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder.class);
    }

    /**
     * Protobuf enum {@code IlInstructionMsg.IlOpCode}
     */
    public enum IlOpCode
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>NONE_OP = 0;</code>
       */
      NONE_OP(0),
      /**
       * <code>NOP = 1;</code>
       */
      NOP(1),
      /**
       * <code>CALL = 4;</code>
       */
      CALL(4),
      /**
       * <code>LEAVE = 5;</code>
       */
      LEAVE(5),
      /**
       * <code>LDSTR = 6;</code>
       */
      LDSTR(6),
      /**
       * <code>STOBJ = 7;</code>
       */
      STOBJ(7),
      /**
       * <code>LDFLDA = 8;</code>
       */
      LDFLDA(8),
      /**
       * <code>LDC_I4 = 9;</code>
       */
      LDC_I4(9),
      /**
       * <code>LDLOC = 10;</code>
       */
      LDLOC(10),
      /**
       * <code>LDOBJ = 11;</code>
       */
      LDOBJ(11),
      /**
       * <code>STLOC = 12;</code>
       */
      STLOC(12),
      /**
       * <code>NEWOBJ = 13;</code>
       */
      NEWOBJ(13),
      /**
       * <code>CALLVIRT = 14;</code>
       */
      CALLVIRT(14),
      /**
       * <code>BINARY_NUMERIC_INSTRUCTION = 15;</code>
       */
      BINARY_NUMERIC_INSTRUCTION(15),
      /**
       * <code>BRANCH = 16;</code>
       */
      BRANCH(16),
      /**
       * <code>COMP = 17;</code>
       */
      COMP(17),
      /**
       * <code>IF_INSTRUCTION = 18;</code>
       */
      IF_INSTRUCTION(18),
      /**
       * <code>LDSFLDA = 19;</code>
       */
      LDSFLDA(19),
      /**
       * <code>LDNULL = 20;</code>
       */
      LDNULL(20),
      /**
       * <code>LDLEN = 21;</code>
       */
      LDLEN(21),
      /**
       * <code>CONV = 22;</code>
       */
      CONV(22),
      /**
       * <code>NEWARR = 23;</code>
       */
      NEWARR(23),
      /**
       * <code>LDELEMA = 24;</code>
       */
      LDELEMA(24),
      /**
       * <code>CASTCLASS = 25;</code>
       */
      CASTCLASS(25),
      /**
       * <code>ISINST = 26;</code>
       */
      ISINST(26),
      /**
       * <code>BOX = 27;</code>
       */
      BOX(27),
      /**
       * <code>UNBOXANY = 28;</code>
       */
      UNBOXANY(28),
      /**
       * <code>UNBOX = 29;</code>
       */
      UNBOX(29),
      /**
       * <code>TRY_CATCH = 30;</code>
       */
      TRY_CATCH(30),
      /**
       * <code>LDLOCA = 31;</code>
       */
      LDLOCA(31),
      /**
       * <code>DEFAULT_VALUE = 32;</code>
       */
      DEFAULT_VALUE(32),
      /**
       * <code>NOT = 33;</code>
       */
      NOT(33),
      /**
       * <code>TRY_FINALLY = 34;</code>
       */
      TRY_FINALLY(34),
      /**
       * <code>TRY_FAULT = 35;</code>
       */
      TRY_FAULT(35),
      /**
       * <code>BLOCK_CONTAINER = 36;</code>
       */
      BLOCK_CONTAINER(36),
      /**
       * <code>BLOCK = 37;</code>
       */
      BLOCK(37),
      /**
       * <code>TRY_CATCH_HANDLER = 38;</code>
       */
      TRY_CATCH_HANDLER(38),
      /**
       * <code>RETHROW = 39;</code>
       */
      RETHROW(39),
      /**
       * <code>THROW = 40;</code>
       */
      THROW(40),
      /**
       * <code>DEBUG_BREAK = 41;</code>
       */
      DEBUG_BREAK(41),
      /**
       * <code>CK_FINITE = 42;</code>
       */
      CK_FINITE(42),
      /**
       * <code>CP_BLK = 44;</code>
       */
      CP_BLK(44),
      /**
       * <code>CP_OBJ = 45;</code>
       */
      CP_OBJ(45),
      /**
       * <code>DUP = 46;</code>
       */
      DUP(46),
      /**
       * <code>INIT_BLK = 47;</code>
       */
      INIT_BLK(47),
      /**
       * <code>INIT_OBJ = 48;</code>
       */
      INIT_OBJ(48),
      /**
       * <code>LDC_I8 = 49;</code>
       */
      LDC_I8(49),
      /**
       * <code>LDC_R4 = 50;</code>
       */
      LDC_R4(50),
      /**
       * <code>LDC_R8 = 51;</code>
       */
      LDC_R8(51),
      /**
       * <code>LD_FLD = 52;</code>
       */
      LD_FLD(52),
      /**
       * <code>LD_FTN = 53;</code>
       */
      LD_FTN(53),
      /**
       * <code>LD_SFLD = 54;</code>
       */
      LD_SFLD(54),
      /**
       * <code>LD_TOKEN = 55;</code>
       */
      LD_TOKEN(55),
      /**
       * <code>LD_VIRT_FTN = 56;</code>
       */
      LD_VIRT_FTN(56),
      /**
       * <code>LOC_ALLOC = 57;</code>
       */
      LOC_ALLOC(57),
      /**
       * <code>MK_REF_ANY = 58;</code>
       */
      MK_REF_ANY(58),
      /**
       * <code>NO = 59;</code>
       */
      NO(59),
      /**
       * <code>READONLY = 60;</code>
       */
      READONLY(60),
      /**
       * <code>REF_ANY_TYPE = 61;</code>
       */
      REF_ANY_TYPE(61),
      /**
       * <code>REF_ANY_VAL = 62;</code>
       */
      REF_ANY_VAL(62),
      /**
       * <code>SIZE_OF = 63;</code>
       */
      SIZE_OF(63),
      /**
       * <code>ST_SFLD = 64;</code>
       */
      ST_SFLD(64),
      /**
       * <code>SWITCH = 65;</code>
       */
      SWITCH(65),
      /**
       * <code>TAIL = 66;</code>
       */
      TAIL(66),
      /**
       * <code>UNALIGNED = 67;</code>
       */
      UNALIGNED(67),
      /**
       * <code>VOLATILE = 68;</code>
       */
      VOLATILE(68),
      /**
       * <code>LD_MEMBER_TOKEN = 69;</code>
       */
      LD_MEMBER_TOKEN(69),
      /**
       * <code>LD_TYPE_TOKEN = 70;</code>
       */
      LD_TYPE_TOKEN(70),
      /**
       * <code>INVALID_BRANCH = 71;</code>
       */
      INVALID_BRANCH(71),
      /**
       * <code>CALL_INDIRECT = 72;</code>
       */
      CALL_INDIRECT(72),
      /**
       * <code>MATCH_INSTRUCTION = 73;</code>
       */
      MATCH_INSTRUCTION(73),
      /**
       * <code>LDC_DECIMAL = 74;</code>
       */
      LDC_DECIMAL(74),
      /**
       * <code>STRING_TO_INT = 75;</code>
       */
      STRING_TO_INT(75),
      /**
       * <code>ILFUNCTION = 76;</code>
       */
      ILFUNCTION(76),
      UNRECOGNIZED(-1),
      ;

      /**
       * <code>NONE_OP = 0;</code>
       */
      public static final int NONE_OP_VALUE = 0;
      /**
       * <code>NOP = 1;</code>
       */
      public static final int NOP_VALUE = 1;
      /**
       * <code>CALL = 4;</code>
       */
      public static final int CALL_VALUE = 4;
      /**
       * <code>LEAVE = 5;</code>
       */
      public static final int LEAVE_VALUE = 5;
      /**
       * <code>LDSTR = 6;</code>
       */
      public static final int LDSTR_VALUE = 6;
      /**
       * <code>STOBJ = 7;</code>
       */
      public static final int STOBJ_VALUE = 7;
      /**
       * <code>LDFLDA = 8;</code>
       */
      public static final int LDFLDA_VALUE = 8;
      /**
       * <code>LDC_I4 = 9;</code>
       */
      public static final int LDC_I4_VALUE = 9;
      /**
       * <code>LDLOC = 10;</code>
       */
      public static final int LDLOC_VALUE = 10;
      /**
       * <code>LDOBJ = 11;</code>
       */
      public static final int LDOBJ_VALUE = 11;
      /**
       * <code>STLOC = 12;</code>
       */
      public static final int STLOC_VALUE = 12;
      /**
       * <code>NEWOBJ = 13;</code>
       */
      public static final int NEWOBJ_VALUE = 13;
      /**
       * <code>CALLVIRT = 14;</code>
       */
      public static final int CALLVIRT_VALUE = 14;
      /**
       * <code>BINARY_NUMERIC_INSTRUCTION = 15;</code>
       */
      public static final int BINARY_NUMERIC_INSTRUCTION_VALUE = 15;
      /**
       * <code>BRANCH = 16;</code>
       */
      public static final int BRANCH_VALUE = 16;
      /**
       * <code>COMP = 17;</code>
       */
      public static final int COMP_VALUE = 17;
      /**
       * <code>IF_INSTRUCTION = 18;</code>
       */
      public static final int IF_INSTRUCTION_VALUE = 18;
      /**
       * <code>LDSFLDA = 19;</code>
       */
      public static final int LDSFLDA_VALUE = 19;
      /**
       * <code>LDNULL = 20;</code>
       */
      public static final int LDNULL_VALUE = 20;
      /**
       * <code>LDLEN = 21;</code>
       */
      public static final int LDLEN_VALUE = 21;
      /**
       * <code>CONV = 22;</code>
       */
      public static final int CONV_VALUE = 22;
      /**
       * <code>NEWARR = 23;</code>
       */
      public static final int NEWARR_VALUE = 23;
      /**
       * <code>LDELEMA = 24;</code>
       */
      public static final int LDELEMA_VALUE = 24;
      /**
       * <code>CASTCLASS = 25;</code>
       */
      public static final int CASTCLASS_VALUE = 25;
      /**
       * <code>ISINST = 26;</code>
       */
      public static final int ISINST_VALUE = 26;
      /**
       * <code>BOX = 27;</code>
       */
      public static final int BOX_VALUE = 27;
      /**
       * <code>UNBOXANY = 28;</code>
       */
      public static final int UNBOXANY_VALUE = 28;
      /**
       * <code>UNBOX = 29;</code>
       */
      public static final int UNBOX_VALUE = 29;
      /**
       * <code>TRY_CATCH = 30;</code>
       */
      public static final int TRY_CATCH_VALUE = 30;
      /**
       * <code>LDLOCA = 31;</code>
       */
      public static final int LDLOCA_VALUE = 31;
      /**
       * <code>DEFAULT_VALUE = 32;</code>
       */
      public static final int DEFAULT_VALUE_VALUE = 32;
      /**
       * <code>NOT = 33;</code>
       */
      public static final int NOT_VALUE = 33;
      /**
       * <code>TRY_FINALLY = 34;</code>
       */
      public static final int TRY_FINALLY_VALUE = 34;
      /**
       * <code>TRY_FAULT = 35;</code>
       */
      public static final int TRY_FAULT_VALUE = 35;
      /**
       * <code>BLOCK_CONTAINER = 36;</code>
       */
      public static final int BLOCK_CONTAINER_VALUE = 36;
      /**
       * <code>BLOCK = 37;</code>
       */
      public static final int BLOCK_VALUE = 37;
      /**
       * <code>TRY_CATCH_HANDLER = 38;</code>
       */
      public static final int TRY_CATCH_HANDLER_VALUE = 38;
      /**
       * <code>RETHROW = 39;</code>
       */
      public static final int RETHROW_VALUE = 39;
      /**
       * <code>THROW = 40;</code>
       */
      public static final int THROW_VALUE = 40;
      /**
       * <code>DEBUG_BREAK = 41;</code>
       */
      public static final int DEBUG_BREAK_VALUE = 41;
      /**
       * <code>CK_FINITE = 42;</code>
       */
      public static final int CK_FINITE_VALUE = 42;
      /**
       * <code>CP_BLK = 44;</code>
       */
      public static final int CP_BLK_VALUE = 44;
      /**
       * <code>CP_OBJ = 45;</code>
       */
      public static final int CP_OBJ_VALUE = 45;
      /**
       * <code>DUP = 46;</code>
       */
      public static final int DUP_VALUE = 46;
      /**
       * <code>INIT_BLK = 47;</code>
       */
      public static final int INIT_BLK_VALUE = 47;
      /**
       * <code>INIT_OBJ = 48;</code>
       */
      public static final int INIT_OBJ_VALUE = 48;
      /**
       * <code>LDC_I8 = 49;</code>
       */
      public static final int LDC_I8_VALUE = 49;
      /**
       * <code>LDC_R4 = 50;</code>
       */
      public static final int LDC_R4_VALUE = 50;
      /**
       * <code>LDC_R8 = 51;</code>
       */
      public static final int LDC_R8_VALUE = 51;
      /**
       * <code>LD_FLD = 52;</code>
       */
      public static final int LD_FLD_VALUE = 52;
      /**
       * <code>LD_FTN = 53;</code>
       */
      public static final int LD_FTN_VALUE = 53;
      /**
       * <code>LD_SFLD = 54;</code>
       */
      public static final int LD_SFLD_VALUE = 54;
      /**
       * <code>LD_TOKEN = 55;</code>
       */
      public static final int LD_TOKEN_VALUE = 55;
      /**
       * <code>LD_VIRT_FTN = 56;</code>
       */
      public static final int LD_VIRT_FTN_VALUE = 56;
      /**
       * <code>LOC_ALLOC = 57;</code>
       */
      public static final int LOC_ALLOC_VALUE = 57;
      /**
       * <code>MK_REF_ANY = 58;</code>
       */
      public static final int MK_REF_ANY_VALUE = 58;
      /**
       * <code>NO = 59;</code>
       */
      public static final int NO_VALUE = 59;
      /**
       * <code>READONLY = 60;</code>
       */
      public static final int READONLY_VALUE = 60;
      /**
       * <code>REF_ANY_TYPE = 61;</code>
       */
      public static final int REF_ANY_TYPE_VALUE = 61;
      /**
       * <code>REF_ANY_VAL = 62;</code>
       */
      public static final int REF_ANY_VAL_VALUE = 62;
      /**
       * <code>SIZE_OF = 63;</code>
       */
      public static final int SIZE_OF_VALUE = 63;
      /**
       * <code>ST_SFLD = 64;</code>
       */
      public static final int ST_SFLD_VALUE = 64;
      /**
       * <code>SWITCH = 65;</code>
       */
      public static final int SWITCH_VALUE = 65;
      /**
       * <code>TAIL = 66;</code>
       */
      public static final int TAIL_VALUE = 66;
      /**
       * <code>UNALIGNED = 67;</code>
       */
      public static final int UNALIGNED_VALUE = 67;
      /**
       * <code>VOLATILE = 68;</code>
       */
      public static final int VOLATILE_VALUE = 68;
      /**
       * <code>LD_MEMBER_TOKEN = 69;</code>
       */
      public static final int LD_MEMBER_TOKEN_VALUE = 69;
      /**
       * <code>LD_TYPE_TOKEN = 70;</code>
       */
      public static final int LD_TYPE_TOKEN_VALUE = 70;
      /**
       * <code>INVALID_BRANCH = 71;</code>
       */
      public static final int INVALID_BRANCH_VALUE = 71;
      /**
       * <code>CALL_INDIRECT = 72;</code>
       */
      public static final int CALL_INDIRECT_VALUE = 72;
      /**
       * <code>MATCH_INSTRUCTION = 73;</code>
       */
      public static final int MATCH_INSTRUCTION_VALUE = 73;
      /**
       * <code>LDC_DECIMAL = 74;</code>
       */
      public static final int LDC_DECIMAL_VALUE = 74;
      /**
       * <code>STRING_TO_INT = 75;</code>
       */
      public static final int STRING_TO_INT_VALUE = 75;
      /**
       * <code>ILFUNCTION = 76;</code>
       */
      public static final int ILFUNCTION_VALUE = 76;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static IlOpCode valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static IlOpCode forNumber(int value) {
        switch (value) {
          case 0: return NONE_OP;
          case 1: return NOP;
          case 4: return CALL;
          case 5: return LEAVE;
          case 6: return LDSTR;
          case 7: return STOBJ;
          case 8: return LDFLDA;
          case 9: return LDC_I4;
          case 10: return LDLOC;
          case 11: return LDOBJ;
          case 12: return STLOC;
          case 13: return NEWOBJ;
          case 14: return CALLVIRT;
          case 15: return BINARY_NUMERIC_INSTRUCTION;
          case 16: return BRANCH;
          case 17: return COMP;
          case 18: return IF_INSTRUCTION;
          case 19: return LDSFLDA;
          case 20: return LDNULL;
          case 21: return LDLEN;
          case 22: return CONV;
          case 23: return NEWARR;
          case 24: return LDELEMA;
          case 25: return CASTCLASS;
          case 26: return ISINST;
          case 27: return BOX;
          case 28: return UNBOXANY;
          case 29: return UNBOX;
          case 30: return TRY_CATCH;
          case 31: return LDLOCA;
          case 32: return DEFAULT_VALUE;
          case 33: return NOT;
          case 34: return TRY_FINALLY;
          case 35: return TRY_FAULT;
          case 36: return BLOCK_CONTAINER;
          case 37: return BLOCK;
          case 38: return TRY_CATCH_HANDLER;
          case 39: return RETHROW;
          case 40: return THROW;
          case 41: return DEBUG_BREAK;
          case 42: return CK_FINITE;
          case 44: return CP_BLK;
          case 45: return CP_OBJ;
          case 46: return DUP;
          case 47: return INIT_BLK;
          case 48: return INIT_OBJ;
          case 49: return LDC_I8;
          case 50: return LDC_R4;
          case 51: return LDC_R8;
          case 52: return LD_FLD;
          case 53: return LD_FTN;
          case 54: return LD_SFLD;
          case 55: return LD_TOKEN;
          case 56: return LD_VIRT_FTN;
          case 57: return LOC_ALLOC;
          case 58: return MK_REF_ANY;
          case 59: return NO;
          case 60: return READONLY;
          case 61: return REF_ANY_TYPE;
          case 62: return REF_ANY_VAL;
          case 63: return SIZE_OF;
          case 64: return ST_SFLD;
          case 65: return SWITCH;
          case 66: return TAIL;
          case 67: return UNALIGNED;
          case 68: return VOLATILE;
          case 69: return LD_MEMBER_TOKEN;
          case 70: return LD_TYPE_TOKEN;
          case 71: return INVALID_BRANCH;
          case 72: return CALL_INDIRECT;
          case 73: return MATCH_INSTRUCTION;
          case 74: return LDC_DECIMAL;
          case 75: return STRING_TO_INT;
          case 76: return ILFUNCTION;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<IlOpCode>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          IlOpCode> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<IlOpCode>() {
              public IlOpCode findValueByNumber(int number) {
                return IlOpCode.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalStateException(
              "Can't get the descriptor of an unrecognized enum value.");
        }
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDescriptor().getEnumTypes().get(0);
      }

      private static final IlOpCode[] VALUES = values();

      public static IlOpCode valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private IlOpCode(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:IlInstructionMsg.IlOpCode)
    }

    /**
     * <pre>
     * BINARY_NUMERIC_INSTRUCTION
     * </pre>
     *
     * Protobuf enum {@code IlInstructionMsg.IlBinaryNumericOperator}
     */
    public enum IlBinaryNumericOperator
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>NONE_BINARY = 0;</code>
       */
      NONE_BINARY(0),
      /**
       * <code>Add = 1;</code>
       */
      Add(1),
      /**
       * <code>Sub = 2;</code>
       */
      Sub(2),
      /**
       * <code>Mul = 3;</code>
       */
      Mul(3),
      /**
       * <code>Div = 4;</code>
       */
      Div(4),
      /**
       * <code>Rem = 5;</code>
       */
      Rem(5),
      /**
       * <code>BitAnd = 6;</code>
       */
      BitAnd(6),
      /**
       * <code>BitOr = 7;</code>
       */
      BitOr(7),
      /**
       * <code>BitXor = 8;</code>
       */
      BitXor(8),
      /**
       * <code>ShiftLeft = 9;</code>
       */
      ShiftLeft(9),
      /**
       * <code>ShiftRight = 10;</code>
       */
      ShiftRight(10),
      UNRECOGNIZED(-1),
      ;

      /**
       * <code>NONE_BINARY = 0;</code>
       */
      public static final int NONE_BINARY_VALUE = 0;
      /**
       * <code>Add = 1;</code>
       */
      public static final int Add_VALUE = 1;
      /**
       * <code>Sub = 2;</code>
       */
      public static final int Sub_VALUE = 2;
      /**
       * <code>Mul = 3;</code>
       */
      public static final int Mul_VALUE = 3;
      /**
       * <code>Div = 4;</code>
       */
      public static final int Div_VALUE = 4;
      /**
       * <code>Rem = 5;</code>
       */
      public static final int Rem_VALUE = 5;
      /**
       * <code>BitAnd = 6;</code>
       */
      public static final int BitAnd_VALUE = 6;
      /**
       * <code>BitOr = 7;</code>
       */
      public static final int BitOr_VALUE = 7;
      /**
       * <code>BitXor = 8;</code>
       */
      public static final int BitXor_VALUE = 8;
      /**
       * <code>ShiftLeft = 9;</code>
       */
      public static final int ShiftLeft_VALUE = 9;
      /**
       * <code>ShiftRight = 10;</code>
       */
      public static final int ShiftRight_VALUE = 10;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static IlBinaryNumericOperator valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static IlBinaryNumericOperator forNumber(int value) {
        switch (value) {
          case 0: return NONE_BINARY;
          case 1: return Add;
          case 2: return Sub;
          case 3: return Mul;
          case 4: return Div;
          case 5: return Rem;
          case 6: return BitAnd;
          case 7: return BitOr;
          case 8: return BitXor;
          case 9: return ShiftLeft;
          case 10: return ShiftRight;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<IlBinaryNumericOperator>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          IlBinaryNumericOperator> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<IlBinaryNumericOperator>() {
              public IlBinaryNumericOperator findValueByNumber(int number) {
                return IlBinaryNumericOperator.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalStateException(
              "Can't get the descriptor of an unrecognized enum value.");
        }
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDescriptor().getEnumTypes().get(1);
      }

      private static final IlBinaryNumericOperator[] VALUES = values();

      public static IlBinaryNumericOperator valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private IlBinaryNumericOperator(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:IlInstructionMsg.IlBinaryNumericOperator)
    }

    /**
     * <pre>
     * BINARY_NUMERIC_INSTRUCTION COMP CONV
     * </pre>
     *
     * Protobuf enum {@code IlInstructionMsg.IlSign}
     */
    public enum IlSign
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>NONE_SIGN = 0;</code>
       */
      NONE_SIGN(0),
      /**
       * <code>Signed = 1;</code>
       */
      Signed(1),
      /**
       * <code>Unsigned = 2;</code>
       */
      Unsigned(2),
      UNRECOGNIZED(-1),
      ;

      /**
       * <code>NONE_SIGN = 0;</code>
       */
      public static final int NONE_SIGN_VALUE = 0;
      /**
       * <code>Signed = 1;</code>
       */
      public static final int Signed_VALUE = 1;
      /**
       * <code>Unsigned = 2;</code>
       */
      public static final int Unsigned_VALUE = 2;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static IlSign valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static IlSign forNumber(int value) {
        switch (value) {
          case 0: return NONE_SIGN;
          case 1: return Signed;
          case 2: return Unsigned;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<IlSign>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          IlSign> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<IlSign>() {
              public IlSign findValueByNumber(int number) {
                return IlSign.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalStateException(
              "Can't get the descriptor of an unrecognized enum value.");
        }
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDescriptor().getEnumTypes().get(2);
      }

      private static final IlSign[] VALUES = values();

      public static IlSign valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private IlSign(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:IlInstructionMsg.IlSign)
    }

    /**
     * <pre>
     * COMP
     * </pre>
     *
     * Protobuf enum {@code IlInstructionMsg.IlComparisonKind}
     */
    public enum IlComparisonKind
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>NONE_KIND = 0;</code>
       */
      NONE_KIND(0),
      /**
       * <code>Equality = 1;</code>
       */
      Equality(1),
      /**
       * <code>Inequality = 2;</code>
       */
      Inequality(2),
      /**
       * <code>LessThan = 3;</code>
       */
      LessThan(3),
      /**
       * <code>LessThanOrEqual = 4;</code>
       */
      LessThanOrEqual(4),
      /**
       * <code>GreaterThan = 5;</code>
       */
      GreaterThan(5),
      /**
       * <code>GreaterThanOrEqual = 6;</code>
       */
      GreaterThanOrEqual(6),
      UNRECOGNIZED(-1),
      ;

      /**
       * <code>NONE_KIND = 0;</code>
       */
      public static final int NONE_KIND_VALUE = 0;
      /**
       * <code>Equality = 1;</code>
       */
      public static final int Equality_VALUE = 1;
      /**
       * <code>Inequality = 2;</code>
       */
      public static final int Inequality_VALUE = 2;
      /**
       * <code>LessThan = 3;</code>
       */
      public static final int LessThan_VALUE = 3;
      /**
       * <code>LessThanOrEqual = 4;</code>
       */
      public static final int LessThanOrEqual_VALUE = 4;
      /**
       * <code>GreaterThan = 5;</code>
       */
      public static final int GreaterThan_VALUE = 5;
      /**
       * <code>GreaterThanOrEqual = 6;</code>
       */
      public static final int GreaterThanOrEqual_VALUE = 6;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static IlComparisonKind valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static IlComparisonKind forNumber(int value) {
        switch (value) {
          case 0: return NONE_KIND;
          case 1: return Equality;
          case 2: return Inequality;
          case 3: return LessThan;
          case 4: return LessThanOrEqual;
          case 5: return GreaterThan;
          case 6: return GreaterThanOrEqual;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<IlComparisonKind>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          IlComparisonKind> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<IlComparisonKind>() {
              public IlComparisonKind findValueByNumber(int number) {
                return IlComparisonKind.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalStateException(
              "Can't get the descriptor of an unrecognized enum value.");
        }
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDescriptor().getEnumTypes().get(3);
      }

      private static final IlComparisonKind[] VALUES = values();

      public static IlComparisonKind valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private IlComparisonKind(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:IlInstructionMsg.IlComparisonKind)
    }

    /**
     * <pre>
     * CONV
     * </pre>
     *
     * Protobuf enum {@code IlInstructionMsg.IlConversionKind}
     */
    public enum IlConversionKind
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>NONE_CONVERSION = 0;</code>
       */
      NONE_CONVERSION(0),
      /**
       * <code>Invalid = 1;</code>
       */
      Invalid(1),
      /**
       * <code>Nop = 2;</code>
       */
      Nop(2),
      /**
       * <code>IntToFloat = 3;</code>
       */
      IntToFloat(3),
      /**
       * <code>FloatToInt = 4;</code>
       */
      FloatToInt(4),
      /**
       * <code>FloatPrecisionChange = 5;</code>
       */
      FloatPrecisionChange(5),
      /**
       * <code>SignExtend = 6;</code>
       */
      SignExtend(6),
      /**
       * <code>ZeroExtend = 7;</code>
       */
      ZeroExtend(7),
      /**
       * <code>Truncate = 8;</code>
       */
      Truncate(8),
      /**
       * <code>StopGCTracking = 9;</code>
       */
      StopGCTracking(9),
      /**
       * <code>StartGCTracking = 10;</code>
       */
      StartGCTracking(10),
      /**
       * <code>ObjectInterior = 11;</code>
       */
      ObjectInterior(11),
      UNRECOGNIZED(-1),
      ;

      /**
       * <code>NONE_CONVERSION = 0;</code>
       */
      public static final int NONE_CONVERSION_VALUE = 0;
      /**
       * <code>Invalid = 1;</code>
       */
      public static final int Invalid_VALUE = 1;
      /**
       * <code>Nop = 2;</code>
       */
      public static final int Nop_VALUE = 2;
      /**
       * <code>IntToFloat = 3;</code>
       */
      public static final int IntToFloat_VALUE = 3;
      /**
       * <code>FloatToInt = 4;</code>
       */
      public static final int FloatToInt_VALUE = 4;
      /**
       * <code>FloatPrecisionChange = 5;</code>
       */
      public static final int FloatPrecisionChange_VALUE = 5;
      /**
       * <code>SignExtend = 6;</code>
       */
      public static final int SignExtend_VALUE = 6;
      /**
       * <code>ZeroExtend = 7;</code>
       */
      public static final int ZeroExtend_VALUE = 7;
      /**
       * <code>Truncate = 8;</code>
       */
      public static final int Truncate_VALUE = 8;
      /**
       * <code>StopGCTracking = 9;</code>
       */
      public static final int StopGCTracking_VALUE = 9;
      /**
       * <code>StartGCTracking = 10;</code>
       */
      public static final int StartGCTracking_VALUE = 10;
      /**
       * <code>ObjectInterior = 11;</code>
       */
      public static final int ObjectInterior_VALUE = 11;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static IlConversionKind valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static IlConversionKind forNumber(int value) {
        switch (value) {
          case 0: return NONE_CONVERSION;
          case 1: return Invalid;
          case 2: return Nop;
          case 3: return IntToFloat;
          case 4: return FloatToInt;
          case 5: return FloatPrecisionChange;
          case 6: return SignExtend;
          case 7: return ZeroExtend;
          case 8: return Truncate;
          case 9: return StopGCTracking;
          case 10: return StartGCTracking;
          case 11: return ObjectInterior;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<IlConversionKind>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          IlConversionKind> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<IlConversionKind>() {
              public IlConversionKind findValueByNumber(int number) {
                return IlConversionKind.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalStateException(
              "Can't get the descriptor of an unrecognized enum value.");
        }
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDescriptor().getEnumTypes().get(4);
      }

      private static final IlConversionKind[] VALUES = values();

      public static IlConversionKind valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private IlConversionKind(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:IlInstructionMsg.IlConversionKind)
    }

    /**
     * Protobuf enum {@code IlInstructionMsg.IlStackType}
     */
    public enum IlStackType
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>NONE_STACK_TYPE = 0;</code>
       */
      NONE_STACK_TYPE(0),
      /**
       * <code>Unknown_STACK = 1;</code>
       */
      Unknown_STACK(1),
      /**
       * <code>I4_STACK = 2;</code>
       */
      I4_STACK(2),
      /**
       * <code>I_STACK = 3;</code>
       */
      I_STACK(3),
      /**
       * <code>I8_STACK = 4;</code>
       */
      I8_STACK(4),
      /**
       * <code>F4 = 5;</code>
       */
      F4(5),
      /**
       * <code>F8 = 6;</code>
       */
      F8(6),
      /**
       * <code>O = 7;</code>
       */
      O(7),
      /**
       * <code>Ref_STACK = 8;</code>
       */
      Ref_STACK(8),
      /**
       * <code>Void = 9;</code>
       */
      Void(9),
      UNRECOGNIZED(-1),
      ;

      /**
       * <code>NONE_STACK_TYPE = 0;</code>
       */
      public static final int NONE_STACK_TYPE_VALUE = 0;
      /**
       * <code>Unknown_STACK = 1;</code>
       */
      public static final int Unknown_STACK_VALUE = 1;
      /**
       * <code>I4_STACK = 2;</code>
       */
      public static final int I4_STACK_VALUE = 2;
      /**
       * <code>I_STACK = 3;</code>
       */
      public static final int I_STACK_VALUE = 3;
      /**
       * <code>I8_STACK = 4;</code>
       */
      public static final int I8_STACK_VALUE = 4;
      /**
       * <code>F4 = 5;</code>
       */
      public static final int F4_VALUE = 5;
      /**
       * <code>F8 = 6;</code>
       */
      public static final int F8_VALUE = 6;
      /**
       * <code>O = 7;</code>
       */
      public static final int O_VALUE = 7;
      /**
       * <code>Ref_STACK = 8;</code>
       */
      public static final int Ref_STACK_VALUE = 8;
      /**
       * <code>Void = 9;</code>
       */
      public static final int Void_VALUE = 9;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static IlStackType valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static IlStackType forNumber(int value) {
        switch (value) {
          case 0: return NONE_STACK_TYPE;
          case 1: return Unknown_STACK;
          case 2: return I4_STACK;
          case 3: return I_STACK;
          case 4: return I8_STACK;
          case 5: return F4;
          case 6: return F8;
          case 7: return O;
          case 8: return Ref_STACK;
          case 9: return Void;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<IlStackType>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          IlStackType> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<IlStackType>() {
              public IlStackType findValueByNumber(int number) {
                return IlStackType.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalStateException(
              "Can't get the descriptor of an unrecognized enum value.");
        }
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDescriptor().getEnumTypes().get(5);
      }

      private static final IlStackType[] VALUES = values();

      public static IlStackType valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private IlStackType(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:IlInstructionMsg.IlStackType)
    }

    /**
     * Protobuf enum {@code IlInstructionMsg.IlPrimitiveType}
     */
    public enum IlPrimitiveType
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>NONE_PRIMITIVE_TYPE = 0;</code>
       */
      NONE_PRIMITIVE_TYPE(0),
      /**
       * <code>None = 1;</code>
       */
      None(1),
      /**
       * <code>I1 = 2;</code>
       */
      I1(2),
      /**
       * <code>I2 = 3;</code>
       */
      I2(3),
      /**
       * <code>I4 = 4;</code>
       */
      I4(4),
      /**
       * <code>I8 = 5;</code>
       */
      I8(5),
      /**
       * <code>R4 = 6;</code>
       */
      R4(6),
      /**
       * <code>R8 = 7;</code>
       */
      R8(7),
      /**
       * <code>U1 = 8;</code>
       */
      U1(8),
      /**
       * <code>U2 = 9;</code>
       */
      U2(9),
      /**
       * <code>U4 = 10;</code>
       */
      U4(10),
      /**
       * <code>U8 = 11;</code>
       */
      U8(11),
      /**
       * <code>I = 12;</code>
       */
      I(12),
      /**
       * <code>U = 13;</code>
       */
      U(13),
      /**
       * <code>Ref = 14;</code>
       */
      Ref(14),
      /**
       * <code>R = 15;</code>
       */
      R(15),
      /**
       * <code>Unknown = 16;</code>
       */
      Unknown(16),
      UNRECOGNIZED(-1),
      ;

      /**
       * <code>NONE_PRIMITIVE_TYPE = 0;</code>
       */
      public static final int NONE_PRIMITIVE_TYPE_VALUE = 0;
      /**
       * <code>None = 1;</code>
       */
      public static final int None_VALUE = 1;
      /**
       * <code>I1 = 2;</code>
       */
      public static final int I1_VALUE = 2;
      /**
       * <code>I2 = 3;</code>
       */
      public static final int I2_VALUE = 3;
      /**
       * <code>I4 = 4;</code>
       */
      public static final int I4_VALUE = 4;
      /**
       * <code>I8 = 5;</code>
       */
      public static final int I8_VALUE = 5;
      /**
       * <code>R4 = 6;</code>
       */
      public static final int R4_VALUE = 6;
      /**
       * <code>R8 = 7;</code>
       */
      public static final int R8_VALUE = 7;
      /**
       * <code>U1 = 8;</code>
       */
      public static final int U1_VALUE = 8;
      /**
       * <code>U2 = 9;</code>
       */
      public static final int U2_VALUE = 9;
      /**
       * <code>U4 = 10;</code>
       */
      public static final int U4_VALUE = 10;
      /**
       * <code>U8 = 11;</code>
       */
      public static final int U8_VALUE = 11;
      /**
       * <code>I = 12;</code>
       */
      public static final int I_VALUE = 12;
      /**
       * <code>U = 13;</code>
       */
      public static final int U_VALUE = 13;
      /**
       * <code>Ref = 14;</code>
       */
      public static final int Ref_VALUE = 14;
      /**
       * <code>R = 15;</code>
       */
      public static final int R_VALUE = 15;
      /**
       * <code>Unknown = 16;</code>
       */
      public static final int Unknown_VALUE = 16;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static IlPrimitiveType valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static IlPrimitiveType forNumber(int value) {
        switch (value) {
          case 0: return NONE_PRIMITIVE_TYPE;
          case 1: return None;
          case 2: return I1;
          case 3: return I2;
          case 4: return I4;
          case 5: return I8;
          case 6: return R4;
          case 7: return R8;
          case 8: return U1;
          case 9: return U2;
          case 10: return U4;
          case 11: return U8;
          case 12: return I;
          case 13: return U;
          case 14: return Ref;
          case 15: return R;
          case 16: return Unknown;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<IlPrimitiveType>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          IlPrimitiveType> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<IlPrimitiveType>() {
              public IlPrimitiveType findValueByNumber(int number) {
                return IlPrimitiveType.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalStateException(
              "Can't get the descriptor of an unrecognized enum value.");
        }
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDescriptor().getEnumTypes().get(6);
      }

      private static final IlPrimitiveType[] VALUES = values();

      public static IlPrimitiveType valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private IlPrimitiveType(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:IlInstructionMsg.IlPrimitiveType)
    }

    public static final int OP_CODE_FIELD_NUMBER = 1;
    private int opCode_ = 0;
    /**
     * <code>.IlInstructionMsg.IlOpCode op_code = 1;</code>
     * @return The enum numeric value on the wire for opCode.
     */
    @java.lang.Override public int getOpCodeValue() {
      return opCode_;
    }
    /**
     * <code>.IlInstructionMsg.IlOpCode op_code = 1;</code>
     * @return The opCode.
     */
    @java.lang.Override public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlOpCode getOpCode() {
      soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlOpCode result = soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlOpCode.forNumber(opCode_);
      return result == null ? soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlOpCode.UNRECOGNIZED : result;
    }

    public static final int METHOD_FIELD_NUMBER = 4;
    private soot.dotnet.proto.ProtoAssemblyAllTypes.MethodDefinition method_;
    /**
     * <pre>
     * CALL LDMEMBERTOKEN
     * </pre>
     *
     * <code>.MethodDefinition method = 4;</code>
     * @return Whether the method field is set.
     */
    @java.lang.Override
    public boolean hasMethod() {
      return method_ != null;
    }
    /**
     * <pre>
     * CALL LDMEMBERTOKEN
     * </pre>
     *
     * <code>.MethodDefinition method = 4;</code>
     * @return The method.
     */
    @java.lang.Override
    public soot.dotnet.proto.ProtoAssemblyAllTypes.MethodDefinition getMethod() {
      return method_ == null ? soot.dotnet.proto.ProtoAssemblyAllTypes.MethodDefinition.getDefaultInstance() : method_;
    }
    /**
     * <pre>
     * CALL LDMEMBERTOKEN
     * </pre>
     *
     * <code>.MethodDefinition method = 4;</code>
     */
    @java.lang.Override
    public soot.dotnet.proto.ProtoAssemblyAllTypes.MethodDefinitionOrBuilder getMethodOrBuilder() {
      return method_ == null ? soot.dotnet.proto.ProtoAssemblyAllTypes.MethodDefinition.getDefaultInstance() : method_;
    }

    public static final int ARGUMENTS_FIELD_NUMBER = 5;
    @SuppressWarnings("serial")
    private java.util.List<soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg> arguments_;
    /**
     * <code>repeated .IlInstructionMsg arguments = 5;</code>
     */
    @java.lang.Override
    public java.util.List<soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg> getArgumentsList() {
      return arguments_;
    }
    /**
     * <code>repeated .IlInstructionMsg arguments = 5;</code>
     */
    @java.lang.Override
    public java.util.List<? extends soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder> 
        getArgumentsOrBuilderList() {
      return arguments_;
    }
    /**
     * <code>repeated .IlInstructionMsg arguments = 5;</code>
     */
    @java.lang.Override
    public int getArgumentsCount() {
      return arguments_.size();
    }
    /**
     * <code>repeated .IlInstructionMsg arguments = 5;</code>
     */
    @java.lang.Override
    public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg getArguments(int index) {
      return arguments_.get(index);
    }
    /**
     * <code>repeated .IlInstructionMsg arguments = 5;</code>
     */
    @java.lang.Override
    public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder getArgumentsOrBuilder(
        int index) {
      return arguments_.get(index);
    }

    public static final int VALUE_INSTRUCTION_FIELD_NUMBER = 6;
    private soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg valueInstruction_;
    /**
     * <pre>
     * LEAVE STOBJ STLOC
     * </pre>
     *
     * <code>.IlInstructionMsg value_instruction = 6;</code>
     * @return Whether the valueInstruction field is set.
     */
    @java.lang.Override
    public boolean hasValueInstruction() {
      return valueInstruction_ != null;
    }
    /**
     * <pre>
     * LEAVE STOBJ STLOC
     * </pre>
     *
     * <code>.IlInstructionMsg value_instruction = 6;</code>
     * @return The valueInstruction.
     */
    @java.lang.Override
    public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg getValueInstruction() {
      return valueInstruction_ == null ? soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance() : valueInstruction_;
    }
    /**
     * <pre>
     * LEAVE STOBJ STLOC
     * </pre>
     *
     * <code>.IlInstructionMsg value_instruction = 6;</code>
     */
    @java.lang.Override
    public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder getValueInstructionOrBuilder() {
      return valueInstruction_ == null ? soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance() : valueInstruction_;
    }

    public static final int LAMBDAFUNCTION_FIELD_NUMBER = 86;
    private soot.dotnet.proto.ProtoIlInstructions.IlFunctionMsg lambdaFunction_;
    /**
     * <code>.IlFunctionMsg lambdaFunction = 86;</code>
     * @return Whether the lambdaFunction field is set.
     */
    @java.lang.Override
    public boolean hasLambdaFunction() {
      return lambdaFunction_ != null;
    }
    /**
     * <code>.IlFunctionMsg lambdaFunction = 86;</code>
     * @return The lambdaFunction.
     */
    @java.lang.Override
    public soot.dotnet.proto.ProtoIlInstructions.IlFunctionMsg getLambdaFunction() {
      return lambdaFunction_ == null ? soot.dotnet.proto.ProtoIlInstructions.IlFunctionMsg.getDefaultInstance() : lambdaFunction_;
    }
    /**
     * <code>.IlFunctionMsg lambdaFunction = 86;</code>
     */
    @java.lang.Override
    public soot.dotnet.proto.ProtoIlInstructions.IlFunctionMsgOrBuilder getLambdaFunctionOrBuilder() {
      return lambdaFunction_ == null ? soot.dotnet.proto.ProtoIlInstructions.IlFunctionMsg.getDefaultInstance() : lambdaFunction_;
    }

    public static final int VALUE_CONSTANT_STRING_FIELD_NUMBER = 7;
    @SuppressWarnings("serial")
    private volatile java.lang.Object valueConstantString_ = "";
    /**
     * <pre>
     * LDSTR LDC_I4
     * </pre>
     *
     * <code>string value_constant_string = 7;</code>
     * @return The valueConstantString.
     */
    @java.lang.Override
    public java.lang.String getValueConstantString() {
      java.lang.Object ref = valueConstantString_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        valueConstantString_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * LDSTR LDC_I4
     * </pre>
     *
     * <code>string value_constant_string = 7;</code>
     * @return The bytes for valueConstantString.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getValueConstantStringBytes() {
      java.lang.Object ref = valueConstantString_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        valueConstantString_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int VALUE_CONSTANT_INT64_FIELD_NUMBER = 38;
    private long valueConstantInt64_ = 0L;
    /**
     * <code>int64 value_constant_int64 = 38;</code>
     * @return The valueConstantInt64.
     */
    @java.lang.Override
    public long getValueConstantInt64() {
      return valueConstantInt64_;
    }

    public static final int VALUE_CONSTANT_FLOAT_FIELD_NUMBER = 39;
    private float valueConstantFloat_ = 0F;
    /**
     * <code>float value_constant_float = 39;</code>
     * @return The valueConstantFloat.
     */
    @java.lang.Override
    public float getValueConstantFloat() {
      return valueConstantFloat_;
    }

    public static final int VALUE_CONSTANT_DOUBLE_FIELD_NUMBER = 40;
    private double valueConstantDouble_ = 0D;
    /**
     * <code>double value_constant_double = 40;</code>
     * @return The valueConstantDouble.
     */
    @java.lang.Override
    public double getValueConstantDouble() {
      return valueConstantDouble_;
    }

    public static final int VALUE_CONSTANT_BOOL_FIELD_NUMBER = 61;
    private boolean valueConstantBool_ = false;
    /**
     * <code>bool value_constant_bool = 61;</code>
     * @return The valueConstantBool.
     */
    @java.lang.Override
    public boolean getValueConstantBool() {
      return valueConstantBool_;
    }

    public static final int VALUE_CONSTANT_UINT64_FIELD_NUMBER = 65;
    private long valueConstantUint64_ = 0L;
    /**
     * <code>uint64 value_constant_uint64 = 65;</code>
     * @return The valueConstantUint64.
     */
    @java.lang.Override
    public long getValueConstantUint64() {
      return valueConstantUint64_;
    }

    public static final int CONSTANT_TYPE_FIELD_NUMBER = 23;
    private int constantType_ = 0;
    /**
     * <code>.IlType constant_type = 23;</code>
     * @return The enum numeric value on the wire for constantType.
     */
    @java.lang.Override public int getConstantTypeValue() {
      return constantType_;
    }
    /**
     * <code>.IlType constant_type = 23;</code>
     * @return The constantType.
     */
    @java.lang.Override public soot.dotnet.proto.ProtoAssemblyAllTypes.IlType getConstantType() {
      soot.dotnet.proto.ProtoAssemblyAllTypes.IlType result = soot.dotnet.proto.ProtoAssemblyAllTypes.IlType.forNumber(constantType_);
      return result == null ? soot.dotnet.proto.ProtoAssemblyAllTypes.IlType.UNRECOGNIZED : result;
    }

    public static final int TARGET_FIELD_NUMBER = 8;
    private soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg target_;
    /**
     * <pre>
     * STOBJ LDFLDA LDOBJ
     * </pre>
     *
     * <code>.IlInstructionMsg target = 8;</code>
     * @return Whether the target field is set.
     */
    @java.lang.Override
    public boolean hasTarget() {
      return target_ != null;
    }
    /**
     * <pre>
     * STOBJ LDFLDA LDOBJ
     * </pre>
     *
     * <code>.IlInstructionMsg target = 8;</code>
     * @return The target.
     */
    @java.lang.Override
    public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg getTarget() {
      return target_ == null ? soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance() : target_;
    }
    /**
     * <pre>
     * STOBJ LDFLDA LDOBJ
     * </pre>
     *
     * <code>.IlInstructionMsg target = 8;</code>
     */
    @java.lang.Override
    public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder getTargetOrBuilder() {
      return target_ == null ? soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance() : target_;
    }

    public static final int TYPE_FIELD_NUMBER = 9;
    private soot.dotnet.proto.ProtoAssemblyAllTypes.TypeDefinition type_;
    /**
     * <pre>
     * STOBJ LDOBJ NEWARR LDELEMA CASTCLASS ISINST UNBOXANY
     * </pre>
     *
     * <code>.TypeDefinition type = 9;</code>
     * @return Whether the type field is set.
     */
    @java.lang.Override
    public boolean hasType() {
      return type_ != null;
    }
    /**
     * <pre>
     * STOBJ LDOBJ NEWARR LDELEMA CASTCLASS ISINST UNBOXANY
     * </pre>
     *
     * <code>.TypeDefinition type = 9;</code>
     * @return The type.
     */
    @java.lang.Override
    public soot.dotnet.proto.ProtoAssemblyAllTypes.TypeDefinition getType() {
      return type_ == null ? soot.dotnet.proto.ProtoAssemblyAllTypes.TypeDefinition.getDefaultInstance() : type_;
    }
    /**
     * <pre>
     * STOBJ LDOBJ NEWARR LDELEMA CASTCLASS ISINST UNBOXANY
     * </pre>
     *
     * <code>.TypeDefinition type = 9;</code>
     */
    @java.lang.Override
    public soot.dotnet.proto.ProtoAssemblyAllTypes.TypeDefinitionOrBuilder getTypeOrBuilder() {
      return type_ == null ? soot.dotnet.proto.ProtoAssemblyAllTypes.TypeDefinition.getDefaultInstance() : type_;
    }

    public static final int FIELD_FIELD_NUMBER = 10;
    private soot.dotnet.proto.ProtoAssemblyAllTypes.FieldDefinition field_;
    /**
     * <pre>
     * LDFLDA LDMEMBERTOKEN
     * </pre>
     *
     * <code>.FieldDefinition field = 10;</code>
     * @return Whether the field field is set.
     */
    @java.lang.Override
    public boolean hasField() {
      return field_ != null;
    }
    /**
     * <pre>
     * LDFLDA LDMEMBERTOKEN
     * </pre>
     *
     * <code>.FieldDefinition field = 10;</code>
     * @return The field.
     */
    @java.lang.Override
    public soot.dotnet.proto.ProtoAssemblyAllTypes.FieldDefinition getField() {
      return field_ == null ? soot.dotnet.proto.ProtoAssemblyAllTypes.FieldDefinition.getDefaultInstance() : field_;
    }
    /**
     * <pre>
     * LDFLDA LDMEMBERTOKEN
     * </pre>
     *
     * <code>.FieldDefinition field = 10;</code>
     */
    @java.lang.Override
    public soot.dotnet.proto.ProtoAssemblyAllTypes.FieldDefinitionOrBuilder getFieldOrBuilder() {
      return field_ == null ? soot.dotnet.proto.ProtoAssemblyAllTypes.FieldDefinition.getDefaultInstance() : field_;
    }

    public static final int VARIABLE_FIELD_NUMBER = 11;
    private soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg variable_;
    /**
     * <pre>
     * LDLOC STLOC TryCatchHandler
     * </pre>
     *
     * <code>.IlVariableMsg variable = 11;</code>
     * @return Whether the variable field is set.
     */
    @java.lang.Override
    public boolean hasVariable() {
      return variable_ != null;
    }
    /**
     * <pre>
     * LDLOC STLOC TryCatchHandler
     * </pre>
     *
     * <code>.IlVariableMsg variable = 11;</code>
     * @return The variable.
     */
    @java.lang.Override
    public soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg getVariable() {
      return variable_ == null ? soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg.getDefaultInstance() : variable_;
    }
    /**
     * <pre>
     * LDLOC STLOC TryCatchHandler
     * </pre>
     *
     * <code>.IlVariableMsg variable = 11;</code>
     */
    @java.lang.Override
    public soot.dotnet.proto.ProtoIlInstructions.IlVariableMsgOrBuilder getVariableOrBuilder() {
      return variable_ == null ? soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg.getDefaultInstance() : variable_;
    }

    public static final int OPERATOR_FIELD_NUMBER = 12;
    private int operator_ = 0;
    /**
     * <pre>
     * TODO may insert Result type + Underlying type
     * </pre>
     *
     * <code>.IlInstructionMsg.IlBinaryNumericOperator operator = 12;</code>
     * @return The enum numeric value on the wire for operator.
     */
    @java.lang.Override public int getOperatorValue() {
      return operator_;
    }
    /**
     * <pre>
     * TODO may insert Result type + Underlying type
     * </pre>
     *
     * <code>.IlInstructionMsg.IlBinaryNumericOperator operator = 12;</code>
     * @return The operator.
     */
    @java.lang.Override public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlBinaryNumericOperator getOperator() {
      soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlBinaryNumericOperator result = soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlBinaryNumericOperator.forNumber(operator_);
      return result == null ? soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlBinaryNumericOperator.UNRECOGNIZED : result;
    }

    public static final int SIGN_FIELD_NUMBER = 20;
    private int sign_ = 0;
    /**
     * <code>.IlInstructionMsg.IlSign sign = 20;</code>
     * @return The enum numeric value on the wire for sign.
     */
    @java.lang.Override public int getSignValue() {
      return sign_;
    }
    /**
     * <code>.IlInstructionMsg.IlSign sign = 20;</code>
     * @return The sign.
     */
    @java.lang.Override public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlSign getSign() {
      soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlSign result = soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlSign.forNumber(sign_);
      return result == null ? soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlSign.UNRECOGNIZED : result;
    }

    public static final int LEFT_FIELD_NUMBER = 14;
    private soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg left_;
    /**
     * <code>.IlInstructionMsg left = 14;</code>
     * @return Whether the left field is set.
     */
    @java.lang.Override
    public boolean hasLeft() {
      return left_ != null;
    }
    /**
     * <code>.IlInstructionMsg left = 14;</code>
     * @return The left.
     */
    @java.lang.Override
    public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg getLeft() {
      return left_ == null ? soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance() : left_;
    }
    /**
     * <code>.IlInstructionMsg left = 14;</code>
     */
    @java.lang.Override
    public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder getLeftOrBuilder() {
      return left_ == null ? soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance() : left_;
    }

    public static final int RIGHT_FIELD_NUMBER = 15;
    private soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg right_;
    /**
     * <code>.IlInstructionMsg right = 15;</code>
     * @return Whether the right field is set.
     */
    @java.lang.Override
    public boolean hasRight() {
      return right_ != null;
    }
    /**
     * <code>.IlInstructionMsg right = 15;</code>
     * @return The right.
     */
    @java.lang.Override
    public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg getRight() {
      return right_ == null ? soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance() : right_;
    }
    /**
     * <code>.IlInstructionMsg right = 15;</code>
     */
    @java.lang.Override
    public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder getRightOrBuilder() {
      return right_ == null ? soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance() : right_;
    }

    public static final int TARGET_LABEL_FIELD_NUMBER = 18;
    @SuppressWarnings("serial")
    private volatile java.lang.Object targetLabel_ = "";
    /**
     * <pre>
     * BRANCH
     * </pre>
     *
     * <code>string target_label = 18;</code>
     * @return The targetLabel.
     */
    @java.lang.Override
    public java.lang.String getTargetLabel() {
      java.lang.Object ref = targetLabel_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        targetLabel_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * BRANCH
     * </pre>
     *
     * <code>string target_label = 18;</code>
     * @return The bytes for targetLabel.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getTargetLabelBytes() {
      java.lang.Object ref = targetLabel_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        targetLabel_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int COMPARISON_KIND_FIELD_NUMBER = 21;
    private int comparisonKind_ = 0;
    /**
     * <code>.IlInstructionMsg.IlComparisonKind comparison_kind = 21;</code>
     * @return The enum numeric value on the wire for comparisonKind.
     */
    @java.lang.Override public int getComparisonKindValue() {
      return comparisonKind_;
    }
    /**
     * <code>.IlInstructionMsg.IlComparisonKind comparison_kind = 21;</code>
     * @return The comparisonKind.
     */
    @java.lang.Override public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlComparisonKind getComparisonKind() {
      soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlComparisonKind result = soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlComparisonKind.forNumber(comparisonKind_);
      return result == null ? soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlComparisonKind.UNRECOGNIZED : result;
    }

    public static final int CONDITION_FIELD_NUMBER = 22;
    private soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg condition_;
    /**
     * <pre>
     * IF_INSTRUCTION
     * </pre>
     *
     * <code>.IlInstructionMsg condition = 22;</code>
     * @return Whether the condition field is set.
     */
    @java.lang.Override
    public boolean hasCondition() {
      return condition_ != null;
    }
    /**
     * <pre>
     * IF_INSTRUCTION
     * </pre>
     *
     * <code>.IlInstructionMsg condition = 22;</code>
     * @return The condition.
     */
    @java.lang.Override
    public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg getCondition() {
      return condition_ == null ? soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance() : condition_;
    }
    /**
     * <pre>
     * IF_INSTRUCTION
     * </pre>
     *
     * <code>.IlInstructionMsg condition = 22;</code>
     */
    @java.lang.Override
    public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder getConditionOrBuilder() {
      return condition_ == null ? soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance() : condition_;
    }

    public static final int TRUE_INST_FIELD_NUMBER = 83;
    private soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg trueInst_;
    /**
     * <code>.IlInstructionMsg true_inst = 83;</code>
     * @return Whether the trueInst field is set.
     */
    @java.lang.Override
    public boolean hasTrueInst() {
      return trueInst_ != null;
    }
    /**
     * <code>.IlInstructionMsg true_inst = 83;</code>
     * @return The trueInst.
     */
    @java.lang.Override
    public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg getTrueInst() {
      return trueInst_ == null ? soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance() : trueInst_;
    }
    /**
     * <code>.IlInstructionMsg true_inst = 83;</code>
     */
    @java.lang.Override
    public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder getTrueInstOrBuilder() {
      return trueInst_ == null ? soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance() : trueInst_;
    }

    public static final int FALSE_INST_FIELD_NUMBER = 84;
    private soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg falseInst_;
    /**
     * <code>.IlInstructionMsg false_inst = 84;</code>
     * @return Whether the falseInst field is set.
     */
    @java.lang.Override
    public boolean hasFalseInst() {
      return falseInst_ != null;
    }
    /**
     * <code>.IlInstructionMsg false_inst = 84;</code>
     * @return The falseInst.
     */
    @java.lang.Override
    public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg getFalseInst() {
      return falseInst_ == null ? soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance() : falseInst_;
    }
    /**
     * <code>.IlInstructionMsg false_inst = 84;</code>
     */
    @java.lang.Override
    public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder getFalseInstOrBuilder() {
      return falseInst_ == null ? soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance() : falseInst_;
    }

    public static final int ARRAY_FIELD_NUMBER = 30;
    private soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg array_;
    /**
     * <pre>
     *LDLEN LDELEMA
     * </pre>
     *
     * <code>.IlInstructionMsg array = 30;</code>
     * @return Whether the array field is set.
     */
    @java.lang.Override
    public boolean hasArray() {
      return array_ != null;
    }
    /**
     * <pre>
     *LDLEN LDELEMA
     * </pre>
     *
     * <code>.IlInstructionMsg array = 30;</code>
     * @return The array.
     */
    @java.lang.Override
    public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg getArray() {
      return array_ == null ? soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance() : array_;
    }
    /**
     * <pre>
     *LDLEN LDELEMA
     * </pre>
     *
     * <code>.IlInstructionMsg array = 30;</code>
     */
    @java.lang.Override
    public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder getArrayOrBuilder() {
      return array_ == null ? soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance() : array_;
    }

    public static final int CONVERSION_KIND_FIELD_NUMBER = 25;
    private int conversionKind_ = 0;
    /**
     * <code>.IlInstructionMsg.IlConversionKind conversion_kind = 25;</code>
     * @return The enum numeric value on the wire for conversionKind.
     */
    @java.lang.Override public int getConversionKindValue() {
      return conversionKind_;
    }
    /**
     * <code>.IlInstructionMsg.IlConversionKind conversion_kind = 25;</code>
     * @return The conversionKind.
     */
    @java.lang.Override public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlConversionKind getConversionKind() {
      soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlConversionKind result = soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlConversionKind.forNumber(conversionKind_);
      return result == null ? soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlConversionKind.UNRECOGNIZED : result;
    }

    public static final int INPUT_TYPE_FIELD_NUMBER = 26;
    private int inputType_ = 0;
    /**
     * <code>.IlInstructionMsg.IlStackType input_type = 26;</code>
     * @return The enum numeric value on the wire for inputType.
     */
    @java.lang.Override public int getInputTypeValue() {
      return inputType_;
    }
    /**
     * <code>.IlInstructionMsg.IlStackType input_type = 26;</code>
     * @return The inputType.
     */
    @java.lang.Override public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlStackType getInputType() {
      soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlStackType result = soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlStackType.forNumber(inputType_);
      return result == null ? soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlStackType.UNRECOGNIZED : result;
    }

    public static final int TARGET_TYPE_FIELD_NUMBER = 28;
    private int targetType_ = 0;
    /**
     * <code>.IlInstructionMsg.IlPrimitiveType target_type = 28;</code>
     * @return The enum numeric value on the wire for targetType.
     */
    @java.lang.Override public int getTargetTypeValue() {
      return targetType_;
    }
    /**
     * <code>.IlInstructionMsg.IlPrimitiveType target_type = 28;</code>
     * @return The targetType.
     */
    @java.lang.Override public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlPrimitiveType getTargetType() {
      soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlPrimitiveType result = soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlPrimitiveType.forNumber(targetType_);
      return result == null ? soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlPrimitiveType.UNRECOGNIZED : result;
    }

    public static final int ARGUMENT_FIELD_NUMBER = 29;
    private soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg argument_;
    /**
     * <pre>
     * CONV CASTCLASS ISINST BOX UNBOXANY
     * </pre>
     *
     * <code>.IlInstructionMsg argument = 29;</code>
     * @return Whether the argument field is set.
     */
    @java.lang.Override
    public boolean hasArgument() {
      return argument_ != null;
    }
    /**
     * <pre>
     * CONV CASTCLASS ISINST BOX UNBOXANY
     * </pre>
     *
     * <code>.IlInstructionMsg argument = 29;</code>
     * @return The argument.
     */
    @java.lang.Override
    public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg getArgument() {
      return argument_ == null ? soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance() : argument_;
    }
    /**
     * <pre>
     * CONV CASTCLASS ISINST BOX UNBOXANY
     * </pre>
     *
     * <code>.IlInstructionMsg argument = 29;</code>
     */
    @java.lang.Override
    public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder getArgumentOrBuilder() {
      return argument_ == null ? soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance() : argument_;
    }

    public static final int RESULT_TYPE_FIELD_NUMBER = 27;
    private int resultType_ = 0;
    /**
     * <pre>
     * CONV LDLEN UNBOXANY
     * </pre>
     *
     * <code>.IlInstructionMsg.IlStackType result_type = 27;</code>
     * @return The enum numeric value on the wire for resultType.
     */
    @java.lang.Override public int getResultTypeValue() {
      return resultType_;
    }
    /**
     * <pre>
     * CONV LDLEN UNBOXANY
     * </pre>
     *
     * <code>.IlInstructionMsg.IlStackType result_type = 27;</code>
     * @return The resultType.
     */
    @java.lang.Override public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlStackType getResultType() {
      soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlStackType result = soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlStackType.forNumber(resultType_);
      return result == null ? soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlStackType.UNRECOGNIZED : result;
    }

    public static final int INDICES_FIELD_NUMBER = 31;
    @SuppressWarnings("serial")
    private java.util.List<soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg> indices_;
    /**
     * <pre>
     * NEWARR LDELEMA
     * </pre>
     *
     * <code>repeated .IlInstructionMsg indices = 31;</code>
     */
    @java.lang.Override
    public java.util.List<soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg> getIndicesList() {
      return indices_;
    }
    /**
     * <pre>
     * NEWARR LDELEMA
     * </pre>
     *
     * <code>repeated .IlInstructionMsg indices = 31;</code>
     */
    @java.lang.Override
    public java.util.List<? extends soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder> 
        getIndicesOrBuilderList() {
      return indices_;
    }
    /**
     * <pre>
     * NEWARR LDELEMA
     * </pre>
     *
     * <code>repeated .IlInstructionMsg indices = 31;</code>
     */
    @java.lang.Override
    public int getIndicesCount() {
      return indices_.size();
    }
    /**
     * <pre>
     * NEWARR LDELEMA
     * </pre>
     *
     * <code>repeated .IlInstructionMsg indices = 31;</code>
     */
    @java.lang.Override
    public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg getIndices(int index) {
      return indices_.get(index);
    }
    /**
     * <pre>
     * NEWARR LDELEMA
     * </pre>
     *
     * <code>repeated .IlInstructionMsg indices = 31;</code>
     */
    @java.lang.Override
    public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder getIndicesOrBuilder(
        int index) {
      return indices_.get(index);
    }

    public static final int TRY_BLOCK_FIELD_NUMBER = 32;
    private soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg tryBlock_;
    /**
     * <pre>
     * TRY
     * </pre>
     *
     * <code>.IlBlockContainerMsg try_block = 32;</code>
     * @return Whether the tryBlock field is set.
     */
    @java.lang.Override
    public boolean hasTryBlock() {
      return tryBlock_ != null;
    }
    /**
     * <pre>
     * TRY
     * </pre>
     *
     * <code>.IlBlockContainerMsg try_block = 32;</code>
     * @return The tryBlock.
     */
    @java.lang.Override
    public soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg getTryBlock() {
      return tryBlock_ == null ? soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.getDefaultInstance() : tryBlock_;
    }
    /**
     * <pre>
     * TRY
     * </pre>
     *
     * <code>.IlBlockContainerMsg try_block = 32;</code>
     */
    @java.lang.Override
    public soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsgOrBuilder getTryBlockOrBuilder() {
      return tryBlock_ == null ? soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.getDefaultInstance() : tryBlock_;
    }

    public static final int HANDLERS_FIELD_NUMBER = 33;
    @SuppressWarnings("serial")
    private java.util.List<soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsg> handlers_;
    /**
     * <code>repeated .IlTryCatchHandlerMsg handlers = 33;</code>
     */
    @java.lang.Override
    public java.util.List<soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsg> getHandlersList() {
      return handlers_;
    }
    /**
     * <code>repeated .IlTryCatchHandlerMsg handlers = 33;</code>
     */
    @java.lang.Override
    public java.util.List<? extends soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsgOrBuilder> 
        getHandlersOrBuilderList() {
      return handlers_;
    }
    /**
     * <code>repeated .IlTryCatchHandlerMsg handlers = 33;</code>
     */
    @java.lang.Override
    public int getHandlersCount() {
      return handlers_.size();
    }
    /**
     * <code>repeated .IlTryCatchHandlerMsg handlers = 33;</code>
     */
    @java.lang.Override
    public soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsg getHandlers(int index) {
      return handlers_.get(index);
    }
    /**
     * <code>repeated .IlTryCatchHandlerMsg handlers = 33;</code>
     */
    @java.lang.Override
    public soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsgOrBuilder getHandlersOrBuilder(
        int index) {
      return handlers_.get(index);
    }

    public static final int FINALLY_BLOCK_FIELD_NUMBER = 34;
    private soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg finallyBlock_;
    /**
     * <code>.IlBlockContainerMsg finally_block = 34;</code>
     * @return Whether the finallyBlock field is set.
     */
    @java.lang.Override
    public boolean hasFinallyBlock() {
      return finallyBlock_ != null;
    }
    /**
     * <code>.IlBlockContainerMsg finally_block = 34;</code>
     * @return The finallyBlock.
     */
    @java.lang.Override
    public soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg getFinallyBlock() {
      return finallyBlock_ == null ? soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.getDefaultInstance() : finallyBlock_;
    }
    /**
     * <code>.IlBlockContainerMsg finally_block = 34;</code>
     */
    @java.lang.Override
    public soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsgOrBuilder getFinallyBlockOrBuilder() {
      return finallyBlock_ == null ? soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.getDefaultInstance() : finallyBlock_;
    }

    public static final int FAULT_BLOCK_FIELD_NUMBER = 35;
    private soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg faultBlock_;
    /**
     * <code>.IlBlockContainerMsg fault_block = 35;</code>
     * @return Whether the faultBlock field is set.
     */
    @java.lang.Override
    public boolean hasFaultBlock() {
      return faultBlock_ != null;
    }
    /**
     * <code>.IlBlockContainerMsg fault_block = 35;</code>
     * @return The faultBlock.
     */
    @java.lang.Override
    public soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg getFaultBlock() {
      return faultBlock_ == null ? soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.getDefaultInstance() : faultBlock_;
    }
    /**
     * <code>.IlBlockContainerMsg fault_block = 35;</code>
     */
    @java.lang.Override
    public soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsgOrBuilder getFaultBlockOrBuilder() {
      return faultBlock_ == null ? soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.getDefaultInstance() : faultBlock_;
    }

    public static final int BODY_FIELD_NUMBER = 37;
    private soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg body_;
    /**
     * <pre>
     * TRYCATCHHANDLER
     * </pre>
     *
     * <code>.IlBlockContainerMsg body = 37;</code>
     * @return Whether the body field is set.
     */
    @java.lang.Override
    public boolean hasBody() {
      return body_ != null;
    }
    /**
     * <pre>
     * TRYCATCHHANDLER
     * </pre>
     *
     * <code>.IlBlockContainerMsg body = 37;</code>
     * @return The body.
     */
    @java.lang.Override
    public soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg getBody() {
      return body_ == null ? soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.getDefaultInstance() : body_;
    }
    /**
     * <pre>
     * TRYCATCHHANDLER
     * </pre>
     *
     * <code>.IlBlockContainerMsg body = 37;</code>
     */
    @java.lang.Override
    public soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsgOrBuilder getBodyOrBuilder() {
      return body_ == null ? soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.getDefaultInstance() : body_;
    }

    public static final int KEY_INSTR_FIELD_NUMBER = 41;
    private soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg keyInstr_;
    /**
     * <pre>
     * SWITCH_INSTR
     * </pre>
     *
     * <code>.IlInstructionMsg key_instr = 41;</code>
     * @return Whether the keyInstr field is set.
     */
    @java.lang.Override
    public boolean hasKeyInstr() {
      return keyInstr_ != null;
    }
    /**
     * <pre>
     * SWITCH_INSTR
     * </pre>
     *
     * <code>.IlInstructionMsg key_instr = 41;</code>
     * @return The keyInstr.
     */
    @java.lang.Override
    public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg getKeyInstr() {
      return keyInstr_ == null ? soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance() : keyInstr_;
    }
    /**
     * <pre>
     * SWITCH_INSTR
     * </pre>
     *
     * <code>.IlInstructionMsg key_instr = 41;</code>
     */
    @java.lang.Override
    public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder getKeyInstrOrBuilder() {
      return keyInstr_ == null ? soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance() : keyInstr_;
    }

    public static final int DEFAULT_INST_FIELD_NUMBER = 42;
    private soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg defaultInst_;
    /**
     * <code>.IlInstructionMsg default_inst = 42;</code>
     * @return Whether the defaultInst field is set.
     */
    @java.lang.Override
    public boolean hasDefaultInst() {
      return defaultInst_ != null;
    }
    /**
     * <code>.IlInstructionMsg default_inst = 42;</code>
     * @return The defaultInst.
     */
    @java.lang.Override
    public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg getDefaultInst() {
      return defaultInst_ == null ? soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance() : defaultInst_;
    }
    /**
     * <code>.IlInstructionMsg default_inst = 42;</code>
     */
    @java.lang.Override
    public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder getDefaultInstOrBuilder() {
      return defaultInst_ == null ? soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance() : defaultInst_;
    }

    public static final int SWITCH_SECTIONS_FIELD_NUMBER = 43;
    @SuppressWarnings("serial")
    private java.util.List<soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsg> switchSections_;
    /**
     * <code>repeated .IlSwitchSectionMsg switch_sections = 43;</code>
     */
    @java.lang.Override
    public java.util.List<soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsg> getSwitchSectionsList() {
      return switchSections_;
    }
    /**
     * <code>repeated .IlSwitchSectionMsg switch_sections = 43;</code>
     */
    @java.lang.Override
    public java.util.List<? extends soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsgOrBuilder> 
        getSwitchSectionsOrBuilderList() {
      return switchSections_;
    }
    /**
     * <code>repeated .IlSwitchSectionMsg switch_sections = 43;</code>
     */
    @java.lang.Override
    public int getSwitchSectionsCount() {
      return switchSections_.size();
    }
    /**
     * <code>repeated .IlSwitchSectionMsg switch_sections = 43;</code>
     */
    @java.lang.Override
    public soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsg getSwitchSections(int index) {
      return switchSections_.get(index);
    }
    /**
     * <code>repeated .IlSwitchSectionMsg switch_sections = 43;</code>
     */
    @java.lang.Override
    public soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsgOrBuilder getSwitchSectionsOrBuilder(
        int index) {
      return switchSections_.get(index);
    }

    public static final int CHECK_FOR_OVERFLOW_FIELD_NUMBER = 44;
    private boolean checkForOverflow_ = false;
    /**
     * <code>bool check_for_overflow = 44;</code>
     * @return The checkForOverflow.
     */
    @java.lang.Override
    public boolean getCheckForOverflow() {
      return checkForOverflow_;
    }

    public static final int IS_LEAVING_FUNCTION_FIELD_NUMBER = 45;
    private boolean isLeavingFunction_ = false;
    /**
     * <code>bool is_leaving_function = 45;</code>
     * @return The isLeavingFunction.
     */
    @java.lang.Override
    public boolean getIsLeavingFunction() {
      return isLeavingFunction_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (opCode_ != soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlOpCode.NONE_OP.getNumber()) {
        output.writeEnum(1, opCode_);
      }
      if (method_ != null) {
        output.writeMessage(4, getMethod());
      }
      for (int i = 0; i < arguments_.size(); i++) {
        output.writeMessage(5, arguments_.get(i));
      }
      if (valueInstruction_ != null) {
        output.writeMessage(6, getValueInstruction());
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(valueConstantString_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 7, valueConstantString_);
      }
      if (target_ != null) {
        output.writeMessage(8, getTarget());
      }
      if (type_ != null) {
        output.writeMessage(9, getType());
      }
      if (field_ != null) {
        output.writeMessage(10, getField());
      }
      if (variable_ != null) {
        output.writeMessage(11, getVariable());
      }
      if (operator_ != soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlBinaryNumericOperator.NONE_BINARY.getNumber()) {
        output.writeEnum(12, operator_);
      }
      if (left_ != null) {
        output.writeMessage(14, getLeft());
      }
      if (right_ != null) {
        output.writeMessage(15, getRight());
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(targetLabel_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 18, targetLabel_);
      }
      if (sign_ != soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlSign.NONE_SIGN.getNumber()) {
        output.writeEnum(20, sign_);
      }
      if (comparisonKind_ != soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlComparisonKind.NONE_KIND.getNumber()) {
        output.writeEnum(21, comparisonKind_);
      }
      if (condition_ != null) {
        output.writeMessage(22, getCondition());
      }
      if (constantType_ != soot.dotnet.proto.ProtoAssemblyAllTypes.IlType.type_unknown.getNumber()) {
        output.writeEnum(23, constantType_);
      }
      if (conversionKind_ != soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlConversionKind.NONE_CONVERSION.getNumber()) {
        output.writeEnum(25, conversionKind_);
      }
      if (inputType_ != soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlStackType.NONE_STACK_TYPE.getNumber()) {
        output.writeEnum(26, inputType_);
      }
      if (resultType_ != soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlStackType.NONE_STACK_TYPE.getNumber()) {
        output.writeEnum(27, resultType_);
      }
      if (targetType_ != soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlPrimitiveType.NONE_PRIMITIVE_TYPE.getNumber()) {
        output.writeEnum(28, targetType_);
      }
      if (argument_ != null) {
        output.writeMessage(29, getArgument());
      }
      if (array_ != null) {
        output.writeMessage(30, getArray());
      }
      for (int i = 0; i < indices_.size(); i++) {
        output.writeMessage(31, indices_.get(i));
      }
      if (tryBlock_ != null) {
        output.writeMessage(32, getTryBlock());
      }
      for (int i = 0; i < handlers_.size(); i++) {
        output.writeMessage(33, handlers_.get(i));
      }
      if (finallyBlock_ != null) {
        output.writeMessage(34, getFinallyBlock());
      }
      if (faultBlock_ != null) {
        output.writeMessage(35, getFaultBlock());
      }
      if (body_ != null) {
        output.writeMessage(37, getBody());
      }
      if (valueConstantInt64_ != 0L) {
        output.writeInt64(38, valueConstantInt64_);
      }
      if (java.lang.Float.floatToRawIntBits(valueConstantFloat_) != 0) {
        output.writeFloat(39, valueConstantFloat_);
      }
      if (java.lang.Double.doubleToRawLongBits(valueConstantDouble_) != 0) {
        output.writeDouble(40, valueConstantDouble_);
      }
      if (keyInstr_ != null) {
        output.writeMessage(41, getKeyInstr());
      }
      if (defaultInst_ != null) {
        output.writeMessage(42, getDefaultInst());
      }
      for (int i = 0; i < switchSections_.size(); i++) {
        output.writeMessage(43, switchSections_.get(i));
      }
      if (checkForOverflow_ != false) {
        output.writeBool(44, checkForOverflow_);
      }
      if (isLeavingFunction_ != false) {
        output.writeBool(45, isLeavingFunction_);
      }
      if (valueConstantBool_ != false) {
        output.writeBool(61, valueConstantBool_);
      }
      if (valueConstantUint64_ != 0L) {
        output.writeUInt64(65, valueConstantUint64_);
      }
      if (trueInst_ != null) {
        output.writeMessage(83, getTrueInst());
      }
      if (falseInst_ != null) {
        output.writeMessage(84, getFalseInst());
      }
      if (lambdaFunction_ != null) {
        output.writeMessage(86, getLambdaFunction());
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (opCode_ != soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlOpCode.NONE_OP.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, opCode_);
      }
      if (method_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, getMethod());
      }
      for (int i = 0; i < arguments_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, arguments_.get(i));
      }
      if (valueInstruction_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, getValueInstruction());
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(valueConstantString_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, valueConstantString_);
      }
      if (target_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(8, getTarget());
      }
      if (type_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(9, getType());
      }
      if (field_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(10, getField());
      }
      if (variable_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(11, getVariable());
      }
      if (operator_ != soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlBinaryNumericOperator.NONE_BINARY.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(12, operator_);
      }
      if (left_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(14, getLeft());
      }
      if (right_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(15, getRight());
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(targetLabel_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(18, targetLabel_);
      }
      if (sign_ != soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlSign.NONE_SIGN.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(20, sign_);
      }
      if (comparisonKind_ != soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlComparisonKind.NONE_KIND.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(21, comparisonKind_);
      }
      if (condition_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(22, getCondition());
      }
      if (constantType_ != soot.dotnet.proto.ProtoAssemblyAllTypes.IlType.type_unknown.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(23, constantType_);
      }
      if (conversionKind_ != soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlConversionKind.NONE_CONVERSION.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(25, conversionKind_);
      }
      if (inputType_ != soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlStackType.NONE_STACK_TYPE.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(26, inputType_);
      }
      if (resultType_ != soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlStackType.NONE_STACK_TYPE.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(27, resultType_);
      }
      if (targetType_ != soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlPrimitiveType.NONE_PRIMITIVE_TYPE.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(28, targetType_);
      }
      if (argument_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(29, getArgument());
      }
      if (array_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(30, getArray());
      }
      for (int i = 0; i < indices_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(31, indices_.get(i));
      }
      if (tryBlock_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(32, getTryBlock());
      }
      for (int i = 0; i < handlers_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(33, handlers_.get(i));
      }
      if (finallyBlock_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(34, getFinallyBlock());
      }
      if (faultBlock_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(35, getFaultBlock());
      }
      if (body_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(37, getBody());
      }
      if (valueConstantInt64_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(38, valueConstantInt64_);
      }
      if (java.lang.Float.floatToRawIntBits(valueConstantFloat_) != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(39, valueConstantFloat_);
      }
      if (java.lang.Double.doubleToRawLongBits(valueConstantDouble_) != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeDoubleSize(40, valueConstantDouble_);
      }
      if (keyInstr_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(41, getKeyInstr());
      }
      if (defaultInst_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(42, getDefaultInst());
      }
      for (int i = 0; i < switchSections_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(43, switchSections_.get(i));
      }
      if (checkForOverflow_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(44, checkForOverflow_);
      }
      if (isLeavingFunction_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(45, isLeavingFunction_);
      }
      if (valueConstantBool_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(61, valueConstantBool_);
      }
      if (valueConstantUint64_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(65, valueConstantUint64_);
      }
      if (trueInst_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(83, getTrueInst());
      }
      if (falseInst_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(84, getFalseInst());
      }
      if (lambdaFunction_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(86, getLambdaFunction());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg)) {
        return super.equals(obj);
      }
      soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg other = (soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg) obj;

      if (opCode_ != other.opCode_) return false;
      if (hasMethod() != other.hasMethod()) return false;
      if (hasMethod()) {
        if (!getMethod()
            .equals(other.getMethod())) return false;
      }
      if (!getArgumentsList()
          .equals(other.getArgumentsList())) return false;
      if (hasValueInstruction() != other.hasValueInstruction()) return false;
      if (hasValueInstruction()) {
        if (!getValueInstruction()
            .equals(other.getValueInstruction())) return false;
      }
      if (hasLambdaFunction() != other.hasLambdaFunction()) return false;
      if (hasLambdaFunction()) {
        if (!getLambdaFunction()
            .equals(other.getLambdaFunction())) return false;
      }
      if (!getValueConstantString()
          .equals(other.getValueConstantString())) return false;
      if (getValueConstantInt64()
          != other.getValueConstantInt64()) return false;
      if (java.lang.Float.floatToIntBits(getValueConstantFloat())
          != java.lang.Float.floatToIntBits(
              other.getValueConstantFloat())) return false;
      if (java.lang.Double.doubleToLongBits(getValueConstantDouble())
          != java.lang.Double.doubleToLongBits(
              other.getValueConstantDouble())) return false;
      if (getValueConstantBool()
          != other.getValueConstantBool()) return false;
      if (getValueConstantUint64()
          != other.getValueConstantUint64()) return false;
      if (constantType_ != other.constantType_) return false;
      if (hasTarget() != other.hasTarget()) return false;
      if (hasTarget()) {
        if (!getTarget()
            .equals(other.getTarget())) return false;
      }
      if (hasType() != other.hasType()) return false;
      if (hasType()) {
        if (!getType()
            .equals(other.getType())) return false;
      }
      if (hasField() != other.hasField()) return false;
      if (hasField()) {
        if (!getField()
            .equals(other.getField())) return false;
      }
      if (hasVariable() != other.hasVariable()) return false;
      if (hasVariable()) {
        if (!getVariable()
            .equals(other.getVariable())) return false;
      }
      if (operator_ != other.operator_) return false;
      if (sign_ != other.sign_) return false;
      if (hasLeft() != other.hasLeft()) return false;
      if (hasLeft()) {
        if (!getLeft()
            .equals(other.getLeft())) return false;
      }
      if (hasRight() != other.hasRight()) return false;
      if (hasRight()) {
        if (!getRight()
            .equals(other.getRight())) return false;
      }
      if (!getTargetLabel()
          .equals(other.getTargetLabel())) return false;
      if (comparisonKind_ != other.comparisonKind_) return false;
      if (hasCondition() != other.hasCondition()) return false;
      if (hasCondition()) {
        if (!getCondition()
            .equals(other.getCondition())) return false;
      }
      if (hasTrueInst() != other.hasTrueInst()) return false;
      if (hasTrueInst()) {
        if (!getTrueInst()
            .equals(other.getTrueInst())) return false;
      }
      if (hasFalseInst() != other.hasFalseInst()) return false;
      if (hasFalseInst()) {
        if (!getFalseInst()
            .equals(other.getFalseInst())) return false;
      }
      if (hasArray() != other.hasArray()) return false;
      if (hasArray()) {
        if (!getArray()
            .equals(other.getArray())) return false;
      }
      if (conversionKind_ != other.conversionKind_) return false;
      if (inputType_ != other.inputType_) return false;
      if (targetType_ != other.targetType_) return false;
      if (hasArgument() != other.hasArgument()) return false;
      if (hasArgument()) {
        if (!getArgument()
            .equals(other.getArgument())) return false;
      }
      if (resultType_ != other.resultType_) return false;
      if (!getIndicesList()
          .equals(other.getIndicesList())) return false;
      if (hasTryBlock() != other.hasTryBlock()) return false;
      if (hasTryBlock()) {
        if (!getTryBlock()
            .equals(other.getTryBlock())) return false;
      }
      if (!getHandlersList()
          .equals(other.getHandlersList())) return false;
      if (hasFinallyBlock() != other.hasFinallyBlock()) return false;
      if (hasFinallyBlock()) {
        if (!getFinallyBlock()
            .equals(other.getFinallyBlock())) return false;
      }
      if (hasFaultBlock() != other.hasFaultBlock()) return false;
      if (hasFaultBlock()) {
        if (!getFaultBlock()
            .equals(other.getFaultBlock())) return false;
      }
      if (hasBody() != other.hasBody()) return false;
      if (hasBody()) {
        if (!getBody()
            .equals(other.getBody())) return false;
      }
      if (hasKeyInstr() != other.hasKeyInstr()) return false;
      if (hasKeyInstr()) {
        if (!getKeyInstr()
            .equals(other.getKeyInstr())) return false;
      }
      if (hasDefaultInst() != other.hasDefaultInst()) return false;
      if (hasDefaultInst()) {
        if (!getDefaultInst()
            .equals(other.getDefaultInst())) return false;
      }
      if (!getSwitchSectionsList()
          .equals(other.getSwitchSectionsList())) return false;
      if (getCheckForOverflow()
          != other.getCheckForOverflow()) return false;
      if (getIsLeavingFunction()
          != other.getIsLeavingFunction()) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + OP_CODE_FIELD_NUMBER;
      hash = (53 * hash) + opCode_;
      if (hasMethod()) {
        hash = (37 * hash) + METHOD_FIELD_NUMBER;
        hash = (53 * hash) + getMethod().hashCode();
      }
      if (getArgumentsCount() > 0) {
        hash = (37 * hash) + ARGUMENTS_FIELD_NUMBER;
        hash = (53 * hash) + getArgumentsList().hashCode();
      }
      if (hasValueInstruction()) {
        hash = (37 * hash) + VALUE_INSTRUCTION_FIELD_NUMBER;
        hash = (53 * hash) + getValueInstruction().hashCode();
      }
      if (hasLambdaFunction()) {
        hash = (37 * hash) + LAMBDAFUNCTION_FIELD_NUMBER;
        hash = (53 * hash) + getLambdaFunction().hashCode();
      }
      hash = (37 * hash) + VALUE_CONSTANT_STRING_FIELD_NUMBER;
      hash = (53 * hash) + getValueConstantString().hashCode();
      hash = (37 * hash) + VALUE_CONSTANT_INT64_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getValueConstantInt64());
      hash = (37 * hash) + VALUE_CONSTANT_FLOAT_FIELD_NUMBER;
      hash = (53 * hash) + java.lang.Float.floatToIntBits(
          getValueConstantFloat());
      hash = (37 * hash) + VALUE_CONSTANT_DOUBLE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          java.lang.Double.doubleToLongBits(getValueConstantDouble()));
      hash = (37 * hash) + VALUE_CONSTANT_BOOL_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getValueConstantBool());
      hash = (37 * hash) + VALUE_CONSTANT_UINT64_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getValueConstantUint64());
      hash = (37 * hash) + CONSTANT_TYPE_FIELD_NUMBER;
      hash = (53 * hash) + constantType_;
      if (hasTarget()) {
        hash = (37 * hash) + TARGET_FIELD_NUMBER;
        hash = (53 * hash) + getTarget().hashCode();
      }
      if (hasType()) {
        hash = (37 * hash) + TYPE_FIELD_NUMBER;
        hash = (53 * hash) + getType().hashCode();
      }
      if (hasField()) {
        hash = (37 * hash) + FIELD_FIELD_NUMBER;
        hash = (53 * hash) + getField().hashCode();
      }
      if (hasVariable()) {
        hash = (37 * hash) + VARIABLE_FIELD_NUMBER;
        hash = (53 * hash) + getVariable().hashCode();
      }
      hash = (37 * hash) + OPERATOR_FIELD_NUMBER;
      hash = (53 * hash) + operator_;
      hash = (37 * hash) + SIGN_FIELD_NUMBER;
      hash = (53 * hash) + sign_;
      if (hasLeft()) {
        hash = (37 * hash) + LEFT_FIELD_NUMBER;
        hash = (53 * hash) + getLeft().hashCode();
      }
      if (hasRight()) {
        hash = (37 * hash) + RIGHT_FIELD_NUMBER;
        hash = (53 * hash) + getRight().hashCode();
      }
      hash = (37 * hash) + TARGET_LABEL_FIELD_NUMBER;
      hash = (53 * hash) + getTargetLabel().hashCode();
      hash = (37 * hash) + COMPARISON_KIND_FIELD_NUMBER;
      hash = (53 * hash) + comparisonKind_;
      if (hasCondition()) {
        hash = (37 * hash) + CONDITION_FIELD_NUMBER;
        hash = (53 * hash) + getCondition().hashCode();
      }
      if (hasTrueInst()) {
        hash = (37 * hash) + TRUE_INST_FIELD_NUMBER;
        hash = (53 * hash) + getTrueInst().hashCode();
      }
      if (hasFalseInst()) {
        hash = (37 * hash) + FALSE_INST_FIELD_NUMBER;
        hash = (53 * hash) + getFalseInst().hashCode();
      }
      if (hasArray()) {
        hash = (37 * hash) + ARRAY_FIELD_NUMBER;
        hash = (53 * hash) + getArray().hashCode();
      }
      hash = (37 * hash) + CONVERSION_KIND_FIELD_NUMBER;
      hash = (53 * hash) + conversionKind_;
      hash = (37 * hash) + INPUT_TYPE_FIELD_NUMBER;
      hash = (53 * hash) + inputType_;
      hash = (37 * hash) + TARGET_TYPE_FIELD_NUMBER;
      hash = (53 * hash) + targetType_;
      if (hasArgument()) {
        hash = (37 * hash) + ARGUMENT_FIELD_NUMBER;
        hash = (53 * hash) + getArgument().hashCode();
      }
      hash = (37 * hash) + RESULT_TYPE_FIELD_NUMBER;
      hash = (53 * hash) + resultType_;
      if (getIndicesCount() > 0) {
        hash = (37 * hash) + INDICES_FIELD_NUMBER;
        hash = (53 * hash) + getIndicesList().hashCode();
      }
      if (hasTryBlock()) {
        hash = (37 * hash) + TRY_BLOCK_FIELD_NUMBER;
        hash = (53 * hash) + getTryBlock().hashCode();
      }
      if (getHandlersCount() > 0) {
        hash = (37 * hash) + HANDLERS_FIELD_NUMBER;
        hash = (53 * hash) + getHandlersList().hashCode();
      }
      if (hasFinallyBlock()) {
        hash = (37 * hash) + FINALLY_BLOCK_FIELD_NUMBER;
        hash = (53 * hash) + getFinallyBlock().hashCode();
      }
      if (hasFaultBlock()) {
        hash = (37 * hash) + FAULT_BLOCK_FIELD_NUMBER;
        hash = (53 * hash) + getFaultBlock().hashCode();
      }
      if (hasBody()) {
        hash = (37 * hash) + BODY_FIELD_NUMBER;
        hash = (53 * hash) + getBody().hashCode();
      }
      if (hasKeyInstr()) {
        hash = (37 * hash) + KEY_INSTR_FIELD_NUMBER;
        hash = (53 * hash) + getKeyInstr().hashCode();
      }
      if (hasDefaultInst()) {
        hash = (37 * hash) + DEFAULT_INST_FIELD_NUMBER;
        hash = (53 * hash) + getDefaultInst().hashCode();
      }
      if (getSwitchSectionsCount() > 0) {
        hash = (37 * hash) + SWITCH_SECTIONS_FIELD_NUMBER;
        hash = (53 * hash) + getSwitchSectionsList().hashCode();
      }
      hash = (37 * hash) + CHECK_FOR_OVERFLOW_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getCheckForOverflow());
      hash = (37 * hash) + IS_LEAVING_FUNCTION_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getIsLeavingFunction());
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code IlInstructionMsg}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:IlInstructionMsg)
        soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return soot.dotnet.proto.ProtoIlInstructions.internal_static_IlInstructionMsg_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return soot.dotnet.proto.ProtoIlInstructions.internal_static_IlInstructionMsg_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.class, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder.class);
      }

      // Construct using soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        bitField1_ = 0;
        opCode_ = 0;
        method_ = null;
        if (methodBuilder_ != null) {
          methodBuilder_.dispose();
          methodBuilder_ = null;
        }
        if (argumentsBuilder_ == null) {
          arguments_ = java.util.Collections.emptyList();
        } else {
          arguments_ = null;
          argumentsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        valueInstruction_ = null;
        if (valueInstructionBuilder_ != null) {
          valueInstructionBuilder_.dispose();
          valueInstructionBuilder_ = null;
        }
        lambdaFunction_ = null;
        if (lambdaFunctionBuilder_ != null) {
          lambdaFunctionBuilder_.dispose();
          lambdaFunctionBuilder_ = null;
        }
        valueConstantString_ = "";
        valueConstantInt64_ = 0L;
        valueConstantFloat_ = 0F;
        valueConstantDouble_ = 0D;
        valueConstantBool_ = false;
        valueConstantUint64_ = 0L;
        constantType_ = 0;
        target_ = null;
        if (targetBuilder_ != null) {
          targetBuilder_.dispose();
          targetBuilder_ = null;
        }
        type_ = null;
        if (typeBuilder_ != null) {
          typeBuilder_.dispose();
          typeBuilder_ = null;
        }
        field_ = null;
        if (fieldBuilder_ != null) {
          fieldBuilder_.dispose();
          fieldBuilder_ = null;
        }
        variable_ = null;
        if (variableBuilder_ != null) {
          variableBuilder_.dispose();
          variableBuilder_ = null;
        }
        operator_ = 0;
        sign_ = 0;
        left_ = null;
        if (leftBuilder_ != null) {
          leftBuilder_.dispose();
          leftBuilder_ = null;
        }
        right_ = null;
        if (rightBuilder_ != null) {
          rightBuilder_.dispose();
          rightBuilder_ = null;
        }
        targetLabel_ = "";
        comparisonKind_ = 0;
        condition_ = null;
        if (conditionBuilder_ != null) {
          conditionBuilder_.dispose();
          conditionBuilder_ = null;
        }
        trueInst_ = null;
        if (trueInstBuilder_ != null) {
          trueInstBuilder_.dispose();
          trueInstBuilder_ = null;
        }
        falseInst_ = null;
        if (falseInstBuilder_ != null) {
          falseInstBuilder_.dispose();
          falseInstBuilder_ = null;
        }
        array_ = null;
        if (arrayBuilder_ != null) {
          arrayBuilder_.dispose();
          arrayBuilder_ = null;
        }
        conversionKind_ = 0;
        inputType_ = 0;
        targetType_ = 0;
        argument_ = null;
        if (argumentBuilder_ != null) {
          argumentBuilder_.dispose();
          argumentBuilder_ = null;
        }
        resultType_ = 0;
        if (indicesBuilder_ == null) {
          indices_ = java.util.Collections.emptyList();
        } else {
          indices_ = null;
          indicesBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x80000000);
        tryBlock_ = null;
        if (tryBlockBuilder_ != null) {
          tryBlockBuilder_.dispose();
          tryBlockBuilder_ = null;
        }
        if (handlersBuilder_ == null) {
          handlers_ = java.util.Collections.emptyList();
        } else {
          handlers_ = null;
          handlersBuilder_.clear();
        }
        bitField1_ = (bitField1_ & ~0x00000002);
        finallyBlock_ = null;
        if (finallyBlockBuilder_ != null) {
          finallyBlockBuilder_.dispose();
          finallyBlockBuilder_ = null;
        }
        faultBlock_ = null;
        if (faultBlockBuilder_ != null) {
          faultBlockBuilder_.dispose();
          faultBlockBuilder_ = null;
        }
        body_ = null;
        if (bodyBuilder_ != null) {
          bodyBuilder_.dispose();
          bodyBuilder_ = null;
        }
        keyInstr_ = null;
        if (keyInstrBuilder_ != null) {
          keyInstrBuilder_.dispose();
          keyInstrBuilder_ = null;
        }
        defaultInst_ = null;
        if (defaultInstBuilder_ != null) {
          defaultInstBuilder_.dispose();
          defaultInstBuilder_ = null;
        }
        if (switchSectionsBuilder_ == null) {
          switchSections_ = java.util.Collections.emptyList();
        } else {
          switchSections_ = null;
          switchSectionsBuilder_.clear();
        }
        bitField1_ = (bitField1_ & ~0x00000080);
        checkForOverflow_ = false;
        isLeavingFunction_ = false;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return soot.dotnet.proto.ProtoIlInstructions.internal_static_IlInstructionMsg_descriptor;
      }

      @java.lang.Override
      public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg getDefaultInstanceForType() {
        return soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance();
      }

      @java.lang.Override
      public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg build() {
        soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg buildPartial() {
        soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg result = new soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        if (bitField1_ != 0) { buildPartial1(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg result) {
        if (argumentsBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0)) {
            arguments_ = java.util.Collections.unmodifiableList(arguments_);
            bitField0_ = (bitField0_ & ~0x00000004);
          }
          result.arguments_ = arguments_;
        } else {
          result.arguments_ = argumentsBuilder_.build();
        }
        if (indicesBuilder_ == null) {
          if (((bitField0_ & 0x80000000) != 0)) {
            indices_ = java.util.Collections.unmodifiableList(indices_);
            bitField0_ = (bitField0_ & ~0x80000000);
          }
          result.indices_ = indices_;
        } else {
          result.indices_ = indicesBuilder_.build();
        }
        if (handlersBuilder_ == null) {
          if (((bitField1_ & 0x00000002) != 0)) {
            handlers_ = java.util.Collections.unmodifiableList(handlers_);
            bitField1_ = (bitField1_ & ~0x00000002);
          }
          result.handlers_ = handlers_;
        } else {
          result.handlers_ = handlersBuilder_.build();
        }
        if (switchSectionsBuilder_ == null) {
          if (((bitField1_ & 0x00000080) != 0)) {
            switchSections_ = java.util.Collections.unmodifiableList(switchSections_);
            bitField1_ = (bitField1_ & ~0x00000080);
          }
          result.switchSections_ = switchSections_;
        } else {
          result.switchSections_ = switchSectionsBuilder_.build();
        }
      }

      private void buildPartial0(soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.opCode_ = opCode_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.method_ = methodBuilder_ == null
              ? method_
              : methodBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.valueInstruction_ = valueInstructionBuilder_ == null
              ? valueInstruction_
              : valueInstructionBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.lambdaFunction_ = lambdaFunctionBuilder_ == null
              ? lambdaFunction_
              : lambdaFunctionBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.valueConstantString_ = valueConstantString_;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.valueConstantInt64_ = valueConstantInt64_;
        }
        if (((from_bitField0_ & 0x00000080) != 0)) {
          result.valueConstantFloat_ = valueConstantFloat_;
        }
        if (((from_bitField0_ & 0x00000100) != 0)) {
          result.valueConstantDouble_ = valueConstantDouble_;
        }
        if (((from_bitField0_ & 0x00000200) != 0)) {
          result.valueConstantBool_ = valueConstantBool_;
        }
        if (((from_bitField0_ & 0x00000400) != 0)) {
          result.valueConstantUint64_ = valueConstantUint64_;
        }
        if (((from_bitField0_ & 0x00000800) != 0)) {
          result.constantType_ = constantType_;
        }
        if (((from_bitField0_ & 0x00001000) != 0)) {
          result.target_ = targetBuilder_ == null
              ? target_
              : targetBuilder_.build();
        }
        if (((from_bitField0_ & 0x00002000) != 0)) {
          result.type_ = typeBuilder_ == null
              ? type_
              : typeBuilder_.build();
        }
        if (((from_bitField0_ & 0x00004000) != 0)) {
          result.field_ = fieldBuilder_ == null
              ? field_
              : fieldBuilder_.build();
        }
        if (((from_bitField0_ & 0x00008000) != 0)) {
          result.variable_ = variableBuilder_ == null
              ? variable_
              : variableBuilder_.build();
        }
        if (((from_bitField0_ & 0x00010000) != 0)) {
          result.operator_ = operator_;
        }
        if (((from_bitField0_ & 0x00020000) != 0)) {
          result.sign_ = sign_;
        }
        if (((from_bitField0_ & 0x00040000) != 0)) {
          result.left_ = leftBuilder_ == null
              ? left_
              : leftBuilder_.build();
        }
        if (((from_bitField0_ & 0x00080000) != 0)) {
          result.right_ = rightBuilder_ == null
              ? right_
              : rightBuilder_.build();
        }
        if (((from_bitField0_ & 0x00100000) != 0)) {
          result.targetLabel_ = targetLabel_;
        }
        if (((from_bitField0_ & 0x00200000) != 0)) {
          result.comparisonKind_ = comparisonKind_;
        }
        if (((from_bitField0_ & 0x00400000) != 0)) {
          result.condition_ = conditionBuilder_ == null
              ? condition_
              : conditionBuilder_.build();
        }
        if (((from_bitField0_ & 0x00800000) != 0)) {
          result.trueInst_ = trueInstBuilder_ == null
              ? trueInst_
              : trueInstBuilder_.build();
        }
        if (((from_bitField0_ & 0x01000000) != 0)) {
          result.falseInst_ = falseInstBuilder_ == null
              ? falseInst_
              : falseInstBuilder_.build();
        }
        if (((from_bitField0_ & 0x02000000) != 0)) {
          result.array_ = arrayBuilder_ == null
              ? array_
              : arrayBuilder_.build();
        }
        if (((from_bitField0_ & 0x04000000) != 0)) {
          result.conversionKind_ = conversionKind_;
        }
        if (((from_bitField0_ & 0x08000000) != 0)) {
          result.inputType_ = inputType_;
        }
        if (((from_bitField0_ & 0x10000000) != 0)) {
          result.targetType_ = targetType_;
        }
        if (((from_bitField0_ & 0x20000000) != 0)) {
          result.argument_ = argumentBuilder_ == null
              ? argument_
              : argumentBuilder_.build();
        }
        if (((from_bitField0_ & 0x40000000) != 0)) {
          result.resultType_ = resultType_;
        }
      }

      private void buildPartial1(soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg result) {
        int from_bitField1_ = bitField1_;
        if (((from_bitField1_ & 0x00000001) != 0)) {
          result.tryBlock_ = tryBlockBuilder_ == null
              ? tryBlock_
              : tryBlockBuilder_.build();
        }
        if (((from_bitField1_ & 0x00000004) != 0)) {
          result.finallyBlock_ = finallyBlockBuilder_ == null
              ? finallyBlock_
              : finallyBlockBuilder_.build();
        }
        if (((from_bitField1_ & 0x00000008) != 0)) {
          result.faultBlock_ = faultBlockBuilder_ == null
              ? faultBlock_
              : faultBlockBuilder_.build();
        }
        if (((from_bitField1_ & 0x00000010) != 0)) {
          result.body_ = bodyBuilder_ == null
              ? body_
              : bodyBuilder_.build();
        }
        if (((from_bitField1_ & 0x00000020) != 0)) {
          result.keyInstr_ = keyInstrBuilder_ == null
              ? keyInstr_
              : keyInstrBuilder_.build();
        }
        if (((from_bitField1_ & 0x00000040) != 0)) {
          result.defaultInst_ = defaultInstBuilder_ == null
              ? defaultInst_
              : defaultInstBuilder_.build();
        }
        if (((from_bitField1_ & 0x00000100) != 0)) {
          result.checkForOverflow_ = checkForOverflow_;
        }
        if (((from_bitField1_ & 0x00000200) != 0)) {
          result.isLeavingFunction_ = isLeavingFunction_;
        }
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg) {
          return mergeFrom((soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg other) {
        if (other == soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance()) return this;
        if (other.opCode_ != 0) {
          setOpCodeValue(other.getOpCodeValue());
        }
        if (other.hasMethod()) {
          mergeMethod(other.getMethod());
        }
        if (argumentsBuilder_ == null) {
          if (!other.arguments_.isEmpty()) {
            if (arguments_.isEmpty()) {
              arguments_ = other.arguments_;
              bitField0_ = (bitField0_ & ~0x00000004);
            } else {
              ensureArgumentsIsMutable();
              arguments_.addAll(other.arguments_);
            }
            onChanged();
          }
        } else {
          if (!other.arguments_.isEmpty()) {
            if (argumentsBuilder_.isEmpty()) {
              argumentsBuilder_.dispose();
              argumentsBuilder_ = null;
              arguments_ = other.arguments_;
              bitField0_ = (bitField0_ & ~0x00000004);
              argumentsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getArgumentsFieldBuilder() : null;
            } else {
              argumentsBuilder_.addAllMessages(other.arguments_);
            }
          }
        }
        if (other.hasValueInstruction()) {
          mergeValueInstruction(other.getValueInstruction());
        }
        if (other.hasLambdaFunction()) {
          mergeLambdaFunction(other.getLambdaFunction());
        }
        if (!other.getValueConstantString().isEmpty()) {
          valueConstantString_ = other.valueConstantString_;
          bitField0_ |= 0x00000020;
          onChanged();
        }
        if (other.getValueConstantInt64() != 0L) {
          setValueConstantInt64(other.getValueConstantInt64());
        }
        if (other.getValueConstantFloat() != 0F) {
          setValueConstantFloat(other.getValueConstantFloat());
        }
        if (other.getValueConstantDouble() != 0D) {
          setValueConstantDouble(other.getValueConstantDouble());
        }
        if (other.getValueConstantBool() != false) {
          setValueConstantBool(other.getValueConstantBool());
        }
        if (other.getValueConstantUint64() != 0L) {
          setValueConstantUint64(other.getValueConstantUint64());
        }
        if (other.constantType_ != 0) {
          setConstantTypeValue(other.getConstantTypeValue());
        }
        if (other.hasTarget()) {
          mergeTarget(other.getTarget());
        }
        if (other.hasType()) {
          mergeType(other.getType());
        }
        if (other.hasField()) {
          mergeField(other.getField());
        }
        if (other.hasVariable()) {
          mergeVariable(other.getVariable());
        }
        if (other.operator_ != 0) {
          setOperatorValue(other.getOperatorValue());
        }
        if (other.sign_ != 0) {
          setSignValue(other.getSignValue());
        }
        if (other.hasLeft()) {
          mergeLeft(other.getLeft());
        }
        if (other.hasRight()) {
          mergeRight(other.getRight());
        }
        if (!other.getTargetLabel().isEmpty()) {
          targetLabel_ = other.targetLabel_;
          bitField0_ |= 0x00100000;
          onChanged();
        }
        if (other.comparisonKind_ != 0) {
          setComparisonKindValue(other.getComparisonKindValue());
        }
        if (other.hasCondition()) {
          mergeCondition(other.getCondition());
        }
        if (other.hasTrueInst()) {
          mergeTrueInst(other.getTrueInst());
        }
        if (other.hasFalseInst()) {
          mergeFalseInst(other.getFalseInst());
        }
        if (other.hasArray()) {
          mergeArray(other.getArray());
        }
        if (other.conversionKind_ != 0) {
          setConversionKindValue(other.getConversionKindValue());
        }
        if (other.inputType_ != 0) {
          setInputTypeValue(other.getInputTypeValue());
        }
        if (other.targetType_ != 0) {
          setTargetTypeValue(other.getTargetTypeValue());
        }
        if (other.hasArgument()) {
          mergeArgument(other.getArgument());
        }
        if (other.resultType_ != 0) {
          setResultTypeValue(other.getResultTypeValue());
        }
        if (indicesBuilder_ == null) {
          if (!other.indices_.isEmpty()) {
            if (indices_.isEmpty()) {
              indices_ = other.indices_;
              bitField0_ = (bitField0_ & ~0x80000000);
            } else {
              ensureIndicesIsMutable();
              indices_.addAll(other.indices_);
            }
            onChanged();
          }
        } else {
          if (!other.indices_.isEmpty()) {
            if (indicesBuilder_.isEmpty()) {
              indicesBuilder_.dispose();
              indicesBuilder_ = null;
              indices_ = other.indices_;
              bitField0_ = (bitField0_ & ~0x80000000);
              indicesBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getIndicesFieldBuilder() : null;
            } else {
              indicesBuilder_.addAllMessages(other.indices_);
            }
          }
        }
        if (other.hasTryBlock()) {
          mergeTryBlock(other.getTryBlock());
        }
        if (handlersBuilder_ == null) {
          if (!other.handlers_.isEmpty()) {
            if (handlers_.isEmpty()) {
              handlers_ = other.handlers_;
              bitField1_ = (bitField1_ & ~0x00000002);
            } else {
              ensureHandlersIsMutable();
              handlers_.addAll(other.handlers_);
            }
            onChanged();
          }
        } else {
          if (!other.handlers_.isEmpty()) {
            if (handlersBuilder_.isEmpty()) {
              handlersBuilder_.dispose();
              handlersBuilder_ = null;
              handlers_ = other.handlers_;
              bitField1_ = (bitField1_ & ~0x00000002);
              handlersBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getHandlersFieldBuilder() : null;
            } else {
              handlersBuilder_.addAllMessages(other.handlers_);
            }
          }
        }
        if (other.hasFinallyBlock()) {
          mergeFinallyBlock(other.getFinallyBlock());
        }
        if (other.hasFaultBlock()) {
          mergeFaultBlock(other.getFaultBlock());
        }
        if (other.hasBody()) {
          mergeBody(other.getBody());
        }
        if (other.hasKeyInstr()) {
          mergeKeyInstr(other.getKeyInstr());
        }
        if (other.hasDefaultInst()) {
          mergeDefaultInst(other.getDefaultInst());
        }
        if (switchSectionsBuilder_ == null) {
          if (!other.switchSections_.isEmpty()) {
            if (switchSections_.isEmpty()) {
              switchSections_ = other.switchSections_;
              bitField1_ = (bitField1_ & ~0x00000080);
            } else {
              ensureSwitchSectionsIsMutable();
              switchSections_.addAll(other.switchSections_);
            }
            onChanged();
          }
        } else {
          if (!other.switchSections_.isEmpty()) {
            if (switchSectionsBuilder_.isEmpty()) {
              switchSectionsBuilder_.dispose();
              switchSectionsBuilder_ = null;
              switchSections_ = other.switchSections_;
              bitField1_ = (bitField1_ & ~0x00000080);
              switchSectionsBuilder_ = 
                com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                   getSwitchSectionsFieldBuilder() : null;
            } else {
              switchSectionsBuilder_.addAllMessages(other.switchSections_);
            }
          }
        }
        if (other.getCheckForOverflow() != false) {
          setCheckForOverflow(other.getCheckForOverflow());
        }
        if (other.getIsLeavingFunction() != false) {
          setIsLeavingFunction(other.getIsLeavingFunction());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                opCode_ = input.readEnum();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 34: {
                input.readMessage(
                    getMethodFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000002;
                break;
              } // case 34
              case 42: {
                soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg m =
                    input.readMessage(
                        soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.parser(),
                        extensionRegistry);
                if (argumentsBuilder_ == null) {
                  ensureArgumentsIsMutable();
                  arguments_.add(m);
                } else {
                  argumentsBuilder_.addMessage(m);
                }
                break;
              } // case 42
              case 50: {
                input.readMessage(
                    getValueInstructionFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000008;
                break;
              } // case 50
              case 58: {
                valueConstantString_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000020;
                break;
              } // case 58
              case 66: {
                input.readMessage(
                    getTargetFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00001000;
                break;
              } // case 66
              case 74: {
                input.readMessage(
                    getTypeFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00002000;
                break;
              } // case 74
              case 82: {
                input.readMessage(
                    getFieldFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00004000;
                break;
              } // case 82
              case 90: {
                input.readMessage(
                    getVariableFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00008000;
                break;
              } // case 90
              case 96: {
                operator_ = input.readEnum();
                bitField0_ |= 0x00010000;
                break;
              } // case 96
              case 114: {
                input.readMessage(
                    getLeftFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00040000;
                break;
              } // case 114
              case 122: {
                input.readMessage(
                    getRightFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00080000;
                break;
              } // case 122
              case 146: {
                targetLabel_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00100000;
                break;
              } // case 146
              case 160: {
                sign_ = input.readEnum();
                bitField0_ |= 0x00020000;
                break;
              } // case 160
              case 168: {
                comparisonKind_ = input.readEnum();
                bitField0_ |= 0x00200000;
                break;
              } // case 168
              case 178: {
                input.readMessage(
                    getConditionFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00400000;
                break;
              } // case 178
              case 184: {
                constantType_ = input.readEnum();
                bitField0_ |= 0x00000800;
                break;
              } // case 184
              case 200: {
                conversionKind_ = input.readEnum();
                bitField0_ |= 0x04000000;
                break;
              } // case 200
              case 208: {
                inputType_ = input.readEnum();
                bitField0_ |= 0x08000000;
                break;
              } // case 208
              case 216: {
                resultType_ = input.readEnum();
                bitField0_ |= 0x40000000;
                break;
              } // case 216
              case 224: {
                targetType_ = input.readEnum();
                bitField0_ |= 0x10000000;
                break;
              } // case 224
              case 234: {
                input.readMessage(
                    getArgumentFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x20000000;
                break;
              } // case 234
              case 242: {
                input.readMessage(
                    getArrayFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x02000000;
                break;
              } // case 242
              case 250: {
                soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg m =
                    input.readMessage(
                        soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.parser(),
                        extensionRegistry);
                if (indicesBuilder_ == null) {
                  ensureIndicesIsMutable();
                  indices_.add(m);
                } else {
                  indicesBuilder_.addMessage(m);
                }
                break;
              } // case 250
              case 258: {
                input.readMessage(
                    getTryBlockFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField1_ |= 0x00000001;
                break;
              } // case 258
              case 266: {
                soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsg m =
                    input.readMessage(
                        soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsg.parser(),
                        extensionRegistry);
                if (handlersBuilder_ == null) {
                  ensureHandlersIsMutable();
                  handlers_.add(m);
                } else {
                  handlersBuilder_.addMessage(m);
                }
                break;
              } // case 266
              case 274: {
                input.readMessage(
                    getFinallyBlockFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField1_ |= 0x00000004;
                break;
              } // case 274
              case 282: {
                input.readMessage(
                    getFaultBlockFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField1_ |= 0x00000008;
                break;
              } // case 282
              case 298: {
                input.readMessage(
                    getBodyFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField1_ |= 0x00000010;
                break;
              } // case 298
              case 304: {
                valueConstantInt64_ = input.readInt64();
                bitField0_ |= 0x00000040;
                break;
              } // case 304
              case 317: {
                valueConstantFloat_ = input.readFloat();
                bitField0_ |= 0x00000080;
                break;
              } // case 317
              case 321: {
                valueConstantDouble_ = input.readDouble();
                bitField0_ |= 0x00000100;
                break;
              } // case 321
              case 330: {
                input.readMessage(
                    getKeyInstrFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField1_ |= 0x00000020;
                break;
              } // case 330
              case 338: {
                input.readMessage(
                    getDefaultInstFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField1_ |= 0x00000040;
                break;
              } // case 338
              case 346: {
                soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsg m =
                    input.readMessage(
                        soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsg.parser(),
                        extensionRegistry);
                if (switchSectionsBuilder_ == null) {
                  ensureSwitchSectionsIsMutable();
                  switchSections_.add(m);
                } else {
                  switchSectionsBuilder_.addMessage(m);
                }
                break;
              } // case 346
              case 352: {
                checkForOverflow_ = input.readBool();
                bitField1_ |= 0x00000100;
                break;
              } // case 352
              case 360: {
                isLeavingFunction_ = input.readBool();
                bitField1_ |= 0x00000200;
                break;
              } // case 360
              case 488: {
                valueConstantBool_ = input.readBool();
                bitField0_ |= 0x00000200;
                break;
              } // case 488
              case 520: {
                valueConstantUint64_ = input.readUInt64();
                bitField0_ |= 0x00000400;
                break;
              } // case 520
              case 666: {
                input.readMessage(
                    getTrueInstFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00800000;
                break;
              } // case 666
              case 674: {
                input.readMessage(
                    getFalseInstFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x01000000;
                break;
              } // case 674
              case 690: {
                input.readMessage(
                    getLambdaFunctionFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000010;
                break;
              } // case 690
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;
      private int bitField1_;

      private int opCode_ = 0;
      /**
       * <code>.IlInstructionMsg.IlOpCode op_code = 1;</code>
       * @return The enum numeric value on the wire for opCode.
       */
      @java.lang.Override public int getOpCodeValue() {
        return opCode_;
      }
      /**
       * <code>.IlInstructionMsg.IlOpCode op_code = 1;</code>
       * @param value The enum numeric value on the wire for opCode to set.
       * @return This builder for chaining.
       */
      public Builder setOpCodeValue(int value) {
        opCode_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>.IlInstructionMsg.IlOpCode op_code = 1;</code>
       * @return The opCode.
       */
      @java.lang.Override
      public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlOpCode getOpCode() {
        soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlOpCode result = soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlOpCode.forNumber(opCode_);
        return result == null ? soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlOpCode.UNRECOGNIZED : result;
      }
      /**
       * <code>.IlInstructionMsg.IlOpCode op_code = 1;</code>
       * @param value The opCode to set.
       * @return This builder for chaining.
       */
      public Builder setOpCode(soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlOpCode value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        opCode_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.IlInstructionMsg.IlOpCode op_code = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearOpCode() {
        bitField0_ = (bitField0_ & ~0x00000001);
        opCode_ = 0;
        onChanged();
        return this;
      }

      private soot.dotnet.proto.ProtoAssemblyAllTypes.MethodDefinition method_;
      private com.google.protobuf.SingleFieldBuilderV3<
          soot.dotnet.proto.ProtoAssemblyAllTypes.MethodDefinition, soot.dotnet.proto.ProtoAssemblyAllTypes.MethodDefinition.Builder, soot.dotnet.proto.ProtoAssemblyAllTypes.MethodDefinitionOrBuilder> methodBuilder_;
      /**
       * <pre>
       * CALL LDMEMBERTOKEN
       * </pre>
       *
       * <code>.MethodDefinition method = 4;</code>
       * @return Whether the method field is set.
       */
      public boolean hasMethod() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * CALL LDMEMBERTOKEN
       * </pre>
       *
       * <code>.MethodDefinition method = 4;</code>
       * @return The method.
       */
      public soot.dotnet.proto.ProtoAssemblyAllTypes.MethodDefinition getMethod() {
        if (methodBuilder_ == null) {
          return method_ == null ? soot.dotnet.proto.ProtoAssemblyAllTypes.MethodDefinition.getDefaultInstance() : method_;
        } else {
          return methodBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * CALL LDMEMBERTOKEN
       * </pre>
       *
       * <code>.MethodDefinition method = 4;</code>
       */
      public Builder setMethod(soot.dotnet.proto.ProtoAssemblyAllTypes.MethodDefinition value) {
        if (methodBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          method_ = value;
        } else {
          methodBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * CALL LDMEMBERTOKEN
       * </pre>
       *
       * <code>.MethodDefinition method = 4;</code>
       */
      public Builder setMethod(
          soot.dotnet.proto.ProtoAssemblyAllTypes.MethodDefinition.Builder builderForValue) {
        if (methodBuilder_ == null) {
          method_ = builderForValue.build();
        } else {
          methodBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * CALL LDMEMBERTOKEN
       * </pre>
       *
       * <code>.MethodDefinition method = 4;</code>
       */
      public Builder mergeMethod(soot.dotnet.proto.ProtoAssemblyAllTypes.MethodDefinition value) {
        if (methodBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0) &&
            method_ != null &&
            method_ != soot.dotnet.proto.ProtoAssemblyAllTypes.MethodDefinition.getDefaultInstance()) {
            getMethodBuilder().mergeFrom(value);
          } else {
            method_ = value;
          }
        } else {
          methodBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * CALL LDMEMBERTOKEN
       * </pre>
       *
       * <code>.MethodDefinition method = 4;</code>
       */
      public Builder clearMethod() {
        bitField0_ = (bitField0_ & ~0x00000002);
        method_ = null;
        if (methodBuilder_ != null) {
          methodBuilder_.dispose();
          methodBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * CALL LDMEMBERTOKEN
       * </pre>
       *
       * <code>.MethodDefinition method = 4;</code>
       */
      public soot.dotnet.proto.ProtoAssemblyAllTypes.MethodDefinition.Builder getMethodBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getMethodFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * CALL LDMEMBERTOKEN
       * </pre>
       *
       * <code>.MethodDefinition method = 4;</code>
       */
      public soot.dotnet.proto.ProtoAssemblyAllTypes.MethodDefinitionOrBuilder getMethodOrBuilder() {
        if (methodBuilder_ != null) {
          return methodBuilder_.getMessageOrBuilder();
        } else {
          return method_ == null ?
              soot.dotnet.proto.ProtoAssemblyAllTypes.MethodDefinition.getDefaultInstance() : method_;
        }
      }
      /**
       * <pre>
       * CALL LDMEMBERTOKEN
       * </pre>
       *
       * <code>.MethodDefinition method = 4;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          soot.dotnet.proto.ProtoAssemblyAllTypes.MethodDefinition, soot.dotnet.proto.ProtoAssemblyAllTypes.MethodDefinition.Builder, soot.dotnet.proto.ProtoAssemblyAllTypes.MethodDefinitionOrBuilder> 
          getMethodFieldBuilder() {
        if (methodBuilder_ == null) {
          methodBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              soot.dotnet.proto.ProtoAssemblyAllTypes.MethodDefinition, soot.dotnet.proto.ProtoAssemblyAllTypes.MethodDefinition.Builder, soot.dotnet.proto.ProtoAssemblyAllTypes.MethodDefinitionOrBuilder>(
                  getMethod(),
                  getParentForChildren(),
                  isClean());
          method_ = null;
        }
        return methodBuilder_;
      }

      private java.util.List<soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg> arguments_ =
        java.util.Collections.emptyList();
      private void ensureArgumentsIsMutable() {
        if (!((bitField0_ & 0x00000004) != 0)) {
          arguments_ = new java.util.ArrayList<soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg>(arguments_);
          bitField0_ |= 0x00000004;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder> argumentsBuilder_;

      /**
       * <code>repeated .IlInstructionMsg arguments = 5;</code>
       */
      public java.util.List<soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg> getArgumentsList() {
        if (argumentsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(arguments_);
        } else {
          return argumentsBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .IlInstructionMsg arguments = 5;</code>
       */
      public int getArgumentsCount() {
        if (argumentsBuilder_ == null) {
          return arguments_.size();
        } else {
          return argumentsBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .IlInstructionMsg arguments = 5;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg getArguments(int index) {
        if (argumentsBuilder_ == null) {
          return arguments_.get(index);
        } else {
          return argumentsBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .IlInstructionMsg arguments = 5;</code>
       */
      public Builder setArguments(
          int index, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg value) {
        if (argumentsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureArgumentsIsMutable();
          arguments_.set(index, value);
          onChanged();
        } else {
          argumentsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .IlInstructionMsg arguments = 5;</code>
       */
      public Builder setArguments(
          int index, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder builderForValue) {
        if (argumentsBuilder_ == null) {
          ensureArgumentsIsMutable();
          arguments_.set(index, builderForValue.build());
          onChanged();
        } else {
          argumentsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .IlInstructionMsg arguments = 5;</code>
       */
      public Builder addArguments(soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg value) {
        if (argumentsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureArgumentsIsMutable();
          arguments_.add(value);
          onChanged();
        } else {
          argumentsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .IlInstructionMsg arguments = 5;</code>
       */
      public Builder addArguments(
          int index, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg value) {
        if (argumentsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureArgumentsIsMutable();
          arguments_.add(index, value);
          onChanged();
        } else {
          argumentsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .IlInstructionMsg arguments = 5;</code>
       */
      public Builder addArguments(
          soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder builderForValue) {
        if (argumentsBuilder_ == null) {
          ensureArgumentsIsMutable();
          arguments_.add(builderForValue.build());
          onChanged();
        } else {
          argumentsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .IlInstructionMsg arguments = 5;</code>
       */
      public Builder addArguments(
          int index, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder builderForValue) {
        if (argumentsBuilder_ == null) {
          ensureArgumentsIsMutable();
          arguments_.add(index, builderForValue.build());
          onChanged();
        } else {
          argumentsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .IlInstructionMsg arguments = 5;</code>
       */
      public Builder addAllArguments(
          java.lang.Iterable<? extends soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg> values) {
        if (argumentsBuilder_ == null) {
          ensureArgumentsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, arguments_);
          onChanged();
        } else {
          argumentsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .IlInstructionMsg arguments = 5;</code>
       */
      public Builder clearArguments() {
        if (argumentsBuilder_ == null) {
          arguments_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
          onChanged();
        } else {
          argumentsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .IlInstructionMsg arguments = 5;</code>
       */
      public Builder removeArguments(int index) {
        if (argumentsBuilder_ == null) {
          ensureArgumentsIsMutable();
          arguments_.remove(index);
          onChanged();
        } else {
          argumentsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .IlInstructionMsg arguments = 5;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder getArgumentsBuilder(
          int index) {
        return getArgumentsFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .IlInstructionMsg arguments = 5;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder getArgumentsOrBuilder(
          int index) {
        if (argumentsBuilder_ == null) {
          return arguments_.get(index);  } else {
          return argumentsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .IlInstructionMsg arguments = 5;</code>
       */
      public java.util.List<? extends soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder> 
           getArgumentsOrBuilderList() {
        if (argumentsBuilder_ != null) {
          return argumentsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(arguments_);
        }
      }
      /**
       * <code>repeated .IlInstructionMsg arguments = 5;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder addArgumentsBuilder() {
        return getArgumentsFieldBuilder().addBuilder(
            soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance());
      }
      /**
       * <code>repeated .IlInstructionMsg arguments = 5;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder addArgumentsBuilder(
          int index) {
        return getArgumentsFieldBuilder().addBuilder(
            index, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance());
      }
      /**
       * <code>repeated .IlInstructionMsg arguments = 5;</code>
       */
      public java.util.List<soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder> 
           getArgumentsBuilderList() {
        return getArgumentsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder> 
          getArgumentsFieldBuilder() {
        if (argumentsBuilder_ == null) {
          argumentsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder>(
                  arguments_,
                  ((bitField0_ & 0x00000004) != 0),
                  getParentForChildren(),
                  isClean());
          arguments_ = null;
        }
        return argumentsBuilder_;
      }

      private soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg valueInstruction_;
      private com.google.protobuf.SingleFieldBuilderV3<
          soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder> valueInstructionBuilder_;
      /**
       * <pre>
       * LEAVE STOBJ STLOC
       * </pre>
       *
       * <code>.IlInstructionMsg value_instruction = 6;</code>
       * @return Whether the valueInstruction field is set.
       */
      public boolean hasValueInstruction() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <pre>
       * LEAVE STOBJ STLOC
       * </pre>
       *
       * <code>.IlInstructionMsg value_instruction = 6;</code>
       * @return The valueInstruction.
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg getValueInstruction() {
        if (valueInstructionBuilder_ == null) {
          return valueInstruction_ == null ? soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance() : valueInstruction_;
        } else {
          return valueInstructionBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * LEAVE STOBJ STLOC
       * </pre>
       *
       * <code>.IlInstructionMsg value_instruction = 6;</code>
       */
      public Builder setValueInstruction(soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg value) {
        if (valueInstructionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          valueInstruction_ = value;
        } else {
          valueInstructionBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * LEAVE STOBJ STLOC
       * </pre>
       *
       * <code>.IlInstructionMsg value_instruction = 6;</code>
       */
      public Builder setValueInstruction(
          soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder builderForValue) {
        if (valueInstructionBuilder_ == null) {
          valueInstruction_ = builderForValue.build();
        } else {
          valueInstructionBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * LEAVE STOBJ STLOC
       * </pre>
       *
       * <code>.IlInstructionMsg value_instruction = 6;</code>
       */
      public Builder mergeValueInstruction(soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg value) {
        if (valueInstructionBuilder_ == null) {
          if (((bitField0_ & 0x00000008) != 0) &&
            valueInstruction_ != null &&
            valueInstruction_ != soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance()) {
            getValueInstructionBuilder().mergeFrom(value);
          } else {
            valueInstruction_ = value;
          }
        } else {
          valueInstructionBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * LEAVE STOBJ STLOC
       * </pre>
       *
       * <code>.IlInstructionMsg value_instruction = 6;</code>
       */
      public Builder clearValueInstruction() {
        bitField0_ = (bitField0_ & ~0x00000008);
        valueInstruction_ = null;
        if (valueInstructionBuilder_ != null) {
          valueInstructionBuilder_.dispose();
          valueInstructionBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * LEAVE STOBJ STLOC
       * </pre>
       *
       * <code>.IlInstructionMsg value_instruction = 6;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder getValueInstructionBuilder() {
        bitField0_ |= 0x00000008;
        onChanged();
        return getValueInstructionFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * LEAVE STOBJ STLOC
       * </pre>
       *
       * <code>.IlInstructionMsg value_instruction = 6;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder getValueInstructionOrBuilder() {
        if (valueInstructionBuilder_ != null) {
          return valueInstructionBuilder_.getMessageOrBuilder();
        } else {
          return valueInstruction_ == null ?
              soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance() : valueInstruction_;
        }
      }
      /**
       * <pre>
       * LEAVE STOBJ STLOC
       * </pre>
       *
       * <code>.IlInstructionMsg value_instruction = 6;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder> 
          getValueInstructionFieldBuilder() {
        if (valueInstructionBuilder_ == null) {
          valueInstructionBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder>(
                  getValueInstruction(),
                  getParentForChildren(),
                  isClean());
          valueInstruction_ = null;
        }
        return valueInstructionBuilder_;
      }

      private soot.dotnet.proto.ProtoIlInstructions.IlFunctionMsg lambdaFunction_;
      private com.google.protobuf.SingleFieldBuilderV3<
          soot.dotnet.proto.ProtoIlInstructions.IlFunctionMsg, soot.dotnet.proto.ProtoIlInstructions.IlFunctionMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlFunctionMsgOrBuilder> lambdaFunctionBuilder_;
      /**
       * <code>.IlFunctionMsg lambdaFunction = 86;</code>
       * @return Whether the lambdaFunction field is set.
       */
      public boolean hasLambdaFunction() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <code>.IlFunctionMsg lambdaFunction = 86;</code>
       * @return The lambdaFunction.
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlFunctionMsg getLambdaFunction() {
        if (lambdaFunctionBuilder_ == null) {
          return lambdaFunction_ == null ? soot.dotnet.proto.ProtoIlInstructions.IlFunctionMsg.getDefaultInstance() : lambdaFunction_;
        } else {
          return lambdaFunctionBuilder_.getMessage();
        }
      }
      /**
       * <code>.IlFunctionMsg lambdaFunction = 86;</code>
       */
      public Builder setLambdaFunction(soot.dotnet.proto.ProtoIlInstructions.IlFunctionMsg value) {
        if (lambdaFunctionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          lambdaFunction_ = value;
        } else {
          lambdaFunctionBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <code>.IlFunctionMsg lambdaFunction = 86;</code>
       */
      public Builder setLambdaFunction(
          soot.dotnet.proto.ProtoIlInstructions.IlFunctionMsg.Builder builderForValue) {
        if (lambdaFunctionBuilder_ == null) {
          lambdaFunction_ = builderForValue.build();
        } else {
          lambdaFunctionBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <code>.IlFunctionMsg lambdaFunction = 86;</code>
       */
      public Builder mergeLambdaFunction(soot.dotnet.proto.ProtoIlInstructions.IlFunctionMsg value) {
        if (lambdaFunctionBuilder_ == null) {
          if (((bitField0_ & 0x00000010) != 0) &&
            lambdaFunction_ != null &&
            lambdaFunction_ != soot.dotnet.proto.ProtoIlInstructions.IlFunctionMsg.getDefaultInstance()) {
            getLambdaFunctionBuilder().mergeFrom(value);
          } else {
            lambdaFunction_ = value;
          }
        } else {
          lambdaFunctionBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <code>.IlFunctionMsg lambdaFunction = 86;</code>
       */
      public Builder clearLambdaFunction() {
        bitField0_ = (bitField0_ & ~0x00000010);
        lambdaFunction_ = null;
        if (lambdaFunctionBuilder_ != null) {
          lambdaFunctionBuilder_.dispose();
          lambdaFunctionBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>.IlFunctionMsg lambdaFunction = 86;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlFunctionMsg.Builder getLambdaFunctionBuilder() {
        bitField0_ |= 0x00000010;
        onChanged();
        return getLambdaFunctionFieldBuilder().getBuilder();
      }
      /**
       * <code>.IlFunctionMsg lambdaFunction = 86;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlFunctionMsgOrBuilder getLambdaFunctionOrBuilder() {
        if (lambdaFunctionBuilder_ != null) {
          return lambdaFunctionBuilder_.getMessageOrBuilder();
        } else {
          return lambdaFunction_ == null ?
              soot.dotnet.proto.ProtoIlInstructions.IlFunctionMsg.getDefaultInstance() : lambdaFunction_;
        }
      }
      /**
       * <code>.IlFunctionMsg lambdaFunction = 86;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          soot.dotnet.proto.ProtoIlInstructions.IlFunctionMsg, soot.dotnet.proto.ProtoIlInstructions.IlFunctionMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlFunctionMsgOrBuilder> 
          getLambdaFunctionFieldBuilder() {
        if (lambdaFunctionBuilder_ == null) {
          lambdaFunctionBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              soot.dotnet.proto.ProtoIlInstructions.IlFunctionMsg, soot.dotnet.proto.ProtoIlInstructions.IlFunctionMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlFunctionMsgOrBuilder>(
                  getLambdaFunction(),
                  getParentForChildren(),
                  isClean());
          lambdaFunction_ = null;
        }
        return lambdaFunctionBuilder_;
      }

      private java.lang.Object valueConstantString_ = "";
      /**
       * <pre>
       * LDSTR LDC_I4
       * </pre>
       *
       * <code>string value_constant_string = 7;</code>
       * @return The valueConstantString.
       */
      public java.lang.String getValueConstantString() {
        java.lang.Object ref = valueConstantString_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          valueConstantString_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * LDSTR LDC_I4
       * </pre>
       *
       * <code>string value_constant_string = 7;</code>
       * @return The bytes for valueConstantString.
       */
      public com.google.protobuf.ByteString
          getValueConstantStringBytes() {
        java.lang.Object ref = valueConstantString_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          valueConstantString_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * LDSTR LDC_I4
       * </pre>
       *
       * <code>string value_constant_string = 7;</code>
       * @param value The valueConstantString to set.
       * @return This builder for chaining.
       */
      public Builder setValueConstantString(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        valueConstantString_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * LDSTR LDC_I4
       * </pre>
       *
       * <code>string value_constant_string = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearValueConstantString() {
        valueConstantString_ = getDefaultInstance().getValueConstantString();
        bitField0_ = (bitField0_ & ~0x00000020);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * LDSTR LDC_I4
       * </pre>
       *
       * <code>string value_constant_string = 7;</code>
       * @param value The bytes for valueConstantString to set.
       * @return This builder for chaining.
       */
      public Builder setValueConstantStringBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        valueConstantString_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }

      private long valueConstantInt64_ ;
      /**
       * <code>int64 value_constant_int64 = 38;</code>
       * @return The valueConstantInt64.
       */
      @java.lang.Override
      public long getValueConstantInt64() {
        return valueConstantInt64_;
      }
      /**
       * <code>int64 value_constant_int64 = 38;</code>
       * @param value The valueConstantInt64 to set.
       * @return This builder for chaining.
       */
      public Builder setValueConstantInt64(long value) {
        
        valueConstantInt64_ = value;
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <code>int64 value_constant_int64 = 38;</code>
       * @return This builder for chaining.
       */
      public Builder clearValueConstantInt64() {
        bitField0_ = (bitField0_ & ~0x00000040);
        valueConstantInt64_ = 0L;
        onChanged();
        return this;
      }

      private float valueConstantFloat_ ;
      /**
       * <code>float value_constant_float = 39;</code>
       * @return The valueConstantFloat.
       */
      @java.lang.Override
      public float getValueConstantFloat() {
        return valueConstantFloat_;
      }
      /**
       * <code>float value_constant_float = 39;</code>
       * @param value The valueConstantFloat to set.
       * @return This builder for chaining.
       */
      public Builder setValueConstantFloat(float value) {
        
        valueConstantFloat_ = value;
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <code>float value_constant_float = 39;</code>
       * @return This builder for chaining.
       */
      public Builder clearValueConstantFloat() {
        bitField0_ = (bitField0_ & ~0x00000080);
        valueConstantFloat_ = 0F;
        onChanged();
        return this;
      }

      private double valueConstantDouble_ ;
      /**
       * <code>double value_constant_double = 40;</code>
       * @return The valueConstantDouble.
       */
      @java.lang.Override
      public double getValueConstantDouble() {
        return valueConstantDouble_;
      }
      /**
       * <code>double value_constant_double = 40;</code>
       * @param value The valueConstantDouble to set.
       * @return This builder for chaining.
       */
      public Builder setValueConstantDouble(double value) {
        
        valueConstantDouble_ = value;
        bitField0_ |= 0x00000100;
        onChanged();
        return this;
      }
      /**
       * <code>double value_constant_double = 40;</code>
       * @return This builder for chaining.
       */
      public Builder clearValueConstantDouble() {
        bitField0_ = (bitField0_ & ~0x00000100);
        valueConstantDouble_ = 0D;
        onChanged();
        return this;
      }

      private boolean valueConstantBool_ ;
      /**
       * <code>bool value_constant_bool = 61;</code>
       * @return The valueConstantBool.
       */
      @java.lang.Override
      public boolean getValueConstantBool() {
        return valueConstantBool_;
      }
      /**
       * <code>bool value_constant_bool = 61;</code>
       * @param value The valueConstantBool to set.
       * @return This builder for chaining.
       */
      public Builder setValueConstantBool(boolean value) {
        
        valueConstantBool_ = value;
        bitField0_ |= 0x00000200;
        onChanged();
        return this;
      }
      /**
       * <code>bool value_constant_bool = 61;</code>
       * @return This builder for chaining.
       */
      public Builder clearValueConstantBool() {
        bitField0_ = (bitField0_ & ~0x00000200);
        valueConstantBool_ = false;
        onChanged();
        return this;
      }

      private long valueConstantUint64_ ;
      /**
       * <code>uint64 value_constant_uint64 = 65;</code>
       * @return The valueConstantUint64.
       */
      @java.lang.Override
      public long getValueConstantUint64() {
        return valueConstantUint64_;
      }
      /**
       * <code>uint64 value_constant_uint64 = 65;</code>
       * @param value The valueConstantUint64 to set.
       * @return This builder for chaining.
       */
      public Builder setValueConstantUint64(long value) {
        
        valueConstantUint64_ = value;
        bitField0_ |= 0x00000400;
        onChanged();
        return this;
      }
      /**
       * <code>uint64 value_constant_uint64 = 65;</code>
       * @return This builder for chaining.
       */
      public Builder clearValueConstantUint64() {
        bitField0_ = (bitField0_ & ~0x00000400);
        valueConstantUint64_ = 0L;
        onChanged();
        return this;
      }

      private int constantType_ = 0;
      /**
       * <code>.IlType constant_type = 23;</code>
       * @return The enum numeric value on the wire for constantType.
       */
      @java.lang.Override public int getConstantTypeValue() {
        return constantType_;
      }
      /**
       * <code>.IlType constant_type = 23;</code>
       * @param value The enum numeric value on the wire for constantType to set.
       * @return This builder for chaining.
       */
      public Builder setConstantTypeValue(int value) {
        constantType_ = value;
        bitField0_ |= 0x00000800;
        onChanged();
        return this;
      }
      /**
       * <code>.IlType constant_type = 23;</code>
       * @return The constantType.
       */
      @java.lang.Override
      public soot.dotnet.proto.ProtoAssemblyAllTypes.IlType getConstantType() {
        soot.dotnet.proto.ProtoAssemblyAllTypes.IlType result = soot.dotnet.proto.ProtoAssemblyAllTypes.IlType.forNumber(constantType_);
        return result == null ? soot.dotnet.proto.ProtoAssemblyAllTypes.IlType.UNRECOGNIZED : result;
      }
      /**
       * <code>.IlType constant_type = 23;</code>
       * @param value The constantType to set.
       * @return This builder for chaining.
       */
      public Builder setConstantType(soot.dotnet.proto.ProtoAssemblyAllTypes.IlType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000800;
        constantType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.IlType constant_type = 23;</code>
       * @return This builder for chaining.
       */
      public Builder clearConstantType() {
        bitField0_ = (bitField0_ & ~0x00000800);
        constantType_ = 0;
        onChanged();
        return this;
      }

      private soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg target_;
      private com.google.protobuf.SingleFieldBuilderV3<
          soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder> targetBuilder_;
      /**
       * <pre>
       * STOBJ LDFLDA LDOBJ
       * </pre>
       *
       * <code>.IlInstructionMsg target = 8;</code>
       * @return Whether the target field is set.
       */
      public boolean hasTarget() {
        return ((bitField0_ & 0x00001000) != 0);
      }
      /**
       * <pre>
       * STOBJ LDFLDA LDOBJ
       * </pre>
       *
       * <code>.IlInstructionMsg target = 8;</code>
       * @return The target.
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg getTarget() {
        if (targetBuilder_ == null) {
          return target_ == null ? soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance() : target_;
        } else {
          return targetBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * STOBJ LDFLDA LDOBJ
       * </pre>
       *
       * <code>.IlInstructionMsg target = 8;</code>
       */
      public Builder setTarget(soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg value) {
        if (targetBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          target_ = value;
        } else {
          targetBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00001000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * STOBJ LDFLDA LDOBJ
       * </pre>
       *
       * <code>.IlInstructionMsg target = 8;</code>
       */
      public Builder setTarget(
          soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder builderForValue) {
        if (targetBuilder_ == null) {
          target_ = builderForValue.build();
        } else {
          targetBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00001000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * STOBJ LDFLDA LDOBJ
       * </pre>
       *
       * <code>.IlInstructionMsg target = 8;</code>
       */
      public Builder mergeTarget(soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg value) {
        if (targetBuilder_ == null) {
          if (((bitField0_ & 0x00001000) != 0) &&
            target_ != null &&
            target_ != soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance()) {
            getTargetBuilder().mergeFrom(value);
          } else {
            target_ = value;
          }
        } else {
          targetBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00001000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * STOBJ LDFLDA LDOBJ
       * </pre>
       *
       * <code>.IlInstructionMsg target = 8;</code>
       */
      public Builder clearTarget() {
        bitField0_ = (bitField0_ & ~0x00001000);
        target_ = null;
        if (targetBuilder_ != null) {
          targetBuilder_.dispose();
          targetBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * STOBJ LDFLDA LDOBJ
       * </pre>
       *
       * <code>.IlInstructionMsg target = 8;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder getTargetBuilder() {
        bitField0_ |= 0x00001000;
        onChanged();
        return getTargetFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * STOBJ LDFLDA LDOBJ
       * </pre>
       *
       * <code>.IlInstructionMsg target = 8;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder getTargetOrBuilder() {
        if (targetBuilder_ != null) {
          return targetBuilder_.getMessageOrBuilder();
        } else {
          return target_ == null ?
              soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance() : target_;
        }
      }
      /**
       * <pre>
       * STOBJ LDFLDA LDOBJ
       * </pre>
       *
       * <code>.IlInstructionMsg target = 8;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder> 
          getTargetFieldBuilder() {
        if (targetBuilder_ == null) {
          targetBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder>(
                  getTarget(),
                  getParentForChildren(),
                  isClean());
          target_ = null;
        }
        return targetBuilder_;
      }

      private soot.dotnet.proto.ProtoAssemblyAllTypes.TypeDefinition type_;
      private com.google.protobuf.SingleFieldBuilderV3<
          soot.dotnet.proto.ProtoAssemblyAllTypes.TypeDefinition, soot.dotnet.proto.ProtoAssemblyAllTypes.TypeDefinition.Builder, soot.dotnet.proto.ProtoAssemblyAllTypes.TypeDefinitionOrBuilder> typeBuilder_;
      /**
       * <pre>
       * STOBJ LDOBJ NEWARR LDELEMA CASTCLASS ISINST UNBOXANY
       * </pre>
       *
       * <code>.TypeDefinition type = 9;</code>
       * @return Whether the type field is set.
       */
      public boolean hasType() {
        return ((bitField0_ & 0x00002000) != 0);
      }
      /**
       * <pre>
       * STOBJ LDOBJ NEWARR LDELEMA CASTCLASS ISINST UNBOXANY
       * </pre>
       *
       * <code>.TypeDefinition type = 9;</code>
       * @return The type.
       */
      public soot.dotnet.proto.ProtoAssemblyAllTypes.TypeDefinition getType() {
        if (typeBuilder_ == null) {
          return type_ == null ? soot.dotnet.proto.ProtoAssemblyAllTypes.TypeDefinition.getDefaultInstance() : type_;
        } else {
          return typeBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * STOBJ LDOBJ NEWARR LDELEMA CASTCLASS ISINST UNBOXANY
       * </pre>
       *
       * <code>.TypeDefinition type = 9;</code>
       */
      public Builder setType(soot.dotnet.proto.ProtoAssemblyAllTypes.TypeDefinition value) {
        if (typeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          type_ = value;
        } else {
          typeBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00002000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * STOBJ LDOBJ NEWARR LDELEMA CASTCLASS ISINST UNBOXANY
       * </pre>
       *
       * <code>.TypeDefinition type = 9;</code>
       */
      public Builder setType(
          soot.dotnet.proto.ProtoAssemblyAllTypes.TypeDefinition.Builder builderForValue) {
        if (typeBuilder_ == null) {
          type_ = builderForValue.build();
        } else {
          typeBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00002000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * STOBJ LDOBJ NEWARR LDELEMA CASTCLASS ISINST UNBOXANY
       * </pre>
       *
       * <code>.TypeDefinition type = 9;</code>
       */
      public Builder mergeType(soot.dotnet.proto.ProtoAssemblyAllTypes.TypeDefinition value) {
        if (typeBuilder_ == null) {
          if (((bitField0_ & 0x00002000) != 0) &&
            type_ != null &&
            type_ != soot.dotnet.proto.ProtoAssemblyAllTypes.TypeDefinition.getDefaultInstance()) {
            getTypeBuilder().mergeFrom(value);
          } else {
            type_ = value;
          }
        } else {
          typeBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00002000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * STOBJ LDOBJ NEWARR LDELEMA CASTCLASS ISINST UNBOXANY
       * </pre>
       *
       * <code>.TypeDefinition type = 9;</code>
       */
      public Builder clearType() {
        bitField0_ = (bitField0_ & ~0x00002000);
        type_ = null;
        if (typeBuilder_ != null) {
          typeBuilder_.dispose();
          typeBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * STOBJ LDOBJ NEWARR LDELEMA CASTCLASS ISINST UNBOXANY
       * </pre>
       *
       * <code>.TypeDefinition type = 9;</code>
       */
      public soot.dotnet.proto.ProtoAssemblyAllTypes.TypeDefinition.Builder getTypeBuilder() {
        bitField0_ |= 0x00002000;
        onChanged();
        return getTypeFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * STOBJ LDOBJ NEWARR LDELEMA CASTCLASS ISINST UNBOXANY
       * </pre>
       *
       * <code>.TypeDefinition type = 9;</code>
       */
      public soot.dotnet.proto.ProtoAssemblyAllTypes.TypeDefinitionOrBuilder getTypeOrBuilder() {
        if (typeBuilder_ != null) {
          return typeBuilder_.getMessageOrBuilder();
        } else {
          return type_ == null ?
              soot.dotnet.proto.ProtoAssemblyAllTypes.TypeDefinition.getDefaultInstance() : type_;
        }
      }
      /**
       * <pre>
       * STOBJ LDOBJ NEWARR LDELEMA CASTCLASS ISINST UNBOXANY
       * </pre>
       *
       * <code>.TypeDefinition type = 9;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          soot.dotnet.proto.ProtoAssemblyAllTypes.TypeDefinition, soot.dotnet.proto.ProtoAssemblyAllTypes.TypeDefinition.Builder, soot.dotnet.proto.ProtoAssemblyAllTypes.TypeDefinitionOrBuilder> 
          getTypeFieldBuilder() {
        if (typeBuilder_ == null) {
          typeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              soot.dotnet.proto.ProtoAssemblyAllTypes.TypeDefinition, soot.dotnet.proto.ProtoAssemblyAllTypes.TypeDefinition.Builder, soot.dotnet.proto.ProtoAssemblyAllTypes.TypeDefinitionOrBuilder>(
                  getType(),
                  getParentForChildren(),
                  isClean());
          type_ = null;
        }
        return typeBuilder_;
      }

      private soot.dotnet.proto.ProtoAssemblyAllTypes.FieldDefinition field_;
      private com.google.protobuf.SingleFieldBuilderV3<
          soot.dotnet.proto.ProtoAssemblyAllTypes.FieldDefinition, soot.dotnet.proto.ProtoAssemblyAllTypes.FieldDefinition.Builder, soot.dotnet.proto.ProtoAssemblyAllTypes.FieldDefinitionOrBuilder> fieldBuilder_;
      /**
       * <pre>
       * LDFLDA LDMEMBERTOKEN
       * </pre>
       *
       * <code>.FieldDefinition field = 10;</code>
       * @return Whether the field field is set.
       */
      public boolean hasField() {
        return ((bitField0_ & 0x00004000) != 0);
      }
      /**
       * <pre>
       * LDFLDA LDMEMBERTOKEN
       * </pre>
       *
       * <code>.FieldDefinition field = 10;</code>
       * @return The field.
       */
      public soot.dotnet.proto.ProtoAssemblyAllTypes.FieldDefinition getField() {
        if (fieldBuilder_ == null) {
          return field_ == null ? soot.dotnet.proto.ProtoAssemblyAllTypes.FieldDefinition.getDefaultInstance() : field_;
        } else {
          return fieldBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * LDFLDA LDMEMBERTOKEN
       * </pre>
       *
       * <code>.FieldDefinition field = 10;</code>
       */
      public Builder setField(soot.dotnet.proto.ProtoAssemblyAllTypes.FieldDefinition value) {
        if (fieldBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          field_ = value;
        } else {
          fieldBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00004000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * LDFLDA LDMEMBERTOKEN
       * </pre>
       *
       * <code>.FieldDefinition field = 10;</code>
       */
      public Builder setField(
          soot.dotnet.proto.ProtoAssemblyAllTypes.FieldDefinition.Builder builderForValue) {
        if (fieldBuilder_ == null) {
          field_ = builderForValue.build();
        } else {
          fieldBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00004000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * LDFLDA LDMEMBERTOKEN
       * </pre>
       *
       * <code>.FieldDefinition field = 10;</code>
       */
      public Builder mergeField(soot.dotnet.proto.ProtoAssemblyAllTypes.FieldDefinition value) {
        if (fieldBuilder_ == null) {
          if (((bitField0_ & 0x00004000) != 0) &&
            field_ != null &&
            field_ != soot.dotnet.proto.ProtoAssemblyAllTypes.FieldDefinition.getDefaultInstance()) {
            getFieldBuilder().mergeFrom(value);
          } else {
            field_ = value;
          }
        } else {
          fieldBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00004000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * LDFLDA LDMEMBERTOKEN
       * </pre>
       *
       * <code>.FieldDefinition field = 10;</code>
       */
      public Builder clearField() {
        bitField0_ = (bitField0_ & ~0x00004000);
        field_ = null;
        if (fieldBuilder_ != null) {
          fieldBuilder_.dispose();
          fieldBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * LDFLDA LDMEMBERTOKEN
       * </pre>
       *
       * <code>.FieldDefinition field = 10;</code>
       */
      public soot.dotnet.proto.ProtoAssemblyAllTypes.FieldDefinition.Builder getFieldBuilder() {
        bitField0_ |= 0x00004000;
        onChanged();
        return getFieldFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * LDFLDA LDMEMBERTOKEN
       * </pre>
       *
       * <code>.FieldDefinition field = 10;</code>
       */
      public soot.dotnet.proto.ProtoAssemblyAllTypes.FieldDefinitionOrBuilder getFieldOrBuilder() {
        if (fieldBuilder_ != null) {
          return fieldBuilder_.getMessageOrBuilder();
        } else {
          return field_ == null ?
              soot.dotnet.proto.ProtoAssemblyAllTypes.FieldDefinition.getDefaultInstance() : field_;
        }
      }
      /**
       * <pre>
       * LDFLDA LDMEMBERTOKEN
       * </pre>
       *
       * <code>.FieldDefinition field = 10;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          soot.dotnet.proto.ProtoAssemblyAllTypes.FieldDefinition, soot.dotnet.proto.ProtoAssemblyAllTypes.FieldDefinition.Builder, soot.dotnet.proto.ProtoAssemblyAllTypes.FieldDefinitionOrBuilder> 
          getFieldFieldBuilder() {
        if (fieldBuilder_ == null) {
          fieldBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              soot.dotnet.proto.ProtoAssemblyAllTypes.FieldDefinition, soot.dotnet.proto.ProtoAssemblyAllTypes.FieldDefinition.Builder, soot.dotnet.proto.ProtoAssemblyAllTypes.FieldDefinitionOrBuilder>(
                  getField(),
                  getParentForChildren(),
                  isClean());
          field_ = null;
        }
        return fieldBuilder_;
      }

      private soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg variable_;
      private com.google.protobuf.SingleFieldBuilderV3<
          soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg, soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlVariableMsgOrBuilder> variableBuilder_;
      /**
       * <pre>
       * LDLOC STLOC TryCatchHandler
       * </pre>
       *
       * <code>.IlVariableMsg variable = 11;</code>
       * @return Whether the variable field is set.
       */
      public boolean hasVariable() {
        return ((bitField0_ & 0x00008000) != 0);
      }
      /**
       * <pre>
       * LDLOC STLOC TryCatchHandler
       * </pre>
       *
       * <code>.IlVariableMsg variable = 11;</code>
       * @return The variable.
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg getVariable() {
        if (variableBuilder_ == null) {
          return variable_ == null ? soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg.getDefaultInstance() : variable_;
        } else {
          return variableBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * LDLOC STLOC TryCatchHandler
       * </pre>
       *
       * <code>.IlVariableMsg variable = 11;</code>
       */
      public Builder setVariable(soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg value) {
        if (variableBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          variable_ = value;
        } else {
          variableBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00008000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * LDLOC STLOC TryCatchHandler
       * </pre>
       *
       * <code>.IlVariableMsg variable = 11;</code>
       */
      public Builder setVariable(
          soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg.Builder builderForValue) {
        if (variableBuilder_ == null) {
          variable_ = builderForValue.build();
        } else {
          variableBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00008000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * LDLOC STLOC TryCatchHandler
       * </pre>
       *
       * <code>.IlVariableMsg variable = 11;</code>
       */
      public Builder mergeVariable(soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg value) {
        if (variableBuilder_ == null) {
          if (((bitField0_ & 0x00008000) != 0) &&
            variable_ != null &&
            variable_ != soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg.getDefaultInstance()) {
            getVariableBuilder().mergeFrom(value);
          } else {
            variable_ = value;
          }
        } else {
          variableBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00008000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * LDLOC STLOC TryCatchHandler
       * </pre>
       *
       * <code>.IlVariableMsg variable = 11;</code>
       */
      public Builder clearVariable() {
        bitField0_ = (bitField0_ & ~0x00008000);
        variable_ = null;
        if (variableBuilder_ != null) {
          variableBuilder_.dispose();
          variableBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * LDLOC STLOC TryCatchHandler
       * </pre>
       *
       * <code>.IlVariableMsg variable = 11;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg.Builder getVariableBuilder() {
        bitField0_ |= 0x00008000;
        onChanged();
        return getVariableFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * LDLOC STLOC TryCatchHandler
       * </pre>
       *
       * <code>.IlVariableMsg variable = 11;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlVariableMsgOrBuilder getVariableOrBuilder() {
        if (variableBuilder_ != null) {
          return variableBuilder_.getMessageOrBuilder();
        } else {
          return variable_ == null ?
              soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg.getDefaultInstance() : variable_;
        }
      }
      /**
       * <pre>
       * LDLOC STLOC TryCatchHandler
       * </pre>
       *
       * <code>.IlVariableMsg variable = 11;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg, soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlVariableMsgOrBuilder> 
          getVariableFieldBuilder() {
        if (variableBuilder_ == null) {
          variableBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg, soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlVariableMsgOrBuilder>(
                  getVariable(),
                  getParentForChildren(),
                  isClean());
          variable_ = null;
        }
        return variableBuilder_;
      }

      private int operator_ = 0;
      /**
       * <pre>
       * TODO may insert Result type + Underlying type
       * </pre>
       *
       * <code>.IlInstructionMsg.IlBinaryNumericOperator operator = 12;</code>
       * @return The enum numeric value on the wire for operator.
       */
      @java.lang.Override public int getOperatorValue() {
        return operator_;
      }
      /**
       * <pre>
       * TODO may insert Result type + Underlying type
       * </pre>
       *
       * <code>.IlInstructionMsg.IlBinaryNumericOperator operator = 12;</code>
       * @param value The enum numeric value on the wire for operator to set.
       * @return This builder for chaining.
       */
      public Builder setOperatorValue(int value) {
        operator_ = value;
        bitField0_ |= 0x00010000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * TODO may insert Result type + Underlying type
       * </pre>
       *
       * <code>.IlInstructionMsg.IlBinaryNumericOperator operator = 12;</code>
       * @return The operator.
       */
      @java.lang.Override
      public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlBinaryNumericOperator getOperator() {
        soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlBinaryNumericOperator result = soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlBinaryNumericOperator.forNumber(operator_);
        return result == null ? soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlBinaryNumericOperator.UNRECOGNIZED : result;
      }
      /**
       * <pre>
       * TODO may insert Result type + Underlying type
       * </pre>
       *
       * <code>.IlInstructionMsg.IlBinaryNumericOperator operator = 12;</code>
       * @param value The operator to set.
       * @return This builder for chaining.
       */
      public Builder setOperator(soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlBinaryNumericOperator value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00010000;
        operator_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * TODO may insert Result type + Underlying type
       * </pre>
       *
       * <code>.IlInstructionMsg.IlBinaryNumericOperator operator = 12;</code>
       * @return This builder for chaining.
       */
      public Builder clearOperator() {
        bitField0_ = (bitField0_ & ~0x00010000);
        operator_ = 0;
        onChanged();
        return this;
      }

      private int sign_ = 0;
      /**
       * <code>.IlInstructionMsg.IlSign sign = 20;</code>
       * @return The enum numeric value on the wire for sign.
       */
      @java.lang.Override public int getSignValue() {
        return sign_;
      }
      /**
       * <code>.IlInstructionMsg.IlSign sign = 20;</code>
       * @param value The enum numeric value on the wire for sign to set.
       * @return This builder for chaining.
       */
      public Builder setSignValue(int value) {
        sign_ = value;
        bitField0_ |= 0x00020000;
        onChanged();
        return this;
      }
      /**
       * <code>.IlInstructionMsg.IlSign sign = 20;</code>
       * @return The sign.
       */
      @java.lang.Override
      public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlSign getSign() {
        soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlSign result = soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlSign.forNumber(sign_);
        return result == null ? soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlSign.UNRECOGNIZED : result;
      }
      /**
       * <code>.IlInstructionMsg.IlSign sign = 20;</code>
       * @param value The sign to set.
       * @return This builder for chaining.
       */
      public Builder setSign(soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlSign value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00020000;
        sign_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.IlInstructionMsg.IlSign sign = 20;</code>
       * @return This builder for chaining.
       */
      public Builder clearSign() {
        bitField0_ = (bitField0_ & ~0x00020000);
        sign_ = 0;
        onChanged();
        return this;
      }

      private soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg left_;
      private com.google.protobuf.SingleFieldBuilderV3<
          soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder> leftBuilder_;
      /**
       * <code>.IlInstructionMsg left = 14;</code>
       * @return Whether the left field is set.
       */
      public boolean hasLeft() {
        return ((bitField0_ & 0x00040000) != 0);
      }
      /**
       * <code>.IlInstructionMsg left = 14;</code>
       * @return The left.
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg getLeft() {
        if (leftBuilder_ == null) {
          return left_ == null ? soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance() : left_;
        } else {
          return leftBuilder_.getMessage();
        }
      }
      /**
       * <code>.IlInstructionMsg left = 14;</code>
       */
      public Builder setLeft(soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg value) {
        if (leftBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          left_ = value;
        } else {
          leftBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00040000;
        onChanged();
        return this;
      }
      /**
       * <code>.IlInstructionMsg left = 14;</code>
       */
      public Builder setLeft(
          soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder builderForValue) {
        if (leftBuilder_ == null) {
          left_ = builderForValue.build();
        } else {
          leftBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00040000;
        onChanged();
        return this;
      }
      /**
       * <code>.IlInstructionMsg left = 14;</code>
       */
      public Builder mergeLeft(soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg value) {
        if (leftBuilder_ == null) {
          if (((bitField0_ & 0x00040000) != 0) &&
            left_ != null &&
            left_ != soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance()) {
            getLeftBuilder().mergeFrom(value);
          } else {
            left_ = value;
          }
        } else {
          leftBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00040000;
        onChanged();
        return this;
      }
      /**
       * <code>.IlInstructionMsg left = 14;</code>
       */
      public Builder clearLeft() {
        bitField0_ = (bitField0_ & ~0x00040000);
        left_ = null;
        if (leftBuilder_ != null) {
          leftBuilder_.dispose();
          leftBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>.IlInstructionMsg left = 14;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder getLeftBuilder() {
        bitField0_ |= 0x00040000;
        onChanged();
        return getLeftFieldBuilder().getBuilder();
      }
      /**
       * <code>.IlInstructionMsg left = 14;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder getLeftOrBuilder() {
        if (leftBuilder_ != null) {
          return leftBuilder_.getMessageOrBuilder();
        } else {
          return left_ == null ?
              soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance() : left_;
        }
      }
      /**
       * <code>.IlInstructionMsg left = 14;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder> 
          getLeftFieldBuilder() {
        if (leftBuilder_ == null) {
          leftBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder>(
                  getLeft(),
                  getParentForChildren(),
                  isClean());
          left_ = null;
        }
        return leftBuilder_;
      }

      private soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg right_;
      private com.google.protobuf.SingleFieldBuilderV3<
          soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder> rightBuilder_;
      /**
       * <code>.IlInstructionMsg right = 15;</code>
       * @return Whether the right field is set.
       */
      public boolean hasRight() {
        return ((bitField0_ & 0x00080000) != 0);
      }
      /**
       * <code>.IlInstructionMsg right = 15;</code>
       * @return The right.
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg getRight() {
        if (rightBuilder_ == null) {
          return right_ == null ? soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance() : right_;
        } else {
          return rightBuilder_.getMessage();
        }
      }
      /**
       * <code>.IlInstructionMsg right = 15;</code>
       */
      public Builder setRight(soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg value) {
        if (rightBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          right_ = value;
        } else {
          rightBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00080000;
        onChanged();
        return this;
      }
      /**
       * <code>.IlInstructionMsg right = 15;</code>
       */
      public Builder setRight(
          soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder builderForValue) {
        if (rightBuilder_ == null) {
          right_ = builderForValue.build();
        } else {
          rightBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00080000;
        onChanged();
        return this;
      }
      /**
       * <code>.IlInstructionMsg right = 15;</code>
       */
      public Builder mergeRight(soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg value) {
        if (rightBuilder_ == null) {
          if (((bitField0_ & 0x00080000) != 0) &&
            right_ != null &&
            right_ != soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance()) {
            getRightBuilder().mergeFrom(value);
          } else {
            right_ = value;
          }
        } else {
          rightBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00080000;
        onChanged();
        return this;
      }
      /**
       * <code>.IlInstructionMsg right = 15;</code>
       */
      public Builder clearRight() {
        bitField0_ = (bitField0_ & ~0x00080000);
        right_ = null;
        if (rightBuilder_ != null) {
          rightBuilder_.dispose();
          rightBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>.IlInstructionMsg right = 15;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder getRightBuilder() {
        bitField0_ |= 0x00080000;
        onChanged();
        return getRightFieldBuilder().getBuilder();
      }
      /**
       * <code>.IlInstructionMsg right = 15;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder getRightOrBuilder() {
        if (rightBuilder_ != null) {
          return rightBuilder_.getMessageOrBuilder();
        } else {
          return right_ == null ?
              soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance() : right_;
        }
      }
      /**
       * <code>.IlInstructionMsg right = 15;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder> 
          getRightFieldBuilder() {
        if (rightBuilder_ == null) {
          rightBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder>(
                  getRight(),
                  getParentForChildren(),
                  isClean());
          right_ = null;
        }
        return rightBuilder_;
      }

      private java.lang.Object targetLabel_ = "";
      /**
       * <pre>
       * BRANCH
       * </pre>
       *
       * <code>string target_label = 18;</code>
       * @return The targetLabel.
       */
      public java.lang.String getTargetLabel() {
        java.lang.Object ref = targetLabel_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          targetLabel_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * BRANCH
       * </pre>
       *
       * <code>string target_label = 18;</code>
       * @return The bytes for targetLabel.
       */
      public com.google.protobuf.ByteString
          getTargetLabelBytes() {
        java.lang.Object ref = targetLabel_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          targetLabel_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * BRANCH
       * </pre>
       *
       * <code>string target_label = 18;</code>
       * @param value The targetLabel to set.
       * @return This builder for chaining.
       */
      public Builder setTargetLabel(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        targetLabel_ = value;
        bitField0_ |= 0x00100000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * BRANCH
       * </pre>
       *
       * <code>string target_label = 18;</code>
       * @return This builder for chaining.
       */
      public Builder clearTargetLabel() {
        targetLabel_ = getDefaultInstance().getTargetLabel();
        bitField0_ = (bitField0_ & ~0x00100000);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * BRANCH
       * </pre>
       *
       * <code>string target_label = 18;</code>
       * @param value The bytes for targetLabel to set.
       * @return This builder for chaining.
       */
      public Builder setTargetLabelBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        targetLabel_ = value;
        bitField0_ |= 0x00100000;
        onChanged();
        return this;
      }

      private int comparisonKind_ = 0;
      /**
       * <code>.IlInstructionMsg.IlComparisonKind comparison_kind = 21;</code>
       * @return The enum numeric value on the wire for comparisonKind.
       */
      @java.lang.Override public int getComparisonKindValue() {
        return comparisonKind_;
      }
      /**
       * <code>.IlInstructionMsg.IlComparisonKind comparison_kind = 21;</code>
       * @param value The enum numeric value on the wire for comparisonKind to set.
       * @return This builder for chaining.
       */
      public Builder setComparisonKindValue(int value) {
        comparisonKind_ = value;
        bitField0_ |= 0x00200000;
        onChanged();
        return this;
      }
      /**
       * <code>.IlInstructionMsg.IlComparisonKind comparison_kind = 21;</code>
       * @return The comparisonKind.
       */
      @java.lang.Override
      public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlComparisonKind getComparisonKind() {
        soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlComparisonKind result = soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlComparisonKind.forNumber(comparisonKind_);
        return result == null ? soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlComparisonKind.UNRECOGNIZED : result;
      }
      /**
       * <code>.IlInstructionMsg.IlComparisonKind comparison_kind = 21;</code>
       * @param value The comparisonKind to set.
       * @return This builder for chaining.
       */
      public Builder setComparisonKind(soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlComparisonKind value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00200000;
        comparisonKind_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.IlInstructionMsg.IlComparisonKind comparison_kind = 21;</code>
       * @return This builder for chaining.
       */
      public Builder clearComparisonKind() {
        bitField0_ = (bitField0_ & ~0x00200000);
        comparisonKind_ = 0;
        onChanged();
        return this;
      }

      private soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg condition_;
      private com.google.protobuf.SingleFieldBuilderV3<
          soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder> conditionBuilder_;
      /**
       * <pre>
       * IF_INSTRUCTION
       * </pre>
       *
       * <code>.IlInstructionMsg condition = 22;</code>
       * @return Whether the condition field is set.
       */
      public boolean hasCondition() {
        return ((bitField0_ & 0x00400000) != 0);
      }
      /**
       * <pre>
       * IF_INSTRUCTION
       * </pre>
       *
       * <code>.IlInstructionMsg condition = 22;</code>
       * @return The condition.
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg getCondition() {
        if (conditionBuilder_ == null) {
          return condition_ == null ? soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance() : condition_;
        } else {
          return conditionBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * IF_INSTRUCTION
       * </pre>
       *
       * <code>.IlInstructionMsg condition = 22;</code>
       */
      public Builder setCondition(soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg value) {
        if (conditionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          condition_ = value;
        } else {
          conditionBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00400000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * IF_INSTRUCTION
       * </pre>
       *
       * <code>.IlInstructionMsg condition = 22;</code>
       */
      public Builder setCondition(
          soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder builderForValue) {
        if (conditionBuilder_ == null) {
          condition_ = builderForValue.build();
        } else {
          conditionBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00400000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * IF_INSTRUCTION
       * </pre>
       *
       * <code>.IlInstructionMsg condition = 22;</code>
       */
      public Builder mergeCondition(soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg value) {
        if (conditionBuilder_ == null) {
          if (((bitField0_ & 0x00400000) != 0) &&
            condition_ != null &&
            condition_ != soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance()) {
            getConditionBuilder().mergeFrom(value);
          } else {
            condition_ = value;
          }
        } else {
          conditionBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00400000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * IF_INSTRUCTION
       * </pre>
       *
       * <code>.IlInstructionMsg condition = 22;</code>
       */
      public Builder clearCondition() {
        bitField0_ = (bitField0_ & ~0x00400000);
        condition_ = null;
        if (conditionBuilder_ != null) {
          conditionBuilder_.dispose();
          conditionBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * IF_INSTRUCTION
       * </pre>
       *
       * <code>.IlInstructionMsg condition = 22;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder getConditionBuilder() {
        bitField0_ |= 0x00400000;
        onChanged();
        return getConditionFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * IF_INSTRUCTION
       * </pre>
       *
       * <code>.IlInstructionMsg condition = 22;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder getConditionOrBuilder() {
        if (conditionBuilder_ != null) {
          return conditionBuilder_.getMessageOrBuilder();
        } else {
          return condition_ == null ?
              soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance() : condition_;
        }
      }
      /**
       * <pre>
       * IF_INSTRUCTION
       * </pre>
       *
       * <code>.IlInstructionMsg condition = 22;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder> 
          getConditionFieldBuilder() {
        if (conditionBuilder_ == null) {
          conditionBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder>(
                  getCondition(),
                  getParentForChildren(),
                  isClean());
          condition_ = null;
        }
        return conditionBuilder_;
      }

      private soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg trueInst_;
      private com.google.protobuf.SingleFieldBuilderV3<
          soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder> trueInstBuilder_;
      /**
       * <code>.IlInstructionMsg true_inst = 83;</code>
       * @return Whether the trueInst field is set.
       */
      public boolean hasTrueInst() {
        return ((bitField0_ & 0x00800000) != 0);
      }
      /**
       * <code>.IlInstructionMsg true_inst = 83;</code>
       * @return The trueInst.
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg getTrueInst() {
        if (trueInstBuilder_ == null) {
          return trueInst_ == null ? soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance() : trueInst_;
        } else {
          return trueInstBuilder_.getMessage();
        }
      }
      /**
       * <code>.IlInstructionMsg true_inst = 83;</code>
       */
      public Builder setTrueInst(soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg value) {
        if (trueInstBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          trueInst_ = value;
        } else {
          trueInstBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00800000;
        onChanged();
        return this;
      }
      /**
       * <code>.IlInstructionMsg true_inst = 83;</code>
       */
      public Builder setTrueInst(
          soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder builderForValue) {
        if (trueInstBuilder_ == null) {
          trueInst_ = builderForValue.build();
        } else {
          trueInstBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00800000;
        onChanged();
        return this;
      }
      /**
       * <code>.IlInstructionMsg true_inst = 83;</code>
       */
      public Builder mergeTrueInst(soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg value) {
        if (trueInstBuilder_ == null) {
          if (((bitField0_ & 0x00800000) != 0) &&
            trueInst_ != null &&
            trueInst_ != soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance()) {
            getTrueInstBuilder().mergeFrom(value);
          } else {
            trueInst_ = value;
          }
        } else {
          trueInstBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00800000;
        onChanged();
        return this;
      }
      /**
       * <code>.IlInstructionMsg true_inst = 83;</code>
       */
      public Builder clearTrueInst() {
        bitField0_ = (bitField0_ & ~0x00800000);
        trueInst_ = null;
        if (trueInstBuilder_ != null) {
          trueInstBuilder_.dispose();
          trueInstBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>.IlInstructionMsg true_inst = 83;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder getTrueInstBuilder() {
        bitField0_ |= 0x00800000;
        onChanged();
        return getTrueInstFieldBuilder().getBuilder();
      }
      /**
       * <code>.IlInstructionMsg true_inst = 83;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder getTrueInstOrBuilder() {
        if (trueInstBuilder_ != null) {
          return trueInstBuilder_.getMessageOrBuilder();
        } else {
          return trueInst_ == null ?
              soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance() : trueInst_;
        }
      }
      /**
       * <code>.IlInstructionMsg true_inst = 83;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder> 
          getTrueInstFieldBuilder() {
        if (trueInstBuilder_ == null) {
          trueInstBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder>(
                  getTrueInst(),
                  getParentForChildren(),
                  isClean());
          trueInst_ = null;
        }
        return trueInstBuilder_;
      }

      private soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg falseInst_;
      private com.google.protobuf.SingleFieldBuilderV3<
          soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder> falseInstBuilder_;
      /**
       * <code>.IlInstructionMsg false_inst = 84;</code>
       * @return Whether the falseInst field is set.
       */
      public boolean hasFalseInst() {
        return ((bitField0_ & 0x01000000) != 0);
      }
      /**
       * <code>.IlInstructionMsg false_inst = 84;</code>
       * @return The falseInst.
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg getFalseInst() {
        if (falseInstBuilder_ == null) {
          return falseInst_ == null ? soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance() : falseInst_;
        } else {
          return falseInstBuilder_.getMessage();
        }
      }
      /**
       * <code>.IlInstructionMsg false_inst = 84;</code>
       */
      public Builder setFalseInst(soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg value) {
        if (falseInstBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          falseInst_ = value;
        } else {
          falseInstBuilder_.setMessage(value);
        }
        bitField0_ |= 0x01000000;
        onChanged();
        return this;
      }
      /**
       * <code>.IlInstructionMsg false_inst = 84;</code>
       */
      public Builder setFalseInst(
          soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder builderForValue) {
        if (falseInstBuilder_ == null) {
          falseInst_ = builderForValue.build();
        } else {
          falseInstBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x01000000;
        onChanged();
        return this;
      }
      /**
       * <code>.IlInstructionMsg false_inst = 84;</code>
       */
      public Builder mergeFalseInst(soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg value) {
        if (falseInstBuilder_ == null) {
          if (((bitField0_ & 0x01000000) != 0) &&
            falseInst_ != null &&
            falseInst_ != soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance()) {
            getFalseInstBuilder().mergeFrom(value);
          } else {
            falseInst_ = value;
          }
        } else {
          falseInstBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x01000000;
        onChanged();
        return this;
      }
      /**
       * <code>.IlInstructionMsg false_inst = 84;</code>
       */
      public Builder clearFalseInst() {
        bitField0_ = (bitField0_ & ~0x01000000);
        falseInst_ = null;
        if (falseInstBuilder_ != null) {
          falseInstBuilder_.dispose();
          falseInstBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>.IlInstructionMsg false_inst = 84;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder getFalseInstBuilder() {
        bitField0_ |= 0x01000000;
        onChanged();
        return getFalseInstFieldBuilder().getBuilder();
      }
      /**
       * <code>.IlInstructionMsg false_inst = 84;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder getFalseInstOrBuilder() {
        if (falseInstBuilder_ != null) {
          return falseInstBuilder_.getMessageOrBuilder();
        } else {
          return falseInst_ == null ?
              soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance() : falseInst_;
        }
      }
      /**
       * <code>.IlInstructionMsg false_inst = 84;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder> 
          getFalseInstFieldBuilder() {
        if (falseInstBuilder_ == null) {
          falseInstBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder>(
                  getFalseInst(),
                  getParentForChildren(),
                  isClean());
          falseInst_ = null;
        }
        return falseInstBuilder_;
      }

      private soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg array_;
      private com.google.protobuf.SingleFieldBuilderV3<
          soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder> arrayBuilder_;
      /**
       * <pre>
       *LDLEN LDELEMA
       * </pre>
       *
       * <code>.IlInstructionMsg array = 30;</code>
       * @return Whether the array field is set.
       */
      public boolean hasArray() {
        return ((bitField0_ & 0x02000000) != 0);
      }
      /**
       * <pre>
       *LDLEN LDELEMA
       * </pre>
       *
       * <code>.IlInstructionMsg array = 30;</code>
       * @return The array.
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg getArray() {
        if (arrayBuilder_ == null) {
          return array_ == null ? soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance() : array_;
        } else {
          return arrayBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       *LDLEN LDELEMA
       * </pre>
       *
       * <code>.IlInstructionMsg array = 30;</code>
       */
      public Builder setArray(soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg value) {
        if (arrayBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          array_ = value;
        } else {
          arrayBuilder_.setMessage(value);
        }
        bitField0_ |= 0x02000000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *LDLEN LDELEMA
       * </pre>
       *
       * <code>.IlInstructionMsg array = 30;</code>
       */
      public Builder setArray(
          soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder builderForValue) {
        if (arrayBuilder_ == null) {
          array_ = builderForValue.build();
        } else {
          arrayBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x02000000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *LDLEN LDELEMA
       * </pre>
       *
       * <code>.IlInstructionMsg array = 30;</code>
       */
      public Builder mergeArray(soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg value) {
        if (arrayBuilder_ == null) {
          if (((bitField0_ & 0x02000000) != 0) &&
            array_ != null &&
            array_ != soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance()) {
            getArrayBuilder().mergeFrom(value);
          } else {
            array_ = value;
          }
        } else {
          arrayBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x02000000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       *LDLEN LDELEMA
       * </pre>
       *
       * <code>.IlInstructionMsg array = 30;</code>
       */
      public Builder clearArray() {
        bitField0_ = (bitField0_ & ~0x02000000);
        array_ = null;
        if (arrayBuilder_ != null) {
          arrayBuilder_.dispose();
          arrayBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       *LDLEN LDELEMA
       * </pre>
       *
       * <code>.IlInstructionMsg array = 30;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder getArrayBuilder() {
        bitField0_ |= 0x02000000;
        onChanged();
        return getArrayFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       *LDLEN LDELEMA
       * </pre>
       *
       * <code>.IlInstructionMsg array = 30;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder getArrayOrBuilder() {
        if (arrayBuilder_ != null) {
          return arrayBuilder_.getMessageOrBuilder();
        } else {
          return array_ == null ?
              soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance() : array_;
        }
      }
      /**
       * <pre>
       *LDLEN LDELEMA
       * </pre>
       *
       * <code>.IlInstructionMsg array = 30;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder> 
          getArrayFieldBuilder() {
        if (arrayBuilder_ == null) {
          arrayBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder>(
                  getArray(),
                  getParentForChildren(),
                  isClean());
          array_ = null;
        }
        return arrayBuilder_;
      }

      private int conversionKind_ = 0;
      /**
       * <code>.IlInstructionMsg.IlConversionKind conversion_kind = 25;</code>
       * @return The enum numeric value on the wire for conversionKind.
       */
      @java.lang.Override public int getConversionKindValue() {
        return conversionKind_;
      }
      /**
       * <code>.IlInstructionMsg.IlConversionKind conversion_kind = 25;</code>
       * @param value The enum numeric value on the wire for conversionKind to set.
       * @return This builder for chaining.
       */
      public Builder setConversionKindValue(int value) {
        conversionKind_ = value;
        bitField0_ |= 0x04000000;
        onChanged();
        return this;
      }
      /**
       * <code>.IlInstructionMsg.IlConversionKind conversion_kind = 25;</code>
       * @return The conversionKind.
       */
      @java.lang.Override
      public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlConversionKind getConversionKind() {
        soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlConversionKind result = soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlConversionKind.forNumber(conversionKind_);
        return result == null ? soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlConversionKind.UNRECOGNIZED : result;
      }
      /**
       * <code>.IlInstructionMsg.IlConversionKind conversion_kind = 25;</code>
       * @param value The conversionKind to set.
       * @return This builder for chaining.
       */
      public Builder setConversionKind(soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlConversionKind value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x04000000;
        conversionKind_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.IlInstructionMsg.IlConversionKind conversion_kind = 25;</code>
       * @return This builder for chaining.
       */
      public Builder clearConversionKind() {
        bitField0_ = (bitField0_ & ~0x04000000);
        conversionKind_ = 0;
        onChanged();
        return this;
      }

      private int inputType_ = 0;
      /**
       * <code>.IlInstructionMsg.IlStackType input_type = 26;</code>
       * @return The enum numeric value on the wire for inputType.
       */
      @java.lang.Override public int getInputTypeValue() {
        return inputType_;
      }
      /**
       * <code>.IlInstructionMsg.IlStackType input_type = 26;</code>
       * @param value The enum numeric value on the wire for inputType to set.
       * @return This builder for chaining.
       */
      public Builder setInputTypeValue(int value) {
        inputType_ = value;
        bitField0_ |= 0x08000000;
        onChanged();
        return this;
      }
      /**
       * <code>.IlInstructionMsg.IlStackType input_type = 26;</code>
       * @return The inputType.
       */
      @java.lang.Override
      public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlStackType getInputType() {
        soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlStackType result = soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlStackType.forNumber(inputType_);
        return result == null ? soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlStackType.UNRECOGNIZED : result;
      }
      /**
       * <code>.IlInstructionMsg.IlStackType input_type = 26;</code>
       * @param value The inputType to set.
       * @return This builder for chaining.
       */
      public Builder setInputType(soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlStackType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x08000000;
        inputType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.IlInstructionMsg.IlStackType input_type = 26;</code>
       * @return This builder for chaining.
       */
      public Builder clearInputType() {
        bitField0_ = (bitField0_ & ~0x08000000);
        inputType_ = 0;
        onChanged();
        return this;
      }

      private int targetType_ = 0;
      /**
       * <code>.IlInstructionMsg.IlPrimitiveType target_type = 28;</code>
       * @return The enum numeric value on the wire for targetType.
       */
      @java.lang.Override public int getTargetTypeValue() {
        return targetType_;
      }
      /**
       * <code>.IlInstructionMsg.IlPrimitiveType target_type = 28;</code>
       * @param value The enum numeric value on the wire for targetType to set.
       * @return This builder for chaining.
       */
      public Builder setTargetTypeValue(int value) {
        targetType_ = value;
        bitField0_ |= 0x10000000;
        onChanged();
        return this;
      }
      /**
       * <code>.IlInstructionMsg.IlPrimitiveType target_type = 28;</code>
       * @return The targetType.
       */
      @java.lang.Override
      public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlPrimitiveType getTargetType() {
        soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlPrimitiveType result = soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlPrimitiveType.forNumber(targetType_);
        return result == null ? soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlPrimitiveType.UNRECOGNIZED : result;
      }
      /**
       * <code>.IlInstructionMsg.IlPrimitiveType target_type = 28;</code>
       * @param value The targetType to set.
       * @return This builder for chaining.
       */
      public Builder setTargetType(soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlPrimitiveType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x10000000;
        targetType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.IlInstructionMsg.IlPrimitiveType target_type = 28;</code>
       * @return This builder for chaining.
       */
      public Builder clearTargetType() {
        bitField0_ = (bitField0_ & ~0x10000000);
        targetType_ = 0;
        onChanged();
        return this;
      }

      private soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg argument_;
      private com.google.protobuf.SingleFieldBuilderV3<
          soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder> argumentBuilder_;
      /**
       * <pre>
       * CONV CASTCLASS ISINST BOX UNBOXANY
       * </pre>
       *
       * <code>.IlInstructionMsg argument = 29;</code>
       * @return Whether the argument field is set.
       */
      public boolean hasArgument() {
        return ((bitField0_ & 0x20000000) != 0);
      }
      /**
       * <pre>
       * CONV CASTCLASS ISINST BOX UNBOXANY
       * </pre>
       *
       * <code>.IlInstructionMsg argument = 29;</code>
       * @return The argument.
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg getArgument() {
        if (argumentBuilder_ == null) {
          return argument_ == null ? soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance() : argument_;
        } else {
          return argumentBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * CONV CASTCLASS ISINST BOX UNBOXANY
       * </pre>
       *
       * <code>.IlInstructionMsg argument = 29;</code>
       */
      public Builder setArgument(soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg value) {
        if (argumentBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          argument_ = value;
        } else {
          argumentBuilder_.setMessage(value);
        }
        bitField0_ |= 0x20000000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * CONV CASTCLASS ISINST BOX UNBOXANY
       * </pre>
       *
       * <code>.IlInstructionMsg argument = 29;</code>
       */
      public Builder setArgument(
          soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder builderForValue) {
        if (argumentBuilder_ == null) {
          argument_ = builderForValue.build();
        } else {
          argumentBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x20000000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * CONV CASTCLASS ISINST BOX UNBOXANY
       * </pre>
       *
       * <code>.IlInstructionMsg argument = 29;</code>
       */
      public Builder mergeArgument(soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg value) {
        if (argumentBuilder_ == null) {
          if (((bitField0_ & 0x20000000) != 0) &&
            argument_ != null &&
            argument_ != soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance()) {
            getArgumentBuilder().mergeFrom(value);
          } else {
            argument_ = value;
          }
        } else {
          argumentBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x20000000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * CONV CASTCLASS ISINST BOX UNBOXANY
       * </pre>
       *
       * <code>.IlInstructionMsg argument = 29;</code>
       */
      public Builder clearArgument() {
        bitField0_ = (bitField0_ & ~0x20000000);
        argument_ = null;
        if (argumentBuilder_ != null) {
          argumentBuilder_.dispose();
          argumentBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * CONV CASTCLASS ISINST BOX UNBOXANY
       * </pre>
       *
       * <code>.IlInstructionMsg argument = 29;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder getArgumentBuilder() {
        bitField0_ |= 0x20000000;
        onChanged();
        return getArgumentFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * CONV CASTCLASS ISINST BOX UNBOXANY
       * </pre>
       *
       * <code>.IlInstructionMsg argument = 29;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder getArgumentOrBuilder() {
        if (argumentBuilder_ != null) {
          return argumentBuilder_.getMessageOrBuilder();
        } else {
          return argument_ == null ?
              soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance() : argument_;
        }
      }
      /**
       * <pre>
       * CONV CASTCLASS ISINST BOX UNBOXANY
       * </pre>
       *
       * <code>.IlInstructionMsg argument = 29;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder> 
          getArgumentFieldBuilder() {
        if (argumentBuilder_ == null) {
          argumentBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder>(
                  getArgument(),
                  getParentForChildren(),
                  isClean());
          argument_ = null;
        }
        return argumentBuilder_;
      }

      private int resultType_ = 0;
      /**
       * <pre>
       * CONV LDLEN UNBOXANY
       * </pre>
       *
       * <code>.IlInstructionMsg.IlStackType result_type = 27;</code>
       * @return The enum numeric value on the wire for resultType.
       */
      @java.lang.Override public int getResultTypeValue() {
        return resultType_;
      }
      /**
       * <pre>
       * CONV LDLEN UNBOXANY
       * </pre>
       *
       * <code>.IlInstructionMsg.IlStackType result_type = 27;</code>
       * @param value The enum numeric value on the wire for resultType to set.
       * @return This builder for chaining.
       */
      public Builder setResultTypeValue(int value) {
        resultType_ = value;
        bitField0_ |= 0x40000000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * CONV LDLEN UNBOXANY
       * </pre>
       *
       * <code>.IlInstructionMsg.IlStackType result_type = 27;</code>
       * @return The resultType.
       */
      @java.lang.Override
      public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlStackType getResultType() {
        soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlStackType result = soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlStackType.forNumber(resultType_);
        return result == null ? soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlStackType.UNRECOGNIZED : result;
      }
      /**
       * <pre>
       * CONV LDLEN UNBOXANY
       * </pre>
       *
       * <code>.IlInstructionMsg.IlStackType result_type = 27;</code>
       * @param value The resultType to set.
       * @return This builder for chaining.
       */
      public Builder setResultType(soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.IlStackType value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x40000000;
        resultType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <pre>
       * CONV LDLEN UNBOXANY
       * </pre>
       *
       * <code>.IlInstructionMsg.IlStackType result_type = 27;</code>
       * @return This builder for chaining.
       */
      public Builder clearResultType() {
        bitField0_ = (bitField0_ & ~0x40000000);
        resultType_ = 0;
        onChanged();
        return this;
      }

      private java.util.List<soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg> indices_ =
        java.util.Collections.emptyList();
      private void ensureIndicesIsMutable() {
        if (!((bitField0_ & 0x80000000) != 0)) {
          indices_ = new java.util.ArrayList<soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg>(indices_);
          bitField0_ |= 0x80000000;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder> indicesBuilder_;

      /**
       * <pre>
       * NEWARR LDELEMA
       * </pre>
       *
       * <code>repeated .IlInstructionMsg indices = 31;</code>
       */
      public java.util.List<soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg> getIndicesList() {
        if (indicesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(indices_);
        } else {
          return indicesBuilder_.getMessageList();
        }
      }
      /**
       * <pre>
       * NEWARR LDELEMA
       * </pre>
       *
       * <code>repeated .IlInstructionMsg indices = 31;</code>
       */
      public int getIndicesCount() {
        if (indicesBuilder_ == null) {
          return indices_.size();
        } else {
          return indicesBuilder_.getCount();
        }
      }
      /**
       * <pre>
       * NEWARR LDELEMA
       * </pre>
       *
       * <code>repeated .IlInstructionMsg indices = 31;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg getIndices(int index) {
        if (indicesBuilder_ == null) {
          return indices_.get(index);
        } else {
          return indicesBuilder_.getMessage(index);
        }
      }
      /**
       * <pre>
       * NEWARR LDELEMA
       * </pre>
       *
       * <code>repeated .IlInstructionMsg indices = 31;</code>
       */
      public Builder setIndices(
          int index, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg value) {
        if (indicesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureIndicesIsMutable();
          indices_.set(index, value);
          onChanged();
        } else {
          indicesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * NEWARR LDELEMA
       * </pre>
       *
       * <code>repeated .IlInstructionMsg indices = 31;</code>
       */
      public Builder setIndices(
          int index, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder builderForValue) {
        if (indicesBuilder_ == null) {
          ensureIndicesIsMutable();
          indices_.set(index, builderForValue.build());
          onChanged();
        } else {
          indicesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * NEWARR LDELEMA
       * </pre>
       *
       * <code>repeated .IlInstructionMsg indices = 31;</code>
       */
      public Builder addIndices(soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg value) {
        if (indicesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureIndicesIsMutable();
          indices_.add(value);
          onChanged();
        } else {
          indicesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <pre>
       * NEWARR LDELEMA
       * </pre>
       *
       * <code>repeated .IlInstructionMsg indices = 31;</code>
       */
      public Builder addIndices(
          int index, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg value) {
        if (indicesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureIndicesIsMutable();
          indices_.add(index, value);
          onChanged();
        } else {
          indicesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <pre>
       * NEWARR LDELEMA
       * </pre>
       *
       * <code>repeated .IlInstructionMsg indices = 31;</code>
       */
      public Builder addIndices(
          soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder builderForValue) {
        if (indicesBuilder_ == null) {
          ensureIndicesIsMutable();
          indices_.add(builderForValue.build());
          onChanged();
        } else {
          indicesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * NEWARR LDELEMA
       * </pre>
       *
       * <code>repeated .IlInstructionMsg indices = 31;</code>
       */
      public Builder addIndices(
          int index, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder builderForValue) {
        if (indicesBuilder_ == null) {
          ensureIndicesIsMutable();
          indices_.add(index, builderForValue.build());
          onChanged();
        } else {
          indicesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <pre>
       * NEWARR LDELEMA
       * </pre>
       *
       * <code>repeated .IlInstructionMsg indices = 31;</code>
       */
      public Builder addAllIndices(
          java.lang.Iterable<? extends soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg> values) {
        if (indicesBuilder_ == null) {
          ensureIndicesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, indices_);
          onChanged();
        } else {
          indicesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <pre>
       * NEWARR LDELEMA
       * </pre>
       *
       * <code>repeated .IlInstructionMsg indices = 31;</code>
       */
      public Builder clearIndices() {
        if (indicesBuilder_ == null) {
          indices_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x80000000);
          onChanged();
        } else {
          indicesBuilder_.clear();
        }
        return this;
      }
      /**
       * <pre>
       * NEWARR LDELEMA
       * </pre>
       *
       * <code>repeated .IlInstructionMsg indices = 31;</code>
       */
      public Builder removeIndices(int index) {
        if (indicesBuilder_ == null) {
          ensureIndicesIsMutable();
          indices_.remove(index);
          onChanged();
        } else {
          indicesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <pre>
       * NEWARR LDELEMA
       * </pre>
       *
       * <code>repeated .IlInstructionMsg indices = 31;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder getIndicesBuilder(
          int index) {
        return getIndicesFieldBuilder().getBuilder(index);
      }
      /**
       * <pre>
       * NEWARR LDELEMA
       * </pre>
       *
       * <code>repeated .IlInstructionMsg indices = 31;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder getIndicesOrBuilder(
          int index) {
        if (indicesBuilder_ == null) {
          return indices_.get(index);  } else {
          return indicesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <pre>
       * NEWARR LDELEMA
       * </pre>
       *
       * <code>repeated .IlInstructionMsg indices = 31;</code>
       */
      public java.util.List<? extends soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder> 
           getIndicesOrBuilderList() {
        if (indicesBuilder_ != null) {
          return indicesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(indices_);
        }
      }
      /**
       * <pre>
       * NEWARR LDELEMA
       * </pre>
       *
       * <code>repeated .IlInstructionMsg indices = 31;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder addIndicesBuilder() {
        return getIndicesFieldBuilder().addBuilder(
            soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance());
      }
      /**
       * <pre>
       * NEWARR LDELEMA
       * </pre>
       *
       * <code>repeated .IlInstructionMsg indices = 31;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder addIndicesBuilder(
          int index) {
        return getIndicesFieldBuilder().addBuilder(
            index, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance());
      }
      /**
       * <pre>
       * NEWARR LDELEMA
       * </pre>
       *
       * <code>repeated .IlInstructionMsg indices = 31;</code>
       */
      public java.util.List<soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder> 
           getIndicesBuilderList() {
        return getIndicesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder> 
          getIndicesFieldBuilder() {
        if (indicesBuilder_ == null) {
          indicesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder>(
                  indices_,
                  ((bitField0_ & 0x80000000) != 0),
                  getParentForChildren(),
                  isClean());
          indices_ = null;
        }
        return indicesBuilder_;
      }

      private soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg tryBlock_;
      private com.google.protobuf.SingleFieldBuilderV3<
          soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg, soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsgOrBuilder> tryBlockBuilder_;
      /**
       * <pre>
       * TRY
       * </pre>
       *
       * <code>.IlBlockContainerMsg try_block = 32;</code>
       * @return Whether the tryBlock field is set.
       */
      public boolean hasTryBlock() {
        return ((bitField1_ & 0x00000001) != 0);
      }
      /**
       * <pre>
       * TRY
       * </pre>
       *
       * <code>.IlBlockContainerMsg try_block = 32;</code>
       * @return The tryBlock.
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg getTryBlock() {
        if (tryBlockBuilder_ == null) {
          return tryBlock_ == null ? soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.getDefaultInstance() : tryBlock_;
        } else {
          return tryBlockBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * TRY
       * </pre>
       *
       * <code>.IlBlockContainerMsg try_block = 32;</code>
       */
      public Builder setTryBlock(soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg value) {
        if (tryBlockBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          tryBlock_ = value;
        } else {
          tryBlockBuilder_.setMessage(value);
        }
        bitField1_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * TRY
       * </pre>
       *
       * <code>.IlBlockContainerMsg try_block = 32;</code>
       */
      public Builder setTryBlock(
          soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.Builder builderForValue) {
        if (tryBlockBuilder_ == null) {
          tryBlock_ = builderForValue.build();
        } else {
          tryBlockBuilder_.setMessage(builderForValue.build());
        }
        bitField1_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * TRY
       * </pre>
       *
       * <code>.IlBlockContainerMsg try_block = 32;</code>
       */
      public Builder mergeTryBlock(soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg value) {
        if (tryBlockBuilder_ == null) {
          if (((bitField1_ & 0x00000001) != 0) &&
            tryBlock_ != null &&
            tryBlock_ != soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.getDefaultInstance()) {
            getTryBlockBuilder().mergeFrom(value);
          } else {
            tryBlock_ = value;
          }
        } else {
          tryBlockBuilder_.mergeFrom(value);
        }
        bitField1_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * TRY
       * </pre>
       *
       * <code>.IlBlockContainerMsg try_block = 32;</code>
       */
      public Builder clearTryBlock() {
        bitField1_ = (bitField1_ & ~0x00000001);
        tryBlock_ = null;
        if (tryBlockBuilder_ != null) {
          tryBlockBuilder_.dispose();
          tryBlockBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * TRY
       * </pre>
       *
       * <code>.IlBlockContainerMsg try_block = 32;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.Builder getTryBlockBuilder() {
        bitField1_ |= 0x00000001;
        onChanged();
        return getTryBlockFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * TRY
       * </pre>
       *
       * <code>.IlBlockContainerMsg try_block = 32;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsgOrBuilder getTryBlockOrBuilder() {
        if (tryBlockBuilder_ != null) {
          return tryBlockBuilder_.getMessageOrBuilder();
        } else {
          return tryBlock_ == null ?
              soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.getDefaultInstance() : tryBlock_;
        }
      }
      /**
       * <pre>
       * TRY
       * </pre>
       *
       * <code>.IlBlockContainerMsg try_block = 32;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg, soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsgOrBuilder> 
          getTryBlockFieldBuilder() {
        if (tryBlockBuilder_ == null) {
          tryBlockBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg, soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsgOrBuilder>(
                  getTryBlock(),
                  getParentForChildren(),
                  isClean());
          tryBlock_ = null;
        }
        return tryBlockBuilder_;
      }

      private java.util.List<soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsg> handlers_ =
        java.util.Collections.emptyList();
      private void ensureHandlersIsMutable() {
        if (!((bitField1_ & 0x00000002) != 0)) {
          handlers_ = new java.util.ArrayList<soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsg>(handlers_);
          bitField1_ |= 0x00000002;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsg, soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsgOrBuilder> handlersBuilder_;

      /**
       * <code>repeated .IlTryCatchHandlerMsg handlers = 33;</code>
       */
      public java.util.List<soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsg> getHandlersList() {
        if (handlersBuilder_ == null) {
          return java.util.Collections.unmodifiableList(handlers_);
        } else {
          return handlersBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .IlTryCatchHandlerMsg handlers = 33;</code>
       */
      public int getHandlersCount() {
        if (handlersBuilder_ == null) {
          return handlers_.size();
        } else {
          return handlersBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .IlTryCatchHandlerMsg handlers = 33;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsg getHandlers(int index) {
        if (handlersBuilder_ == null) {
          return handlers_.get(index);
        } else {
          return handlersBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .IlTryCatchHandlerMsg handlers = 33;</code>
       */
      public Builder setHandlers(
          int index, soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsg value) {
        if (handlersBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureHandlersIsMutable();
          handlers_.set(index, value);
          onChanged();
        } else {
          handlersBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .IlTryCatchHandlerMsg handlers = 33;</code>
       */
      public Builder setHandlers(
          int index, soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsg.Builder builderForValue) {
        if (handlersBuilder_ == null) {
          ensureHandlersIsMutable();
          handlers_.set(index, builderForValue.build());
          onChanged();
        } else {
          handlersBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .IlTryCatchHandlerMsg handlers = 33;</code>
       */
      public Builder addHandlers(soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsg value) {
        if (handlersBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureHandlersIsMutable();
          handlers_.add(value);
          onChanged();
        } else {
          handlersBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .IlTryCatchHandlerMsg handlers = 33;</code>
       */
      public Builder addHandlers(
          int index, soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsg value) {
        if (handlersBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureHandlersIsMutable();
          handlers_.add(index, value);
          onChanged();
        } else {
          handlersBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .IlTryCatchHandlerMsg handlers = 33;</code>
       */
      public Builder addHandlers(
          soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsg.Builder builderForValue) {
        if (handlersBuilder_ == null) {
          ensureHandlersIsMutable();
          handlers_.add(builderForValue.build());
          onChanged();
        } else {
          handlersBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .IlTryCatchHandlerMsg handlers = 33;</code>
       */
      public Builder addHandlers(
          int index, soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsg.Builder builderForValue) {
        if (handlersBuilder_ == null) {
          ensureHandlersIsMutable();
          handlers_.add(index, builderForValue.build());
          onChanged();
        } else {
          handlersBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .IlTryCatchHandlerMsg handlers = 33;</code>
       */
      public Builder addAllHandlers(
          java.lang.Iterable<? extends soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsg> values) {
        if (handlersBuilder_ == null) {
          ensureHandlersIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, handlers_);
          onChanged();
        } else {
          handlersBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .IlTryCatchHandlerMsg handlers = 33;</code>
       */
      public Builder clearHandlers() {
        if (handlersBuilder_ == null) {
          handlers_ = java.util.Collections.emptyList();
          bitField1_ = (bitField1_ & ~0x00000002);
          onChanged();
        } else {
          handlersBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .IlTryCatchHandlerMsg handlers = 33;</code>
       */
      public Builder removeHandlers(int index) {
        if (handlersBuilder_ == null) {
          ensureHandlersIsMutable();
          handlers_.remove(index);
          onChanged();
        } else {
          handlersBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .IlTryCatchHandlerMsg handlers = 33;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsg.Builder getHandlersBuilder(
          int index) {
        return getHandlersFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .IlTryCatchHandlerMsg handlers = 33;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsgOrBuilder getHandlersOrBuilder(
          int index) {
        if (handlersBuilder_ == null) {
          return handlers_.get(index);  } else {
          return handlersBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .IlTryCatchHandlerMsg handlers = 33;</code>
       */
      public java.util.List<? extends soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsgOrBuilder> 
           getHandlersOrBuilderList() {
        if (handlersBuilder_ != null) {
          return handlersBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(handlers_);
        }
      }
      /**
       * <code>repeated .IlTryCatchHandlerMsg handlers = 33;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsg.Builder addHandlersBuilder() {
        return getHandlersFieldBuilder().addBuilder(
            soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsg.getDefaultInstance());
      }
      /**
       * <code>repeated .IlTryCatchHandlerMsg handlers = 33;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsg.Builder addHandlersBuilder(
          int index) {
        return getHandlersFieldBuilder().addBuilder(
            index, soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsg.getDefaultInstance());
      }
      /**
       * <code>repeated .IlTryCatchHandlerMsg handlers = 33;</code>
       */
      public java.util.List<soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsg.Builder> 
           getHandlersBuilderList() {
        return getHandlersFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsg, soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsgOrBuilder> 
          getHandlersFieldBuilder() {
        if (handlersBuilder_ == null) {
          handlersBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsg, soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsgOrBuilder>(
                  handlers_,
                  ((bitField1_ & 0x00000002) != 0),
                  getParentForChildren(),
                  isClean());
          handlers_ = null;
        }
        return handlersBuilder_;
      }

      private soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg finallyBlock_;
      private com.google.protobuf.SingleFieldBuilderV3<
          soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg, soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsgOrBuilder> finallyBlockBuilder_;
      /**
       * <code>.IlBlockContainerMsg finally_block = 34;</code>
       * @return Whether the finallyBlock field is set.
       */
      public boolean hasFinallyBlock() {
        return ((bitField1_ & 0x00000004) != 0);
      }
      /**
       * <code>.IlBlockContainerMsg finally_block = 34;</code>
       * @return The finallyBlock.
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg getFinallyBlock() {
        if (finallyBlockBuilder_ == null) {
          return finallyBlock_ == null ? soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.getDefaultInstance() : finallyBlock_;
        } else {
          return finallyBlockBuilder_.getMessage();
        }
      }
      /**
       * <code>.IlBlockContainerMsg finally_block = 34;</code>
       */
      public Builder setFinallyBlock(soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg value) {
        if (finallyBlockBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          finallyBlock_ = value;
        } else {
          finallyBlockBuilder_.setMessage(value);
        }
        bitField1_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>.IlBlockContainerMsg finally_block = 34;</code>
       */
      public Builder setFinallyBlock(
          soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.Builder builderForValue) {
        if (finallyBlockBuilder_ == null) {
          finallyBlock_ = builderForValue.build();
        } else {
          finallyBlockBuilder_.setMessage(builderForValue.build());
        }
        bitField1_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>.IlBlockContainerMsg finally_block = 34;</code>
       */
      public Builder mergeFinallyBlock(soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg value) {
        if (finallyBlockBuilder_ == null) {
          if (((bitField1_ & 0x00000004) != 0) &&
            finallyBlock_ != null &&
            finallyBlock_ != soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.getDefaultInstance()) {
            getFinallyBlockBuilder().mergeFrom(value);
          } else {
            finallyBlock_ = value;
          }
        } else {
          finallyBlockBuilder_.mergeFrom(value);
        }
        bitField1_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>.IlBlockContainerMsg finally_block = 34;</code>
       */
      public Builder clearFinallyBlock() {
        bitField1_ = (bitField1_ & ~0x00000004);
        finallyBlock_ = null;
        if (finallyBlockBuilder_ != null) {
          finallyBlockBuilder_.dispose();
          finallyBlockBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>.IlBlockContainerMsg finally_block = 34;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.Builder getFinallyBlockBuilder() {
        bitField1_ |= 0x00000004;
        onChanged();
        return getFinallyBlockFieldBuilder().getBuilder();
      }
      /**
       * <code>.IlBlockContainerMsg finally_block = 34;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsgOrBuilder getFinallyBlockOrBuilder() {
        if (finallyBlockBuilder_ != null) {
          return finallyBlockBuilder_.getMessageOrBuilder();
        } else {
          return finallyBlock_ == null ?
              soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.getDefaultInstance() : finallyBlock_;
        }
      }
      /**
       * <code>.IlBlockContainerMsg finally_block = 34;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg, soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsgOrBuilder> 
          getFinallyBlockFieldBuilder() {
        if (finallyBlockBuilder_ == null) {
          finallyBlockBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg, soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsgOrBuilder>(
                  getFinallyBlock(),
                  getParentForChildren(),
                  isClean());
          finallyBlock_ = null;
        }
        return finallyBlockBuilder_;
      }

      private soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg faultBlock_;
      private com.google.protobuf.SingleFieldBuilderV3<
          soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg, soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsgOrBuilder> faultBlockBuilder_;
      /**
       * <code>.IlBlockContainerMsg fault_block = 35;</code>
       * @return Whether the faultBlock field is set.
       */
      public boolean hasFaultBlock() {
        return ((bitField1_ & 0x00000008) != 0);
      }
      /**
       * <code>.IlBlockContainerMsg fault_block = 35;</code>
       * @return The faultBlock.
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg getFaultBlock() {
        if (faultBlockBuilder_ == null) {
          return faultBlock_ == null ? soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.getDefaultInstance() : faultBlock_;
        } else {
          return faultBlockBuilder_.getMessage();
        }
      }
      /**
       * <code>.IlBlockContainerMsg fault_block = 35;</code>
       */
      public Builder setFaultBlock(soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg value) {
        if (faultBlockBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          faultBlock_ = value;
        } else {
          faultBlockBuilder_.setMessage(value);
        }
        bitField1_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>.IlBlockContainerMsg fault_block = 35;</code>
       */
      public Builder setFaultBlock(
          soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.Builder builderForValue) {
        if (faultBlockBuilder_ == null) {
          faultBlock_ = builderForValue.build();
        } else {
          faultBlockBuilder_.setMessage(builderForValue.build());
        }
        bitField1_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>.IlBlockContainerMsg fault_block = 35;</code>
       */
      public Builder mergeFaultBlock(soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg value) {
        if (faultBlockBuilder_ == null) {
          if (((bitField1_ & 0x00000008) != 0) &&
            faultBlock_ != null &&
            faultBlock_ != soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.getDefaultInstance()) {
            getFaultBlockBuilder().mergeFrom(value);
          } else {
            faultBlock_ = value;
          }
        } else {
          faultBlockBuilder_.mergeFrom(value);
        }
        bitField1_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>.IlBlockContainerMsg fault_block = 35;</code>
       */
      public Builder clearFaultBlock() {
        bitField1_ = (bitField1_ & ~0x00000008);
        faultBlock_ = null;
        if (faultBlockBuilder_ != null) {
          faultBlockBuilder_.dispose();
          faultBlockBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>.IlBlockContainerMsg fault_block = 35;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.Builder getFaultBlockBuilder() {
        bitField1_ |= 0x00000008;
        onChanged();
        return getFaultBlockFieldBuilder().getBuilder();
      }
      /**
       * <code>.IlBlockContainerMsg fault_block = 35;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsgOrBuilder getFaultBlockOrBuilder() {
        if (faultBlockBuilder_ != null) {
          return faultBlockBuilder_.getMessageOrBuilder();
        } else {
          return faultBlock_ == null ?
              soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.getDefaultInstance() : faultBlock_;
        }
      }
      /**
       * <code>.IlBlockContainerMsg fault_block = 35;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg, soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsgOrBuilder> 
          getFaultBlockFieldBuilder() {
        if (faultBlockBuilder_ == null) {
          faultBlockBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg, soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsgOrBuilder>(
                  getFaultBlock(),
                  getParentForChildren(),
                  isClean());
          faultBlock_ = null;
        }
        return faultBlockBuilder_;
      }

      private soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg body_;
      private com.google.protobuf.SingleFieldBuilderV3<
          soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg, soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsgOrBuilder> bodyBuilder_;
      /**
       * <pre>
       * TRYCATCHHANDLER
       * </pre>
       *
       * <code>.IlBlockContainerMsg body = 37;</code>
       * @return Whether the body field is set.
       */
      public boolean hasBody() {
        return ((bitField1_ & 0x00000010) != 0);
      }
      /**
       * <pre>
       * TRYCATCHHANDLER
       * </pre>
       *
       * <code>.IlBlockContainerMsg body = 37;</code>
       * @return The body.
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg getBody() {
        if (bodyBuilder_ == null) {
          return body_ == null ? soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.getDefaultInstance() : body_;
        } else {
          return bodyBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * TRYCATCHHANDLER
       * </pre>
       *
       * <code>.IlBlockContainerMsg body = 37;</code>
       */
      public Builder setBody(soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg value) {
        if (bodyBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          body_ = value;
        } else {
          bodyBuilder_.setMessage(value);
        }
        bitField1_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * TRYCATCHHANDLER
       * </pre>
       *
       * <code>.IlBlockContainerMsg body = 37;</code>
       */
      public Builder setBody(
          soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.Builder builderForValue) {
        if (bodyBuilder_ == null) {
          body_ = builderForValue.build();
        } else {
          bodyBuilder_.setMessage(builderForValue.build());
        }
        bitField1_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * TRYCATCHHANDLER
       * </pre>
       *
       * <code>.IlBlockContainerMsg body = 37;</code>
       */
      public Builder mergeBody(soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg value) {
        if (bodyBuilder_ == null) {
          if (((bitField1_ & 0x00000010) != 0) &&
            body_ != null &&
            body_ != soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.getDefaultInstance()) {
            getBodyBuilder().mergeFrom(value);
          } else {
            body_ = value;
          }
        } else {
          bodyBuilder_.mergeFrom(value);
        }
        bitField1_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * TRYCATCHHANDLER
       * </pre>
       *
       * <code>.IlBlockContainerMsg body = 37;</code>
       */
      public Builder clearBody() {
        bitField1_ = (bitField1_ & ~0x00000010);
        body_ = null;
        if (bodyBuilder_ != null) {
          bodyBuilder_.dispose();
          bodyBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * TRYCATCHHANDLER
       * </pre>
       *
       * <code>.IlBlockContainerMsg body = 37;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.Builder getBodyBuilder() {
        bitField1_ |= 0x00000010;
        onChanged();
        return getBodyFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * TRYCATCHHANDLER
       * </pre>
       *
       * <code>.IlBlockContainerMsg body = 37;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsgOrBuilder getBodyOrBuilder() {
        if (bodyBuilder_ != null) {
          return bodyBuilder_.getMessageOrBuilder();
        } else {
          return body_ == null ?
              soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.getDefaultInstance() : body_;
        }
      }
      /**
       * <pre>
       * TRYCATCHHANDLER
       * </pre>
       *
       * <code>.IlBlockContainerMsg body = 37;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg, soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsgOrBuilder> 
          getBodyFieldBuilder() {
        if (bodyBuilder_ == null) {
          bodyBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg, soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsgOrBuilder>(
                  getBody(),
                  getParentForChildren(),
                  isClean());
          body_ = null;
        }
        return bodyBuilder_;
      }

      private soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg keyInstr_;
      private com.google.protobuf.SingleFieldBuilderV3<
          soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder> keyInstrBuilder_;
      /**
       * <pre>
       * SWITCH_INSTR
       * </pre>
       *
       * <code>.IlInstructionMsg key_instr = 41;</code>
       * @return Whether the keyInstr field is set.
       */
      public boolean hasKeyInstr() {
        return ((bitField1_ & 0x00000020) != 0);
      }
      /**
       * <pre>
       * SWITCH_INSTR
       * </pre>
       *
       * <code>.IlInstructionMsg key_instr = 41;</code>
       * @return The keyInstr.
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg getKeyInstr() {
        if (keyInstrBuilder_ == null) {
          return keyInstr_ == null ? soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance() : keyInstr_;
        } else {
          return keyInstrBuilder_.getMessage();
        }
      }
      /**
       * <pre>
       * SWITCH_INSTR
       * </pre>
       *
       * <code>.IlInstructionMsg key_instr = 41;</code>
       */
      public Builder setKeyInstr(soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg value) {
        if (keyInstrBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          keyInstr_ = value;
        } else {
          keyInstrBuilder_.setMessage(value);
        }
        bitField1_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * SWITCH_INSTR
       * </pre>
       *
       * <code>.IlInstructionMsg key_instr = 41;</code>
       */
      public Builder setKeyInstr(
          soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder builderForValue) {
        if (keyInstrBuilder_ == null) {
          keyInstr_ = builderForValue.build();
        } else {
          keyInstrBuilder_.setMessage(builderForValue.build());
        }
        bitField1_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * SWITCH_INSTR
       * </pre>
       *
       * <code>.IlInstructionMsg key_instr = 41;</code>
       */
      public Builder mergeKeyInstr(soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg value) {
        if (keyInstrBuilder_ == null) {
          if (((bitField1_ & 0x00000020) != 0) &&
            keyInstr_ != null &&
            keyInstr_ != soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance()) {
            getKeyInstrBuilder().mergeFrom(value);
          } else {
            keyInstr_ = value;
          }
        } else {
          keyInstrBuilder_.mergeFrom(value);
        }
        bitField1_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * SWITCH_INSTR
       * </pre>
       *
       * <code>.IlInstructionMsg key_instr = 41;</code>
       */
      public Builder clearKeyInstr() {
        bitField1_ = (bitField1_ & ~0x00000020);
        keyInstr_ = null;
        if (keyInstrBuilder_ != null) {
          keyInstrBuilder_.dispose();
          keyInstrBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <pre>
       * SWITCH_INSTR
       * </pre>
       *
       * <code>.IlInstructionMsg key_instr = 41;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder getKeyInstrBuilder() {
        bitField1_ |= 0x00000020;
        onChanged();
        return getKeyInstrFieldBuilder().getBuilder();
      }
      /**
       * <pre>
       * SWITCH_INSTR
       * </pre>
       *
       * <code>.IlInstructionMsg key_instr = 41;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder getKeyInstrOrBuilder() {
        if (keyInstrBuilder_ != null) {
          return keyInstrBuilder_.getMessageOrBuilder();
        } else {
          return keyInstr_ == null ?
              soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance() : keyInstr_;
        }
      }
      /**
       * <pre>
       * SWITCH_INSTR
       * </pre>
       *
       * <code>.IlInstructionMsg key_instr = 41;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder> 
          getKeyInstrFieldBuilder() {
        if (keyInstrBuilder_ == null) {
          keyInstrBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder>(
                  getKeyInstr(),
                  getParentForChildren(),
                  isClean());
          keyInstr_ = null;
        }
        return keyInstrBuilder_;
      }

      private soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg defaultInst_;
      private com.google.protobuf.SingleFieldBuilderV3<
          soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder> defaultInstBuilder_;
      /**
       * <code>.IlInstructionMsg default_inst = 42;</code>
       * @return Whether the defaultInst field is set.
       */
      public boolean hasDefaultInst() {
        return ((bitField1_ & 0x00000040) != 0);
      }
      /**
       * <code>.IlInstructionMsg default_inst = 42;</code>
       * @return The defaultInst.
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg getDefaultInst() {
        if (defaultInstBuilder_ == null) {
          return defaultInst_ == null ? soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance() : defaultInst_;
        } else {
          return defaultInstBuilder_.getMessage();
        }
      }
      /**
       * <code>.IlInstructionMsg default_inst = 42;</code>
       */
      public Builder setDefaultInst(soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg value) {
        if (defaultInstBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          defaultInst_ = value;
        } else {
          defaultInstBuilder_.setMessage(value);
        }
        bitField1_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <code>.IlInstructionMsg default_inst = 42;</code>
       */
      public Builder setDefaultInst(
          soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder builderForValue) {
        if (defaultInstBuilder_ == null) {
          defaultInst_ = builderForValue.build();
        } else {
          defaultInstBuilder_.setMessage(builderForValue.build());
        }
        bitField1_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <code>.IlInstructionMsg default_inst = 42;</code>
       */
      public Builder mergeDefaultInst(soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg value) {
        if (defaultInstBuilder_ == null) {
          if (((bitField1_ & 0x00000040) != 0) &&
            defaultInst_ != null &&
            defaultInst_ != soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance()) {
            getDefaultInstBuilder().mergeFrom(value);
          } else {
            defaultInst_ = value;
          }
        } else {
          defaultInstBuilder_.mergeFrom(value);
        }
        bitField1_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <code>.IlInstructionMsg default_inst = 42;</code>
       */
      public Builder clearDefaultInst() {
        bitField1_ = (bitField1_ & ~0x00000040);
        defaultInst_ = null;
        if (defaultInstBuilder_ != null) {
          defaultInstBuilder_.dispose();
          defaultInstBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>.IlInstructionMsg default_inst = 42;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder getDefaultInstBuilder() {
        bitField1_ |= 0x00000040;
        onChanged();
        return getDefaultInstFieldBuilder().getBuilder();
      }
      /**
       * <code>.IlInstructionMsg default_inst = 42;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder getDefaultInstOrBuilder() {
        if (defaultInstBuilder_ != null) {
          return defaultInstBuilder_.getMessageOrBuilder();
        } else {
          return defaultInst_ == null ?
              soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance() : defaultInst_;
        }
      }
      /**
       * <code>.IlInstructionMsg default_inst = 42;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder> 
          getDefaultInstFieldBuilder() {
        if (defaultInstBuilder_ == null) {
          defaultInstBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder>(
                  getDefaultInst(),
                  getParentForChildren(),
                  isClean());
          defaultInst_ = null;
        }
        return defaultInstBuilder_;
      }

      private java.util.List<soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsg> switchSections_ =
        java.util.Collections.emptyList();
      private void ensureSwitchSectionsIsMutable() {
        if (!((bitField1_ & 0x00000080) != 0)) {
          switchSections_ = new java.util.ArrayList<soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsg>(switchSections_);
          bitField1_ |= 0x00000080;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
          soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsg, soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsgOrBuilder> switchSectionsBuilder_;

      /**
       * <code>repeated .IlSwitchSectionMsg switch_sections = 43;</code>
       */
      public java.util.List<soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsg> getSwitchSectionsList() {
        if (switchSectionsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(switchSections_);
        } else {
          return switchSectionsBuilder_.getMessageList();
        }
      }
      /**
       * <code>repeated .IlSwitchSectionMsg switch_sections = 43;</code>
       */
      public int getSwitchSectionsCount() {
        if (switchSectionsBuilder_ == null) {
          return switchSections_.size();
        } else {
          return switchSectionsBuilder_.getCount();
        }
      }
      /**
       * <code>repeated .IlSwitchSectionMsg switch_sections = 43;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsg getSwitchSections(int index) {
        if (switchSectionsBuilder_ == null) {
          return switchSections_.get(index);
        } else {
          return switchSectionsBuilder_.getMessage(index);
        }
      }
      /**
       * <code>repeated .IlSwitchSectionMsg switch_sections = 43;</code>
       */
      public Builder setSwitchSections(
          int index, soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsg value) {
        if (switchSectionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSwitchSectionsIsMutable();
          switchSections_.set(index, value);
          onChanged();
        } else {
          switchSectionsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .IlSwitchSectionMsg switch_sections = 43;</code>
       */
      public Builder setSwitchSections(
          int index, soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsg.Builder builderForValue) {
        if (switchSectionsBuilder_ == null) {
          ensureSwitchSectionsIsMutable();
          switchSections_.set(index, builderForValue.build());
          onChanged();
        } else {
          switchSectionsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .IlSwitchSectionMsg switch_sections = 43;</code>
       */
      public Builder addSwitchSections(soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsg value) {
        if (switchSectionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSwitchSectionsIsMutable();
          switchSections_.add(value);
          onChanged();
        } else {
          switchSectionsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * <code>repeated .IlSwitchSectionMsg switch_sections = 43;</code>
       */
      public Builder addSwitchSections(
          int index, soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsg value) {
        if (switchSectionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSwitchSectionsIsMutable();
          switchSections_.add(index, value);
          onChanged();
        } else {
          switchSectionsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * <code>repeated .IlSwitchSectionMsg switch_sections = 43;</code>
       */
      public Builder addSwitchSections(
          soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsg.Builder builderForValue) {
        if (switchSectionsBuilder_ == null) {
          ensureSwitchSectionsIsMutable();
          switchSections_.add(builderForValue.build());
          onChanged();
        } else {
          switchSectionsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .IlSwitchSectionMsg switch_sections = 43;</code>
       */
      public Builder addSwitchSections(
          int index, soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsg.Builder builderForValue) {
        if (switchSectionsBuilder_ == null) {
          ensureSwitchSectionsIsMutable();
          switchSections_.add(index, builderForValue.build());
          onChanged();
        } else {
          switchSectionsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * <code>repeated .IlSwitchSectionMsg switch_sections = 43;</code>
       */
      public Builder addAllSwitchSections(
          java.lang.Iterable<? extends soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsg> values) {
        if (switchSectionsBuilder_ == null) {
          ensureSwitchSectionsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, switchSections_);
          onChanged();
        } else {
          switchSectionsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * <code>repeated .IlSwitchSectionMsg switch_sections = 43;</code>
       */
      public Builder clearSwitchSections() {
        if (switchSectionsBuilder_ == null) {
          switchSections_ = java.util.Collections.emptyList();
          bitField1_ = (bitField1_ & ~0x00000080);
          onChanged();
        } else {
          switchSectionsBuilder_.clear();
        }
        return this;
      }
      /**
       * <code>repeated .IlSwitchSectionMsg switch_sections = 43;</code>
       */
      public Builder removeSwitchSections(int index) {
        if (switchSectionsBuilder_ == null) {
          ensureSwitchSectionsIsMutable();
          switchSections_.remove(index);
          onChanged();
        } else {
          switchSectionsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * <code>repeated .IlSwitchSectionMsg switch_sections = 43;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsg.Builder getSwitchSectionsBuilder(
          int index) {
        return getSwitchSectionsFieldBuilder().getBuilder(index);
      }
      /**
       * <code>repeated .IlSwitchSectionMsg switch_sections = 43;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsgOrBuilder getSwitchSectionsOrBuilder(
          int index) {
        if (switchSectionsBuilder_ == null) {
          return switchSections_.get(index);  } else {
          return switchSectionsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * <code>repeated .IlSwitchSectionMsg switch_sections = 43;</code>
       */
      public java.util.List<? extends soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsgOrBuilder> 
           getSwitchSectionsOrBuilderList() {
        if (switchSectionsBuilder_ != null) {
          return switchSectionsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(switchSections_);
        }
      }
      /**
       * <code>repeated .IlSwitchSectionMsg switch_sections = 43;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsg.Builder addSwitchSectionsBuilder() {
        return getSwitchSectionsFieldBuilder().addBuilder(
            soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsg.getDefaultInstance());
      }
      /**
       * <code>repeated .IlSwitchSectionMsg switch_sections = 43;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsg.Builder addSwitchSectionsBuilder(
          int index) {
        return getSwitchSectionsFieldBuilder().addBuilder(
            index, soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsg.getDefaultInstance());
      }
      /**
       * <code>repeated .IlSwitchSectionMsg switch_sections = 43;</code>
       */
      public java.util.List<soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsg.Builder> 
           getSwitchSectionsBuilderList() {
        return getSwitchSectionsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilderV3<
          soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsg, soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsgOrBuilder> 
          getSwitchSectionsFieldBuilder() {
        if (switchSectionsBuilder_ == null) {
          switchSectionsBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
              soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsg, soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsgOrBuilder>(
                  switchSections_,
                  ((bitField1_ & 0x00000080) != 0),
                  getParentForChildren(),
                  isClean());
          switchSections_ = null;
        }
        return switchSectionsBuilder_;
      }

      private boolean checkForOverflow_ ;
      /**
       * <code>bool check_for_overflow = 44;</code>
       * @return The checkForOverflow.
       */
      @java.lang.Override
      public boolean getCheckForOverflow() {
        return checkForOverflow_;
      }
      /**
       * <code>bool check_for_overflow = 44;</code>
       * @param value The checkForOverflow to set.
       * @return This builder for chaining.
       */
      public Builder setCheckForOverflow(boolean value) {
        
        checkForOverflow_ = value;
        bitField1_ |= 0x00000100;
        onChanged();
        return this;
      }
      /**
       * <code>bool check_for_overflow = 44;</code>
       * @return This builder for chaining.
       */
      public Builder clearCheckForOverflow() {
        bitField1_ = (bitField1_ & ~0x00000100);
        checkForOverflow_ = false;
        onChanged();
        return this;
      }

      private boolean isLeavingFunction_ ;
      /**
       * <code>bool is_leaving_function = 45;</code>
       * @return The isLeavingFunction.
       */
      @java.lang.Override
      public boolean getIsLeavingFunction() {
        return isLeavingFunction_;
      }
      /**
       * <code>bool is_leaving_function = 45;</code>
       * @param value The isLeavingFunction to set.
       * @return This builder for chaining.
       */
      public Builder setIsLeavingFunction(boolean value) {
        
        isLeavingFunction_ = value;
        bitField1_ |= 0x00000200;
        onChanged();
        return this;
      }
      /**
       * <code>bool is_leaving_function = 45;</code>
       * @return This builder for chaining.
       */
      public Builder clearIsLeavingFunction() {
        bitField1_ = (bitField1_ & ~0x00000200);
        isLeavingFunction_ = false;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:IlInstructionMsg)
    }

    // @@protoc_insertion_point(class_scope:IlInstructionMsg)
    private static final soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg();
    }

    public static soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<IlInstructionMsg>
        PARSER = new com.google.protobuf.AbstractParser<IlInstructionMsg>() {
      @java.lang.Override
      public IlInstructionMsg parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<IlInstructionMsg> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<IlInstructionMsg> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface IlVariableMsgOrBuilder extends
      // @@protoc_insertion_point(interface_extends:IlVariableMsg)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>.TypeDefinition type = 1;</code>
     * @return Whether the type field is set.
     */
    boolean hasType();
    /**
     * <code>.TypeDefinition type = 1;</code>
     * @return The type.
     */
    soot.dotnet.proto.ProtoAssemblyAllTypes.TypeDefinition getType();
    /**
     * <code>.TypeDefinition type = 1;</code>
     */
    soot.dotnet.proto.ProtoAssemblyAllTypes.TypeDefinitionOrBuilder getTypeOrBuilder();

    /**
     * <code>string name = 2;</code>
     * @return The name.
     */
    java.lang.String getName();
    /**
     * <code>string name = 2;</code>
     * @return The bytes for name.
     */
    com.google.protobuf.ByteString
        getNameBytes();

    /**
     * <code>bool has_initial_value = 3;</code>
     * @return The hasInitialValue.
     */
    boolean getHasInitialValue();

    /**
     * <code>.IlVariableMsg.IlVariableKind variable_kind = 4;</code>
     * @return The enum numeric value on the wire for variableKind.
     */
    int getVariableKindValue();
    /**
     * <code>.IlVariableMsg.IlVariableKind variable_kind = 4;</code>
     * @return The variableKind.
     */
    soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg.IlVariableKind getVariableKind();
  }
  /**
   * Protobuf type {@code IlVariableMsg}
   */
  public static final class IlVariableMsg extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:IlVariableMsg)
      IlVariableMsgOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use IlVariableMsg.newBuilder() to construct.
    private IlVariableMsg(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private IlVariableMsg() {
      name_ = "";
      variableKind_ = 0;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new IlVariableMsg();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return soot.dotnet.proto.ProtoIlInstructions.internal_static_IlVariableMsg_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return soot.dotnet.proto.ProtoIlInstructions.internal_static_IlVariableMsg_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg.class, soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg.Builder.class);
    }

    /**
     * Protobuf enum {@code IlVariableMsg.IlVariableKind}
     */
    public enum IlVariableKind
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>NONE = 0;</code>
       */
      NONE(0),
      /**
       * <code>LOCAL = 1;</code>
       */
      LOCAL(1),
      /**
       * <code>PINNED_LOCAL = 2;</code>
       */
      PINNED_LOCAL(2),
      /**
       * <code>PINNED_REGION_LOCAL = 3;</code>
       */
      PINNED_REGION_LOCAL(3),
      /**
       * <code>USING_LOCAL = 4;</code>
       */
      USING_LOCAL(4),
      /**
       * <code>FOREACH_LOCAL = 5;</code>
       */
      FOREACH_LOCAL(5),
      /**
       * <code>INITIALIZER_TARGET = 6;</code>
       */
      INITIALIZER_TARGET(6),
      /**
       * <code>PARAMETER = 7;</code>
       */
      PARAMETER(7),
      /**
       * <code>EXCEPTION_STACK_SLOT = 8;</code>
       */
      EXCEPTION_STACK_SLOT(8),
      /**
       * <code>EXCEPTION_LOCAL = 9;</code>
       */
      EXCEPTION_LOCAL(9),
      /**
       * <code>STACKSLOT = 10;</code>
       */
      STACKSLOT(10),
      /**
       * <code>NAMED_ARGUMENT = 11;</code>
       */
      NAMED_ARGUMENT(11),
      /**
       * <code>DISPLAY_CLASS_LOCAL = 12;</code>
       */
      DISPLAY_CLASS_LOCAL(12),
      /**
       * <code>PATTERN_LOCAL = 13;</code>
       */
      PATTERN_LOCAL(13),
      /**
       * <code>DECONSTRUCTION_INIT_TEMPORARY = 14;</code>
       */
      DECONSTRUCTION_INIT_TEMPORARY(14),
      UNRECOGNIZED(-1),
      ;

      /**
       * <code>NONE = 0;</code>
       */
      public static final int NONE_VALUE = 0;
      /**
       * <code>LOCAL = 1;</code>
       */
      public static final int LOCAL_VALUE = 1;
      /**
       * <code>PINNED_LOCAL = 2;</code>
       */
      public static final int PINNED_LOCAL_VALUE = 2;
      /**
       * <code>PINNED_REGION_LOCAL = 3;</code>
       */
      public static final int PINNED_REGION_LOCAL_VALUE = 3;
      /**
       * <code>USING_LOCAL = 4;</code>
       */
      public static final int USING_LOCAL_VALUE = 4;
      /**
       * <code>FOREACH_LOCAL = 5;</code>
       */
      public static final int FOREACH_LOCAL_VALUE = 5;
      /**
       * <code>INITIALIZER_TARGET = 6;</code>
       */
      public static final int INITIALIZER_TARGET_VALUE = 6;
      /**
       * <code>PARAMETER = 7;</code>
       */
      public static final int PARAMETER_VALUE = 7;
      /**
       * <code>EXCEPTION_STACK_SLOT = 8;</code>
       */
      public static final int EXCEPTION_STACK_SLOT_VALUE = 8;
      /**
       * <code>EXCEPTION_LOCAL = 9;</code>
       */
      public static final int EXCEPTION_LOCAL_VALUE = 9;
      /**
       * <code>STACKSLOT = 10;</code>
       */
      public static final int STACKSLOT_VALUE = 10;
      /**
       * <code>NAMED_ARGUMENT = 11;</code>
       */
      public static final int NAMED_ARGUMENT_VALUE = 11;
      /**
       * <code>DISPLAY_CLASS_LOCAL = 12;</code>
       */
      public static final int DISPLAY_CLASS_LOCAL_VALUE = 12;
      /**
       * <code>PATTERN_LOCAL = 13;</code>
       */
      public static final int PATTERN_LOCAL_VALUE = 13;
      /**
       * <code>DECONSTRUCTION_INIT_TEMPORARY = 14;</code>
       */
      public static final int DECONSTRUCTION_INIT_TEMPORARY_VALUE = 14;


      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static IlVariableKind valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static IlVariableKind forNumber(int value) {
        switch (value) {
          case 0: return NONE;
          case 1: return LOCAL;
          case 2: return PINNED_LOCAL;
          case 3: return PINNED_REGION_LOCAL;
          case 4: return USING_LOCAL;
          case 5: return FOREACH_LOCAL;
          case 6: return INITIALIZER_TARGET;
          case 7: return PARAMETER;
          case 8: return EXCEPTION_STACK_SLOT;
          case 9: return EXCEPTION_LOCAL;
          case 10: return STACKSLOT;
          case 11: return NAMED_ARGUMENT;
          case 12: return DISPLAY_CLASS_LOCAL;
          case 13: return PATTERN_LOCAL;
          case 14: return DECONSTRUCTION_INIT_TEMPORARY;
          default: return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<IlVariableKind>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          IlVariableKind> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<IlVariableKind>() {
              public IlVariableKind findValueByNumber(int number) {
                return IlVariableKind.forNumber(number);
              }
            };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalStateException(
              "Can't get the descriptor of an unrecognized enum value.");
        }
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg.getDescriptor().getEnumTypes().get(0);
      }

      private static final IlVariableKind[] VALUES = values();

      public static IlVariableKind valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private IlVariableKind(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:IlVariableMsg.IlVariableKind)
    }

    public static final int TYPE_FIELD_NUMBER = 1;
    private soot.dotnet.proto.ProtoAssemblyAllTypes.TypeDefinition type_;
    /**
     * <code>.TypeDefinition type = 1;</code>
     * @return Whether the type field is set.
     */
    @java.lang.Override
    public boolean hasType() {
      return type_ != null;
    }
    /**
     * <code>.TypeDefinition type = 1;</code>
     * @return The type.
     */
    @java.lang.Override
    public soot.dotnet.proto.ProtoAssemblyAllTypes.TypeDefinition getType() {
      return type_ == null ? soot.dotnet.proto.ProtoAssemblyAllTypes.TypeDefinition.getDefaultInstance() : type_;
    }
    /**
     * <code>.TypeDefinition type = 1;</code>
     */
    @java.lang.Override
    public soot.dotnet.proto.ProtoAssemblyAllTypes.TypeDefinitionOrBuilder getTypeOrBuilder() {
      return type_ == null ? soot.dotnet.proto.ProtoAssemblyAllTypes.TypeDefinition.getDefaultInstance() : type_;
    }

    public static final int NAME_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object name_ = "";
    /**
     * <code>string name = 2;</code>
     * @return The name.
     */
    @java.lang.Override
    public java.lang.String getName() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        name_ = s;
        return s;
      }
    }
    /**
     * <code>string name = 2;</code>
     * @return The bytes for name.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getNameBytes() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        name_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int HAS_INITIAL_VALUE_FIELD_NUMBER = 3;
    private boolean hasInitialValue_ = false;
    /**
     * <code>bool has_initial_value = 3;</code>
     * @return The hasInitialValue.
     */
    @java.lang.Override
    public boolean getHasInitialValue() {
      return hasInitialValue_;
    }

    public static final int VARIABLE_KIND_FIELD_NUMBER = 4;
    private int variableKind_ = 0;
    /**
     * <code>.IlVariableMsg.IlVariableKind variable_kind = 4;</code>
     * @return The enum numeric value on the wire for variableKind.
     */
    @java.lang.Override public int getVariableKindValue() {
      return variableKind_;
    }
    /**
     * <code>.IlVariableMsg.IlVariableKind variable_kind = 4;</code>
     * @return The variableKind.
     */
    @java.lang.Override public soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg.IlVariableKind getVariableKind() {
      soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg.IlVariableKind result = soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg.IlVariableKind.forNumber(variableKind_);
      return result == null ? soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg.IlVariableKind.UNRECOGNIZED : result;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (type_ != null) {
        output.writeMessage(1, getType());
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, name_);
      }
      if (hasInitialValue_ != false) {
        output.writeBool(3, hasInitialValue_);
      }
      if (variableKind_ != soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg.IlVariableKind.NONE.getNumber()) {
        output.writeEnum(4, variableKind_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (type_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getType());
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, name_);
      }
      if (hasInitialValue_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, hasInitialValue_);
      }
      if (variableKind_ != soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg.IlVariableKind.NONE.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(4, variableKind_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg)) {
        return super.equals(obj);
      }
      soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg other = (soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg) obj;

      if (hasType() != other.hasType()) return false;
      if (hasType()) {
        if (!getType()
            .equals(other.getType())) return false;
      }
      if (!getName()
          .equals(other.getName())) return false;
      if (getHasInitialValue()
          != other.getHasInitialValue()) return false;
      if (variableKind_ != other.variableKind_) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasType()) {
        hash = (37 * hash) + TYPE_FIELD_NUMBER;
        hash = (53 * hash) + getType().hashCode();
      }
      hash = (37 * hash) + NAME_FIELD_NUMBER;
      hash = (53 * hash) + getName().hashCode();
      hash = (37 * hash) + HAS_INITIAL_VALUE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getHasInitialValue());
      hash = (37 * hash) + VARIABLE_KIND_FIELD_NUMBER;
      hash = (53 * hash) + variableKind_;
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code IlVariableMsg}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:IlVariableMsg)
        soot.dotnet.proto.ProtoIlInstructions.IlVariableMsgOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return soot.dotnet.proto.ProtoIlInstructions.internal_static_IlVariableMsg_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return soot.dotnet.proto.ProtoIlInstructions.internal_static_IlVariableMsg_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg.class, soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg.Builder.class);
      }

      // Construct using soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        type_ = null;
        if (typeBuilder_ != null) {
          typeBuilder_.dispose();
          typeBuilder_ = null;
        }
        name_ = "";
        hasInitialValue_ = false;
        variableKind_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return soot.dotnet.proto.ProtoIlInstructions.internal_static_IlVariableMsg_descriptor;
      }

      @java.lang.Override
      public soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg getDefaultInstanceForType() {
        return soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg.getDefaultInstance();
      }

      @java.lang.Override
      public soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg build() {
        soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg buildPartial() {
        soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg result = new soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.type_ = typeBuilder_ == null
              ? type_
              : typeBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.name_ = name_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.hasInitialValue_ = hasInitialValue_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.variableKind_ = variableKind_;
        }
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg) {
          return mergeFrom((soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg other) {
        if (other == soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg.getDefaultInstance()) return this;
        if (other.hasType()) {
          mergeType(other.getType());
        }
        if (!other.getName().isEmpty()) {
          name_ = other.name_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (other.getHasInitialValue() != false) {
          setHasInitialValue(other.getHasInitialValue());
        }
        if (other.variableKind_ != 0) {
          setVariableKindValue(other.getVariableKindValue());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                input.readMessage(
                    getTypeFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 18: {
                name_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 24: {
                hasInitialValue_ = input.readBool();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 32: {
                variableKind_ = input.readEnum();
                bitField0_ |= 0x00000008;
                break;
              } // case 32
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private soot.dotnet.proto.ProtoAssemblyAllTypes.TypeDefinition type_;
      private com.google.protobuf.SingleFieldBuilderV3<
          soot.dotnet.proto.ProtoAssemblyAllTypes.TypeDefinition, soot.dotnet.proto.ProtoAssemblyAllTypes.TypeDefinition.Builder, soot.dotnet.proto.ProtoAssemblyAllTypes.TypeDefinitionOrBuilder> typeBuilder_;
      /**
       * <code>.TypeDefinition type = 1;</code>
       * @return Whether the type field is set.
       */
      public boolean hasType() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>.TypeDefinition type = 1;</code>
       * @return The type.
       */
      public soot.dotnet.proto.ProtoAssemblyAllTypes.TypeDefinition getType() {
        if (typeBuilder_ == null) {
          return type_ == null ? soot.dotnet.proto.ProtoAssemblyAllTypes.TypeDefinition.getDefaultInstance() : type_;
        } else {
          return typeBuilder_.getMessage();
        }
      }
      /**
       * <code>.TypeDefinition type = 1;</code>
       */
      public Builder setType(soot.dotnet.proto.ProtoAssemblyAllTypes.TypeDefinition value) {
        if (typeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          type_ = value;
        } else {
          typeBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>.TypeDefinition type = 1;</code>
       */
      public Builder setType(
          soot.dotnet.proto.ProtoAssemblyAllTypes.TypeDefinition.Builder builderForValue) {
        if (typeBuilder_ == null) {
          type_ = builderForValue.build();
        } else {
          typeBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>.TypeDefinition type = 1;</code>
       */
      public Builder mergeType(soot.dotnet.proto.ProtoAssemblyAllTypes.TypeDefinition value) {
        if (typeBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
            type_ != null &&
            type_ != soot.dotnet.proto.ProtoAssemblyAllTypes.TypeDefinition.getDefaultInstance()) {
            getTypeBuilder().mergeFrom(value);
          } else {
            type_ = value;
          }
        } else {
          typeBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>.TypeDefinition type = 1;</code>
       */
      public Builder clearType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        type_ = null;
        if (typeBuilder_ != null) {
          typeBuilder_.dispose();
          typeBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>.TypeDefinition type = 1;</code>
       */
      public soot.dotnet.proto.ProtoAssemblyAllTypes.TypeDefinition.Builder getTypeBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getTypeFieldBuilder().getBuilder();
      }
      /**
       * <code>.TypeDefinition type = 1;</code>
       */
      public soot.dotnet.proto.ProtoAssemblyAllTypes.TypeDefinitionOrBuilder getTypeOrBuilder() {
        if (typeBuilder_ != null) {
          return typeBuilder_.getMessageOrBuilder();
        } else {
          return type_ == null ?
              soot.dotnet.proto.ProtoAssemblyAllTypes.TypeDefinition.getDefaultInstance() : type_;
        }
      }
      /**
       * <code>.TypeDefinition type = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          soot.dotnet.proto.ProtoAssemblyAllTypes.TypeDefinition, soot.dotnet.proto.ProtoAssemblyAllTypes.TypeDefinition.Builder, soot.dotnet.proto.ProtoAssemblyAllTypes.TypeDefinitionOrBuilder> 
          getTypeFieldBuilder() {
        if (typeBuilder_ == null) {
          typeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              soot.dotnet.proto.ProtoAssemblyAllTypes.TypeDefinition, soot.dotnet.proto.ProtoAssemblyAllTypes.TypeDefinition.Builder, soot.dotnet.proto.ProtoAssemblyAllTypes.TypeDefinitionOrBuilder>(
                  getType(),
                  getParentForChildren(),
                  isClean());
          type_ = null;
        }
        return typeBuilder_;
      }

      private java.lang.Object name_ = "";
      /**
       * <code>string name = 2;</code>
       * @return The name.
       */
      public java.lang.String getName() {
        java.lang.Object ref = name_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          name_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string name = 2;</code>
       * @return The bytes for name.
       */
      public com.google.protobuf.ByteString
          getNameBytes() {
        java.lang.Object ref = name_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          name_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string name = 2;</code>
       * @param value The name to set.
       * @return This builder for chaining.
       */
      public Builder setName(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        name_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>string name = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearName() {
        name_ = getDefaultInstance().getName();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <code>string name = 2;</code>
       * @param value The bytes for name to set.
       * @return This builder for chaining.
       */
      public Builder setNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        name_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private boolean hasInitialValue_ ;
      /**
       * <code>bool has_initial_value = 3;</code>
       * @return The hasInitialValue.
       */
      @java.lang.Override
      public boolean getHasInitialValue() {
        return hasInitialValue_;
      }
      /**
       * <code>bool has_initial_value = 3;</code>
       * @param value The hasInitialValue to set.
       * @return This builder for chaining.
       */
      public Builder setHasInitialValue(boolean value) {
        
        hasInitialValue_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>bool has_initial_value = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearHasInitialValue() {
        bitField0_ = (bitField0_ & ~0x00000004);
        hasInitialValue_ = false;
        onChanged();
        return this;
      }

      private int variableKind_ = 0;
      /**
       * <code>.IlVariableMsg.IlVariableKind variable_kind = 4;</code>
       * @return The enum numeric value on the wire for variableKind.
       */
      @java.lang.Override public int getVariableKindValue() {
        return variableKind_;
      }
      /**
       * <code>.IlVariableMsg.IlVariableKind variable_kind = 4;</code>
       * @param value The enum numeric value on the wire for variableKind to set.
       * @return This builder for chaining.
       */
      public Builder setVariableKindValue(int value) {
        variableKind_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>.IlVariableMsg.IlVariableKind variable_kind = 4;</code>
       * @return The variableKind.
       */
      @java.lang.Override
      public soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg.IlVariableKind getVariableKind() {
        soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg.IlVariableKind result = soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg.IlVariableKind.forNumber(variableKind_);
        return result == null ? soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg.IlVariableKind.UNRECOGNIZED : result;
      }
      /**
       * <code>.IlVariableMsg.IlVariableKind variable_kind = 4;</code>
       * @param value The variableKind to set.
       * @return This builder for chaining.
       */
      public Builder setVariableKind(soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg.IlVariableKind value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        variableKind_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * <code>.IlVariableMsg.IlVariableKind variable_kind = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearVariableKind() {
        bitField0_ = (bitField0_ & ~0x00000008);
        variableKind_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:IlVariableMsg)
    }

    // @@protoc_insertion_point(class_scope:IlVariableMsg)
    private static final soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg();
    }

    public static soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<IlVariableMsg>
        PARSER = new com.google.protobuf.AbstractParser<IlVariableMsg>() {
      @java.lang.Override
      public IlVariableMsg parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<IlVariableMsg> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<IlVariableMsg> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface IlTryCatchHandlerMsgOrBuilder extends
      // @@protoc_insertion_point(interface_extends:IlTryCatchHandlerMsg)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>.IlBlockContainerMsg body = 1;</code>
     * @return Whether the body field is set.
     */
    boolean hasBody();
    /**
     * <code>.IlBlockContainerMsg body = 1;</code>
     * @return The body.
     */
    soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg getBody();
    /**
     * <code>.IlBlockContainerMsg body = 1;</code>
     */
    soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsgOrBuilder getBodyOrBuilder();

    /**
     * <code>.IlVariableMsg variable = 2;</code>
     * @return Whether the variable field is set.
     */
    boolean hasVariable();
    /**
     * <code>.IlVariableMsg variable = 2;</code>
     * @return The variable.
     */
    soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg getVariable();
    /**
     * <code>.IlVariableMsg variable = 2;</code>
     */
    soot.dotnet.proto.ProtoIlInstructions.IlVariableMsgOrBuilder getVariableOrBuilder();

    /**
     * <code>.IlBlockContainerMsg filter = 3;</code>
     * @return Whether the filter field is set.
     */
    boolean hasFilter();
    /**
     * <code>.IlBlockContainerMsg filter = 3;</code>
     * @return The filter.
     */
    soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg getFilter();
    /**
     * <code>.IlBlockContainerMsg filter = 3;</code>
     */
    soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsgOrBuilder getFilterOrBuilder();

    /**
     * <code>bool has_filter = 4;</code>
     * @return The hasFilter.
     */
    boolean getHasFilter();
  }
  /**
   * Protobuf type {@code IlTryCatchHandlerMsg}
   */
  public static final class IlTryCatchHandlerMsg extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:IlTryCatchHandlerMsg)
      IlTryCatchHandlerMsgOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use IlTryCatchHandlerMsg.newBuilder() to construct.
    private IlTryCatchHandlerMsg(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private IlTryCatchHandlerMsg() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new IlTryCatchHandlerMsg();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return soot.dotnet.proto.ProtoIlInstructions.internal_static_IlTryCatchHandlerMsg_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return soot.dotnet.proto.ProtoIlInstructions.internal_static_IlTryCatchHandlerMsg_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsg.class, soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsg.Builder.class);
    }

    public static final int BODY_FIELD_NUMBER = 1;
    private soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg body_;
    /**
     * <code>.IlBlockContainerMsg body = 1;</code>
     * @return Whether the body field is set.
     */
    @java.lang.Override
    public boolean hasBody() {
      return body_ != null;
    }
    /**
     * <code>.IlBlockContainerMsg body = 1;</code>
     * @return The body.
     */
    @java.lang.Override
    public soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg getBody() {
      return body_ == null ? soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.getDefaultInstance() : body_;
    }
    /**
     * <code>.IlBlockContainerMsg body = 1;</code>
     */
    @java.lang.Override
    public soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsgOrBuilder getBodyOrBuilder() {
      return body_ == null ? soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.getDefaultInstance() : body_;
    }

    public static final int VARIABLE_FIELD_NUMBER = 2;
    private soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg variable_;
    /**
     * <code>.IlVariableMsg variable = 2;</code>
     * @return Whether the variable field is set.
     */
    @java.lang.Override
    public boolean hasVariable() {
      return variable_ != null;
    }
    /**
     * <code>.IlVariableMsg variable = 2;</code>
     * @return The variable.
     */
    @java.lang.Override
    public soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg getVariable() {
      return variable_ == null ? soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg.getDefaultInstance() : variable_;
    }
    /**
     * <code>.IlVariableMsg variable = 2;</code>
     */
    @java.lang.Override
    public soot.dotnet.proto.ProtoIlInstructions.IlVariableMsgOrBuilder getVariableOrBuilder() {
      return variable_ == null ? soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg.getDefaultInstance() : variable_;
    }

    public static final int FILTER_FIELD_NUMBER = 3;
    private soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg filter_;
    /**
     * <code>.IlBlockContainerMsg filter = 3;</code>
     * @return Whether the filter field is set.
     */
    @java.lang.Override
    public boolean hasFilter() {
      return filter_ != null;
    }
    /**
     * <code>.IlBlockContainerMsg filter = 3;</code>
     * @return The filter.
     */
    @java.lang.Override
    public soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg getFilter() {
      return filter_ == null ? soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.getDefaultInstance() : filter_;
    }
    /**
     * <code>.IlBlockContainerMsg filter = 3;</code>
     */
    @java.lang.Override
    public soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsgOrBuilder getFilterOrBuilder() {
      return filter_ == null ? soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.getDefaultInstance() : filter_;
    }

    public static final int HAS_FILTER_FIELD_NUMBER = 4;
    private boolean hasFilter_ = false;
    /**
     * <code>bool has_filter = 4;</code>
     * @return The hasFilter.
     */
    @java.lang.Override
    public boolean getHasFilter() {
      return hasFilter_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (body_ != null) {
        output.writeMessage(1, getBody());
      }
      if (variable_ != null) {
        output.writeMessage(2, getVariable());
      }
      if (filter_ != null) {
        output.writeMessage(3, getFilter());
      }
      if (hasFilter_ != false) {
        output.writeBool(4, hasFilter_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (body_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getBody());
      }
      if (variable_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getVariable());
      }
      if (filter_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getFilter());
      }
      if (hasFilter_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(4, hasFilter_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsg)) {
        return super.equals(obj);
      }
      soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsg other = (soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsg) obj;

      if (hasBody() != other.hasBody()) return false;
      if (hasBody()) {
        if (!getBody()
            .equals(other.getBody())) return false;
      }
      if (hasVariable() != other.hasVariable()) return false;
      if (hasVariable()) {
        if (!getVariable()
            .equals(other.getVariable())) return false;
      }
      if (hasFilter() != other.hasFilter()) return false;
      if (hasFilter()) {
        if (!getFilter()
            .equals(other.getFilter())) return false;
      }
      if (getHasFilter()
          != other.getHasFilter()) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasBody()) {
        hash = (37 * hash) + BODY_FIELD_NUMBER;
        hash = (53 * hash) + getBody().hashCode();
      }
      if (hasVariable()) {
        hash = (37 * hash) + VARIABLE_FIELD_NUMBER;
        hash = (53 * hash) + getVariable().hashCode();
      }
      if (hasFilter()) {
        hash = (37 * hash) + FILTER_FIELD_NUMBER;
        hash = (53 * hash) + getFilter().hashCode();
      }
      hash = (37 * hash) + HAS_FILTER_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getHasFilter());
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsg parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsg parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsg parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsg parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsg parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsg parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsg parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsg parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsg parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsg parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsg parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsg parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsg prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code IlTryCatchHandlerMsg}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:IlTryCatchHandlerMsg)
        soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsgOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return soot.dotnet.proto.ProtoIlInstructions.internal_static_IlTryCatchHandlerMsg_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return soot.dotnet.proto.ProtoIlInstructions.internal_static_IlTryCatchHandlerMsg_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsg.class, soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsg.Builder.class);
      }

      // Construct using soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsg.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        body_ = null;
        if (bodyBuilder_ != null) {
          bodyBuilder_.dispose();
          bodyBuilder_ = null;
        }
        variable_ = null;
        if (variableBuilder_ != null) {
          variableBuilder_.dispose();
          variableBuilder_ = null;
        }
        filter_ = null;
        if (filterBuilder_ != null) {
          filterBuilder_.dispose();
          filterBuilder_ = null;
        }
        hasFilter_ = false;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return soot.dotnet.proto.ProtoIlInstructions.internal_static_IlTryCatchHandlerMsg_descriptor;
      }

      @java.lang.Override
      public soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsg getDefaultInstanceForType() {
        return soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsg.getDefaultInstance();
      }

      @java.lang.Override
      public soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsg build() {
        soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsg result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsg buildPartial() {
        soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsg result = new soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsg(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsg result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.body_ = bodyBuilder_ == null
              ? body_
              : bodyBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.variable_ = variableBuilder_ == null
              ? variable_
              : variableBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.filter_ = filterBuilder_ == null
              ? filter_
              : filterBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.hasFilter_ = hasFilter_;
        }
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsg) {
          return mergeFrom((soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsg)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsg other) {
        if (other == soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsg.getDefaultInstance()) return this;
        if (other.hasBody()) {
          mergeBody(other.getBody());
        }
        if (other.hasVariable()) {
          mergeVariable(other.getVariable());
        }
        if (other.hasFilter()) {
          mergeFilter(other.getFilter());
        }
        if (other.getHasFilter() != false) {
          setHasFilter(other.getHasFilter());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                input.readMessage(
                    getBodyFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 18: {
                input.readMessage(
                    getVariableFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 26: {
                input.readMessage(
                    getFilterFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000004;
                break;
              } // case 26
              case 32: {
                hasFilter_ = input.readBool();
                bitField0_ |= 0x00000008;
                break;
              } // case 32
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg body_;
      private com.google.protobuf.SingleFieldBuilderV3<
          soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg, soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsgOrBuilder> bodyBuilder_;
      /**
       * <code>.IlBlockContainerMsg body = 1;</code>
       * @return Whether the body field is set.
       */
      public boolean hasBody() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>.IlBlockContainerMsg body = 1;</code>
       * @return The body.
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg getBody() {
        if (bodyBuilder_ == null) {
          return body_ == null ? soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.getDefaultInstance() : body_;
        } else {
          return bodyBuilder_.getMessage();
        }
      }
      /**
       * <code>.IlBlockContainerMsg body = 1;</code>
       */
      public Builder setBody(soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg value) {
        if (bodyBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          body_ = value;
        } else {
          bodyBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>.IlBlockContainerMsg body = 1;</code>
       */
      public Builder setBody(
          soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.Builder builderForValue) {
        if (bodyBuilder_ == null) {
          body_ = builderForValue.build();
        } else {
          bodyBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>.IlBlockContainerMsg body = 1;</code>
       */
      public Builder mergeBody(soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg value) {
        if (bodyBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
            body_ != null &&
            body_ != soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.getDefaultInstance()) {
            getBodyBuilder().mergeFrom(value);
          } else {
            body_ = value;
          }
        } else {
          bodyBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>.IlBlockContainerMsg body = 1;</code>
       */
      public Builder clearBody() {
        bitField0_ = (bitField0_ & ~0x00000001);
        body_ = null;
        if (bodyBuilder_ != null) {
          bodyBuilder_.dispose();
          bodyBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>.IlBlockContainerMsg body = 1;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.Builder getBodyBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getBodyFieldBuilder().getBuilder();
      }
      /**
       * <code>.IlBlockContainerMsg body = 1;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsgOrBuilder getBodyOrBuilder() {
        if (bodyBuilder_ != null) {
          return bodyBuilder_.getMessageOrBuilder();
        } else {
          return body_ == null ?
              soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.getDefaultInstance() : body_;
        }
      }
      /**
       * <code>.IlBlockContainerMsg body = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg, soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsgOrBuilder> 
          getBodyFieldBuilder() {
        if (bodyBuilder_ == null) {
          bodyBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg, soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsgOrBuilder>(
                  getBody(),
                  getParentForChildren(),
                  isClean());
          body_ = null;
        }
        return bodyBuilder_;
      }

      private soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg variable_;
      private com.google.protobuf.SingleFieldBuilderV3<
          soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg, soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlVariableMsgOrBuilder> variableBuilder_;
      /**
       * <code>.IlVariableMsg variable = 2;</code>
       * @return Whether the variable field is set.
       */
      public boolean hasVariable() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>.IlVariableMsg variable = 2;</code>
       * @return The variable.
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg getVariable() {
        if (variableBuilder_ == null) {
          return variable_ == null ? soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg.getDefaultInstance() : variable_;
        } else {
          return variableBuilder_.getMessage();
        }
      }
      /**
       * <code>.IlVariableMsg variable = 2;</code>
       */
      public Builder setVariable(soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg value) {
        if (variableBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          variable_ = value;
        } else {
          variableBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>.IlVariableMsg variable = 2;</code>
       */
      public Builder setVariable(
          soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg.Builder builderForValue) {
        if (variableBuilder_ == null) {
          variable_ = builderForValue.build();
        } else {
          variableBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>.IlVariableMsg variable = 2;</code>
       */
      public Builder mergeVariable(soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg value) {
        if (variableBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0) &&
            variable_ != null &&
            variable_ != soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg.getDefaultInstance()) {
            getVariableBuilder().mergeFrom(value);
          } else {
            variable_ = value;
          }
        } else {
          variableBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>.IlVariableMsg variable = 2;</code>
       */
      public Builder clearVariable() {
        bitField0_ = (bitField0_ & ~0x00000002);
        variable_ = null;
        if (variableBuilder_ != null) {
          variableBuilder_.dispose();
          variableBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>.IlVariableMsg variable = 2;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg.Builder getVariableBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getVariableFieldBuilder().getBuilder();
      }
      /**
       * <code>.IlVariableMsg variable = 2;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlVariableMsgOrBuilder getVariableOrBuilder() {
        if (variableBuilder_ != null) {
          return variableBuilder_.getMessageOrBuilder();
        } else {
          return variable_ == null ?
              soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg.getDefaultInstance() : variable_;
        }
      }
      /**
       * <code>.IlVariableMsg variable = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg, soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlVariableMsgOrBuilder> 
          getVariableFieldBuilder() {
        if (variableBuilder_ == null) {
          variableBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg, soot.dotnet.proto.ProtoIlInstructions.IlVariableMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlVariableMsgOrBuilder>(
                  getVariable(),
                  getParentForChildren(),
                  isClean());
          variable_ = null;
        }
        return variableBuilder_;
      }

      private soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg filter_;
      private com.google.protobuf.SingleFieldBuilderV3<
          soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg, soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsgOrBuilder> filterBuilder_;
      /**
       * <code>.IlBlockContainerMsg filter = 3;</code>
       * @return Whether the filter field is set.
       */
      public boolean hasFilter() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>.IlBlockContainerMsg filter = 3;</code>
       * @return The filter.
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg getFilter() {
        if (filterBuilder_ == null) {
          return filter_ == null ? soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.getDefaultInstance() : filter_;
        } else {
          return filterBuilder_.getMessage();
        }
      }
      /**
       * <code>.IlBlockContainerMsg filter = 3;</code>
       */
      public Builder setFilter(soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg value) {
        if (filterBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          filter_ = value;
        } else {
          filterBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>.IlBlockContainerMsg filter = 3;</code>
       */
      public Builder setFilter(
          soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.Builder builderForValue) {
        if (filterBuilder_ == null) {
          filter_ = builderForValue.build();
        } else {
          filterBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>.IlBlockContainerMsg filter = 3;</code>
       */
      public Builder mergeFilter(soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg value) {
        if (filterBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0) &&
            filter_ != null &&
            filter_ != soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.getDefaultInstance()) {
            getFilterBuilder().mergeFrom(value);
          } else {
            filter_ = value;
          }
        } else {
          filterBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>.IlBlockContainerMsg filter = 3;</code>
       */
      public Builder clearFilter() {
        bitField0_ = (bitField0_ & ~0x00000004);
        filter_ = null;
        if (filterBuilder_ != null) {
          filterBuilder_.dispose();
          filterBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>.IlBlockContainerMsg filter = 3;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.Builder getFilterBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getFilterFieldBuilder().getBuilder();
      }
      /**
       * <code>.IlBlockContainerMsg filter = 3;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsgOrBuilder getFilterOrBuilder() {
        if (filterBuilder_ != null) {
          return filterBuilder_.getMessageOrBuilder();
        } else {
          return filter_ == null ?
              soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.getDefaultInstance() : filter_;
        }
      }
      /**
       * <code>.IlBlockContainerMsg filter = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg, soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsgOrBuilder> 
          getFilterFieldBuilder() {
        if (filterBuilder_ == null) {
          filterBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg, soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlBlockContainerMsgOrBuilder>(
                  getFilter(),
                  getParentForChildren(),
                  isClean());
          filter_ = null;
        }
        return filterBuilder_;
      }

      private boolean hasFilter_ ;
      /**
       * <code>bool has_filter = 4;</code>
       * @return The hasFilter.
       */
      @java.lang.Override
      public boolean getHasFilter() {
        return hasFilter_;
      }
      /**
       * <code>bool has_filter = 4;</code>
       * @param value The hasFilter to set.
       * @return This builder for chaining.
       */
      public Builder setHasFilter(boolean value) {
        
        hasFilter_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>bool has_filter = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearHasFilter() {
        bitField0_ = (bitField0_ & ~0x00000008);
        hasFilter_ = false;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:IlTryCatchHandlerMsg)
    }

    // @@protoc_insertion_point(class_scope:IlTryCatchHandlerMsg)
    private static final soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsg DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsg();
    }

    public static soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsg getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<IlTryCatchHandlerMsg>
        PARSER = new com.google.protobuf.AbstractParser<IlTryCatchHandlerMsg>() {
      @java.lang.Override
      public IlTryCatchHandlerMsg parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<IlTryCatchHandlerMsg> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<IlTryCatchHandlerMsg> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public soot.dotnet.proto.ProtoIlInstructions.IlTryCatchHandlerMsg getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface IlSwitchSectionMsgOrBuilder extends
      // @@protoc_insertion_point(interface_extends:IlSwitchSectionMsg)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>int64 label = 1;</code>
     * @return The label.
     */
    long getLabel();

    /**
     * <code>.IlInstructionMsg target_instr = 2;</code>
     * @return Whether the targetInstr field is set.
     */
    boolean hasTargetInstr();
    /**
     * <code>.IlInstructionMsg target_instr = 2;</code>
     * @return The targetInstr.
     */
    soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg getTargetInstr();
    /**
     * <code>.IlInstructionMsg target_instr = 2;</code>
     */
    soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder getTargetInstrOrBuilder();
  }
  /**
   * Protobuf type {@code IlSwitchSectionMsg}
   */
  public static final class IlSwitchSectionMsg extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:IlSwitchSectionMsg)
      IlSwitchSectionMsgOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use IlSwitchSectionMsg.newBuilder() to construct.
    private IlSwitchSectionMsg(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private IlSwitchSectionMsg() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new IlSwitchSectionMsg();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return soot.dotnet.proto.ProtoIlInstructions.internal_static_IlSwitchSectionMsg_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return soot.dotnet.proto.ProtoIlInstructions.internal_static_IlSwitchSectionMsg_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsg.class, soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsg.Builder.class);
    }

    public static final int LABEL_FIELD_NUMBER = 1;
    private long label_ = 0L;
    /**
     * <code>int64 label = 1;</code>
     * @return The label.
     */
    @java.lang.Override
    public long getLabel() {
      return label_;
    }

    public static final int TARGET_INSTR_FIELD_NUMBER = 2;
    private soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg targetInstr_;
    /**
     * <code>.IlInstructionMsg target_instr = 2;</code>
     * @return Whether the targetInstr field is set.
     */
    @java.lang.Override
    public boolean hasTargetInstr() {
      return targetInstr_ != null;
    }
    /**
     * <code>.IlInstructionMsg target_instr = 2;</code>
     * @return The targetInstr.
     */
    @java.lang.Override
    public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg getTargetInstr() {
      return targetInstr_ == null ? soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance() : targetInstr_;
    }
    /**
     * <code>.IlInstructionMsg target_instr = 2;</code>
     */
    @java.lang.Override
    public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder getTargetInstrOrBuilder() {
      return targetInstr_ == null ? soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance() : targetInstr_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (label_ != 0L) {
        output.writeInt64(1, label_);
      }
      if (targetInstr_ != null) {
        output.writeMessage(2, getTargetInstr());
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (label_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(1, label_);
      }
      if (targetInstr_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getTargetInstr());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsg)) {
        return super.equals(obj);
      }
      soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsg other = (soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsg) obj;

      if (getLabel()
          != other.getLabel()) return false;
      if (hasTargetInstr() != other.hasTargetInstr()) return false;
      if (hasTargetInstr()) {
        if (!getTargetInstr()
            .equals(other.getTargetInstr())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + LABEL_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getLabel());
      if (hasTargetInstr()) {
        hash = (37 * hash) + TARGET_INSTR_FIELD_NUMBER;
        hash = (53 * hash) + getTargetInstr().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsg parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsg parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsg parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsg parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsg parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsg parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsg parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsg parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsg parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsg parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsg parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsg parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsg prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code IlSwitchSectionMsg}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:IlSwitchSectionMsg)
        soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsgOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return soot.dotnet.proto.ProtoIlInstructions.internal_static_IlSwitchSectionMsg_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return soot.dotnet.proto.ProtoIlInstructions.internal_static_IlSwitchSectionMsg_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsg.class, soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsg.Builder.class);
      }

      // Construct using soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsg.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        label_ = 0L;
        targetInstr_ = null;
        if (targetInstrBuilder_ != null) {
          targetInstrBuilder_.dispose();
          targetInstrBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return soot.dotnet.proto.ProtoIlInstructions.internal_static_IlSwitchSectionMsg_descriptor;
      }

      @java.lang.Override
      public soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsg getDefaultInstanceForType() {
        return soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsg.getDefaultInstance();
      }

      @java.lang.Override
      public soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsg build() {
        soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsg result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsg buildPartial() {
        soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsg result = new soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsg(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsg result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.label_ = label_;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.targetInstr_ = targetInstrBuilder_ == null
              ? targetInstr_
              : targetInstrBuilder_.build();
        }
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsg) {
          return mergeFrom((soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsg)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsg other) {
        if (other == soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsg.getDefaultInstance()) return this;
        if (other.getLabel() != 0L) {
          setLabel(other.getLabel());
        }
        if (other.hasTargetInstr()) {
          mergeTargetInstr(other.getTargetInstr());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                label_ = input.readInt64();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 18: {
                input.readMessage(
                    getTargetInstrFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private long label_ ;
      /**
       * <code>int64 label = 1;</code>
       * @return The label.
       */
      @java.lang.Override
      public long getLabel() {
        return label_;
      }
      /**
       * <code>int64 label = 1;</code>
       * @param value The label to set.
       * @return This builder for chaining.
       */
      public Builder setLabel(long value) {
        
        label_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>int64 label = 1;</code>
       * @return This builder for chaining.
       */
      public Builder clearLabel() {
        bitField0_ = (bitField0_ & ~0x00000001);
        label_ = 0L;
        onChanged();
        return this;
      }

      private soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg targetInstr_;
      private com.google.protobuf.SingleFieldBuilderV3<
          soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder> targetInstrBuilder_;
      /**
       * <code>.IlInstructionMsg target_instr = 2;</code>
       * @return Whether the targetInstr field is set.
       */
      public boolean hasTargetInstr() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>.IlInstructionMsg target_instr = 2;</code>
       * @return The targetInstr.
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg getTargetInstr() {
        if (targetInstrBuilder_ == null) {
          return targetInstr_ == null ? soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance() : targetInstr_;
        } else {
          return targetInstrBuilder_.getMessage();
        }
      }
      /**
       * <code>.IlInstructionMsg target_instr = 2;</code>
       */
      public Builder setTargetInstr(soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg value) {
        if (targetInstrBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          targetInstr_ = value;
        } else {
          targetInstrBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>.IlInstructionMsg target_instr = 2;</code>
       */
      public Builder setTargetInstr(
          soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder builderForValue) {
        if (targetInstrBuilder_ == null) {
          targetInstr_ = builderForValue.build();
        } else {
          targetInstrBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>.IlInstructionMsg target_instr = 2;</code>
       */
      public Builder mergeTargetInstr(soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg value) {
        if (targetInstrBuilder_ == null) {
          if (((bitField0_ & 0x00000002) != 0) &&
            targetInstr_ != null &&
            targetInstr_ != soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance()) {
            getTargetInstrBuilder().mergeFrom(value);
          } else {
            targetInstr_ = value;
          }
        } else {
          targetInstrBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>.IlInstructionMsg target_instr = 2;</code>
       */
      public Builder clearTargetInstr() {
        bitField0_ = (bitField0_ & ~0x00000002);
        targetInstr_ = null;
        if (targetInstrBuilder_ != null) {
          targetInstrBuilder_.dispose();
          targetInstrBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>.IlInstructionMsg target_instr = 2;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder getTargetInstrBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getTargetInstrFieldBuilder().getBuilder();
      }
      /**
       * <code>.IlInstructionMsg target_instr = 2;</code>
       */
      public soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder getTargetInstrOrBuilder() {
        if (targetInstrBuilder_ != null) {
          return targetInstrBuilder_.getMessageOrBuilder();
        } else {
          return targetInstr_ == null ?
              soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.getDefaultInstance() : targetInstr_;
        }
      }
      /**
       * <code>.IlInstructionMsg target_instr = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder> 
          getTargetInstrFieldBuilder() {
        if (targetInstrBuilder_ == null) {
          targetInstrBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsg.Builder, soot.dotnet.proto.ProtoIlInstructions.IlInstructionMsgOrBuilder>(
                  getTargetInstr(),
                  getParentForChildren(),
                  isClean());
          targetInstr_ = null;
        }
        return targetInstrBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:IlSwitchSectionMsg)
    }

    // @@protoc_insertion_point(class_scope:IlSwitchSectionMsg)
    private static final soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsg DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsg();
    }

    public static soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsg getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<IlSwitchSectionMsg>
        PARSER = new com.google.protobuf.AbstractParser<IlSwitchSectionMsg>() {
      @java.lang.Override
      public IlSwitchSectionMsg parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<IlSwitchSectionMsg> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<IlSwitchSectionMsg> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public soot.dotnet.proto.ProtoIlInstructions.IlSwitchSectionMsg getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_IlFunctionMsg_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_IlFunctionMsg_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_IlBlockContainerMsg_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_IlBlockContainerMsg_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_IlBlock_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_IlBlock_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_IlInstructionMsg_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_IlInstructionMsg_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_IlVariableMsg_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_IlVariableMsg_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_IlTryCatchHandlerMsg_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_IlTryCatchHandlerMsg_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_IlSwitchSectionMsg_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_IlSwitchSectionMsg_fieldAccessorTable;

  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static  com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n\024IlInstructions.proto\032\026AssemblyAllTypes" +
      ".proto\"V\n\rIlFunctionMsg\022\"\n\004body\030\001 \001(\0132\024." +
      "IlBlockContainerMsg\022!\n\tvariables\030\002 \003(\0132\016" +
      ".IlVariableMsg\"/\n\023IlBlockContainerMsg\022\030\n" +
      "\006blocks\030\001 \003(\0132\010.IlBlock\"\177\n\007IlBlock\0222\n\027li" +
      "st_of_il_instructions\030\001 \003(\0132\021.IlInstruct" +
      "ionMsg\022\022\n\nblock_name\030\002 \001(\t\022,\n\021final_inst" +
      "ruction\030\003 \001(\0132\021.IlInstructionMsg\"\220\034\n\020IlI" +
      "nstructionMsg\022+\n\007op_code\030\001 \001(\0162\032.IlInstr" +
      "uctionMsg.IlOpCode\022!\n\006method\030\004 \001(\0132\021.Met" +
      "hodDefinition\022$\n\targuments\030\005 \003(\0132\021.IlIns" +
      "tructionMsg\022,\n\021value_instruction\030\006 \001(\0132\021" +
      ".IlInstructionMsg\022&\n\016lambdaFunction\030V \001(" +
      "\0132\016.IlFunctionMsg\022\035\n\025value_constant_stri" +
      "ng\030\007 \001(\t\022\034\n\024value_constant_int64\030& \001(\003\022\034" +
      "\n\024value_constant_float\030\' \001(\002\022\035\n\025value_co" +
      "nstant_double\030( \001(\001\022\033\n\023value_constant_bo" +
      "ol\030= \001(\010\022\035\n\025value_constant_uint64\030A \001(\004\022" +
      "\036\n\rconstant_type\030\027 \001(\0162\007.IlType\022!\n\006targe" +
      "t\030\010 \001(\0132\021.IlInstructionMsg\022\035\n\004type\030\t \001(\013" +
      "2\017.TypeDefinition\022\037\n\005field\030\n \001(\0132\020.Field" +
      "Definition\022 \n\010variable\030\013 \001(\0132\016.IlVariabl" +
      "eMsg\022;\n\010operator\030\014 \001(\0162).IlInstructionMs" +
      "g.IlBinaryNumericOperator\022&\n\004sign\030\024 \001(\0162" +
      "\030.IlInstructionMsg.IlSign\022\037\n\004left\030\016 \001(\0132" +
      "\021.IlInstructionMsg\022 \n\005right\030\017 \001(\0132\021.IlIn" +
      "structionMsg\022\024\n\014target_label\030\022 \001(\t\022;\n\017co" +
      "mparison_kind\030\025 \001(\0162\".IlInstructionMsg.I" +
      "lComparisonKind\022$\n\tcondition\030\026 \001(\0132\021.IlI" +
      "nstructionMsg\022$\n\ttrue_inst\030S \001(\0132\021.IlIns" +
      "tructionMsg\022%\n\nfalse_inst\030T \001(\0132\021.IlInst" +
      "ructionMsg\022 \n\005array\030\036 \001(\0132\021.IlInstructio" +
      "nMsg\022;\n\017conversion_kind\030\031 \001(\0162\".IlInstru" +
      "ctionMsg.IlConversionKind\0221\n\ninput_type\030" +
      "\032 \001(\0162\035.IlInstructionMsg.IlStackType\0226\n\013" +
      "target_type\030\034 \001(\0162!.IlInstructionMsg.IlP" +
      "rimitiveType\022#\n\010argument\030\035 \001(\0132\021.IlInstr" +
      "uctionMsg\0222\n\013result_type\030\033 \001(\0162\035.IlInstr" +
      "uctionMsg.IlStackType\022\"\n\007indices\030\037 \003(\0132\021" +
      ".IlInstructionMsg\022\'\n\ttry_block\030  \001(\0132\024.I" +
      "lBlockContainerMsg\022\'\n\010handlers\030! \003(\0132\025.I" +
      "lTryCatchHandlerMsg\022+\n\rfinally_block\030\" \001" +
      "(\0132\024.IlBlockContainerMsg\022)\n\013fault_block\030" +
      "# \001(\0132\024.IlBlockContainerMsg\022\"\n\004body\030% \001(" +
      "\0132\024.IlBlockContainerMsg\022$\n\tkey_instr\030) \001" +
      "(\0132\021.IlInstructionMsg\022\'\n\014default_inst\030* " +
      "\001(\0132\021.IlInstructionMsg\022,\n\017switch_section" +
      "s\030+ \003(\0132\023.IlSwitchSectionMsg\022\032\n\022check_fo" +
      "r_overflow\030, \001(\010\022\033\n\023is_leaving_function\030" +
      "- \001(\010\"\226\010\n\010IlOpCode\022\013\n\007NONE_OP\020\000\022\007\n\003NOP\020\001" +
      "\022\010\n\004CALL\020\004\022\t\n\005LEAVE\020\005\022\t\n\005LDSTR\020\006\022\t\n\005STOB" +
      "J\020\007\022\n\n\006LDFLDA\020\010\022\n\n\006LDC_I4\020\t\022\t\n\005LDLOC\020\n\022\t" +
      "\n\005LDOBJ\020\013\022\t\n\005STLOC\020\014\022\n\n\006NEWOBJ\020\r\022\014\n\010CALL" +
      "VIRT\020\016\022\036\n\032BINARY_NUMERIC_INSTRUCTION\020\017\022\n" +
      "\n\006BRANCH\020\020\022\010\n\004COMP\020\021\022\022\n\016IF_INSTRUCTION\020\022" +
      "\022\013\n\007LDSFLDA\020\023\022\n\n\006LDNULL\020\024\022\t\n\005LDLEN\020\025\022\010\n\004" +
      "CONV\020\026\022\n\n\006NEWARR\020\027\022\013\n\007LDELEMA\020\030\022\r\n\tCASTC" +
      "LASS\020\031\022\n\n\006ISINST\020\032\022\007\n\003BOX\020\033\022\014\n\010UNBOXANY\020" +
      "\034\022\t\n\005UNBOX\020\035\022\r\n\tTRY_CATCH\020\036\022\n\n\006LDLOCA\020\037\022" +
      "\021\n\rDEFAULT_VALUE\020 \022\007\n\003NOT\020!\022\017\n\013TRY_FINAL" +
      "LY\020\"\022\r\n\tTRY_FAULT\020#\022\023\n\017BLOCK_CONTAINER\020$" +
      "\022\t\n\005BLOCK\020%\022\025\n\021TRY_CATCH_HANDLER\020&\022\013\n\007RE" +
      "THROW\020\'\022\t\n\005THROW\020(\022\017\n\013DEBUG_BREAK\020)\022\r\n\tC" +
      "K_FINITE\020*\022\n\n\006CP_BLK\020,\022\n\n\006CP_OBJ\020-\022\007\n\003DU" +
      "P\020.\022\014\n\010INIT_BLK\020/\022\014\n\010INIT_OBJ\0200\022\n\n\006LDC_I" +
      "8\0201\022\n\n\006LDC_R4\0202\022\n\n\006LDC_R8\0203\022\n\n\006LD_FLD\0204\022" +
      "\n\n\006LD_FTN\0205\022\013\n\007LD_SFLD\0206\022\014\n\010LD_TOKEN\0207\022\017" +
      "\n\013LD_VIRT_FTN\0208\022\r\n\tLOC_ALLOC\0209\022\016\n\nMK_REF" +
      "_ANY\020:\022\006\n\002NO\020;\022\014\n\010READONLY\020<\022\020\n\014REF_ANY_" +
      "TYPE\020=\022\017\n\013REF_ANY_VAL\020>\022\013\n\007SIZE_OF\020?\022\013\n\007" +
      "ST_SFLD\020@\022\n\n\006SWITCH\020A\022\010\n\004TAIL\020B\022\r\n\tUNALI" +
      "GNED\020C\022\014\n\010VOLATILE\020D\022\023\n\017LD_MEMBER_TOKEN\020" +
      "E\022\021\n\rLD_TYPE_TOKEN\020F\022\022\n\016INVALID_BRANCH\020G" +
      "\022\021\n\rCALL_INDIRECT\020H\022\025\n\021MATCH_INSTRUCTION" +
      "\020I\022\017\n\013LDC_DECIMAL\020J\022\021\n\rSTRING_TO_INT\020K\022\016" +
      "\n\nILFUNCTION\020L\"\231\001\n\027IlBinaryNumericOperat" +
      "or\022\017\n\013NONE_BINARY\020\000\022\007\n\003Add\020\001\022\007\n\003Sub\020\002\022\007\n" +
      "\003Mul\020\003\022\007\n\003Div\020\004\022\007\n\003Rem\020\005\022\n\n\006BitAnd\020\006\022\t\n\005" +
      "BitOr\020\007\022\n\n\006BitXor\020\010\022\r\n\tShiftLeft\020\t\022\016\n\nSh" +
      "iftRight\020\n\"1\n\006IlSign\022\r\n\tNONE_SIGN\020\000\022\n\n\006S" +
      "igned\020\001\022\014\n\010Unsigned\020\002\"\213\001\n\020IlComparisonKi" +
      "nd\022\r\n\tNONE_KIND\020\000\022\014\n\010Equality\020\001\022\016\n\nInequ" +
      "ality\020\002\022\014\n\010LessThan\020\003\022\023\n\017LessThanOrEqual" +
      "\020\004\022\017\n\013GreaterThan\020\005\022\026\n\022GreaterThanOrEqua" +
      "l\020\006\"\342\001\n\020IlConversionKind\022\023\n\017NONE_CONVERS" +
      "ION\020\000\022\013\n\007Invalid\020\001\022\007\n\003Nop\020\002\022\016\n\nIntToFloa" +
      "t\020\003\022\016\n\nFloatToInt\020\004\022\030\n\024FloatPrecisionCha" +
      "nge\020\005\022\016\n\nSignExtend\020\006\022\016\n\nZeroExtend\020\007\022\014\n" +
      "\010Truncate\020\010\022\022\n\016StopGCTracking\020\t\022\023\n\017Start" +
      "GCTracking\020\n\022\022\n\016ObjectInterior\020\013\"\216\001\n\013IlS" +
      "tackType\022\023\n\017NONE_STACK_TYPE\020\000\022\021\n\rUnknown" +
      "_STACK\020\001\022\014\n\010I4_STACK\020\002\022\013\n\007I_STACK\020\003\022\014\n\010I" +
      "8_STACK\020\004\022\006\n\002F4\020\005\022\006\n\002F8\020\006\022\005\n\001O\020\007\022\r\n\tRef_" +
      "STACK\020\010\022\010\n\004Void\020\t\"\257\001\n\017IlPrimitiveType\022\027\n" +
      "\023NONE_PRIMITIVE_TYPE\020\000\022\010\n\004None\020\001\022\006\n\002I1\020\002" +
      "\022\006\n\002I2\020\003\022\006\n\002I4\020\004\022\006\n\002I8\020\005\022\006\n\002R4\020\006\022\006\n\002R8\020\007" +
      "\022\006\n\002U1\020\010\022\006\n\002U2\020\t\022\006\n\002U4\020\n\022\006\n\002U8\020\013\022\005\n\001I\020\014\022" +
      "\005\n\001U\020\r\022\007\n\003Ref\020\016\022\005\n\001R\020\017\022\013\n\007Unknown\020\020\"\314\003\n\r" +
      "IlVariableMsg\022\035\n\004type\030\001 \001(\0132\017.TypeDefini" +
      "tion\022\014\n\004name\030\002 \001(\t\022\031\n\021has_initial_value\030" +
      "\003 \001(\010\0224\n\rvariable_kind\030\004 \001(\0162\035.IlVariabl" +
      "eMsg.IlVariableKind\"\274\002\n\016IlVariableKind\022\010" +
      "\n\004NONE\020\000\022\t\n\005LOCAL\020\001\022\020\n\014PINNED_LOCAL\020\002\022\027\n" +
      "\023PINNED_REGION_LOCAL\020\003\022\017\n\013USING_LOCAL\020\004\022" +
      "\021\n\rFOREACH_LOCAL\020\005\022\026\n\022INITIALIZER_TARGET" +
      "\020\006\022\r\n\tPARAMETER\020\007\022\030\n\024EXCEPTION_STACK_SLO" +
      "T\020\010\022\023\n\017EXCEPTION_LOCAL\020\t\022\r\n\tSTACKSLOT\020\n\022" +
      "\022\n\016NAMED_ARGUMENT\020\013\022\027\n\023DISPLAY_CLASS_LOC" +
      "AL\020\014\022\021\n\rPATTERN_LOCAL\020\r\022!\n\035DECONSTRUCTIO" +
      "N_INIT_TEMPORARY\020\016\"\226\001\n\024IlTryCatchHandler" +
      "Msg\022\"\n\004body\030\001 \001(\0132\024.IlBlockContainerMsg\022" +
      " \n\010variable\030\002 \001(\0132\016.IlVariableMsg\022$\n\006fil" +
      "ter\030\003 \001(\0132\024.IlBlockContainerMsg\022\022\n\nhas_f" +
      "ilter\030\004 \001(\010\"L\n\022IlSwitchSectionMsg\022\r\n\005lab" +
      "el\030\001 \001(\003\022\'\n\014target_instr\030\002 \001(\0132\021.IlInstr" +
      "uctionMsgBQ\n\021soot.dotnet.protoB\023ProtoIlI" +
      "nstructions\252\002&Soot.Dotnet.Decompiler.Mod" +
      "els.Protobufb\006proto3"
    };
    descriptor = com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          soot.dotnet.proto.ProtoAssemblyAllTypes.getDescriptor(),
        });
    internal_static_IlFunctionMsg_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_IlFunctionMsg_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_IlFunctionMsg_descriptor,
        new java.lang.String[] { "Body", "Variables", });
    internal_static_IlBlockContainerMsg_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_IlBlockContainerMsg_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_IlBlockContainerMsg_descriptor,
        new java.lang.String[] { "Blocks", });
    internal_static_IlBlock_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_IlBlock_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_IlBlock_descriptor,
        new java.lang.String[] { "ListOfIlInstructions", "BlockName", "FinalInstruction", });
    internal_static_IlInstructionMsg_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_IlInstructionMsg_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_IlInstructionMsg_descriptor,
        new java.lang.String[] { "OpCode", "Method", "Arguments", "ValueInstruction", "LambdaFunction", "ValueConstantString", "ValueConstantInt64", "ValueConstantFloat", "ValueConstantDouble", "ValueConstantBool", "ValueConstantUint64", "ConstantType", "Target", "Type", "Field", "Variable", "Operator", "Sign", "Left", "Right", "TargetLabel", "ComparisonKind", "Condition", "TrueInst", "FalseInst", "Array", "ConversionKind", "InputType", "TargetType", "Argument", "ResultType", "Indices", "TryBlock", "Handlers", "FinallyBlock", "FaultBlock", "Body", "KeyInstr", "DefaultInst", "SwitchSections", "CheckForOverflow", "IsLeavingFunction", });
    internal_static_IlVariableMsg_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_IlVariableMsg_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_IlVariableMsg_descriptor,
        new java.lang.String[] { "Type", "Name", "HasInitialValue", "VariableKind", });
    internal_static_IlTryCatchHandlerMsg_descriptor =
      getDescriptor().getMessageTypes().get(5);
    internal_static_IlTryCatchHandlerMsg_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_IlTryCatchHandlerMsg_descriptor,
        new java.lang.String[] { "Body", "Variable", "Filter", "HasFilter", });
    internal_static_IlSwitchSectionMsg_descriptor =
      getDescriptor().getMessageTypes().get(6);
    internal_static_IlSwitchSectionMsg_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_IlSwitchSectionMsg_descriptor,
        new java.lang.String[] { "Label", "TargetInstr", });
    soot.dotnet.proto.ProtoAssemblyAllTypes.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}
