final class jdk.jfr.internal.MetadataReader
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: jdk.jfr.internal.MetadataReader
  super_class: java.lang.Object
{
  private final java.io.DataInput input;
    descriptor: Ljava/io/DataInput;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.List<java.lang.String> pool;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Ljava/lang/String;>;

  private final jdk.jfr.internal.MetadataDescriptor descriptor;
    descriptor: Ljdk/jfr/internal/MetadataDescriptor;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.Map<java.lang.Long, jdk.jfr.internal.Type> types;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/Long;Ljdk/jfr/internal/Type;>;

  public void <init>(java.io.DataInput);
    descriptor: (Ljava/io/DataInput;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=9, args_size=2
        start local 0 // jdk.jfr.internal.MetadataReader this
        start local 1 // java.io.DataInput input
         0: .line 64
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 62
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield jdk.jfr.internal.MetadataReader.types:Ljava/util/Map;
         2: .line 65
            aload 0 /* this */
            aload 1 /* input */
            putfield jdk.jfr.internal.MetadataReader.input:Ljava/io/DataInput;
         3: .line 66
            aload 1 /* input */
            invokeinterface java.io.DataInput.readInt:()I
            istore 2 /* size */
        start local 2 // int size
         4: .line 67
            aload 0 /* this */
            new java.util.ArrayList
            dup
            iload 2 /* size */
            invokespecial java.util.ArrayList.<init>:(I)V
            putfield jdk.jfr.internal.MetadataReader.pool:Ljava/util/List;
         5: .line 68
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         6: goto 9
         7: .line 69
      StackMap locals: jdk.jfr.internal.MetadataReader java.io.DataInput int int
      StackMap stack:
            aload 0 /* this */
            getfield jdk.jfr.internal.MetadataReader.pool:Ljava/util/List;
            aload 1 /* input */
            invokeinterface java.io.DataInput.readUTF:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         8: .line 68
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 3 /* i */
            iload 2 /* size */
            if_icmplt 7
        end local 3 // int i
        10: .line 71
            aload 0 /* this */
            new jdk.jfr.internal.MetadataDescriptor
            dup
            invokespecial jdk.jfr.internal.MetadataDescriptor.<init>:()V
            putfield jdk.jfr.internal.MetadataReader.descriptor:Ljdk/jfr/internal/MetadataDescriptor;
        11: .line 72
            aload 0 /* this */
            invokevirtual jdk.jfr.internal.MetadataReader.createElement:()Ljdk/jfr/internal/MetadataDescriptor$Element;
            astore 3 /* root */
        start local 3 // jdk.jfr.internal.MetadataDescriptor$Element root
        12: .line 73
            aload 3 /* root */
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "metadata"
            aastore
            invokevirtual jdk.jfr.internal.MetadataDescriptor$Element.elements:([Ljava/lang/String;)Ljava/util/List;
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast jdk.jfr.internal.MetadataDescriptor$Element
            astore 4 /* metadata */
        start local 4 // jdk.jfr.internal.MetadataDescriptor$Element metadata
        13: .line 74
            aload 0 /* this */
            aload 4 /* metadata */
            invokevirtual jdk.jfr.internal.MetadataReader.declareTypes:(Ljdk/jfr/internal/MetadataDescriptor$Element;)V
        14: .line 75
            aload 0 /* this */
            aload 4 /* metadata */
            invokevirtual jdk.jfr.internal.MetadataReader.defineTypes:(Ljdk/jfr/internal/MetadataDescriptor$Element;)V
        15: .line 76
            aload 0 /* this */
            aload 4 /* metadata */
            invokevirtual jdk.jfr.internal.MetadataReader.annotateTypes:(Ljdk/jfr/internal/MetadataDescriptor$Element;)V
        16: .line 77
            aload 0 /* this */
            invokevirtual jdk.jfr.internal.MetadataReader.buildEvenTypes:()V
        17: .line 78
            aload 3 /* root */
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "region"
            aastore
            invokevirtual jdk.jfr.internal.MetadataDescriptor$Element.elements:([Ljava/lang/String;)Ljava/util/List;
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast jdk.jfr.internal.MetadataDescriptor$Element
            astore 5 /* time */
        start local 5 // jdk.jfr.internal.MetadataDescriptor$Element time
        18: .line 79
            aload 0 /* this */
            getfield jdk.jfr.internal.MetadataReader.descriptor:Ljdk/jfr/internal/MetadataDescriptor;
            aload 5 /* time */
            ldc "gmtOffset"
            lconst_1
            invokevirtual jdk.jfr.internal.MetadataDescriptor$Element.attribute:(Ljava/lang/String;J)J
            putfield jdk.jfr.internal.MetadataDescriptor.gmtOffset:J
        19: .line 80
            aload 0 /* this */
            getfield jdk.jfr.internal.MetadataReader.descriptor:Ljdk/jfr/internal/MetadataDescriptor;
            aload 5 /* time */
            ldc "locale"
            ldc ""
            invokevirtual jdk.jfr.internal.MetadataDescriptor$Element.attribute:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            putfield jdk.jfr.internal.MetadataDescriptor.locale:Ljava/lang/String;
        20: .line 81
            aload 0 /* this */
            getfield jdk.jfr.internal.MetadataReader.descriptor:Ljdk/jfr/internal/MetadataDescriptor;
            aload 3 /* root */
            putfield jdk.jfr.internal.MetadataDescriptor.root:Ljdk/jfr/internal/MetadataDescriptor$Element;
        21: .line 82
            getstatic jdk.jfr.internal.LogTag.JFR_SYSTEM_PARSER:Ljdk/jfr/internal/LogTag;
            getstatic jdk.jfr.internal.LogLevel.TRACE:Ljdk/jfr/internal/LogLevel;
            invokestatic jdk.jfr.internal.Logger.shouldLog:(Ljdk/jfr/internal/LogTag;Ljdk/jfr/internal/LogLevel;)Z
            ifeq 28
        22: .line 83
            new java.util.ArrayList
            dup
            aload 0 /* this */
            getfield jdk.jfr.internal.MetadataReader.types:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            astore 6 /* ts */
        start local 6 // java.util.List ts
        23: .line 84
            aload 6 /* ts */
            invokedynamic compare()Ljava/util/Comparator;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;Ljava/lang/Object;)I
                  jdk/jfr/internal/MetadataReader.lambda$0(Ljdk/jfr/internal/Type;Ljdk/jfr/internal/Type;)I (6)
                  (Ljdk/jfr/internal/Type;Ljdk/jfr/internal/Type;)I
            invokestatic java.util.Collections.sort:(Ljava/util/List;Ljava/util/Comparator;)V
        24: .line 85
            aload 6 /* ts */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 8
            goto 27
      StackMap locals: jdk.jfr.internal.MetadataReader java.io.DataInput int jdk.jfr.internal.MetadataDescriptor$Element jdk.jfr.internal.MetadataDescriptor$Element jdk.jfr.internal.MetadataDescriptor$Element java.util.List top java.util.Iterator
      StackMap stack:
        25: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.jfr.internal.Type
            astore 7 /* t */
        start local 7 // jdk.jfr.internal.Type t
        26: .line 86
            aload 7 /* t */
            ldc "Found"
            getstatic jdk.jfr.internal.LogTag.JFR_SYSTEM_PARSER:Ljdk/jfr/internal/LogTag;
            getstatic jdk.jfr.internal.LogLevel.TRACE:Ljdk/jfr/internal/LogLevel;
            invokevirtual jdk.jfr.internal.Type.log:(Ljava/lang/String;Ljdk/jfr/internal/LogTag;Ljdk/jfr/internal/LogLevel;)V
        end local 7 // jdk.jfr.internal.Type t
        27: .line 85
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 25
        end local 6 // java.util.List ts
        28: .line 89
      StackMap locals: jdk.jfr.internal.MetadataReader java.io.DataInput int jdk.jfr.internal.MetadataDescriptor$Element jdk.jfr.internal.MetadataDescriptor$Element jdk.jfr.internal.MetadataDescriptor$Element
      StackMap stack:
            return
        end local 5 // jdk.jfr.internal.MetadataDescriptor$Element time
        end local 4 // jdk.jfr.internal.MetadataDescriptor$Element metadata
        end local 3 // jdk.jfr.internal.MetadataDescriptor$Element root
        end local 2 // int size
        end local 1 // java.io.DataInput input
        end local 0 // jdk.jfr.internal.MetadataReader this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   29     0      this  Ljdk/jfr/internal/MetadataReader;
            0   29     1     input  Ljava/io/DataInput;
            4   29     2      size  I
            6   10     3         i  I
           12   29     3      root  Ljdk/jfr/internal/MetadataDescriptor$Element;
           13   29     4  metadata  Ljdk/jfr/internal/MetadataDescriptor$Element;
           18   29     5      time  Ljdk/jfr/internal/MetadataDescriptor$Element;
           23   28     6        ts  Ljava/util/List<Ljdk/jfr/internal/Type;>;
           26   27     7         t  Ljdk/jfr/internal/Type;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      input  

  private java.lang.String readString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.jfr.internal.MetadataReader this
         0: .line 92
            aload 0 /* this */
            getfield jdk.jfr.internal.MetadataReader.pool:Ljava/util/List;
            aload 0 /* this */
            invokevirtual jdk.jfr.internal.MetadataReader.readInt:()I
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.String
            areturn
        end local 0 // jdk.jfr.internal.MetadataReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/jfr/internal/MetadataReader;
    Exceptions:
      throws java.io.IOException

  private int readInt();
    descriptor: ()I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.jfr.internal.MetadataReader this
         0: .line 96
            aload 0 /* this */
            getfield jdk.jfr.internal.MetadataReader.input:Ljava/io/DataInput;
            invokeinterface java.io.DataInput.readInt:()I
            ireturn
        end local 0 // jdk.jfr.internal.MetadataReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/jfr/internal/MetadataReader;
    Exceptions:
      throws java.io.IOException

  private jdk.jfr.internal.MetadataDescriptor$Element createElement();
    descriptor: ()Ljdk/jfr/internal/MetadataDescriptor$Element;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=1
        start local 0 // jdk.jfr.internal.MetadataReader this
         0: .line 100
            aload 0 /* this */
            invokevirtual jdk.jfr.internal.MetadataReader.readString:()Ljava/lang/String;
            astore 1 /* name */
        start local 1 // java.lang.String name
         1: .line 101
            new jdk.jfr.internal.MetadataDescriptor$Element
            dup
            aload 1 /* name */
            invokespecial jdk.jfr.internal.MetadataDescriptor$Element.<init>:(Ljava/lang/String;)V
            astore 2 /* e */
        start local 2 // jdk.jfr.internal.MetadataDescriptor$Element e
         2: .line 102
            aload 0 /* this */
            invokevirtual jdk.jfr.internal.MetadataReader.readInt:()I
            istore 3 /* attributeCount */
        start local 3 // int attributeCount
         3: .line 103
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         4: goto 7
         5: .line 104
      StackMap locals: jdk.jfr.internal.MetadataReader java.lang.String jdk.jfr.internal.MetadataDescriptor$Element int int
      StackMap stack:
            aload 2 /* e */
            aload 0 /* this */
            invokevirtual jdk.jfr.internal.MetadataReader.readString:()Ljava/lang/String;
            aload 0 /* this */
            invokevirtual jdk.jfr.internal.MetadataReader.readString:()Ljava/lang/String;
            invokevirtual jdk.jfr.internal.MetadataDescriptor$Element.addAttribute:(Ljava/lang/String;Ljava/lang/Object;)V
         6: .line 103
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 4 /* i */
            iload 3 /* attributeCount */
            if_icmplt 5
        end local 4 // int i
         8: .line 106
            aload 0 /* this */
            invokevirtual jdk.jfr.internal.MetadataReader.readInt:()I
            istore 4 /* childrenCount */
        start local 4 // int childrenCount
         9: .line 107
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        10: goto 13
        11: .line 108
      StackMap locals: int
      StackMap stack:
            aload 2 /* e */
            aload 0 /* this */
            invokevirtual jdk.jfr.internal.MetadataReader.createElement:()Ljdk/jfr/internal/MetadataDescriptor$Element;
            invokevirtual jdk.jfr.internal.MetadataDescriptor$Element.add:(Ljdk/jfr/internal/MetadataDescriptor$Element;)V
        12: .line 107
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        13: iload 5 /* i */
            iload 4 /* childrenCount */
            if_icmplt 11
        end local 5 // int i
        14: .line 110
            aload 2 /* e */
            areturn
        end local 4 // int childrenCount
        end local 3 // int attributeCount
        end local 2 // jdk.jfr.internal.MetadataDescriptor$Element e
        end local 1 // java.lang.String name
        end local 0 // jdk.jfr.internal.MetadataReader this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   15     0            this  Ljdk/jfr/internal/MetadataReader;
            1   15     1            name  Ljava/lang/String;
            2   15     2               e  Ljdk/jfr/internal/MetadataDescriptor$Element;
            3   15     3  attributeCount  I
            4    8     4               i  I
            9   15     4   childrenCount  I
           10   14     5               i  I
    Exceptions:
      throws java.io.IOException

  private void annotateTypes(jdk.jfr.internal.MetadataDescriptor$Element);
    descriptor: (Ljdk/jfr/internal/MetadataDescriptor$Element;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=13, args_size=2
        start local 0 // jdk.jfr.internal.MetadataReader this
        start local 1 // jdk.jfr.internal.MetadataDescriptor$Element metadata
         0: .line 114
            aload 1 /* metadata */
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "class"
            aastore
            invokevirtual jdk.jfr.internal.MetadataDescriptor$Element.elements:([Ljava/lang/String;)Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 37
      StackMap locals: jdk.jfr.internal.MetadataReader jdk.jfr.internal.MetadataDescriptor$Element top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.jfr.internal.MetadataDescriptor$Element
            astore 2 /* typeElement */
        start local 2 // jdk.jfr.internal.MetadataDescriptor$Element typeElement
         2: .line 115
            aload 0 /* this */
            ldc "id"
            aload 2 /* typeElement */
            invokevirtual jdk.jfr.internal.MetadataReader.getType:(Ljava/lang/String;Ljdk/jfr/internal/MetadataDescriptor$Element;)Ljdk/jfr/internal/Type;
            astore 4 /* type */
        start local 4 // jdk.jfr.internal.Type type
         3: .line 116
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 5 /* aes */
        start local 5 // java.util.ArrayList aes
         4: .line 117
            aload 2 /* typeElement */
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "annotation"
            aastore
            invokevirtual jdk.jfr.internal.MetadataDescriptor$Element.elements:([Ljava/lang/String;)Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 7
            goto 7
      StackMap locals: jdk.jfr.internal.MetadataReader jdk.jfr.internal.MetadataDescriptor$Element jdk.jfr.internal.MetadataDescriptor$Element java.util.Iterator jdk.jfr.internal.Type java.util.ArrayList top java.util.Iterator
      StackMap stack:
         5: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.jfr.internal.MetadataDescriptor$Element
            astore 6 /* annotationElement */
        start local 6 // jdk.jfr.internal.MetadataDescriptor$Element annotationElement
         6: .line 118
            aload 5 /* aes */
            aload 0 /* this */
            aload 6 /* annotationElement */
            invokevirtual jdk.jfr.internal.MetadataReader.makeAnnotation:(Ljdk/jfr/internal/MetadataDescriptor$Element;)Ljdk/jfr/AnnotationElement;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 6 // jdk.jfr.internal.MetadataDescriptor$Element annotationElement
         7: .line 117
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
         8: .line 120
            aload 5 /* aes */
            invokevirtual java.util.ArrayList.trimToSize:()V
         9: .line 121
            aload 4 /* type */
            aload 5 /* aes */
            invokevirtual jdk.jfr.internal.Type.setAnnotations:(Ljava/util/List;)V
        10: .line 123
            iconst_0
            istore 6 /* index */
        start local 6 // int index
        11: .line 124
            aload 4 /* type */
            instanceof jdk.jfr.internal.PlatformEventType
            ifeq 24
        12: .line 125
            aload 4 /* type */
            checkcast jdk.jfr.internal.PlatformEventType
            invokevirtual jdk.jfr.internal.PlatformEventType.getAllSettings:()Ljava/util/List;
            astore 7 /* settings */
        start local 7 // java.util.List settings
        13: .line 126
            aload 2 /* typeElement */
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "setting"
            aastore
            invokevirtual jdk.jfr.internal.MetadataDescriptor$Element.elements:([Ljava/lang/String;)Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 9
            goto 23
      StackMap locals: jdk.jfr.internal.MetadataReader jdk.jfr.internal.MetadataDescriptor$Element jdk.jfr.internal.MetadataDescriptor$Element java.util.Iterator jdk.jfr.internal.Type java.util.ArrayList int java.util.List top java.util.Iterator
      StackMap stack:
        14: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.jfr.internal.MetadataDescriptor$Element
            astore 8 /* settingElement */
        start local 8 // jdk.jfr.internal.MetadataDescriptor$Element settingElement
        15: .line 127
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 10 /* annotations */
        start local 10 // java.util.ArrayList annotations
        16: .line 128
            aload 8 /* settingElement */
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "annotation"
            aastore
            invokevirtual jdk.jfr.internal.MetadataDescriptor$Element.elements:([Ljava/lang/String;)Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 12
            goto 19
      StackMap locals: jdk.jfr.internal.MetadataReader jdk.jfr.internal.MetadataDescriptor$Element jdk.jfr.internal.MetadataDescriptor$Element java.util.Iterator jdk.jfr.internal.Type java.util.ArrayList int java.util.List jdk.jfr.internal.MetadataDescriptor$Element java.util.Iterator java.util.ArrayList top java.util.Iterator
      StackMap stack:
        17: aload 12
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.jfr.internal.MetadataDescriptor$Element
            astore 11 /* annotationElement */
        start local 11 // jdk.jfr.internal.MetadataDescriptor$Element annotationElement
        18: .line 129
            aload 10 /* annotations */
            aload 0 /* this */
            aload 11 /* annotationElement */
            invokevirtual jdk.jfr.internal.MetadataReader.makeAnnotation:(Ljdk/jfr/internal/MetadataDescriptor$Element;)Ljdk/jfr/AnnotationElement;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 11 // jdk.jfr.internal.MetadataDescriptor$Element annotationElement
        19: .line 128
      StackMap locals:
      StackMap stack:
            aload 12
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 17
        20: .line 131
            aload 10 /* annotations */
            invokevirtual java.util.ArrayList.trimToSize:()V
        21: .line 132
            invokestatic jdk.jfr.internal.PrivateAccess.getInstance:()Ljdk/jfr/internal/PrivateAccess;
            aload 7 /* settings */
            iload 6 /* index */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast jdk.jfr.SettingDescriptor
            aload 10 /* annotations */
            invokevirtual jdk.jfr.internal.PrivateAccess.setAnnotations:(Ljdk/jfr/SettingDescriptor;Ljava/util/List;)V
        22: .line 133
            iinc 6 /* index */ 1
        end local 10 // java.util.ArrayList annotations
        end local 8 // jdk.jfr.internal.MetadataDescriptor$Element settingElement
        23: .line 126
      StackMap locals: jdk.jfr.internal.MetadataReader jdk.jfr.internal.MetadataDescriptor$Element jdk.jfr.internal.MetadataDescriptor$Element java.util.Iterator jdk.jfr.internal.Type java.util.ArrayList int java.util.List top java.util.Iterator
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 14
        end local 7 // java.util.List settings
        24: .line 136
      StackMap locals: jdk.jfr.internal.MetadataReader jdk.jfr.internal.MetadataDescriptor$Element jdk.jfr.internal.MetadataDescriptor$Element java.util.Iterator jdk.jfr.internal.Type java.util.ArrayList int
      StackMap stack:
            iconst_0
            istore 6 /* index */
        25: .line 137
            aload 4 /* type */
            invokevirtual jdk.jfr.internal.Type.getFields:()Ljava/util/List;
            astore 7 /* fields */
        start local 7 // java.util.List fields
        26: .line 138
            aload 2 /* typeElement */
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "field"
            aastore
            invokevirtual jdk.jfr.internal.MetadataDescriptor$Element.elements:([Ljava/lang/String;)Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 9
            goto 36
      StackMap locals: jdk.jfr.internal.MetadataReader jdk.jfr.internal.MetadataDescriptor$Element jdk.jfr.internal.MetadataDescriptor$Element java.util.Iterator jdk.jfr.internal.Type java.util.ArrayList int java.util.List top java.util.Iterator
      StackMap stack:
        27: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.jfr.internal.MetadataDescriptor$Element
            astore 8 /* fieldElement */
        start local 8 // jdk.jfr.internal.MetadataDescriptor$Element fieldElement
        28: .line 139
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 10 /* annotations */
        start local 10 // java.util.ArrayList annotations
        29: .line 140
            aload 8 /* fieldElement */
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "annotation"
            aastore
            invokevirtual jdk.jfr.internal.MetadataDescriptor$Element.elements:([Ljava/lang/String;)Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 12
            goto 32
      StackMap locals: jdk.jfr.internal.MetadataReader jdk.jfr.internal.MetadataDescriptor$Element jdk.jfr.internal.MetadataDescriptor$Element java.util.Iterator jdk.jfr.internal.Type java.util.ArrayList int java.util.List jdk.jfr.internal.MetadataDescriptor$Element java.util.Iterator java.util.ArrayList top java.util.Iterator
      StackMap stack:
        30: aload 12
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.jfr.internal.MetadataDescriptor$Element
            astore 11 /* annotationElement */
        start local 11 // jdk.jfr.internal.MetadataDescriptor$Element annotationElement
        31: .line 141
            aload 10 /* annotations */
            aload 0 /* this */
            aload 11 /* annotationElement */
            invokevirtual jdk.jfr.internal.MetadataReader.makeAnnotation:(Ljdk/jfr/internal/MetadataDescriptor$Element;)Ljdk/jfr/AnnotationElement;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 11 // jdk.jfr.internal.MetadataDescriptor$Element annotationElement
        32: .line 140
      StackMap locals:
      StackMap stack:
            aload 12
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 30
        33: .line 143
            aload 10 /* annotations */
            invokevirtual java.util.ArrayList.trimToSize:()V
        34: .line 144
            invokestatic jdk.jfr.internal.PrivateAccess.getInstance:()Ljdk/jfr/internal/PrivateAccess;
            aload 7 /* fields */
            iload 6 /* index */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast jdk.jfr.ValueDescriptor
            aload 10 /* annotations */
            invokevirtual jdk.jfr.internal.PrivateAccess.setAnnotations:(Ljdk/jfr/ValueDescriptor;Ljava/util/List;)V
        35: .line 145
            iinc 6 /* index */ 1
        end local 10 // java.util.ArrayList annotations
        end local 8 // jdk.jfr.internal.MetadataDescriptor$Element fieldElement
        36: .line 138
      StackMap locals: jdk.jfr.internal.MetadataReader jdk.jfr.internal.MetadataDescriptor$Element jdk.jfr.internal.MetadataDescriptor$Element java.util.Iterator jdk.jfr.internal.Type java.util.ArrayList int java.util.List top java.util.Iterator
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 27
        end local 7 // java.util.List fields
        end local 6 // int index
        end local 5 // java.util.ArrayList aes
        end local 4 // jdk.jfr.internal.Type type
        end local 2 // jdk.jfr.internal.MetadataDescriptor$Element typeElement
        37: .line 114
      StackMap locals: jdk.jfr.internal.MetadataReader jdk.jfr.internal.MetadataDescriptor$Element top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
        38: .line 148
            return
        end local 1 // jdk.jfr.internal.MetadataDescriptor$Element metadata
        end local 0 // jdk.jfr.internal.MetadataReader this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   39     0               this  Ljdk/jfr/internal/MetadataReader;
            0   39     1           metadata  Ljdk/jfr/internal/MetadataDescriptor$Element;
            2   37     2        typeElement  Ljdk/jfr/internal/MetadataDescriptor$Element;
            3   37     4               type  Ljdk/jfr/internal/Type;
            4   37     5                aes  Ljava/util/ArrayList<Ljdk/jfr/AnnotationElement;>;
            6    7     6  annotationElement  Ljdk/jfr/internal/MetadataDescriptor$Element;
           11   37     6              index  I
           13   24     7           settings  Ljava/util/List<Ljdk/jfr/SettingDescriptor;>;
           15   23     8     settingElement  Ljdk/jfr/internal/MetadataDescriptor$Element;
           16   23    10        annotations  Ljava/util/ArrayList<Ljdk/jfr/AnnotationElement;>;
           18   19    11  annotationElement  Ljdk/jfr/internal/MetadataDescriptor$Element;
           26   37     7             fields  Ljava/util/List<Ljdk/jfr/ValueDescriptor;>;
           28   36     8       fieldElement  Ljdk/jfr/internal/MetadataDescriptor$Element;
           29   36    10        annotations  Ljava/util/ArrayList<Ljdk/jfr/AnnotationElement;>;
           31   32    11  annotationElement  Ljdk/jfr/internal/MetadataDescriptor$Element;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      metadata  

  private jdk.jfr.AnnotationElement makeAnnotation(jdk.jfr.internal.MetadataDescriptor$Element);
    descriptor: (Ljdk/jfr/internal/MetadataDescriptor$Element;)Ljdk/jfr/AnnotationElement;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=9, args_size=2
        start local 0 // jdk.jfr.internal.MetadataReader this
        start local 1 // jdk.jfr.internal.MetadataDescriptor$Element annotationElement
         0: .line 151
            aload 0 /* this */
            ldc "class"
            aload 1 /* annotationElement */
            invokevirtual jdk.jfr.internal.MetadataReader.getType:(Ljava/lang/String;Ljdk/jfr/internal/MetadataDescriptor$Element;)Ljdk/jfr/internal/Type;
            astore 2 /* annotationType */
        start local 2 // jdk.jfr.internal.Type annotationType
         1: .line 152
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* values */
        start local 3 // java.util.List values
         2: .line 153
            aload 2 /* annotationType */
            invokevirtual jdk.jfr.internal.Type.getFields:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 20
      StackMap locals: jdk.jfr.internal.MetadataReader jdk.jfr.internal.MetadataDescriptor$Element jdk.jfr.internal.Type java.util.List top java.util.Iterator
      StackMap stack:
         3: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.jfr.ValueDescriptor
            astore 4 /* v */
        start local 4 // jdk.jfr.ValueDescriptor v
         4: .line 154
            aload 4 /* v */
            invokevirtual jdk.jfr.ValueDescriptor.isArray:()Z
            ifeq 18
         5: .line 155
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 6 /* list */
        start local 6 // java.util.List list
         6: .line 156
            iconst_0
            istore 7 /* index */
        start local 7 // int index
         7: .line 158
      StackMap locals: jdk.jfr.internal.MetadataReader jdk.jfr.internal.MetadataDescriptor$Element jdk.jfr.internal.Type java.util.List jdk.jfr.ValueDescriptor java.util.Iterator java.util.List int
      StackMap stack:
            aload 1 /* annotationElement */
            new java.lang.StringBuilder
            dup
            aload 4 /* v */
            invokevirtual jdk.jfr.ValueDescriptor.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "-"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 7 /* index */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual jdk.jfr.internal.MetadataDescriptor$Element.attribute:(Ljava/lang/String;)Ljava/lang/String;
            astore 8 /* text */
        start local 8 // java.lang.String text
         8: .line 159
            aload 8 /* text */
            ifnonnull 10
         9: .line 160
            goto 13
        10: .line 162
      StackMap locals: java.lang.String
      StackMap stack:
            aload 6 /* list */
            aload 0 /* this */
            aload 4 /* v */
            invokevirtual jdk.jfr.ValueDescriptor.getTypeName:()Ljava/lang/String;
            aload 8 /* text */
            invokevirtual jdk.jfr.internal.MetadataReader.objectify:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        11: .line 163
            iinc 7 /* index */ 1
        end local 8 // java.lang.String text
        12: .line 157
            goto 7
        13: .line 165
      StackMap locals:
      StackMap stack:
            aload 4 /* v */
            invokevirtual jdk.jfr.ValueDescriptor.getTypeName:()Ljava/lang/String;
            aload 6 /* list */
            invokestatic jdk.jfr.internal.Utils.makePrimitiveArray:(Ljava/lang/String;Ljava/util/List;)Ljava/lang/Object;
            astore 8 /* object */
        start local 8 // java.lang.Object object
        14: .line 166
            aload 8 /* object */
            ifnonnull 16
        15: .line 167
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unsupported type "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* list */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " in array"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        16: .line 169
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 3 /* values */
            aload 8 /* object */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 8 // java.lang.Object object
        end local 7 // int index
        end local 6 // java.util.List list
        17: .line 170
            goto 20
        18: .line 171
      StackMap locals:
      StackMap stack:
            aload 1 /* annotationElement */
            aload 4 /* v */
            invokevirtual jdk.jfr.ValueDescriptor.getName:()Ljava/lang/String;
            invokevirtual jdk.jfr.internal.MetadataDescriptor$Element.attribute:(Ljava/lang/String;)Ljava/lang/String;
            astore 6 /* text */
        start local 6 // java.lang.String text
        19: .line 172
            aload 3 /* values */
            aload 0 /* this */
            aload 4 /* v */
            invokevirtual jdk.jfr.ValueDescriptor.getTypeName:()Ljava/lang/String;
            aload 6 /* text */
            invokevirtual jdk.jfr.internal.MetadataReader.objectify:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 6 // java.lang.String text
        end local 4 // jdk.jfr.ValueDescriptor v
        20: .line 153
      StackMap locals: jdk.jfr.internal.MetadataReader jdk.jfr.internal.MetadataDescriptor$Element jdk.jfr.internal.Type java.util.List top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        21: .line 175
            invokestatic jdk.jfr.internal.PrivateAccess.getInstance:()Ljdk/jfr/internal/PrivateAccess;
            aload 2 /* annotationType */
            aload 3 /* values */
            iconst_0
            invokevirtual jdk.jfr.internal.PrivateAccess.newAnnotation:(Ljdk/jfr/internal/Type;Ljava/util/List;Z)Ljdk/jfr/AnnotationElement;
            areturn
        end local 3 // java.util.List values
        end local 2 // jdk.jfr.internal.Type annotationType
        end local 1 // jdk.jfr.internal.MetadataDescriptor$Element annotationElement
        end local 0 // jdk.jfr.internal.MetadataReader this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   22     0               this  Ljdk/jfr/internal/MetadataReader;
            0   22     1  annotationElement  Ljdk/jfr/internal/MetadataDescriptor$Element;
            1   22     2     annotationType  Ljdk/jfr/internal/Type;
            2   22     3             values  Ljava/util/List<Ljava/lang/Object;>;
            4   20     4                  v  Ljdk/jfr/ValueDescriptor;
            6   17     6               list  Ljava/util/List<Ljava/lang/Object;>;
            7   17     7              index  I
            8   12     8               text  Ljava/lang/String;
           14   17     8             object  Ljava/lang/Object;
           19   20     6               text  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                   Name  Flags
      annotationElement  

  private java.lang.Object objectify(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // jdk.jfr.internal.MetadataReader this
        start local 1 // java.lang.String typeName
        start local 2 // java.lang.String text
         0: .line 180
            aload 1 /* typeName */
            dup
            astore 3
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 9
          -1325958191: 1
               104431: 2
              3039496: 3
              3052374: 4
              3327612: 5
             64711720: 6
             97526364: 7
            109413500: 8
           1195259493: 9
              default: 30
          }
      StackMap locals: java.lang.String
      StackMap stack:
         1: aload 3
            ldc "double"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 14
            goto 33
      StackMap locals:
      StackMap stack:
         2: aload 3
            ldc "int"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 10
            goto 33
      StackMap locals:
      StackMap stack:
         3: aload 3
            ldc "byte"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 24
            goto 33
      StackMap locals:
      StackMap stack:
         4: aload 3
            ldc "char"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 20
            goto 33
      StackMap locals:
      StackMap stack:
         5: aload 3
            ldc "long"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 12
            goto 33
      StackMap locals:
      StackMap stack:
         6: aload 3
            ldc "boolean"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 26
            goto 33
      StackMap locals:
      StackMap stack:
         7: aload 3
            ldc "float"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 16
            goto 33
      StackMap locals:
      StackMap stack:
         8: aload 3
            ldc "short"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 18
            goto 33
      StackMap locals:
      StackMap stack:
         9: aload 3
            ldc "java.lang.String"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 28
            goto 33
        10: .line 182
      StackMap locals:
      StackMap stack:
            aload 2 /* text */
            invokestatic java.lang.Integer.valueOf:(Ljava/lang/String;)Ljava/lang/Integer;
        11: areturn
        12: .line 184
      StackMap locals:
      StackMap stack:
            aload 2 /* text */
            invokestatic java.lang.Long.valueOf:(Ljava/lang/String;)Ljava/lang/Long;
        13: areturn
        14: .line 186
      StackMap locals:
      StackMap stack:
            aload 2 /* text */
            invokestatic java.lang.Double.valueOf:(Ljava/lang/String;)Ljava/lang/Double;
        15: areturn
        16: .line 188
      StackMap locals:
      StackMap stack:
            aload 2 /* text */
            invokestatic java.lang.Float.valueOf:(Ljava/lang/String;)Ljava/lang/Float;
        17: areturn
        18: .line 190
      StackMap locals:
      StackMap stack:
            aload 2 /* text */
            invokestatic java.lang.Short.valueOf:(Ljava/lang/String;)Ljava/lang/Short;
        19: areturn
        20: .line 192
      StackMap locals:
      StackMap stack:
            aload 2 /* text */
            invokevirtual java.lang.String.length:()I
            iconst_1
            if_icmpeq 22
        21: .line 193
            new java.io.IOException
            dup
            ldc "Unexpected size of char"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        22: .line 195
      StackMap locals:
      StackMap stack:
            aload 2 /* text */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic java.lang.Character.valueOf:(C)Ljava/lang/Character;
        23: areturn
        24: .line 197
      StackMap locals:
      StackMap stack:
            aload 2 /* text */
            invokestatic java.lang.Byte.valueOf:(Ljava/lang/String;)Ljava/lang/Byte;
        25: areturn
        26: .line 199
      StackMap locals:
      StackMap stack:
            aload 2 /* text */
            invokestatic java.lang.Boolean.valueOf:(Ljava/lang/String;)Ljava/lang/Boolean;
        27: areturn
        28: .line 201
      StackMap locals:
      StackMap stack:
            aload 2 /* text */
        29: areturn
        30: .line 203
      StackMap locals:
      StackMap stack:
            goto 33
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
        31: pop
        32: .line 204
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Could not parse text representation of "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* typeName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        33: .line 206
      StackMap locals:
      StackMap stack:
            new java.io.IOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unsupported type for annotation "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* typeName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.String text
        end local 1 // java.lang.String typeName
        end local 0 // jdk.jfr.internal.MetadataReader this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   34     0      this  Ljdk/jfr/internal/MetadataReader;
            0   34     1  typeName  Ljava/lang/String;
            0   34     2      text  Ljava/lang/String;
      Exception table:
        from    to  target  type
           0    11      31  Class java.lang.IllegalArgumentException
          12    13      31  Class java.lang.IllegalArgumentException
          14    15      31  Class java.lang.IllegalArgumentException
          16    17      31  Class java.lang.IllegalArgumentException
          18    19      31  Class java.lang.IllegalArgumentException
          20    23      31  Class java.lang.IllegalArgumentException
          24    25      31  Class java.lang.IllegalArgumentException
          26    27      31  Class java.lang.IllegalArgumentException
          28    29      31  Class java.lang.IllegalArgumentException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      typeName  
      text      

  private jdk.jfr.internal.Type getType(java.lang.String, jdk.jfr.internal.MetadataDescriptor$Element);
    descriptor: (Ljava/lang/String;Ljdk/jfr/internal/MetadataDescriptor$Element;)Ljdk/jfr/internal/Type;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=7, args_size=3
        start local 0 // jdk.jfr.internal.MetadataReader this
        start local 1 // java.lang.String attribute
        start local 2 // jdk.jfr.internal.MetadataDescriptor$Element element
         0: .line 210
            aload 2 /* element */
            aload 1 /* attribute */
            invokevirtual jdk.jfr.internal.MetadataDescriptor$Element.longValue:(Ljava/lang/String;)J
            lstore 3 /* id */
        start local 3 // long id
         1: .line 211
            aload 0 /* this */
            getfield jdk.jfr.internal.MetadataReader.types:Ljava/util/Map;
            lload 3 /* id */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast jdk.jfr.internal.Type
            astore 5 /* type */
        start local 5 // jdk.jfr.internal.Type type
         2: .line 212
            aload 5 /* type */
            ifnonnull 5
         3: .line 213
            aload 2 /* element */
            ldc "type"
            invokevirtual jdk.jfr.internal.MetadataDescriptor$Element.attribute:(Ljava/lang/String;)Ljava/lang/String;
            astore 6 /* name */
        start local 6 // java.lang.String name
         4: .line 214
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Type '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 3 /* id */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc "' is not defined for "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 6 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 6 // java.lang.String name
         5: .line 216
      StackMap locals: long jdk.jfr.internal.Type
      StackMap stack:
            aload 5 /* type */
            areturn
        end local 5 // jdk.jfr.internal.Type type
        end local 3 // long id
        end local 2 // jdk.jfr.internal.MetadataDescriptor$Element element
        end local 1 // java.lang.String attribute
        end local 0 // jdk.jfr.internal.MetadataReader this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       this  Ljdk/jfr/internal/MetadataReader;
            0    6     1  attribute  Ljava/lang/String;
            0    6     2    element  Ljdk/jfr/internal/MetadataDescriptor$Element;
            1    6     3         id  J
            2    6     5       type  Ljdk/jfr/internal/Type;
            4    5     6       name  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      attribute  
      element    

  private void buildEvenTypes();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // jdk.jfr.internal.MetadataReader this
         0: .line 220
            aload 0 /* this */
            getfield jdk.jfr.internal.MetadataReader.descriptor:Ljdk/jfr/internal/MetadataDescriptor;
            getfield jdk.jfr.internal.MetadataDescriptor.types:Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 2
            goto 4
      StackMap locals: jdk.jfr.internal.MetadataReader top java.util.Iterator
      StackMap stack:
         1: aload 2
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.jfr.internal.Type
            astore 1 /* type */
        start local 1 // jdk.jfr.internal.Type type
         2: .line 221
            aload 1 /* type */
            instanceof jdk.jfr.internal.PlatformEventType
            ifeq 4
         3: .line 222
            aload 0 /* this */
            getfield jdk.jfr.internal.MetadataReader.descriptor:Ljdk/jfr/internal/MetadataDescriptor;
            getfield jdk.jfr.internal.MetadataDescriptor.eventTypes:Ljava/util/List;
            invokestatic jdk.jfr.internal.PrivateAccess.getInstance:()Ljdk/jfr/internal/PrivateAccess;
            aload 1 /* type */
            checkcast jdk.jfr.internal.PlatformEventType
            invokevirtual jdk.jfr.internal.PrivateAccess.newEventType:(Ljdk/jfr/internal/PlatformEventType;)Ljdk/jfr/EventType;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 1 // jdk.jfr.internal.Type type
         4: .line 220
      StackMap locals:
      StackMap stack:
            aload 2
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         5: .line 225
            return
        end local 0 // jdk.jfr.internal.MetadataReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Ljdk/jfr/internal/MetadataReader;
            2    4     1  type  Ljdk/jfr/internal/Type;

  private void defineTypes(jdk.jfr.internal.MetadataDescriptor$Element);
    descriptor: (Ljdk/jfr/internal/MetadataDescriptor$Element;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=14, args_size=2
        start local 0 // jdk.jfr.internal.MetadataReader this
        start local 1 // jdk.jfr.internal.MetadataDescriptor$Element metadata
         0: .line 228
            aload 1 /* metadata */
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "class"
            aastore
            invokevirtual jdk.jfr.internal.MetadataDescriptor$Element.elements:([Ljava/lang/String;)Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 23
      StackMap locals: jdk.jfr.internal.MetadataReader jdk.jfr.internal.MetadataDescriptor$Element top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.jfr.internal.MetadataDescriptor$Element
            astore 2 /* typeElement */
        start local 2 // jdk.jfr.internal.MetadataDescriptor$Element typeElement
         2: .line 229
            aload 2 /* typeElement */
            ldc "id"
            ldc -1
            invokevirtual jdk.jfr.internal.MetadataDescriptor$Element.attribute:(Ljava/lang/String;J)J
            lstore 4 /* id */
        start local 4 // long id
         3: .line 230
            aload 0 /* this */
            getfield jdk.jfr.internal.MetadataReader.types:Ljava/util/Map;
            lload 4 /* id */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast jdk.jfr.internal.Type
            astore 6 /* t */
        start local 6 // jdk.jfr.internal.Type t
         4: .line 231
            aload 2 /* typeElement */
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "setting"
            aastore
            invokevirtual jdk.jfr.internal.MetadataDescriptor$Element.elements:([Ljava/lang/String;)Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 8
            goto 11
      StackMap locals: jdk.jfr.internal.MetadataReader jdk.jfr.internal.MetadataDescriptor$Element jdk.jfr.internal.MetadataDescriptor$Element java.util.Iterator long jdk.jfr.internal.Type top java.util.Iterator
      StackMap stack:
         5: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.jfr.internal.MetadataDescriptor$Element
            astore 7 /* fieldElement */
        start local 7 // jdk.jfr.internal.MetadataDescriptor$Element fieldElement
         6: .line 232
            aload 7 /* fieldElement */
            ldc "name"
            invokevirtual jdk.jfr.internal.MetadataDescriptor$Element.attribute:(Ljava/lang/String;)Ljava/lang/String;
            astore 9 /* name */
        start local 9 // java.lang.String name
         7: .line 233
            aload 7 /* fieldElement */
            ldc "name"
            invokevirtual jdk.jfr.internal.MetadataDescriptor$Element.attribute:(Ljava/lang/String;)Ljava/lang/String;
            astore 10 /* defaultValue */
        start local 10 // java.lang.String defaultValue
         8: .line 234
            aload 0 /* this */
            ldc "class"
            aload 7 /* fieldElement */
            invokevirtual jdk.jfr.internal.MetadataReader.getType:(Ljava/lang/String;Ljdk/jfr/internal/MetadataDescriptor$Element;)Ljdk/jfr/internal/Type;
            astore 11 /* settingType */
        start local 11 // jdk.jfr.internal.Type settingType
         9: .line 235
            aload 6 /* t */
            checkcast jdk.jfr.internal.PlatformEventType
            astore 12 /* eventType */
        start local 12 // jdk.jfr.internal.PlatformEventType eventType
        10: .line 236
            aload 12 /* eventType */
            invokestatic jdk.jfr.internal.PrivateAccess.getInstance:()Ljdk/jfr/internal/PrivateAccess;
            aload 11 /* settingType */
            aload 9 /* name */
            aload 10 /* defaultValue */
            new java.util.ArrayList
            dup
            iconst_2
            invokespecial java.util.ArrayList.<init>:(I)V
            invokevirtual jdk.jfr.internal.PrivateAccess.newSettingDescriptor:(Ljdk/jfr/internal/Type;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)Ljdk/jfr/SettingDescriptor;
            invokevirtual jdk.jfr.internal.PlatformEventType.add:(Ljdk/jfr/SettingDescriptor;)V
        end local 12 // jdk.jfr.internal.PlatformEventType eventType
        end local 11 // jdk.jfr.internal.Type settingType
        end local 10 // java.lang.String defaultValue
        end local 9 // java.lang.String name
        end local 7 // jdk.jfr.internal.MetadataDescriptor$Element fieldElement
        11: .line 231
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        12: .line 238
            aload 2 /* typeElement */
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "field"
            aastore
            invokevirtual jdk.jfr.internal.MetadataDescriptor$Element.elements:([Ljava/lang/String;)Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 8
            goto 21
      StackMap locals:
      StackMap stack:
        13: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.jfr.internal.MetadataDescriptor$Element
            astore 7 /* fieldElement */
        start local 7 // jdk.jfr.internal.MetadataDescriptor$Element fieldElement
        14: .line 239
            aload 7 /* fieldElement */
            ldc "name"
            invokevirtual jdk.jfr.internal.MetadataDescriptor$Element.attribute:(Ljava/lang/String;)Ljava/lang/String;
            astore 9 /* name */
        start local 9 // java.lang.String name
        15: .line 240
            aload 0 /* this */
            ldc "class"
            aload 7 /* fieldElement */
            invokevirtual jdk.jfr.internal.MetadataReader.getType:(Ljava/lang/String;Ljdk/jfr/internal/MetadataDescriptor$Element;)Ljdk/jfr/internal/Type;
            astore 10 /* fieldType */
        start local 10 // jdk.jfr.internal.Type fieldType
        16: .line 241
            aload 7 /* fieldElement */
            ldc "dimension"
            lconst_0
            invokevirtual jdk.jfr.internal.MetadataDescriptor$Element.attribute:(Ljava/lang/String;J)J
            lstore 11 /* dimension */
        start local 11 // long dimension
        17: .line 242
            aload 7 /* fieldElement */
            ldc "constantPool"
            invokevirtual jdk.jfr.internal.MetadataDescriptor$Element.attribute:(Ljava/lang/String;)Ljava/lang/String;
            ifnull 18
            iconst_1
            goto 19
      StackMap locals: jdk.jfr.internal.MetadataReader jdk.jfr.internal.MetadataDescriptor$Element jdk.jfr.internal.MetadataDescriptor$Element java.util.Iterator long jdk.jfr.internal.Type jdk.jfr.internal.MetadataDescriptor$Element java.util.Iterator java.lang.String jdk.jfr.internal.Type long
      StackMap stack:
        18: iconst_0
      StackMap locals:
      StackMap stack: int
        19: istore 13 /* constantPool */
        start local 13 // boolean constantPool
        20: .line 245
            aload 6 /* t */
            invokestatic jdk.jfr.internal.PrivateAccess.getInstance:()Ljdk/jfr/internal/PrivateAccess;
            aload 9 /* name */
            aload 10 /* fieldType */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            lload 11 /* dimension */
            l2i
            iload 13 /* constantPool */
            aconst_null
            invokevirtual jdk.jfr.internal.PrivateAccess.newValueDescriptor:(Ljava/lang/String;Ljdk/jfr/internal/Type;Ljava/util/List;IZLjava/lang/String;)Ljdk/jfr/ValueDescriptor;
            invokevirtual jdk.jfr.internal.Type.add:(Ljdk/jfr/ValueDescriptor;)V
        end local 13 // boolean constantPool
        end local 11 // long dimension
        end local 10 // jdk.jfr.internal.Type fieldType
        end local 9 // java.lang.String name
        end local 7 // jdk.jfr.internal.MetadataDescriptor$Element fieldElement
        21: .line 238
      StackMap locals: jdk.jfr.internal.MetadataReader jdk.jfr.internal.MetadataDescriptor$Element jdk.jfr.internal.MetadataDescriptor$Element java.util.Iterator long jdk.jfr.internal.Type top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 13
        22: .line 247
            aload 6 /* t */
            invokevirtual jdk.jfr.internal.Type.trimFields:()V
        end local 6 // jdk.jfr.internal.Type t
        end local 4 // long id
        end local 2 // jdk.jfr.internal.MetadataDescriptor$Element typeElement
        23: .line 228
      StackMap locals: jdk.jfr.internal.MetadataReader jdk.jfr.internal.MetadataDescriptor$Element top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
        24: .line 249
            return
        end local 1 // jdk.jfr.internal.MetadataDescriptor$Element metadata
        end local 0 // jdk.jfr.internal.MetadataReader this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   25     0          this  Ljdk/jfr/internal/MetadataReader;
            0   25     1      metadata  Ljdk/jfr/internal/MetadataDescriptor$Element;
            2   23     2   typeElement  Ljdk/jfr/internal/MetadataDescriptor$Element;
            3   23     4            id  J
            4   23     6             t  Ljdk/jfr/internal/Type;
            6   11     7  fieldElement  Ljdk/jfr/internal/MetadataDescriptor$Element;
            7   11     9          name  Ljava/lang/String;
            8   11    10  defaultValue  Ljava/lang/String;
            9   11    11   settingType  Ljdk/jfr/internal/Type;
           10   11    12     eventType  Ljdk/jfr/internal/PlatformEventType;
           14   21     7  fieldElement  Ljdk/jfr/internal/MetadataDescriptor$Element;
           15   21     9          name  Ljava/lang/String;
           16   21    10     fieldType  Ljdk/jfr/internal/Type;
           17   21    11     dimension  J
           20   21    13  constantPool  Z
    MethodParameters:
          Name  Flags
      metadata  

  private void declareTypes(jdk.jfr.internal.MetadataDescriptor$Element);
    descriptor: (Ljdk/jfr/internal/MetadataDescriptor$Element;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=10, args_size=2
        start local 0 // jdk.jfr.internal.MetadataReader this
        start local 1 // jdk.jfr.internal.MetadataDescriptor$Element metadata
         0: .line 252
            aload 1 /* metadata */
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "class"
            aastore
            invokevirtual jdk.jfr.internal.MetadataDescriptor$Element.elements:([Ljava/lang/String;)Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 14
      StackMap locals: jdk.jfr.internal.MetadataReader jdk.jfr.internal.MetadataDescriptor$Element top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.jfr.internal.MetadataDescriptor$Element
            astore 2 /* typeElement */
        start local 2 // jdk.jfr.internal.MetadataDescriptor$Element typeElement
         2: .line 253
            aload 2 /* typeElement */
            ldc "name"
            invokevirtual jdk.jfr.internal.MetadataDescriptor$Element.attribute:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* typeName */
        start local 4 // java.lang.String typeName
         3: .line 254
            aload 2 /* typeElement */
            ldc "superType"
            invokevirtual jdk.jfr.internal.MetadataDescriptor$Element.attribute:(Ljava/lang/String;)Ljava/lang/String;
            astore 5 /* superType */
        start local 5 // java.lang.String superType
         4: .line 255
            aload 2 /* typeElement */
            ldc "simpleType"
            invokevirtual jdk.jfr.internal.MetadataDescriptor$Element.attribute:(Ljava/lang/String;)Ljava/lang/String;
            ifnull 5
            iconst_1
            goto 6
      StackMap locals: jdk.jfr.internal.MetadataReader jdk.jfr.internal.MetadataDescriptor$Element jdk.jfr.internal.MetadataDescriptor$Element java.util.Iterator java.lang.String java.lang.String
      StackMap stack:
         5: iconst_0
      StackMap locals:
      StackMap stack: int
         6: istore 6 /* simpleType */
        start local 6 // boolean simpleType
         7: .line 256
            aload 2 /* typeElement */
            ldc "id"
            ldc -1
            invokevirtual jdk.jfr.internal.MetadataDescriptor$Element.attribute:(Ljava/lang/String;J)J
            lstore 7 /* id */
        start local 7 // long id
         8: .line 258
            getstatic jdk.jfr.internal.Type.SUPER_TYPE_EVENT:Ljava/lang/String;
            aload 5 /* superType */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 11
         9: .line 259
            new jdk.jfr.internal.PlatformEventType
            dup
            aload 4 /* typeName */
            lload 7 /* id */
            iconst_0
            iconst_0
            invokespecial jdk.jfr.internal.PlatformEventType.<init>:(Ljava/lang/String;JZZ)V
            astore 9 /* t */
        start local 9 // jdk.jfr.internal.Type t
        10: .line 260
            goto 12
        end local 9 // jdk.jfr.internal.Type t
        11: .line 261
      StackMap locals: int long
      StackMap stack:
            new jdk.jfr.internal.Type
            dup
            aload 4 /* typeName */
            aload 5 /* superType */
            lload 7 /* id */
            iconst_0
            iload 6 /* simpleType */
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokespecial jdk.jfr.internal.Type.<init>:(Ljava/lang/String;Ljava/lang/String;JZLjava/lang/Boolean;)V
            astore 9 /* t */
        start local 9 // jdk.jfr.internal.Type t
        12: .line 263
      StackMap locals: jdk.jfr.internal.Type
      StackMap stack:
            aload 0 /* this */
            getfield jdk.jfr.internal.MetadataReader.types:Ljava/util/Map;
            lload 7 /* id */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aload 9 /* t */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        13: .line 264
            aload 0 /* this */
            getfield jdk.jfr.internal.MetadataReader.descriptor:Ljdk/jfr/internal/MetadataDescriptor;
            getfield jdk.jfr.internal.MetadataDescriptor.types:Ljava/util/Collection;
            aload 9 /* t */
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            pop
        end local 9 // jdk.jfr.internal.Type t
        end local 7 // long id
        end local 6 // boolean simpleType
        end local 5 // java.lang.String superType
        end local 4 // java.lang.String typeName
        end local 2 // jdk.jfr.internal.MetadataDescriptor$Element typeElement
        14: .line 252
      StackMap locals: jdk.jfr.internal.MetadataReader jdk.jfr.internal.MetadataDescriptor$Element top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
        15: .line 266
            return
        end local 1 // jdk.jfr.internal.MetadataDescriptor$Element metadata
        end local 0 // jdk.jfr.internal.MetadataReader this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   16     0         this  Ljdk/jfr/internal/MetadataReader;
            0   16     1     metadata  Ljdk/jfr/internal/MetadataDescriptor$Element;
            2   14     2  typeElement  Ljdk/jfr/internal/MetadataDescriptor$Element;
            3   14     4     typeName  Ljava/lang/String;
            4   14     5    superType  Ljava/lang/String;
            7   14     6   simpleType  Z
            8   14     7           id  J
           10   11     9            t  Ljdk/jfr/internal/Type;
           12   14     9            t  Ljdk/jfr/internal/Type;
    MethodParameters:
          Name  Flags
      metadata  

  public jdk.jfr.internal.MetadataDescriptor getDescriptor();
    descriptor: ()Ljdk/jfr/internal/MetadataDescriptor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.jfr.internal.MetadataReader this
         0: .line 269
            aload 0 /* this */
            getfield jdk.jfr.internal.MetadataReader.descriptor:Ljdk/jfr/internal/MetadataDescriptor;
            areturn
        end local 0 // jdk.jfr.internal.MetadataReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/jfr/internal/MetadataReader;

  private static int lambda$0(jdk.jfr.internal.Type, jdk.jfr.internal.Type);
    descriptor: (Ljdk/jfr/internal/Type;Ljdk/jfr/internal/Type;)I
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.jfr.internal.Type x
        start local 1 // jdk.jfr.internal.Type y
         0: .line 84
            aload 0 /* x */
            invokevirtual jdk.jfr.internal.Type.getName:()Ljava/lang/String;
            aload 1 /* y */
            invokevirtual jdk.jfr.internal.Type.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.compareTo:(Ljava/lang/String;)I
            ireturn
        end local 1 // jdk.jfr.internal.Type y
        end local 0 // jdk.jfr.internal.Type x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     x  Ljdk/jfr/internal/Type;
            0    1     1     y  Ljdk/jfr/internal/Type;
}
SourceFile: "MetadataReader.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  final Element = jdk.jfr.internal.MetadataDescriptor$Element of jdk.jfr.internal.MetadataDescriptor