public class org.apache.avro.Protocol extends org.apache.avro.JsonProperties
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.avro.Protocol
  super_class: org.apache.avro.JsonProperties
{
  public static final long VERSION;
    descriptor: J
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final java.util.Set<java.lang.String> MESSAGE_RESERVED;
    descriptor: Ljava/util/Set;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Set<Ljava/lang/String;>;

  private static final java.util.Set<java.lang.String> FIELD_RESERVED;
    descriptor: Ljava/util/Set;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Set<Ljava/lang/String;>;

  private java.lang.String name;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String namespace;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String doc;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private org.apache.avro.Schema$Names types;
    descriptor: Lorg/apache/avro/Schema$Names;
    flags: (0x0002) ACC_PRIVATE

  private java.util.Map<java.lang.String, org.apache.avro.Protocol$Message> messages;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Ljava/lang/String;Lorg/apache/avro/Protocol$Message;>;

  private byte[] md5;
    descriptor: [B
    flags: (0x0002) ACC_PRIVATE

  public static final org.apache.avro.Schema SYSTEM_ERROR;
    descriptor: Lorg/apache/avro/Schema;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final org.apache.avro.Schema SYSTEM_ERRORS;
    descriptor: Lorg/apache/avro/Schema;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  private static final java.util.Set<java.lang.String> PROTOCOL_RESERVED;
    descriptor: Ljava/util/Set;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Set<Ljava/lang/String;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=1, args_size=0
         0: .line 73
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putstatic org.apache.avro.Protocol.MESSAGE_RESERVED:Ljava/util/Set;
         1: .line 75
            getstatic org.apache.avro.Protocol.MESSAGE_RESERVED:Ljava/util/Set;
            iconst_5
            anewarray java.lang.String
            dup
            iconst_0
            ldc "doc"
            aastore
            dup
            iconst_1
            ldc "response"
            aastore
            dup
            iconst_2
            ldc "request"
            aastore
            dup
            iconst_3
            ldc "errors"
            aastore
            dup
            iconst_4
            ldc "one-way"
            aastore
            invokestatic java.util.Collections.addAll:(Ljava/util/Collection;[Ljava/lang/Object;)Z
            pop
         2: .line 78
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putstatic org.apache.avro.Protocol.FIELD_RESERVED:Ljava/util/Set;
         3: .line 80
            getstatic org.apache.avro.Protocol.FIELD_RESERVED:Ljava/util/Set;
            iconst_5
            anewarray java.lang.String
            dup
            iconst_0
            ldc "name"
            aastore
            dup
            iconst_1
            ldc "type"
            aastore
            dup
            iconst_2
            ldc "doc"
            aastore
            dup
            iconst_3
            ldc "default"
            aastore
            dup
            iconst_4
            ldc "aliases"
            aastore
            invokestatic java.util.Collections.addAll:(Ljava/util/Collection;[Ljava/lang/Object;)Z
            pop
         4: .line 257
            getstatic org.apache.avro.Schema$Type.STRING:Lorg/apache/avro/Schema$Type;
            invokestatic org.apache.avro.Schema.create:(Lorg/apache/avro/Schema$Type;)Lorg/apache/avro/Schema;
            putstatic org.apache.avro.Protocol.SYSTEM_ERROR:Lorg/apache/avro/Schema;
         5: .line 262
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 0 /* errors */
        start local 0 // java.util.List errors
         6: .line 263
            aload 0 /* errors */
            getstatic org.apache.avro.Protocol.SYSTEM_ERROR:Lorg/apache/avro/Schema;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         7: .line 264
            aload 0 /* errors */
            invokestatic org.apache.avro.Schema.createUnion:(Ljava/util/List;)Lorg/apache/avro/Schema;
            putstatic org.apache.avro.Protocol.SYSTEM_ERRORS:Lorg/apache/avro/Schema;
        end local 0 // java.util.List errors
         8: .line 267
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putstatic org.apache.avro.Protocol.PROTOCOL_RESERVED:Ljava/util/Set;
         9: .line 269
            getstatic org.apache.avro.Protocol.PROTOCOL_RESERVED:Ljava/util/Set;
            bipush 6
            anewarray java.lang.String
            dup
            iconst_0
            ldc "namespace"
            aastore
            dup
            iconst_1
            ldc "protocol"
            aastore
            dup
            iconst_2
            ldc "doc"
            aastore
            dup
            iconst_3
            ldc "messages"
            aastore
            dup
            iconst_4
            ldc "types"
            aastore
            dup
            iconst_5
            ldc "errors"
            aastore
            invokestatic java.util.Collections.addAll:(Ljava/util/Collection;[Ljava/lang/Object;)Z
            pop
        10: .line 270
            return
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            6    8     0  errors  Ljava/util/List<Lorg/apache/avro/Schema;>;

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.avro.Protocol this
         0: .line 273
            aload 0 /* this */
            getstatic org.apache.avro.Protocol.PROTOCOL_RESERVED:Ljava/util/Set;
            invokespecial org.apache.avro.JsonProperties.<init>:(Ljava/util/Set;)V
         1: .line 252
            aload 0 /* this */
            new org.apache.avro.Schema$Names
            dup
            invokespecial org.apache.avro.Schema$Names.<init>:()V
            putfield org.apache.avro.Protocol.types:Lorg/apache/avro/Schema$Names;
         2: .line 253
            aload 0 /* this */
            new java.util.LinkedHashMap
            dup
            invokespecial java.util.LinkedHashMap.<init>:()V
            putfield org.apache.avro.Protocol.messages:Ljava/util/Map;
         3: .line 274
            return
        end local 0 // org.apache.avro.Protocol this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/apache/avro/Protocol;

  public void <init>(org.apache.avro.Protocol);
    descriptor: (Lorg/apache/avro/Protocol;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.apache.avro.Protocol this
        start local 1 // org.apache.avro.Protocol p
         0: .line 282
            aload 0 /* this */
            aload 1 /* p */
            invokevirtual org.apache.avro.Protocol.getName:()Ljava/lang/String;
            aload 1 /* p */
            invokevirtual org.apache.avro.Protocol.getDoc:()Ljava/lang/String;
            aload 1 /* p */
            invokevirtual org.apache.avro.Protocol.getNamespace:()Ljava/lang/String;
            invokespecial org.apache.avro.Protocol.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
         1: .line 283
            aload 0 /* this */
            aload 1 /* p */
            invokevirtual org.apache.avro.Protocol.putAll:(Lorg/apache/avro/JsonProperties;)V
         2: .line 284
            return
        end local 1 // org.apache.avro.Protocol p
        end local 0 // org.apache.avro.Protocol this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/avro/Protocol;
            0    3     1     p  Lorg/apache/avro/Protocol;
    MethodParameters:
      Name  Flags
      p     

  public void <init>(java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // org.apache.avro.Protocol this
        start local 1 // java.lang.String name
        start local 2 // java.lang.String doc
        start local 3 // java.lang.String namespace
         0: .line 287
            aload 0 /* this */
            getstatic org.apache.avro.Protocol.PROTOCOL_RESERVED:Ljava/util/Set;
            invokespecial org.apache.avro.JsonProperties.<init>:(Ljava/util/Set;)V
         1: .line 252
            aload 0 /* this */
            new org.apache.avro.Schema$Names
            dup
            invokespecial org.apache.avro.Schema$Names.<init>:()V
            putfield org.apache.avro.Protocol.types:Lorg/apache/avro/Schema$Names;
         2: .line 253
            aload 0 /* this */
            new java.util.LinkedHashMap
            dup
            invokespecial java.util.LinkedHashMap.<init>:()V
            putfield org.apache.avro.Protocol.messages:Ljava/util/Map;
         3: .line 288
            aload 0 /* this */
            aload 1 /* name */
            putfield org.apache.avro.Protocol.name:Ljava/lang/String;
         4: .line 289
            aload 0 /* this */
            aload 2 /* doc */
            putfield org.apache.avro.Protocol.doc:Ljava/lang/String;
         5: .line 290
            aload 0 /* this */
            aload 3 /* namespace */
            putfield org.apache.avro.Protocol.namespace:Ljava/lang/String;
         6: .line 291
            return
        end local 3 // java.lang.String namespace
        end local 2 // java.lang.String doc
        end local 1 // java.lang.String name
        end local 0 // org.apache.avro.Protocol this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0       this  Lorg/apache/avro/Protocol;
            0    7     1       name  Ljava/lang/String;
            0    7     2        doc  Ljava/lang/String;
            0    7     3  namespace  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      name       
      doc        
      namespace  

  public void <init>(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.apache.avro.Protocol this
        start local 1 // java.lang.String name
        start local 2 // java.lang.String namespace
         0: .line 294
            aload 0 /* this */
            aload 1 /* name */
            aconst_null
            aload 2 /* namespace */
            invokespecial org.apache.avro.Protocol.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
         1: .line 295
            return
        end local 2 // java.lang.String namespace
        end local 1 // java.lang.String name
        end local 0 // org.apache.avro.Protocol this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lorg/apache/avro/Protocol;
            0    2     1       name  Ljava/lang/String;
            0    2     2  namespace  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      name       
      namespace  

  public java.lang.String getName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.avro.Protocol this
         0: .line 299
            aload 0 /* this */
            getfield org.apache.avro.Protocol.name:Ljava/lang/String;
            areturn
        end local 0 // org.apache.avro.Protocol this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/avro/Protocol;

  public java.lang.String getNamespace();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.avro.Protocol this
         0: .line 304
            aload 0 /* this */
            getfield org.apache.avro.Protocol.namespace:Ljava/lang/String;
            areturn
        end local 0 // org.apache.avro.Protocol this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/avro/Protocol;

  public java.lang.String getDoc();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.avro.Protocol this
         0: .line 309
            aload 0 /* this */
            getfield org.apache.avro.Protocol.doc:Ljava/lang/String;
            areturn
        end local 0 // org.apache.avro.Protocol this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/avro/Protocol;

  public java.util.Collection<org.apache.avro.Schema> getTypes();
    descriptor: ()Ljava/util/Collection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.avro.Protocol this
         0: .line 314
            aload 0 /* this */
            getfield org.apache.avro.Protocol.types:Lorg/apache/avro/Schema$Names;
            invokevirtual org.apache.avro.Schema$Names.values:()Ljava/util/Collection;
            areturn
        end local 0 // org.apache.avro.Protocol this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/avro/Protocol;
    Signature: ()Ljava/util/Collection<Lorg/apache/avro/Schema;>;

  public org.apache.avro.Schema getType(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/apache/avro/Schema;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.avro.Protocol this
        start local 1 // java.lang.String name
         0: .line 319
            aload 0 /* this */
            getfield org.apache.avro.Protocol.types:Lorg/apache/avro/Schema$Names;
            aload 1 /* name */
            invokevirtual org.apache.avro.Schema$Names.get:(Ljava/lang/String;)Lorg/apache/avro/Schema;
            areturn
        end local 1 // java.lang.String name
        end local 0 // org.apache.avro.Protocol this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/avro/Protocol;
            0    1     1  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  public void setTypes(java.util.Collection<org.apache.avro.Schema>);
    descriptor: (Ljava/util/Collection;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.apache.avro.Protocol this
        start local 1 // java.util.Collection newTypes
         0: .line 324
            aload 0 /* this */
            new org.apache.avro.Schema$Names
            dup
            invokespecial org.apache.avro.Schema$Names.<init>:()V
            putfield org.apache.avro.Protocol.types:Lorg/apache/avro/Schema$Names;
         1: .line 325
            aload 1 /* newTypes */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3
            goto 4
      StackMap locals: org.apache.avro.Protocol java.util.Collection top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.avro.Schema
            astore 2 /* s */
        start local 2 // org.apache.avro.Schema s
         3: .line 326
            aload 0 /* this */
            getfield org.apache.avro.Protocol.types:Lorg/apache/avro/Schema$Names;
            aload 2 /* s */
            invokevirtual org.apache.avro.Schema$Names.add:(Lorg/apache/avro/Schema;)V
        end local 2 // org.apache.avro.Schema s
         4: .line 325
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 327
            return
        end local 1 // java.util.Collection newTypes
        end local 0 // org.apache.avro.Protocol this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lorg/apache/avro/Protocol;
            0    6     1  newTypes  Ljava/util/Collection<Lorg/apache/avro/Schema;>;
            3    4     2         s  Lorg/apache/avro/Schema;
    Signature: (Ljava/util/Collection<Lorg/apache/avro/Schema;>;)V
    MethodParameters:
          Name  Flags
      newTypes  

  public java.util.Map<java.lang.String, org.apache.avro.Protocol$Message> getMessages();
    descriptor: ()Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.avro.Protocol this
         0: .line 331
            aload 0 /* this */
            getfield org.apache.avro.Protocol.messages:Ljava/util/Map;
            areturn
        end local 0 // org.apache.avro.Protocol this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/avro/Protocol;
    Signature: ()Ljava/util/Map<Ljava/lang/String;Lorg/apache/avro/Protocol$Message;>;

  public org.apache.avro.Protocol$Message createMessage(java.lang.String, java.lang.String, org.apache.avro.Schema);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Lorg/apache/avro/Schema;)Lorg/apache/avro/Protocol$Message;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=4, args_size=4
        start local 0 // org.apache.avro.Protocol this
        start local 1 // java.lang.String name
        start local 2 // java.lang.String doc
        start local 3 // org.apache.avro.Schema request
         0: .line 337
            new org.apache.avro.Protocol$Message
            dup
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* doc */
            new java.util.LinkedHashMap
            dup
            invokespecial java.util.LinkedHashMap.<init>:()V
            aload 3 /* request */
            invokespecial org.apache.avro.Protocol$Message.<init>:(Lorg/apache/avro/Protocol;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Lorg/apache/avro/Schema;)V
            areturn
        end local 3 // org.apache.avro.Schema request
        end local 2 // java.lang.String doc
        end local 1 // java.lang.String name
        end local 0 // org.apache.avro.Protocol this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/apache/avro/Protocol;
            0    1     1     name  Ljava/lang/String;
            0    1     2      doc  Ljava/lang/String;
            0    1     3  request  Lorg/apache/avro/Schema;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
         Name  Flags
      name     
      doc      
      request  

  public org.apache.avro.Protocol$Message createMessage(org.apache.avro.Protocol$Message, org.apache.avro.Schema);
    descriptor: (Lorg/apache/avro/Protocol$Message;Lorg/apache/avro/Schema;)Lorg/apache/avro/Protocol$Message;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=3, args_size=3
        start local 0 // org.apache.avro.Protocol this
        start local 1 // org.apache.avro.Protocol$Message m
        start local 2 // org.apache.avro.Schema request
         0: .line 345
            new org.apache.avro.Protocol$Message
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.avro.Protocol.name:Ljava/lang/String;
            aload 0 /* this */
            getfield org.apache.avro.Protocol.doc:Ljava/lang/String;
            aload 1 /* m */
            aload 2 /* request */
            invokespecial org.apache.avro.Protocol$Message.<init>:(Lorg/apache/avro/Protocol;Ljava/lang/String;Ljava/lang/String;Lorg/apache/avro/JsonProperties;Lorg/apache/avro/Schema;)V
            areturn
        end local 2 // org.apache.avro.Schema request
        end local 1 // org.apache.avro.Protocol$Message m
        end local 0 // org.apache.avro.Protocol this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/apache/avro/Protocol;
            0    1     1        m  Lorg/apache/avro/Protocol$Message;
            0    1     2  request  Lorg/apache/avro/Schema;
    MethodParameters:
         Name  Flags
      m        
      request  

  public <T> org.apache.avro.Protocol$Message createMessage(java.lang.String, java.lang.String, org.apache.avro.JsonProperties, org.apache.avro.Schema);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Lorg/apache/avro/JsonProperties;Lorg/apache/avro/Schema;)Lorg/apache/avro/Protocol$Message;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=5, args_size=5
        start local 0 // org.apache.avro.Protocol this
        start local 1 // java.lang.String name
        start local 2 // java.lang.String doc
        start local 3 // org.apache.avro.JsonProperties propMap
        start local 4 // org.apache.avro.Schema request
         0: .line 350
            new org.apache.avro.Protocol$Message
            dup
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* doc */
            aload 3 /* propMap */
            aload 4 /* request */
            invokespecial org.apache.avro.Protocol$Message.<init>:(Lorg/apache/avro/Protocol;Ljava/lang/String;Ljava/lang/String;Lorg/apache/avro/JsonProperties;Lorg/apache/avro/Schema;)V
            areturn
        end local 4 // org.apache.avro.Schema request
        end local 3 // org.apache.avro.JsonProperties propMap
        end local 2 // java.lang.String doc
        end local 1 // java.lang.String name
        end local 0 // org.apache.avro.Protocol this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/apache/avro/Protocol;
            0    1     1     name  Ljava/lang/String;
            0    1     2      doc  Ljava/lang/String;
            0    1     3  propMap  Lorg/apache/avro/JsonProperties;
            0    1     4  request  Lorg/apache/avro/Schema;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/String;Ljava/lang/String;Lorg/apache/avro/JsonProperties;Lorg/apache/avro/Schema;)Lorg/apache/avro/Protocol$Message;
    MethodParameters:
         Name  Flags
      name     
      doc      
      propMap  
      request  

  public <T> org.apache.avro.Protocol$Message createMessage(java.lang.String, java.lang.String, java.util.Map<java.lang.String, ?>, org.apache.avro.Schema);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Lorg/apache/avro/Schema;)Lorg/apache/avro/Protocol$Message;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=5, args_size=5
        start local 0 // org.apache.avro.Protocol this
        start local 1 // java.lang.String name
        start local 2 // java.lang.String doc
        start local 3 // java.util.Map propMap
        start local 4 // org.apache.avro.Schema request
         0: .line 355
            new org.apache.avro.Protocol$Message
            dup
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* doc */
            aload 3 /* propMap */
            aload 4 /* request */
            invokespecial org.apache.avro.Protocol$Message.<init>:(Lorg/apache/avro/Protocol;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Lorg/apache/avro/Schema;)V
            areturn
        end local 4 // org.apache.avro.Schema request
        end local 3 // java.util.Map propMap
        end local 2 // java.lang.String doc
        end local 1 // java.lang.String name
        end local 0 // org.apache.avro.Protocol this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/apache/avro/Protocol;
            0    1     1     name  Ljava/lang/String;
            0    1     2      doc  Ljava/lang/String;
            0    1     3  propMap  Ljava/util/Map<Ljava/lang/String;*>;
            0    1     4  request  Lorg/apache/avro/Schema;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/String;Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;*>;Lorg/apache/avro/Schema;)Lorg/apache/avro/Protocol$Message;
    MethodParameters:
         Name  Flags
      name     
      doc      
      propMap  
      request  

  public org.apache.avro.Protocol$Message createMessage(java.lang.String, java.lang.String, org.apache.avro.Schema, org.apache.avro.Schema, org.apache.avro.Schema);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Lorg/apache/avro/Schema;Lorg/apache/avro/Schema;Lorg/apache/avro/Schema;)Lorg/apache/avro/Protocol$Message;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=6, args_size=6
        start local 0 // org.apache.avro.Protocol this
        start local 1 // java.lang.String name
        start local 2 // java.lang.String doc
        start local 3 // org.apache.avro.Schema request
        start local 4 // org.apache.avro.Schema response
        start local 5 // org.apache.avro.Schema errors
         0: .line 361
            new org.apache.avro.Protocol$TwoWayMessage
            dup
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* doc */
            new java.util.LinkedHashMap
            dup
            invokespecial java.util.LinkedHashMap.<init>:()V
            aload 3 /* request */
            aload 4 /* response */
            aload 5 /* errors */
            invokespecial org.apache.avro.Protocol$TwoWayMessage.<init>:(Lorg/apache/avro/Protocol;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Lorg/apache/avro/Schema;Lorg/apache/avro/Schema;Lorg/apache/avro/Schema;)V
            areturn
        end local 5 // org.apache.avro.Schema errors
        end local 4 // org.apache.avro.Schema response
        end local 3 // org.apache.avro.Schema request
        end local 2 // java.lang.String doc
        end local 1 // java.lang.String name
        end local 0 // org.apache.avro.Protocol this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lorg/apache/avro/Protocol;
            0    1     1      name  Ljava/lang/String;
            0    1     2       doc  Ljava/lang/String;
            0    1     3   request  Lorg/apache/avro/Schema;
            0    1     4  response  Lorg/apache/avro/Schema;
            0    1     5    errors  Lorg/apache/avro/Schema;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
          Name  Flags
      name      
      doc       
      request   
      response  
      errors    

  public org.apache.avro.Protocol$Message createMessage(org.apache.avro.Protocol$Message, org.apache.avro.Schema, org.apache.avro.Schema, org.apache.avro.Schema);
    descriptor: (Lorg/apache/avro/Protocol$Message;Lorg/apache/avro/Schema;Lorg/apache/avro/Schema;Lorg/apache/avro/Schema;)Lorg/apache/avro/Protocol$Message;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=5, args_size=5
        start local 0 // org.apache.avro.Protocol this
        start local 1 // org.apache.avro.Protocol$Message m
        start local 2 // org.apache.avro.Schema request
        start local 3 // org.apache.avro.Schema response
        start local 4 // org.apache.avro.Schema errors
         0: .line 369
            new org.apache.avro.Protocol$TwoWayMessage
            dup
            aload 0 /* this */
            aload 1 /* m */
            invokevirtual org.apache.avro.Protocol$Message.getName:()Ljava/lang/String;
            aload 1 /* m */
            invokevirtual org.apache.avro.Protocol$Message.getDoc:()Ljava/lang/String;
            aload 1 /* m */
            aload 2 /* request */
            aload 3 /* response */
            aload 4 /* errors */
            invokespecial org.apache.avro.Protocol$TwoWayMessage.<init>:(Lorg/apache/avro/Protocol;Ljava/lang/String;Ljava/lang/String;Lorg/apache/avro/JsonProperties;Lorg/apache/avro/Schema;Lorg/apache/avro/Schema;Lorg/apache/avro/Schema;)V
            areturn
        end local 4 // org.apache.avro.Schema errors
        end local 3 // org.apache.avro.Schema response
        end local 2 // org.apache.avro.Schema request
        end local 1 // org.apache.avro.Protocol$Message m
        end local 0 // org.apache.avro.Protocol this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lorg/apache/avro/Protocol;
            0    1     1         m  Lorg/apache/avro/Protocol$Message;
            0    1     2   request  Lorg/apache/avro/Schema;
            0    1     3  response  Lorg/apache/avro/Schema;
            0    1     4    errors  Lorg/apache/avro/Schema;
    MethodParameters:
          Name  Flags
      m         
      request   
      response  
      errors    

  public <T> org.apache.avro.Protocol$Message createMessage(java.lang.String, java.lang.String, org.apache.avro.JsonProperties, org.apache.avro.Schema, org.apache.avro.Schema, org.apache.avro.Schema);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Lorg/apache/avro/JsonProperties;Lorg/apache/avro/Schema;Lorg/apache/avro/Schema;Lorg/apache/avro/Schema;)Lorg/apache/avro/Protocol$Message;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=7, args_size=7
        start local 0 // org.apache.avro.Protocol this
        start local 1 // java.lang.String name
        start local 2 // java.lang.String doc
        start local 3 // org.apache.avro.JsonProperties propMap
        start local 4 // org.apache.avro.Schema request
        start local 5 // org.apache.avro.Schema response
        start local 6 // org.apache.avro.Schema errors
         0: .line 375
            new org.apache.avro.Protocol$TwoWayMessage
            dup
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* doc */
            aload 3 /* propMap */
            aload 4 /* request */
            aload 5 /* response */
            aload 6 /* errors */
            invokespecial org.apache.avro.Protocol$TwoWayMessage.<init>:(Lorg/apache/avro/Protocol;Ljava/lang/String;Ljava/lang/String;Lorg/apache/avro/JsonProperties;Lorg/apache/avro/Schema;Lorg/apache/avro/Schema;Lorg/apache/avro/Schema;)V
            areturn
        end local 6 // org.apache.avro.Schema errors
        end local 5 // org.apache.avro.Schema response
        end local 4 // org.apache.avro.Schema request
        end local 3 // org.apache.avro.JsonProperties propMap
        end local 2 // java.lang.String doc
        end local 1 // java.lang.String name
        end local 0 // org.apache.avro.Protocol this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lorg/apache/avro/Protocol;
            0    1     1      name  Ljava/lang/String;
            0    1     2       doc  Ljava/lang/String;
            0    1     3   propMap  Lorg/apache/avro/JsonProperties;
            0    1     4   request  Lorg/apache/avro/Schema;
            0    1     5  response  Lorg/apache/avro/Schema;
            0    1     6    errors  Lorg/apache/avro/Schema;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/String;Ljava/lang/String;Lorg/apache/avro/JsonProperties;Lorg/apache/avro/Schema;Lorg/apache/avro/Schema;Lorg/apache/avro/Schema;)Lorg/apache/avro/Protocol$Message;
    MethodParameters:
          Name  Flags
      name      
      doc       
      propMap   
      request   
      response  
      errors    

  public <T> org.apache.avro.Protocol$Message createMessage(java.lang.String, java.lang.String, java.util.Map<java.lang.String, ?>, org.apache.avro.Schema, org.apache.avro.Schema, org.apache.avro.Schema);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Lorg/apache/avro/Schema;Lorg/apache/avro/Schema;Lorg/apache/avro/Schema;)Lorg/apache/avro/Protocol$Message;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=7, args_size=7
        start local 0 // org.apache.avro.Protocol this
        start local 1 // java.lang.String name
        start local 2 // java.lang.String doc
        start local 3 // java.util.Map propMap
        start local 4 // org.apache.avro.Schema request
        start local 5 // org.apache.avro.Schema response
        start local 6 // org.apache.avro.Schema errors
         0: .line 381
            new org.apache.avro.Protocol$TwoWayMessage
            dup
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* doc */
            aload 3 /* propMap */
            aload 4 /* request */
            aload 5 /* response */
            aload 6 /* errors */
            invokespecial org.apache.avro.Protocol$TwoWayMessage.<init>:(Lorg/apache/avro/Protocol;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Lorg/apache/avro/Schema;Lorg/apache/avro/Schema;Lorg/apache/avro/Schema;)V
            areturn
        end local 6 // org.apache.avro.Schema errors
        end local 5 // org.apache.avro.Schema response
        end local 4 // org.apache.avro.Schema request
        end local 3 // java.util.Map propMap
        end local 2 // java.lang.String doc
        end local 1 // java.lang.String name
        end local 0 // org.apache.avro.Protocol this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lorg/apache/avro/Protocol;
            0    1     1      name  Ljava/lang/String;
            0    1     2       doc  Ljava/lang/String;
            0    1     3   propMap  Ljava/util/Map<Ljava/lang/String;*>;
            0    1     4   request  Lorg/apache/avro/Schema;
            0    1     5  response  Lorg/apache/avro/Schema;
            0    1     6    errors  Lorg/apache/avro/Schema;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/String;Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;*>;Lorg/apache/avro/Schema;Lorg/apache/avro/Schema;Lorg/apache/avro/Schema;)Lorg/apache/avro/Protocol$Message;
    MethodParameters:
          Name  Flags
      name      
      doc       
      propMap   
      request   
      response  
      errors    

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.apache.avro.Protocol this
        start local 1 // java.lang.Object o
         0: .line 386
            aload 1 /* o */
            aload 0 /* this */
            if_acmpne 2
         1: .line 387
            iconst_1
            ireturn
         2: .line 388
      StackMap locals:
      StackMap stack:
            aload 1 /* o */
            instanceof org.apache.avro.Protocol
            ifne 4
         3: .line 389
            iconst_0
            ireturn
         4: .line 390
      StackMap locals:
      StackMap stack:
            aload 1 /* o */
            checkcast org.apache.avro.Protocol
            astore 2 /* that */
        start local 2 // org.apache.avro.Protocol that
         5: .line 391
            aload 0 /* this */
            getfield org.apache.avro.Protocol.name:Ljava/lang/String;
            aload 2 /* that */
            getfield org.apache.avro.Protocol.name:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 8
            aload 0 /* this */
            getfield org.apache.avro.Protocol.namespace:Ljava/lang/String;
            aload 2 /* that */
            getfield org.apache.avro.Protocol.namespace:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 8
            aload 0 /* this */
            getfield org.apache.avro.Protocol.types:Lorg/apache/avro/Schema$Names;
            aload 2 /* that */
            getfield org.apache.avro.Protocol.types:Lorg/apache/avro/Schema$Names;
            invokevirtual org.apache.avro.Schema$Names.equals:(Ljava/lang/Object;)Z
            ifeq 8
         6: .line 392
            aload 0 /* this */
            getfield org.apache.avro.Protocol.messages:Ljava/util/Map;
            aload 2 /* that */
            getfield org.apache.avro.Protocol.messages:Ljava/util/Map;
            invokeinterface java.util.Map.equals:(Ljava/lang/Object;)Z
            ifeq 8
            aload 0 /* this */
            aload 2 /* that */
            invokevirtual org.apache.avro.Protocol.propsEqual:(Lorg/apache/avro/JsonProperties;)Z
            ifeq 8
         7: .line 391
            iconst_1
            ireturn
      StackMap locals: org.apache.avro.Protocol
      StackMap stack:
         8: iconst_0
            ireturn
        end local 2 // org.apache.avro.Protocol that
        end local 1 // java.lang.Object o
        end local 0 // org.apache.avro.Protocol this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lorg/apache/avro/Protocol;
            0    9     1     o  Ljava/lang/Object;
            5    9     2  that  Lorg/apache/avro/Protocol;
    MethodParameters:
      Name  Flags
      o     

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.avro.Protocol this
         0: .line 397
            aload 0 /* this */
            getfield org.apache.avro.Protocol.name:Ljava/lang/String;
            invokevirtual java.lang.String.hashCode:()I
            aload 0 /* this */
            getfield org.apache.avro.Protocol.namespace:Ljava/lang/String;
            invokevirtual java.lang.String.hashCode:()I
            iadd
            aload 0 /* this */
            getfield org.apache.avro.Protocol.types:Lorg/apache/avro/Schema$Names;
            invokevirtual org.apache.avro.Schema$Names.hashCode:()I
            iadd
            aload 0 /* this */
            getfield org.apache.avro.Protocol.messages:Ljava/util/Map;
            invokeinterface java.util.Map.hashCode:()I
            iadd
            aload 0 /* this */
            invokevirtual org.apache.avro.Protocol.propsHashCode:()I
            iadd
            ireturn
        end local 0 // org.apache.avro.Protocol this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/avro/Protocol;

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.avro.Protocol this
         0: .line 403
            aload 0 /* this */
            iconst_0
            invokevirtual org.apache.avro.Protocol.toString:(Z)Ljava/lang/String;
            areturn
        end local 0 // org.apache.avro.Protocol this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/avro/Protocol;

  public java.lang.String toString(boolean);
    descriptor: (Z)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.apache.avro.Protocol this
        start local 1 // boolean pretty
         0: .line 413
            new java.io.StringWriter
            dup
            invokespecial java.io.StringWriter.<init>:()V
            astore 2 /* writer */
        start local 2 // java.io.StringWriter writer
         1: .line 414
            getstatic org.apache.avro.Schema.FACTORY:Lcom/fasterxml/jackson/core/JsonFactory;
            aload 2 /* writer */
            invokevirtual com.fasterxml.jackson.core.JsonFactory.createGenerator:(Ljava/io/Writer;)Lcom/fasterxml/jackson/core/JsonGenerator;
            astore 3 /* gen */
        start local 3 // com.fasterxml.jackson.core.JsonGenerator gen
         2: .line 415
            iload 1 /* pretty */
            ifeq 4
         3: .line 416
            aload 3 /* gen */
            invokevirtual com.fasterxml.jackson.core.JsonGenerator.useDefaultPrettyPrinter:()Lcom/fasterxml/jackson/core/JsonGenerator;
            pop
         4: .line 417
      StackMap locals: java.io.StringWriter com.fasterxml.jackson.core.JsonGenerator
      StackMap stack:
            aload 0 /* this */
            aload 3 /* gen */
            invokevirtual org.apache.avro.Protocol.toJson:(Lcom/fasterxml/jackson/core/JsonGenerator;)V
         5: .line 418
            aload 3 /* gen */
            invokevirtual com.fasterxml.jackson.core.JsonGenerator.flush:()V
         6: .line 419
            aload 2 /* writer */
            invokevirtual java.io.StringWriter.toString:()Ljava/lang/String;
         7: areturn
        end local 3 // com.fasterxml.jackson.core.JsonGenerator gen
        end local 2 // java.io.StringWriter writer
         8: .line 420
      StackMap locals: org.apache.avro.Protocol int
      StackMap stack: java.io.IOException
            astore 2 /* e */
        start local 2 // java.io.IOException e
         9: .line 421
            new org.apache.avro.AvroRuntimeException
            dup
            aload 2 /* e */
            invokespecial org.apache.avro.AvroRuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.io.IOException e
        end local 1 // boolean pretty
        end local 0 // org.apache.avro.Protocol this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0    this  Lorg/apache/avro/Protocol;
            0   10     1  pretty  Z
            1    8     2  writer  Ljava/io/StringWriter;
            2    8     3     gen  Lcom/fasterxml/jackson/core/JsonGenerator;
            9   10     2       e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0     7       8  Class java.io.IOException
    MethodParameters:
        Name  Flags
      pretty  

  void toJson(com.fasterxml.jackson.core.JsonGenerator);
    descriptor: (Lcom/fasterxml/jackson/core/JsonGenerator;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // org.apache.avro.Protocol this
        start local 1 // com.fasterxml.jackson.core.JsonGenerator gen
         0: .line 426
            aload 0 /* this */
            getfield org.apache.avro.Protocol.types:Lorg/apache/avro/Schema$Names;
            aload 0 /* this */
            getfield org.apache.avro.Protocol.namespace:Ljava/lang/String;
            invokevirtual org.apache.avro.Schema$Names.space:(Ljava/lang/String;)V
         1: .line 428
            aload 1 /* gen */
            invokevirtual com.fasterxml.jackson.core.JsonGenerator.writeStartObject:()V
         2: .line 429
            aload 1 /* gen */
            ldc "protocol"
            aload 0 /* this */
            getfield org.apache.avro.Protocol.name:Ljava/lang/String;
            invokevirtual com.fasterxml.jackson.core.JsonGenerator.writeStringField:(Ljava/lang/String;Ljava/lang/String;)V
         3: .line 430
            aload 1 /* gen */
            ldc "namespace"
            aload 0 /* this */
            getfield org.apache.avro.Protocol.namespace:Ljava/lang/String;
            invokevirtual com.fasterxml.jackson.core.JsonGenerator.writeStringField:(Ljava/lang/String;Ljava/lang/String;)V
         4: .line 432
            aload 0 /* this */
            getfield org.apache.avro.Protocol.doc:Ljava/lang/String;
            ifnull 6
         5: .line 433
            aload 1 /* gen */
            ldc "doc"
            aload 0 /* this */
            getfield org.apache.avro.Protocol.doc:Ljava/lang/String;
            invokevirtual com.fasterxml.jackson.core.JsonGenerator.writeStringField:(Ljava/lang/String;Ljava/lang/String;)V
         6: .line 434
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* gen */
            invokevirtual org.apache.avro.Protocol.writeProps:(Lcom/fasterxml/jackson/core/JsonGenerator;)V
         7: .line 435
            aload 1 /* gen */
            ldc "types"
            invokevirtual com.fasterxml.jackson.core.JsonGenerator.writeArrayFieldStart:(Ljava/lang/String;)V
         8: .line 436
            new org.apache.avro.Schema$Names
            dup
            aload 0 /* this */
            getfield org.apache.avro.Protocol.namespace:Ljava/lang/String;
            invokespecial org.apache.avro.Schema$Names.<init>:(Ljava/lang/String;)V
            astore 2 /* resolved */
        start local 2 // org.apache.avro.Schema$Names resolved
         9: .line 437
            aload 0 /* this */
            getfield org.apache.avro.Protocol.types:Lorg/apache/avro/Schema$Names;
            invokevirtual org.apache.avro.Schema$Names.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 4
            goto 13
      StackMap locals: org.apache.avro.Protocol com.fasterxml.jackson.core.JsonGenerator org.apache.avro.Schema$Names top java.util.Iterator
      StackMap stack:
        10: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.avro.Schema
            astore 3 /* type */
        start local 3 // org.apache.avro.Schema type
        11: .line 438
            aload 2 /* resolved */
            aload 3 /* type */
            invokevirtual org.apache.avro.Schema$Names.contains:(Lorg/apache/avro/Schema;)Z
            ifne 13
        12: .line 439
            aload 3 /* type */
            aload 2 /* resolved */
            aload 1 /* gen */
            invokevirtual org.apache.avro.Schema.toJson:(Lorg/apache/avro/Schema$Names;Lcom/fasterxml/jackson/core/JsonGenerator;)V
        end local 3 // org.apache.avro.Schema type
        13: .line 437
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 10
        14: .line 440
            aload 1 /* gen */
            invokevirtual com.fasterxml.jackson.core.JsonGenerator.writeEndArray:()V
        15: .line 442
            aload 1 /* gen */
            ldc "messages"
            invokevirtual com.fasterxml.jackson.core.JsonGenerator.writeObjectFieldStart:(Ljava/lang/String;)V
        16: .line 443
            aload 0 /* this */
            getfield org.apache.avro.Protocol.messages:Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4
            goto 20
      StackMap locals:
      StackMap stack:
        17: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 3 /* e */
        start local 3 // java.util.Map$Entry e
        18: .line 444
            aload 1 /* gen */
            aload 3 /* e */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual com.fasterxml.jackson.core.JsonGenerator.writeFieldName:(Ljava/lang/String;)V
        19: .line 445
            aload 3 /* e */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast org.apache.avro.Protocol$Message
            aload 1 /* gen */
            invokevirtual org.apache.avro.Protocol$Message.toJson:(Lcom/fasterxml/jackson/core/JsonGenerator;)V
        end local 3 // java.util.Map$Entry e
        20: .line 443
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 17
        21: .line 447
            aload 1 /* gen */
            invokevirtual com.fasterxml.jackson.core.JsonGenerator.writeEndObject:()V
        22: .line 448
            aload 1 /* gen */
            invokevirtual com.fasterxml.jackson.core.JsonGenerator.writeEndObject:()V
        23: .line 449
            return
        end local 2 // org.apache.avro.Schema$Names resolved
        end local 1 // com.fasterxml.jackson.core.JsonGenerator gen
        end local 0 // org.apache.avro.Protocol this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   24     0      this  Lorg/apache/avro/Protocol;
            0   24     1       gen  Lcom/fasterxml/jackson/core/JsonGenerator;
            9   24     2  resolved  Lorg/apache/avro/Schema$Names;
           11   13     3      type  Lorg/apache/avro/Schema;
           18   20     3         e  Ljava/util/Map$Entry<Ljava/lang/String;Lorg/apache/avro/Protocol$Message;>;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      gen   

  public byte[] getMD5();
    descriptor: ()[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // org.apache.avro.Protocol this
         0: .line 453
            aload 0 /* this */
            getfield org.apache.avro.Protocol.md5:[B
            ifnonnull 5
         1: .line 455
            aload 0 /* this */
            ldc "MD5"
            invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
            aload 0 /* this */
            invokevirtual org.apache.avro.Protocol.toString:()Ljava/lang/String;
            getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
            invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
            invokevirtual java.security.MessageDigest.digest:([B)[B
            putfield org.apache.avro.Protocol.md5:[B
         2: .line 456
            goto 5
      StackMap locals:
      StackMap stack: java.lang.Exception
         3: astore 1 /* e */
        start local 1 // java.lang.Exception e
         4: .line 457
            new org.apache.avro.AvroRuntimeException
            dup
            aload 1 /* e */
            invokespecial org.apache.avro.AvroRuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.lang.Exception e
         5: .line 459
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.avro.Protocol.md5:[B
            areturn
        end local 0 // org.apache.avro.Protocol this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/apache/avro/Protocol;
            4    5     1     e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.Exception

  public static org.apache.avro.Protocol parse(java.io.File);
    descriptor: (Ljava/io/File;)Lorg/apache/avro/Protocol;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.io.File file
         0: .line 464
            getstatic org.apache.avro.Schema.FACTORY:Lcom/fasterxml/jackson/core/JsonFactory;
            aload 0 /* file */
            invokevirtual com.fasterxml.jackson.core.JsonFactory.createParser:(Ljava/io/File;)Lcom/fasterxml/jackson/core/JsonParser;
            invokestatic org.apache.avro.Protocol.parse:(Lcom/fasterxml/jackson/core/JsonParser;)Lorg/apache/avro/Protocol;
            areturn
        end local 0 // java.io.File file
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  file  Ljava/io/File;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      file  

  public static org.apache.avro.Protocol parse(java.io.InputStream);
    descriptor: (Ljava/io/InputStream;)Lorg/apache/avro/Protocol;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.io.InputStream stream
         0: .line 469
            getstatic org.apache.avro.Schema.FACTORY:Lcom/fasterxml/jackson/core/JsonFactory;
            aload 0 /* stream */
            invokevirtual com.fasterxml.jackson.core.JsonFactory.createParser:(Ljava/io/InputStream;)Lcom/fasterxml/jackson/core/JsonParser;
            invokestatic org.apache.avro.Protocol.parse:(Lcom/fasterxml/jackson/core/JsonParser;)Lorg/apache/avro/Protocol;
            areturn
        end local 0 // java.io.InputStream stream
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  stream  Ljava/io/InputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      stream  

  public static org.apache.avro.Protocol parse(java.lang.String, java.lang.String[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/String;)Lorg/apache/avro/Protocol;
    flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
    Code:
      stack=3, locals=7, args_size=2
        start local 0 // java.lang.String string
        start local 1 // java.lang.String[] more
         0: .line 474
            new java.lang.StringBuilder
            dup
            aload 0 /* string */
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 2 /* b */
        start local 2 // java.lang.StringBuilder b
         1: .line 475
            aload 1 /* more */
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 5
      StackMap locals: java.lang.String java.lang.String[] java.lang.StringBuilder top int int java.lang.String[]
      StackMap stack:
         2: aload 6
            iload 4
            aaload
            astore 3 /* part */
        start local 3 // java.lang.String part
         3: .line 476
            aload 2 /* b */
            aload 3 /* part */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 3 // java.lang.String part
         4: .line 475
            iinc 4 1
      StackMap locals:
      StackMap stack:
         5: iload 4
            iload 5
            if_icmplt 2
         6: .line 477
            aload 2 /* b */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.apache.avro.Protocol.parse:(Ljava/lang/String;)Lorg/apache/avro/Protocol;
            areturn
        end local 2 // java.lang.StringBuilder b
        end local 1 // java.lang.String[] more
        end local 0 // java.lang.String string
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0  string  Ljava/lang/String;
            0    7     1    more  [Ljava/lang/String;
            1    7     2       b  Ljava/lang/StringBuilder;
            3    4     3    part  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      string  
      more    

  public static org.apache.avro.Protocol parse(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/apache/avro/Protocol;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // java.lang.String string
         0: .line 483
            getstatic org.apache.avro.Schema.FACTORY:Lcom/fasterxml/jackson/core/JsonFactory;
            new java.io.ByteArrayInputStream
            dup
            aload 0 /* string */
            getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
            invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
            invokespecial java.io.ByteArrayInputStream.<init>:([B)V
            invokevirtual com.fasterxml.jackson.core.JsonFactory.createParser:(Ljava/io/InputStream;)Lcom/fasterxml/jackson/core/JsonParser;
            invokestatic org.apache.avro.Protocol.parse:(Lcom/fasterxml/jackson/core/JsonParser;)Lorg/apache/avro/Protocol;
         1: areturn
         2: .line 484
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 1 /* e */
        start local 1 // java.io.IOException e
         3: .line 485
            new org.apache.avro.AvroRuntimeException
            dup
            aload 1 /* e */
            invokespecial org.apache.avro.AvroRuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.io.IOException e
        end local 0 // java.lang.String string
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0  string  Ljava/lang/String;
            3    4     1       e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.IOException
    MethodParameters:
        Name  Flags
      string  

  private static org.apache.avro.Protocol parse(com.fasterxml.jackson.core.JsonParser);
    descriptor: (Lcom/fasterxml/jackson/core/JsonParser;)Lorg/apache/avro/Protocol;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // com.fasterxml.jackson.core.JsonParser parser
         0: .line 491
            new org.apache.avro.Protocol
            dup
            invokespecial org.apache.avro.Protocol.<init>:()V
            astore 1 /* protocol */
        start local 1 // org.apache.avro.Protocol protocol
         1: .line 492
            aload 1 /* protocol */
            getstatic org.apache.avro.Schema.MAPPER:Lcom/fasterxml/jackson/databind/ObjectMapper;
            aload 0 /* parser */
            invokevirtual com.fasterxml.jackson.databind.ObjectMapper.readTree:(Lcom/fasterxml/jackson/core/JsonParser;)Lcom/fasterxml/jackson/core/TreeNode;
            checkcast com.fasterxml.jackson.databind.JsonNode
            invokevirtual org.apache.avro.Protocol.parse:(Lcom/fasterxml/jackson/databind/JsonNode;)V
         2: .line 493
            aload 1 /* protocol */
         3: areturn
        end local 1 // org.apache.avro.Protocol protocol
         4: .line 494
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 1 /* e */
        start local 1 // java.io.IOException e
         5: .line 495
            new org.apache.avro.SchemaParseException
            dup
            aload 1 /* e */
            invokespecial org.apache.avro.SchemaParseException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.io.IOException e
        end local 0 // com.fasterxml.jackson.core.JsonParser parser
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0    parser  Lcom/fasterxml/jackson/core/JsonParser;
            1    4     1  protocol  Lorg/apache/avro/Protocol;
            5    6     1         e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0     3       4  Class java.io.IOException
    MethodParameters:
        Name  Flags
      parser  

  private void parse(com.fasterxml.jackson.databind.JsonNode);
    descriptor: (Lcom/fasterxml/jackson/databind/JsonNode;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.avro.Protocol this
        start local 1 // com.fasterxml.jackson.databind.JsonNode json
         0: .line 500
            aload 0 /* this */
            aload 1 /* json */
            invokevirtual org.apache.avro.Protocol.parseNamespace:(Lcom/fasterxml/jackson/databind/JsonNode;)V
         1: .line 501
            aload 0 /* this */
            aload 1 /* json */
            invokevirtual org.apache.avro.Protocol.parseName:(Lcom/fasterxml/jackson/databind/JsonNode;)V
         2: .line 502
            aload 0 /* this */
            aload 1 /* json */
            invokevirtual org.apache.avro.Protocol.parseTypes:(Lcom/fasterxml/jackson/databind/JsonNode;)V
         3: .line 503
            aload 0 /* this */
            aload 1 /* json */
            invokevirtual org.apache.avro.Protocol.parseMessages:(Lcom/fasterxml/jackson/databind/JsonNode;)V
         4: .line 504
            aload 0 /* this */
            aload 1 /* json */
            invokevirtual org.apache.avro.Protocol.parseDoc:(Lcom/fasterxml/jackson/databind/JsonNode;)V
         5: .line 505
            aload 0 /* this */
            aload 1 /* json */
            invokevirtual org.apache.avro.Protocol.parseProps:(Lcom/fasterxml/jackson/databind/JsonNode;)V
         6: .line 506
            return
        end local 1 // com.fasterxml.jackson.databind.JsonNode json
        end local 0 // org.apache.avro.Protocol this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/apache/avro/Protocol;
            0    7     1  json  Lcom/fasterxml/jackson/databind/JsonNode;
    MethodParameters:
      Name  Flags
      json  

  private void parseNamespace(com.fasterxml.jackson.databind.JsonNode);
    descriptor: (Lcom/fasterxml/jackson/databind/JsonNode;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.apache.avro.Protocol this
        start local 1 // com.fasterxml.jackson.databind.JsonNode json
         0: .line 509
            aload 1 /* json */
            ldc "namespace"
            invokevirtual com.fasterxml.jackson.databind.JsonNode.get:(Ljava/lang/String;)Lcom/fasterxml/jackson/databind/JsonNode;
            astore 2 /* nameNode */
        start local 2 // com.fasterxml.jackson.databind.JsonNode nameNode
         1: .line 510
            aload 2 /* nameNode */
            ifnonnull 3
         2: .line 511
            return
         3: .line 512
      StackMap locals: com.fasterxml.jackson.databind.JsonNode
      StackMap stack:
            aload 0 /* this */
            aload 2 /* nameNode */
            invokevirtual com.fasterxml.jackson.databind.JsonNode.textValue:()Ljava/lang/String;
            putfield org.apache.avro.Protocol.namespace:Ljava/lang/String;
         4: .line 513
            aload 0 /* this */
            getfield org.apache.avro.Protocol.types:Lorg/apache/avro/Schema$Names;
            aload 0 /* this */
            getfield org.apache.avro.Protocol.namespace:Ljava/lang/String;
            invokevirtual org.apache.avro.Schema$Names.space:(Ljava/lang/String;)V
         5: .line 514
            return
        end local 2 // com.fasterxml.jackson.databind.JsonNode nameNode
        end local 1 // com.fasterxml.jackson.databind.JsonNode json
        end local 0 // org.apache.avro.Protocol this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lorg/apache/avro/Protocol;
            0    6     1      json  Lcom/fasterxml/jackson/databind/JsonNode;
            1    6     2  nameNode  Lcom/fasterxml/jackson/databind/JsonNode;
    MethodParameters:
      Name  Flags
      json  

  private void parseDoc(com.fasterxml.jackson.databind.JsonNode);
    descriptor: (Lcom/fasterxml/jackson/databind/JsonNode;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.avro.Protocol this
        start local 1 // com.fasterxml.jackson.databind.JsonNode json
         0: .line 517
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* json */
            invokevirtual org.apache.avro.Protocol.parseDocNode:(Lcom/fasterxml/jackson/databind/JsonNode;)Ljava/lang/String;
            putfield org.apache.avro.Protocol.doc:Ljava/lang/String;
         1: .line 518
            return
        end local 1 // com.fasterxml.jackson.databind.JsonNode json
        end local 0 // org.apache.avro.Protocol this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/avro/Protocol;
            0    2     1  json  Lcom/fasterxml/jackson/databind/JsonNode;
    MethodParameters:
      Name  Flags
      json  

  private java.lang.String parseDocNode(com.fasterxml.jackson.databind.JsonNode);
    descriptor: (Lcom/fasterxml/jackson/databind/JsonNode;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.apache.avro.Protocol this
        start local 1 // com.fasterxml.jackson.databind.JsonNode json
         0: .line 521
            aload 1 /* json */
            ldc "doc"
            invokevirtual com.fasterxml.jackson.databind.JsonNode.get:(Ljava/lang/String;)Lcom/fasterxml/jackson/databind/JsonNode;
            astore 2 /* nameNode */
        start local 2 // com.fasterxml.jackson.databind.JsonNode nameNode
         1: .line 522
            aload 2 /* nameNode */
            ifnonnull 3
         2: .line 523
            aconst_null
            areturn
         3: .line 524
      StackMap locals: com.fasterxml.jackson.databind.JsonNode
      StackMap stack:
            aload 2 /* nameNode */
            invokevirtual com.fasterxml.jackson.databind.JsonNode.textValue:()Ljava/lang/String;
            areturn
        end local 2 // com.fasterxml.jackson.databind.JsonNode nameNode
        end local 1 // com.fasterxml.jackson.databind.JsonNode json
        end local 0 // org.apache.avro.Protocol this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lorg/apache/avro/Protocol;
            0    4     1      json  Lcom/fasterxml/jackson/databind/JsonNode;
            1    4     2  nameNode  Lcom/fasterxml/jackson/databind/JsonNode;
    MethodParameters:
      Name  Flags
      json  

  private void parseName(com.fasterxml.jackson.databind.JsonNode);
    descriptor: (Lcom/fasterxml/jackson/databind/JsonNode;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.apache.avro.Protocol this
        start local 1 // com.fasterxml.jackson.databind.JsonNode json
         0: .line 528
            aload 1 /* json */
            ldc "protocol"
            invokevirtual com.fasterxml.jackson.databind.JsonNode.get:(Ljava/lang/String;)Lcom/fasterxml/jackson/databind/JsonNode;
            astore 2 /* nameNode */
        start local 2 // com.fasterxml.jackson.databind.JsonNode nameNode
         1: .line 529
            aload 2 /* nameNode */
            ifnonnull 3
         2: .line 530
            new org.apache.avro.SchemaParseException
            dup
            new java.lang.StringBuilder
            dup
            ldc "No protocol name specified: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* json */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.apache.avro.SchemaParseException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 531
      StackMap locals: com.fasterxml.jackson.databind.JsonNode
      StackMap stack:
            aload 0 /* this */
            aload 2 /* nameNode */
            invokevirtual com.fasterxml.jackson.databind.JsonNode.textValue:()Ljava/lang/String;
            putfield org.apache.avro.Protocol.name:Ljava/lang/String;
         4: .line 532
            return
        end local 2 // com.fasterxml.jackson.databind.JsonNode nameNode
        end local 1 // com.fasterxml.jackson.databind.JsonNode json
        end local 0 // org.apache.avro.Protocol this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lorg/apache/avro/Protocol;
            0    5     1      json  Lcom/fasterxml/jackson/databind/JsonNode;
            1    5     2  nameNode  Lcom/fasterxml/jackson/databind/JsonNode;
    MethodParameters:
      Name  Flags
      json  

  private void parseTypes(com.fasterxml.jackson.databind.JsonNode);
    descriptor: (Lcom/fasterxml/jackson/databind/JsonNode;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // org.apache.avro.Protocol this
        start local 1 // com.fasterxml.jackson.databind.JsonNode json
         0: .line 535
            aload 1 /* json */
            ldc "types"
            invokevirtual com.fasterxml.jackson.databind.JsonNode.get:(Ljava/lang/String;)Lcom/fasterxml/jackson/databind/JsonNode;
            astore 2 /* defs */
        start local 2 // com.fasterxml.jackson.databind.JsonNode defs
         1: .line 536
            aload 2 /* defs */
            ifnonnull 3
         2: .line 537
            return
         3: .line 538
      StackMap locals: com.fasterxml.jackson.databind.JsonNode
      StackMap stack:
            aload 2 /* defs */
            invokevirtual com.fasterxml.jackson.databind.JsonNode.isArray:()Z
            ifne 5
         4: .line 539
            new org.apache.avro.SchemaParseException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Types not an array: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* defs */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.apache.avro.SchemaParseException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 540
      StackMap locals:
      StackMap stack:
            aload 2 /* defs */
            invokevirtual com.fasterxml.jackson.databind.JsonNode.iterator:()Ljava/util/Iterator;
            astore 4
            goto 10
      StackMap locals: org.apache.avro.Protocol com.fasterxml.jackson.databind.JsonNode com.fasterxml.jackson.databind.JsonNode top java.util.Iterator
      StackMap stack:
         6: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.fasterxml.jackson.databind.JsonNode
            astore 3 /* type */
        start local 3 // com.fasterxml.jackson.databind.JsonNode type
         7: .line 541
            aload 3 /* type */
            invokevirtual com.fasterxml.jackson.databind.JsonNode.isObject:()Z
            ifne 9
         8: .line 542
            new org.apache.avro.SchemaParseException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Type not an object: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* type */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.apache.avro.SchemaParseException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 543
      StackMap locals: org.apache.avro.Protocol com.fasterxml.jackson.databind.JsonNode com.fasterxml.jackson.databind.JsonNode com.fasterxml.jackson.databind.JsonNode java.util.Iterator
      StackMap stack:
            aload 3 /* type */
            aload 0 /* this */
            getfield org.apache.avro.Protocol.types:Lorg/apache/avro/Schema$Names;
            invokestatic org.apache.avro.Schema.parse:(Lcom/fasterxml/jackson/databind/JsonNode;Lorg/apache/avro/Schema$Names;)Lorg/apache/avro/Schema;
            pop
        end local 3 // com.fasterxml.jackson.databind.JsonNode type
        10: .line 540
      StackMap locals: org.apache.avro.Protocol com.fasterxml.jackson.databind.JsonNode com.fasterxml.jackson.databind.JsonNode top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        11: .line 545
            return
        end local 2 // com.fasterxml.jackson.databind.JsonNode defs
        end local 1 // com.fasterxml.jackson.databind.JsonNode json
        end local 0 // org.apache.avro.Protocol this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lorg/apache/avro/Protocol;
            0   12     1  json  Lcom/fasterxml/jackson/databind/JsonNode;
            1   12     2  defs  Lcom/fasterxml/jackson/databind/JsonNode;
            7   10     3  type  Lcom/fasterxml/jackson/databind/JsonNode;
    MethodParameters:
      Name  Flags
      json  

  private void parseProps(com.fasterxml.jackson.databind.JsonNode);
    descriptor: (Lcom/fasterxml/jackson/databind/JsonNode;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // org.apache.avro.Protocol this
        start local 1 // com.fasterxml.jackson.databind.JsonNode json
         0: .line 548
            aload 1 /* json */
            invokevirtual com.fasterxml.jackson.databind.JsonNode.fieldNames:()Ljava/util/Iterator;
            astore 2 /* i */
        start local 2 // java.util.Iterator i
         1: goto 5
         2: .line 549
      StackMap locals: java.util.Iterator
      StackMap stack:
            aload 2 /* i */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 3 /* p */
        start local 3 // java.lang.String p
         3: .line 550
            getstatic org.apache.avro.Protocol.PROTOCOL_RESERVED:Ljava/util/Set;
            aload 3 /* p */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 5
         4: .line 551
            aload 0 /* this */
            aload 3 /* p */
            aload 1 /* json */
            aload 3 /* p */
            invokevirtual com.fasterxml.jackson.databind.JsonNode.get:(Ljava/lang/String;)Lcom/fasterxml/jackson/databind/JsonNode;
            invokevirtual org.apache.avro.Protocol.addProp:(Ljava/lang/String;Ljava/lang/Object;)V
        end local 3 // java.lang.String p
         5: .line 548
      StackMap locals:
      StackMap stack:
            aload 2 /* i */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        end local 2 // java.util.Iterator i
         6: .line 553
            return
        end local 1 // com.fasterxml.jackson.databind.JsonNode json
        end local 0 // org.apache.avro.Protocol this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/apache/avro/Protocol;
            0    7     1  json  Lcom/fasterxml/jackson/databind/JsonNode;
            1    6     2     i  Ljava/util/Iterator<Ljava/lang/String;>;
            3    5     3     p  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      json  

  private void parseMessages(com.fasterxml.jackson.databind.JsonNode);
    descriptor: (Lcom/fasterxml/jackson/databind/JsonNode;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=5, args_size=2
        start local 0 // org.apache.avro.Protocol this
        start local 1 // com.fasterxml.jackson.databind.JsonNode json
         0: .line 556
            aload 1 /* json */
            ldc "messages"
            invokevirtual com.fasterxml.jackson.databind.JsonNode.get:(Ljava/lang/String;)Lcom/fasterxml/jackson/databind/JsonNode;
            astore 2 /* defs */
        start local 2 // com.fasterxml.jackson.databind.JsonNode defs
         1: .line 557
            aload 2 /* defs */
            ifnonnull 3
         2: .line 558
            return
         3: .line 559
      StackMap locals: com.fasterxml.jackson.databind.JsonNode
      StackMap stack:
            aload 2 /* defs */
            invokevirtual com.fasterxml.jackson.databind.JsonNode.fieldNames:()Ljava/util/Iterator;
            astore 3 /* i */
        start local 3 // java.util.Iterator i
         4: goto 7
         5: .line 560
      StackMap locals: java.util.Iterator
      StackMap stack:
            aload 3 /* i */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 4 /* prop */
        start local 4 // java.lang.String prop
         6: .line 561
            aload 0 /* this */
            getfield org.apache.avro.Protocol.messages:Ljava/util/Map;
            aload 4 /* prop */
            aload 0 /* this */
            aload 4 /* prop */
            aload 2 /* defs */
            aload 4 /* prop */
            invokevirtual com.fasterxml.jackson.databind.JsonNode.get:(Ljava/lang/String;)Lcom/fasterxml/jackson/databind/JsonNode;
            invokevirtual org.apache.avro.Protocol.parseMessage:(Ljava/lang/String;Lcom/fasterxml/jackson/databind/JsonNode;)Lorg/apache/avro/Protocol$Message;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 4 // java.lang.String prop
         7: .line 559
      StackMap locals:
      StackMap stack:
            aload 3 /* i */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        end local 3 // java.util.Iterator i
         8: .line 563
            return
        end local 2 // com.fasterxml.jackson.databind.JsonNode defs
        end local 1 // com.fasterxml.jackson.databind.JsonNode json
        end local 0 // org.apache.avro.Protocol this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lorg/apache/avro/Protocol;
            0    9     1  json  Lcom/fasterxml/jackson/databind/JsonNode;
            1    9     2  defs  Lcom/fasterxml/jackson/databind/JsonNode;
            4    8     3     i  Ljava/util/Iterator<Ljava/lang/String;>;
            6    7     4  prop  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      json  

  private org.apache.avro.Protocol$Message parseMessage(java.lang.String, com.fasterxml.jackson.databind.JsonNode);
    descriptor: (Ljava/lang/String;Lcom/fasterxml/jackson/databind/JsonNode;)Lorg/apache/avro/Protocol$Message;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=18, args_size=3
        start local 0 // org.apache.avro.Protocol this
        start local 1 // java.lang.String messageName
        start local 2 // com.fasterxml.jackson.databind.JsonNode json
         0: .line 566
            aload 0 /* this */
            aload 2 /* json */
            invokevirtual org.apache.avro.Protocol.parseDocNode:(Lcom/fasterxml/jackson/databind/JsonNode;)Ljava/lang/String;
            astore 3 /* doc */
        start local 3 // java.lang.String doc
         1: .line 568
            new java.util.LinkedHashMap
            dup
            invokespecial java.util.LinkedHashMap.<init>:()V
            astore 4 /* mProps */
        start local 4 // java.util.Map mProps
         2: .line 569
            aload 2 /* json */
            invokevirtual com.fasterxml.jackson.databind.JsonNode.fieldNames:()Ljava/util/Iterator;
            astore 5 /* i */
        start local 5 // java.util.Iterator i
         3: goto 7
         4: .line 570
      StackMap locals: java.lang.String java.util.Map java.util.Iterator
      StackMap stack:
            aload 5 /* i */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 6 /* p */
        start local 6 // java.lang.String p
         5: .line 571
            getstatic org.apache.avro.Protocol.MESSAGE_RESERVED:Ljava/util/Set;
            aload 6 /* p */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 7
         6: .line 572
            aload 4 /* mProps */
            aload 6 /* p */
            aload 2 /* json */
            aload 6 /* p */
            invokevirtual com.fasterxml.jackson.databind.JsonNode.get:(Ljava/lang/String;)Lcom/fasterxml/jackson/databind/JsonNode;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 6 // java.lang.String p
         7: .line 569
      StackMap locals:
      StackMap stack:
            aload 5 /* i */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        end local 5 // java.util.Iterator i
         8: .line 575
            aload 2 /* json */
            ldc "request"
            invokevirtual com.fasterxml.jackson.databind.JsonNode.get:(Ljava/lang/String;)Lcom/fasterxml/jackson/databind/JsonNode;
            astore 5 /* requestNode */
        start local 5 // com.fasterxml.jackson.databind.JsonNode requestNode
         9: .line 576
            aload 5 /* requestNode */
            ifnull 10
            aload 5 /* requestNode */
            invokevirtual com.fasterxml.jackson.databind.JsonNode.isArray:()Z
            ifne 11
        10: .line 577
      StackMap locals: org.apache.avro.Protocol java.lang.String com.fasterxml.jackson.databind.JsonNode java.lang.String java.util.Map com.fasterxml.jackson.databind.JsonNode
      StackMap stack:
            new org.apache.avro.SchemaParseException
            dup
            new java.lang.StringBuilder
            dup
            ldc "No request specified: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* json */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.apache.avro.SchemaParseException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 578
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 6 /* fields */
        start local 6 // java.util.List fields
        12: .line 579
            aload 5 /* requestNode */
            invokevirtual com.fasterxml.jackson.databind.JsonNode.iterator:()Ljava/util/Iterator;
            astore 8
            goto 41
      StackMap locals: org.apache.avro.Protocol java.lang.String com.fasterxml.jackson.databind.JsonNode java.lang.String java.util.Map com.fasterxml.jackson.databind.JsonNode java.util.List top java.util.Iterator
      StackMap stack:
        13: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.fasterxml.jackson.databind.JsonNode
            astore 7 /* field */
        start local 7 // com.fasterxml.jackson.databind.JsonNode field
        14: .line 580
            aload 7 /* field */
            ldc "name"
            invokevirtual com.fasterxml.jackson.databind.JsonNode.get:(Ljava/lang/String;)Lcom/fasterxml/jackson/databind/JsonNode;
            astore 9 /* fieldNameNode */
        start local 9 // com.fasterxml.jackson.databind.JsonNode fieldNameNode
        15: .line 581
            aload 9 /* fieldNameNode */
            ifnonnull 17
        16: .line 582
            new org.apache.avro.SchemaParseException
            dup
            new java.lang.StringBuilder
            dup
            ldc "No param name: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* field */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.apache.avro.SchemaParseException.<init>:(Ljava/lang/String;)V
            athrow
        17: .line 583
      StackMap locals: org.apache.avro.Protocol java.lang.String com.fasterxml.jackson.databind.JsonNode java.lang.String java.util.Map com.fasterxml.jackson.databind.JsonNode java.util.List com.fasterxml.jackson.databind.JsonNode java.util.Iterator com.fasterxml.jackson.databind.JsonNode
      StackMap stack:
            aload 7 /* field */
            ldc "type"
            invokevirtual com.fasterxml.jackson.databind.JsonNode.get:(Ljava/lang/String;)Lcom/fasterxml/jackson/databind/JsonNode;
            astore 10 /* fieldTypeNode */
        start local 10 // com.fasterxml.jackson.databind.JsonNode fieldTypeNode
        18: .line 584
            aload 10 /* fieldTypeNode */
            ifnonnull 20
        19: .line 585
            new org.apache.avro.SchemaParseException
            dup
            new java.lang.StringBuilder
            dup
            ldc "No param type: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* field */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.apache.avro.SchemaParseException.<init>:(Ljava/lang/String;)V
            athrow
        20: .line 586
      StackMap locals: com.fasterxml.jackson.databind.JsonNode
      StackMap stack:
            aload 9 /* fieldNameNode */
            invokevirtual com.fasterxml.jackson.databind.JsonNode.textValue:()Ljava/lang/String;
            astore 11 /* name */
        start local 11 // java.lang.String name
        21: .line 587
            aconst_null
            astore 12 /* fieldDoc */
        start local 12 // java.lang.String fieldDoc
        22: .line 588
            aload 7 /* field */
            ldc "doc"
            invokevirtual com.fasterxml.jackson.databind.JsonNode.get:(Ljava/lang/String;)Lcom/fasterxml/jackson/databind/JsonNode;
            astore 13 /* fieldDocNode */
        start local 13 // com.fasterxml.jackson.databind.JsonNode fieldDocNode
        23: .line 589
            aload 13 /* fieldDocNode */
            ifnull 25
        24: .line 590
            aload 13 /* fieldDocNode */
            invokevirtual com.fasterxml.jackson.databind.JsonNode.textValue:()Ljava/lang/String;
            astore 12 /* fieldDoc */
        25: .line 591
      StackMap locals: java.lang.String java.lang.String com.fasterxml.jackson.databind.JsonNode
      StackMap stack:
            new org.apache.avro.Schema$Field
            dup
            aload 11 /* name */
            aload 10 /* fieldTypeNode */
            aload 0 /* this */
            getfield org.apache.avro.Protocol.types:Lorg/apache/avro/Schema$Names;
            invokestatic org.apache.avro.Schema.parse:(Lcom/fasterxml/jackson/databind/JsonNode;Lorg/apache/avro/Schema$Names;)Lorg/apache/avro/Schema;
            aload 12 /* fieldDoc */
            aload 7 /* field */
            ldc "default"
            invokevirtual com.fasterxml.jackson.databind.JsonNode.get:(Ljava/lang/String;)Lcom/fasterxml/jackson/databind/JsonNode;
            iconst_1
        26: .line 592
            getstatic org.apache.avro.Schema$Field$Order.ASCENDING:Lorg/apache/avro/Schema$Field$Order;
        27: .line 591
            invokespecial org.apache.avro.Schema$Field.<init>:(Ljava/lang/String;Lorg/apache/avro/Schema;Ljava/lang/String;Lcom/fasterxml/jackson/databind/JsonNode;ZLorg/apache/avro/Schema$Field$Order;)V
            astore 14 /* newField */
        start local 14 // org.apache.avro.Schema$Field newField
        28: .line 593
            aload 7 /* field */
            invokestatic org.apache.avro.Schema.parseAliases:(Lcom/fasterxml/jackson/databind/JsonNode;)Ljava/util/Set;
            astore 15 /* aliases */
        start local 15 // java.util.Set aliases
        29: .line 594
            aload 15 /* aliases */
            ifnull 34
        30: .line 595
            aload 15 /* aliases */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 17
            goto 33
      StackMap locals: org.apache.avro.Protocol java.lang.String com.fasterxml.jackson.databind.JsonNode java.lang.String java.util.Map com.fasterxml.jackson.databind.JsonNode java.util.List com.fasterxml.jackson.databind.JsonNode java.util.Iterator com.fasterxml.jackson.databind.JsonNode com.fasterxml.jackson.databind.JsonNode java.lang.String java.lang.String com.fasterxml.jackson.databind.JsonNode org.apache.avro.Schema$Field java.util.Set top java.util.Iterator
      StackMap stack:
        31: aload 17
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 16 /* alias */
        start local 16 // java.lang.String alias
        32: .line 596
            aload 14 /* newField */
            aload 16 /* alias */
            invokevirtual org.apache.avro.Schema$Field.addAlias:(Ljava/lang/String;)V
        end local 16 // java.lang.String alias
        33: .line 595
      StackMap locals:
      StackMap stack:
            aload 17
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 31
        34: .line 599
      StackMap locals: org.apache.avro.Protocol java.lang.String com.fasterxml.jackson.databind.JsonNode java.lang.String java.util.Map com.fasterxml.jackson.databind.JsonNode java.util.List com.fasterxml.jackson.databind.JsonNode java.util.Iterator com.fasterxml.jackson.databind.JsonNode com.fasterxml.jackson.databind.JsonNode java.lang.String java.lang.String com.fasterxml.jackson.databind.JsonNode org.apache.avro.Schema$Field java.util.Set
      StackMap stack:
            aload 7 /* field */
            invokevirtual com.fasterxml.jackson.databind.JsonNode.fieldNames:()Ljava/util/Iterator;
            astore 16 /* i */
        start local 16 // java.util.Iterator i
        35: .line 600
            goto 39
        36: .line 601
      StackMap locals: java.util.Iterator
      StackMap stack:
            aload 16 /* i */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 17 /* prop */
        start local 17 // java.lang.String prop
        37: .line 602
            getstatic org.apache.avro.Protocol.FIELD_RESERVED:Ljava/util/Set;
            aload 17 /* prop */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 39
        38: .line 603
            aload 14 /* newField */
            aload 17 /* prop */
            aload 7 /* field */
            aload 17 /* prop */
            invokevirtual com.fasterxml.jackson.databind.JsonNode.get:(Ljava/lang/String;)Lcom/fasterxml/jackson/databind/JsonNode;
            invokevirtual org.apache.avro.Schema$Field.addProp:(Ljava/lang/String;Ljava/lang/Object;)V
        end local 17 // java.lang.String prop
        39: .line 600
      StackMap locals:
      StackMap stack:
            aload 16 /* i */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 36
        40: .line 605
            aload 6 /* fields */
            aload 14 /* newField */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 16 // java.util.Iterator i
        end local 15 // java.util.Set aliases
        end local 14 // org.apache.avro.Schema$Field newField
        end local 13 // com.fasterxml.jackson.databind.JsonNode fieldDocNode
        end local 12 // java.lang.String fieldDoc
        end local 11 // java.lang.String name
        end local 10 // com.fasterxml.jackson.databind.JsonNode fieldTypeNode
        end local 9 // com.fasterxml.jackson.databind.JsonNode fieldNameNode
        end local 7 // com.fasterxml.jackson.databind.JsonNode field
        41: .line 579
      StackMap locals: org.apache.avro.Protocol java.lang.String com.fasterxml.jackson.databind.JsonNode java.lang.String java.util.Map com.fasterxml.jackson.databind.JsonNode java.util.List top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 13
        42: .line 607
            aload 6 /* fields */
            invokestatic org.apache.avro.Schema.createRecord:(Ljava/util/List;)Lorg/apache/avro/Schema;
            astore 7 /* request */
        start local 7 // org.apache.avro.Schema request
        43: .line 609
            iconst_0
            istore 8 /* oneWay */
        start local 8 // boolean oneWay
        44: .line 610
            aload 2 /* json */
            ldc "one-way"
            invokevirtual com.fasterxml.jackson.databind.JsonNode.get:(Ljava/lang/String;)Lcom/fasterxml/jackson/databind/JsonNode;
            astore 9 /* oneWayNode */
        start local 9 // com.fasterxml.jackson.databind.JsonNode oneWayNode
        45: .line 611
            aload 9 /* oneWayNode */
            ifnull 49
        46: .line 612
            aload 9 /* oneWayNode */
            invokevirtual com.fasterxml.jackson.databind.JsonNode.isBoolean:()Z
            ifne 48
        47: .line 613
            new org.apache.avro.SchemaParseException
            dup
            new java.lang.StringBuilder
            dup
            ldc "one-way must be boolean: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* json */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.apache.avro.SchemaParseException.<init>:(Ljava/lang/String;)V
            athrow
        48: .line 614
      StackMap locals: org.apache.avro.Protocol java.lang.String com.fasterxml.jackson.databind.JsonNode java.lang.String java.util.Map com.fasterxml.jackson.databind.JsonNode java.util.List org.apache.avro.Schema int com.fasterxml.jackson.databind.JsonNode
      StackMap stack:
            aload 9 /* oneWayNode */
            invokevirtual com.fasterxml.jackson.databind.JsonNode.booleanValue:()Z
            istore 8 /* oneWay */
        49: .line 617
      StackMap locals:
      StackMap stack:
            aload 2 /* json */
            ldc "response"
            invokevirtual com.fasterxml.jackson.databind.JsonNode.get:(Ljava/lang/String;)Lcom/fasterxml/jackson/databind/JsonNode;
            astore 10 /* responseNode */
        start local 10 // com.fasterxml.jackson.databind.JsonNode responseNode
        50: .line 618
            iload 8 /* oneWay */
            ifne 52
            aload 10 /* responseNode */
            ifnonnull 52
        51: .line 619
            new org.apache.avro.SchemaParseException
            dup
            new java.lang.StringBuilder
            dup
            ldc "No response specified: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* json */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.apache.avro.SchemaParseException.<init>:(Ljava/lang/String;)V
            athrow
        52: .line 621
      StackMap locals: com.fasterxml.jackson.databind.JsonNode
      StackMap stack:
            aload 2 /* json */
            ldc "errors"
            invokevirtual com.fasterxml.jackson.databind.JsonNode.get:(Ljava/lang/String;)Lcom/fasterxml/jackson/databind/JsonNode;
            astore 11 /* decls */
        start local 11 // com.fasterxml.jackson.databind.JsonNode decls
        53: .line 623
            iload 8 /* oneWay */
            ifeq 59
        54: .line 624
            aload 11 /* decls */
            ifnull 56
        55: .line 625
            new org.apache.avro.SchemaParseException
            dup
            new java.lang.StringBuilder
            dup
            ldc "one-way can't have errors: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* json */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.apache.avro.SchemaParseException.<init>:(Ljava/lang/String;)V
            athrow
        56: .line 626
      StackMap locals: com.fasterxml.jackson.databind.JsonNode
      StackMap stack:
            aload 10 /* responseNode */
            ifnull 58
            aload 10 /* responseNode */
            aload 0 /* this */
            getfield org.apache.avro.Protocol.types:Lorg/apache/avro/Schema$Names;
            invokestatic org.apache.avro.Schema.parse:(Lcom/fasterxml/jackson/databind/JsonNode;Lorg/apache/avro/Schema$Names;)Lorg/apache/avro/Schema;
            invokevirtual org.apache.avro.Schema.getType:()Lorg/apache/avro/Schema$Type;
            getstatic org.apache.avro.Schema$Type.NULL:Lorg/apache/avro/Schema$Type;
            if_acmpeq 58
        57: .line 627
            new org.apache.avro.SchemaParseException
            dup
            new java.lang.StringBuilder
            dup
            ldc "One way response must be null: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* json */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.apache.avro.SchemaParseException.<init>:(Ljava/lang/String;)V
            athrow
        58: .line 628
      StackMap locals:
      StackMap stack:
            new org.apache.avro.Protocol$Message
            dup
            aload 0 /* this */
            aload 1 /* messageName */
            aload 3 /* doc */
            aload 4 /* mProps */
            aload 7 /* request */
            invokespecial org.apache.avro.Protocol$Message.<init>:(Lorg/apache/avro/Protocol;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Lorg/apache/avro/Schema;)V
            areturn
        59: .line 631
      StackMap locals:
      StackMap stack:
            aload 10 /* responseNode */
            aload 0 /* this */
            getfield org.apache.avro.Protocol.types:Lorg/apache/avro/Schema$Names;
            invokestatic org.apache.avro.Schema.parse:(Lcom/fasterxml/jackson/databind/JsonNode;Lorg/apache/avro/Schema$Names;)Lorg/apache/avro/Schema;
            astore 12 /* response */
        start local 12 // org.apache.avro.Schema response
        60: .line 633
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 13 /* errs */
        start local 13 // java.util.List errs
        61: .line 634
            aload 13 /* errs */
            getstatic org.apache.avro.Protocol.SYSTEM_ERROR:Lorg/apache/avro/Schema;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        62: .line 635
            aload 11 /* decls */
            ifnull 75
        63: .line 636
            aload 11 /* decls */
            invokevirtual com.fasterxml.jackson.databind.JsonNode.isArray:()Z
            ifne 65
        64: .line 637
            new org.apache.avro.SchemaParseException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Errors not an array: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* json */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.apache.avro.SchemaParseException.<init>:(Ljava/lang/String;)V
            athrow
        65: .line 638
      StackMap locals: org.apache.avro.Schema java.util.List
      StackMap stack:
            aload 11 /* decls */
            invokevirtual com.fasterxml.jackson.databind.JsonNode.iterator:()Ljava/util/Iterator;
            astore 15
            goto 74
      StackMap locals: org.apache.avro.Protocol java.lang.String com.fasterxml.jackson.databind.JsonNode java.lang.String java.util.Map com.fasterxml.jackson.databind.JsonNode java.util.List org.apache.avro.Schema int com.fasterxml.jackson.databind.JsonNode com.fasterxml.jackson.databind.JsonNode com.fasterxml.jackson.databind.JsonNode org.apache.avro.Schema java.util.List top java.util.Iterator
      StackMap stack:
        66: aload 15
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.fasterxml.jackson.databind.JsonNode
            astore 14 /* decl */
        start local 14 // com.fasterxml.jackson.databind.JsonNode decl
        67: .line 639
            aload 14 /* decl */
            invokevirtual com.fasterxml.jackson.databind.JsonNode.textValue:()Ljava/lang/String;
            astore 16 /* name */
        start local 16 // java.lang.String name
        68: .line 640
            aload 0 /* this */
            getfield org.apache.avro.Protocol.types:Lorg/apache/avro/Schema$Names;
            aload 16 /* name */
            invokevirtual org.apache.avro.Schema$Names.get:(Ljava/lang/String;)Lorg/apache/avro/Schema;
            astore 17 /* schema */
        start local 17 // org.apache.avro.Schema schema
        69: .line 641
            aload 17 /* schema */
            ifnonnull 71
        70: .line 642
            new org.apache.avro.SchemaParseException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Undefined error: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 16 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.apache.avro.SchemaParseException.<init>:(Ljava/lang/String;)V
            athrow
        71: .line 643
      StackMap locals: org.apache.avro.Protocol java.lang.String com.fasterxml.jackson.databind.JsonNode java.lang.String java.util.Map com.fasterxml.jackson.databind.JsonNode java.util.List org.apache.avro.Schema int com.fasterxml.jackson.databind.JsonNode com.fasterxml.jackson.databind.JsonNode com.fasterxml.jackson.databind.JsonNode org.apache.avro.Schema java.util.List com.fasterxml.jackson.databind.JsonNode java.util.Iterator java.lang.String org.apache.avro.Schema
      StackMap stack:
            aload 17 /* schema */
            invokevirtual org.apache.avro.Schema.isError:()Z
            ifne 73
        72: .line 644
            new org.apache.avro.SchemaParseException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Not an error: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 16 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.apache.avro.SchemaParseException.<init>:(Ljava/lang/String;)V
            athrow
        73: .line 645
      StackMap locals:
      StackMap stack:
            aload 13 /* errs */
            aload 17 /* schema */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 17 // org.apache.avro.Schema schema
        end local 16 // java.lang.String name
        end local 14 // com.fasterxml.jackson.databind.JsonNode decl
        74: .line 638
      StackMap locals: org.apache.avro.Protocol java.lang.String com.fasterxml.jackson.databind.JsonNode java.lang.String java.util.Map com.fasterxml.jackson.databind.JsonNode java.util.List org.apache.avro.Schema int com.fasterxml.jackson.databind.JsonNode com.fasterxml.jackson.databind.JsonNode com.fasterxml.jackson.databind.JsonNode org.apache.avro.Schema java.util.List top java.util.Iterator
      StackMap stack:
            aload 15
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 66
        75: .line 649
      StackMap locals: org.apache.avro.Protocol java.lang.String com.fasterxml.jackson.databind.JsonNode java.lang.String java.util.Map com.fasterxml.jackson.databind.JsonNode java.util.List org.apache.avro.Schema int com.fasterxml.jackson.databind.JsonNode com.fasterxml.jackson.databind.JsonNode com.fasterxml.jackson.databind.JsonNode org.apache.avro.Schema java.util.List
      StackMap stack:
            new org.apache.avro.Protocol$TwoWayMessage
            dup
            aload 0 /* this */
            aload 1 /* messageName */
            aload 3 /* doc */
            aload 4 /* mProps */
            aload 7 /* request */
            aload 12 /* response */
            aload 13 /* errs */
            invokestatic org.apache.avro.Schema.createUnion:(Ljava/util/List;)Lorg/apache/avro/Schema;
            invokespecial org.apache.avro.Protocol$TwoWayMessage.<init>:(Lorg/apache/avro/Protocol;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Lorg/apache/avro/Schema;Lorg/apache/avro/Schema;Lorg/apache/avro/Schema;)V
            areturn
        end local 13 // java.util.List errs
        end local 12 // org.apache.avro.Schema response
        end local 11 // com.fasterxml.jackson.databind.JsonNode decls
        end local 10 // com.fasterxml.jackson.databind.JsonNode responseNode
        end local 9 // com.fasterxml.jackson.databind.JsonNode oneWayNode
        end local 8 // boolean oneWay
        end local 7 // org.apache.avro.Schema request
        end local 6 // java.util.List fields
        end local 5 // com.fasterxml.jackson.databind.JsonNode requestNode
        end local 4 // java.util.Map mProps
        end local 3 // java.lang.String doc
        end local 2 // com.fasterxml.jackson.databind.JsonNode json
        end local 1 // java.lang.String messageName
        end local 0 // org.apache.avro.Protocol this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   76     0           this  Lorg/apache/avro/Protocol;
            0   76     1    messageName  Ljava/lang/String;
            0   76     2           json  Lcom/fasterxml/jackson/databind/JsonNode;
            1   76     3            doc  Ljava/lang/String;
            2   76     4         mProps  Ljava/util/Map<Ljava/lang/String;Lcom/fasterxml/jackson/databind/JsonNode;>;
            3    8     5              i  Ljava/util/Iterator<Ljava/lang/String;>;
            5    7     6              p  Ljava/lang/String;
            9   76     5    requestNode  Lcom/fasterxml/jackson/databind/JsonNode;
           12   76     6         fields  Ljava/util/List<Lorg/apache/avro/Schema$Field;>;
           14   41     7          field  Lcom/fasterxml/jackson/databind/JsonNode;
           15   41     9  fieldNameNode  Lcom/fasterxml/jackson/databind/JsonNode;
           18   41    10  fieldTypeNode  Lcom/fasterxml/jackson/databind/JsonNode;
           21   41    11           name  Ljava/lang/String;
           22   41    12       fieldDoc  Ljava/lang/String;
           23   41    13   fieldDocNode  Lcom/fasterxml/jackson/databind/JsonNode;
           28   41    14       newField  Lorg/apache/avro/Schema$Field;
           29   41    15        aliases  Ljava/util/Set<Ljava/lang/String;>;
           32   33    16          alias  Ljava/lang/String;
           35   41    16              i  Ljava/util/Iterator<Ljava/lang/String;>;
           37   39    17           prop  Ljava/lang/String;
           43   76     7        request  Lorg/apache/avro/Schema;
           44   76     8         oneWay  Z
           45   76     9     oneWayNode  Lcom/fasterxml/jackson/databind/JsonNode;
           50   76    10   responseNode  Lcom/fasterxml/jackson/databind/JsonNode;
           53   76    11          decls  Lcom/fasterxml/jackson/databind/JsonNode;
           60   76    12       response  Lorg/apache/avro/Schema;
           61   76    13           errs  Ljava/util/List<Lorg/apache/avro/Schema;>;
           67   74    14           decl  Lcom/fasterxml/jackson/databind/JsonNode;
           68   74    16           name  Ljava/lang/String;
           69   74    17         schema  Lorg/apache/avro/Schema;
    MethodParameters:
             Name  Flags
      messageName  
      json         

  public static void main(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // java.lang.String[] args
         0: .line 653
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.io.File
            dup
            aload 0 /* args */
            iconst_0
            aaload
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            invokestatic org.apache.avro.Protocol.parse:(Ljava/io/File;)Lorg/apache/avro/Protocol;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/Object;)V
         1: .line 654
            return
        end local 0 // java.lang.String[] args
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  args  [Ljava/lang/String;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
      Name  Flags
      args  
}
SourceFile: "Protocol.java"
NestMembers:
  org.apache.avro.Protocol$Message  org.apache.avro.Protocol$TwoWayMessage
InnerClasses:
  public abstract Entry = java.util.Map$Entry of java.util.Map
  public Message = org.apache.avro.Protocol$Message of org.apache.avro.Protocol
  private TwoWayMessage = org.apache.avro.Protocol$TwoWayMessage of org.apache.avro.Protocol
  public Field = org.apache.avro.Schema$Field of org.apache.avro.Schema
  public final Order = org.apache.avro.Schema$Field$Order of org.apache.avro.Schema$Field
  Names = org.apache.avro.Schema$Names of org.apache.avro.Schema
  public final Type = org.apache.avro.Schema$Type of org.apache.avro.Schema