public class org.bson.json.JsonReader extends org.bson.AbstractBsonReader
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.bson.json.JsonReader
  super_class: org.bson.AbstractBsonReader
{
  private final org.bson.json.JsonScanner scanner;
    descriptor: Lorg/bson/json/JsonScanner;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private org.bson.json.JsonToken pushedToken;
    descriptor: Lorg/bson/json/JsonToken;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.Object currentValue;
    descriptor: Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE

  private org.bson.json.JsonReader$Mark mark;
    descriptor: Lorg/bson/json/JsonReader$Mark;
    flags: (0x0002) ACC_PRIVATE

  private static volatile int[] $SWITCH_TABLE$org$bson$json$JsonTokenType;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  private static volatile int[] $SWITCH_TABLE$org$bson$BsonContextType;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  private static volatile int[] $SWITCH_TABLE$org$bson$BsonType;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  public void <init>(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.bson.json.JsonReader this
        start local 1 // java.lang.String json
         0: .line 78
            aload 0 /* this */
            new org.bson.json.JsonScanner
            dup
            aload 1 /* json */
            invokespecial org.bson.json.JsonScanner.<init>:(Ljava/lang/String;)V
            invokespecial org.bson.json.JsonReader.<init>:(Lorg/bson/json/JsonScanner;)V
         1: .line 79
            return
        end local 1 // java.lang.String json
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bson/json/JsonReader;
            0    2     1  json  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      json  final

  public void <init>(java.io.Reader);
    descriptor: (Ljava/io/Reader;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.bson.json.JsonReader this
        start local 1 // java.io.Reader reader
         0: .line 92
            aload 0 /* this */
            new org.bson.json.JsonScanner
            dup
            aload 1 /* reader */
            invokespecial org.bson.json.JsonScanner.<init>:(Ljava/io/Reader;)V
            invokespecial org.bson.json.JsonReader.<init>:(Lorg/bson/json/JsonScanner;)V
         1: .line 93
            return
        end local 1 // java.io.Reader reader
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/bson/json/JsonReader;
            0    2     1  reader  Ljava/io/Reader;
    MethodParameters:
        Name  Flags
      reader  final

  private void <init>(org.bson.json.JsonScanner);
    descriptor: (Lorg/bson/json/JsonScanner;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // org.bson.json.JsonReader this
        start local 1 // org.bson.json.JsonScanner scanner
         0: .line 96
            aload 0 /* this */
            invokespecial org.bson.AbstractBsonReader.<init>:()V
         1: .line 97
            aload 0 /* this */
            aload 1 /* scanner */
            putfield org.bson.json.JsonReader.scanner:Lorg/bson/json/JsonScanner;
         2: .line 98
            aload 0 /* this */
            new org.bson.json.JsonReader$Context
            dup
            aload 0 /* this */
            aconst_null
            getstatic org.bson.BsonContextType.TOP_LEVEL:Lorg/bson/BsonContextType;
            invokespecial org.bson.json.JsonReader$Context.<init>:(Lorg/bson/json/JsonReader;Lorg/bson/AbstractBsonReader$Context;Lorg/bson/BsonContextType;)V
            invokevirtual org.bson.json.JsonReader.setContext:(Lorg/bson/AbstractBsonReader$Context;)V
         3: .line 99
            return
        end local 1 // org.bson.json.JsonScanner scanner
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lorg/bson/json/JsonReader;
            0    4     1  scanner  Lorg/bson/json/JsonScanner;
    MethodParameters:
         Name  Flags
      scanner  final

  protected org.bson.BsonBinary doReadBinaryData();
    descriptor: ()Lorg/bson/BsonBinary;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.json.JsonReader this
         0: .line 103
            aload 0 /* this */
            getfield org.bson.json.JsonReader.currentValue:Ljava/lang/Object;
            checkcast org.bson.BsonBinary
            areturn
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/json/JsonReader;

  protected byte doPeekBinarySubType();
    descriptor: ()B
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.json.JsonReader this
         0: .line 108
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.doReadBinaryData:()Lorg/bson/BsonBinary;
            invokevirtual org.bson.BsonBinary.getType:()B
            ireturn
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/json/JsonReader;

  protected int doPeekBinarySize();
    descriptor: ()I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.json.JsonReader this
         0: .line 113
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.doReadBinaryData:()Lorg/bson/BsonBinary;
            invokevirtual org.bson.BsonBinary.getData:()[B
            arraylength
            ireturn
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/json/JsonReader;

  protected boolean doReadBoolean();
    descriptor: ()Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.json.JsonReader this
         0: .line 118
            aload 0 /* this */
            getfield org.bson.json.JsonReader.currentValue:Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ireturn
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/json/JsonReader;

  public org.bson.BsonType readBsonType();
    descriptor: ()Lorg/bson/BsonType;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=4, args_size=1
        start local 0 // org.bson.json.JsonReader this
         0: .line 124
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.isClosed:()Z
            ifeq 2
         1: .line 125
            new java.lang.IllegalStateException
            dup
            ldc "This instance has been closed"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 127
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.getState:()Lorg/bson/AbstractBsonReader$State;
            getstatic org.bson.AbstractBsonReader$State.INITIAL:Lorg/bson/AbstractBsonReader$State;
            if_acmpeq 3
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.getState:()Lorg/bson/AbstractBsonReader$State;
            getstatic org.bson.AbstractBsonReader$State.DONE:Lorg/bson/AbstractBsonReader$State;
            if_acmpeq 3
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.getState:()Lorg/bson/AbstractBsonReader$State;
            getstatic org.bson.AbstractBsonReader$State.SCOPE_DOCUMENT:Lorg/bson/AbstractBsonReader$State;
            if_acmpne 4
         3: .line 129
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic org.bson.AbstractBsonReader$State.TYPE:Lorg/bson/AbstractBsonReader$State;
            invokevirtual org.bson.json.JsonReader.setState:(Lorg/bson/AbstractBsonReader$State;)V
         4: .line 131
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.getState:()Lorg/bson/AbstractBsonReader$State;
            getstatic org.bson.AbstractBsonReader$State.TYPE:Lorg/bson/AbstractBsonReader$State;
            if_acmpeq 6
         5: .line 132
            aload 0 /* this */
            ldc "readBSONType"
            iconst_1
            anewarray org.bson.AbstractBsonReader$State
            dup
            iconst_0
            getstatic org.bson.AbstractBsonReader$State.TYPE:Lorg/bson/AbstractBsonReader$State;
            aastore
            invokevirtual org.bson.json.JsonReader.throwInvalidState:(Ljava/lang/String;[Lorg/bson/AbstractBsonReader$State;)V
         6: .line 135
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.getContext:()Lorg/bson/json/JsonReader$Context;
            invokevirtual org.bson.json.JsonReader$Context.getContextType:()Lorg/bson/BsonContextType;
            getstatic org.bson.BsonContextType.DOCUMENT:Lorg/bson/BsonContextType;
            if_acmpne 17
         7: .line 136
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.popToken:()Lorg/bson/json/JsonToken;
            astore 1 /* nameToken */
        start local 1 // org.bson.json.JsonToken nameToken
         8: .line 137
            invokestatic org.bson.json.JsonReader.$SWITCH_TABLE$org$bson$json$JsonTokenType:()[I
            aload 1 /* nameToken */
            invokevirtual org.bson.json.JsonToken.getType:()Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonTokenType.ordinal:()I
            iaload
            lookupswitch { // 3
                    7: 11
                   14: 9
                   15: 9
              default: 13
          }
         9: .line 140
      StackMap locals: org.bson.json.JsonToken
      StackMap stack:
            aload 0 /* this */
            aload 1 /* nameToken */
            ldc Ljava/lang/String;
            invokevirtual org.bson.json.JsonToken.getValue:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual org.bson.json.JsonReader.setCurrentName:(Ljava/lang/String;)V
        10: .line 141
            goto 14
        11: .line 143
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic org.bson.AbstractBsonReader$State.END_OF_DOCUMENT:Lorg/bson/AbstractBsonReader$State;
            invokevirtual org.bson.json.JsonReader.setState:(Lorg/bson/AbstractBsonReader$State;)V
        12: .line 144
            getstatic org.bson.BsonType.END_OF_DOCUMENT:Lorg/bson/BsonType;
            areturn
        13: .line 146
      StackMap locals:
      StackMap stack:
            new org.bson.json.JsonParseException
            dup
            ldc "JSON reader was expecting a name but found '%s'."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* nameToken */
            invokevirtual org.bson.json.JsonToken.getValue:()Ljava/lang/Object;
            aastore
            invokespecial org.bson.json.JsonParseException.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
        14: .line 149
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.popToken:()Lorg/bson/json/JsonToken;
            astore 2 /* colonToken */
        start local 2 // org.bson.json.JsonToken colonToken
        15: .line 150
            aload 2 /* colonToken */
            invokevirtual org.bson.json.JsonToken.getType:()Lorg/bson/json/JsonTokenType;
            getstatic org.bson.json.JsonTokenType.COLON:Lorg/bson/json/JsonTokenType;
            if_acmpeq 17
        16: .line 151
            new org.bson.json.JsonParseException
            dup
            ldc "JSON reader was expecting ':' but found '%s'."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* colonToken */
            invokevirtual org.bson.json.JsonToken.getValue:()Ljava/lang/Object;
            aastore
            invokespecial org.bson.json.JsonParseException.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
        end local 2 // org.bson.json.JsonToken colonToken
        end local 1 // org.bson.json.JsonToken nameToken
        17: .line 155
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.popToken:()Lorg/bson/json/JsonToken;
            astore 1 /* token */
        start local 1 // org.bson.json.JsonToken token
        18: .line 156
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.getContext:()Lorg/bson/json/JsonReader$Context;
            invokevirtual org.bson.json.JsonReader$Context.getContextType:()Lorg/bson/BsonContextType;
            getstatic org.bson.BsonContextType.ARRAY:Lorg/bson/BsonContextType;
            if_acmpne 21
            aload 1 /* token */
            invokevirtual org.bson.json.JsonToken.getType:()Lorg/bson/json/JsonTokenType;
            getstatic org.bson.json.JsonTokenType.END_ARRAY:Lorg/bson/json/JsonTokenType;
            if_acmpne 21
        19: .line 157
            aload 0 /* this */
            getstatic org.bson.AbstractBsonReader$State.END_OF_ARRAY:Lorg/bson/AbstractBsonReader$State;
            invokevirtual org.bson.json.JsonReader.setState:(Lorg/bson/AbstractBsonReader$State;)V
        20: .line 158
            getstatic org.bson.BsonType.END_OF_DOCUMENT:Lorg/bson/BsonType;
            areturn
        21: .line 161
      StackMap locals: org.bson.json.JsonToken
      StackMap stack:
            iconst_0
            istore 2 /* noValueFound */
        start local 2 // boolean noValueFound
        22: .line 162
            invokestatic org.bson.json.JsonReader.$SWITCH_TABLE$org$bson$json$JsonTokenType:()[I
            aload 1 /* token */
            invokevirtual org.bson.json.JsonToken.getType:()Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonTokenType.ordinal:()I
            iaload
            tableswitch { // 2 - 16
                    2: 23
                    3: 25
                    4: 133
                    5: 133
                    6: 133
                    7: 133
                    8: 133
                    9: 133
                   10: 27
                   11: 32
                   12: 35
                   13: 38
                   14: 41
                   15: 44
                   16: 30
              default: 133
          }
        23: .line 164
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getstatic org.bson.BsonType.ARRAY:Lorg/bson/BsonType;
            invokevirtual org.bson.json.JsonReader.setCurrentBsonType:(Lorg/bson/BsonType;)V
        24: .line 165
            goto 134
        25: .line 167
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.visitExtendedJSON:()V
        26: .line 168
            goto 134
        27: .line 170
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic org.bson.BsonType.DOUBLE:Lorg/bson/BsonType;
            invokevirtual org.bson.json.JsonReader.setCurrentBsonType:(Lorg/bson/BsonType;)V
        28: .line 171
            aload 0 /* this */
            aload 1 /* token */
            invokevirtual org.bson.json.JsonToken.getValue:()Ljava/lang/Object;
            putfield org.bson.json.JsonReader.currentValue:Ljava/lang/Object;
        29: .line 172
            goto 134
        30: .line 174
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic org.bson.BsonType.END_OF_DOCUMENT:Lorg/bson/BsonType;
            invokevirtual org.bson.json.JsonReader.setCurrentBsonType:(Lorg/bson/BsonType;)V
        31: .line 175
            goto 134
        32: .line 177
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic org.bson.BsonType.INT32:Lorg/bson/BsonType;
            invokevirtual org.bson.json.JsonReader.setCurrentBsonType:(Lorg/bson/BsonType;)V
        33: .line 178
            aload 0 /* this */
            aload 1 /* token */
            invokevirtual org.bson.json.JsonToken.getValue:()Ljava/lang/Object;
            putfield org.bson.json.JsonReader.currentValue:Ljava/lang/Object;
        34: .line 179
            goto 134
        35: .line 181
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic org.bson.BsonType.INT64:Lorg/bson/BsonType;
            invokevirtual org.bson.json.JsonReader.setCurrentBsonType:(Lorg/bson/BsonType;)V
        36: .line 182
            aload 0 /* this */
            aload 1 /* token */
            invokevirtual org.bson.json.JsonToken.getValue:()Ljava/lang/Object;
            putfield org.bson.json.JsonReader.currentValue:Ljava/lang/Object;
        37: .line 183
            goto 134
        38: .line 185
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic org.bson.BsonType.REGULAR_EXPRESSION:Lorg/bson/BsonType;
            invokevirtual org.bson.json.JsonReader.setCurrentBsonType:(Lorg/bson/BsonType;)V
        39: .line 186
            aload 0 /* this */
            aload 1 /* token */
            invokevirtual org.bson.json.JsonToken.getValue:()Ljava/lang/Object;
            putfield org.bson.json.JsonReader.currentValue:Ljava/lang/Object;
        40: .line 187
            goto 134
        41: .line 189
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic org.bson.BsonType.STRING:Lorg/bson/BsonType;
            invokevirtual org.bson.json.JsonReader.setCurrentBsonType:(Lorg/bson/BsonType;)V
        42: .line 190
            aload 0 /* this */
            aload 1 /* token */
            invokevirtual org.bson.json.JsonToken.getValue:()Ljava/lang/Object;
            putfield org.bson.json.JsonReader.currentValue:Ljava/lang/Object;
        43: .line 191
            goto 134
        44: .line 193
      StackMap locals:
      StackMap stack:
            aload 1 /* token */
            ldc Ljava/lang/String;
            invokevirtual org.bson.json.JsonToken.getValue:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 3 /* value */
        start local 3 // java.lang.String value
        45: .line 195
            ldc "false"
            aload 3 /* value */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 46
            ldc "true"
            aload 3 /* value */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 49
        46: .line 196
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            getstatic org.bson.BsonType.BOOLEAN:Lorg/bson/BsonType;
            invokevirtual org.bson.json.JsonReader.setCurrentBsonType:(Lorg/bson/BsonType;)V
        47: .line 197
            aload 0 /* this */
            aload 3 /* value */
            invokestatic java.lang.Boolean.parseBoolean:(Ljava/lang/String;)Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            putfield org.bson.json.JsonReader.currentValue:Ljava/lang/Object;
        48: .line 198
            goto 134
      StackMap locals:
      StackMap stack:
        49: ldc "Infinity"
            aload 3 /* value */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 53
        50: .line 199
            aload 0 /* this */
            getstatic org.bson.BsonType.DOUBLE:Lorg/bson/BsonType;
            invokevirtual org.bson.json.JsonReader.setCurrentBsonType:(Lorg/bson/BsonType;)V
        51: .line 200
            aload 0 /* this */
            ldc Infinity
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            putfield org.bson.json.JsonReader.currentValue:Ljava/lang/Object;
        52: .line 201
            goto 134
      StackMap locals:
      StackMap stack:
        53: ldc "NaN"
            aload 3 /* value */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 57
        54: .line 202
            aload 0 /* this */
            getstatic org.bson.BsonType.DOUBLE:Lorg/bson/BsonType;
            invokevirtual org.bson.json.JsonReader.setCurrentBsonType:(Lorg/bson/BsonType;)V
        55: .line 203
            aload 0 /* this */
            ldc NaN
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            putfield org.bson.json.JsonReader.currentValue:Ljava/lang/Object;
        56: .line 204
            goto 134
      StackMap locals:
      StackMap stack:
        57: ldc "null"
            aload 3 /* value */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 60
        58: .line 205
            aload 0 /* this */
            getstatic org.bson.BsonType.NULL:Lorg/bson/BsonType;
            invokevirtual org.bson.json.JsonReader.setCurrentBsonType:(Lorg/bson/BsonType;)V
        59: .line 206
            goto 134
      StackMap locals:
      StackMap stack:
        60: ldc "undefined"
            aload 3 /* value */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 63
        61: .line 207
            aload 0 /* this */
            getstatic org.bson.BsonType.UNDEFINED:Lorg/bson/BsonType;
            invokevirtual org.bson.json.JsonReader.setCurrentBsonType:(Lorg/bson/BsonType;)V
        62: .line 208
            goto 134
      StackMap locals:
      StackMap stack:
        63: ldc "MinKey"
            aload 3 /* value */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 68
        64: .line 209
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.visitEmptyConstructor:()V
        65: .line 210
            aload 0 /* this */
            getstatic org.bson.BsonType.MIN_KEY:Lorg/bson/BsonType;
            invokevirtual org.bson.json.JsonReader.setCurrentBsonType:(Lorg/bson/BsonType;)V
        66: .line 211
            aload 0 /* this */
            new org.bson.types.MinKey
            dup
            invokespecial org.bson.types.MinKey.<init>:()V
            putfield org.bson.json.JsonReader.currentValue:Ljava/lang/Object;
        67: .line 212
            goto 134
      StackMap locals:
      StackMap stack:
        68: ldc "MaxKey"
            aload 3 /* value */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 73
        69: .line 213
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.visitEmptyConstructor:()V
        70: .line 214
            aload 0 /* this */
            getstatic org.bson.BsonType.MAX_KEY:Lorg/bson/BsonType;
            invokevirtual org.bson.json.JsonReader.setCurrentBsonType:(Lorg/bson/BsonType;)V
        71: .line 215
            aload 0 /* this */
            new org.bson.types.MaxKey
            dup
            invokespecial org.bson.types.MaxKey.<init>:()V
            putfield org.bson.json.JsonReader.currentValue:Ljava/lang/Object;
        72: .line 216
            goto 134
      StackMap locals:
      StackMap stack:
        73: ldc "BinData"
            aload 3 /* value */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 77
        74: .line 217
            aload 0 /* this */
            getstatic org.bson.BsonType.BINARY:Lorg/bson/BsonType;
            invokevirtual org.bson.json.JsonReader.setCurrentBsonType:(Lorg/bson/BsonType;)V
        75: .line 218
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.visitBinDataConstructor:()Lorg/bson/BsonBinary;
            putfield org.bson.json.JsonReader.currentValue:Ljava/lang/Object;
        76: .line 219
            goto 134
      StackMap locals:
      StackMap stack:
        77: ldc "Date"
            aload 3 /* value */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 81
        78: .line 220
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.visitDateTimeConstructorWithOutNew:()Ljava/lang/String;
            putfield org.bson.json.JsonReader.currentValue:Ljava/lang/Object;
        79: .line 221
            aload 0 /* this */
            getstatic org.bson.BsonType.STRING:Lorg/bson/BsonType;
            invokevirtual org.bson.json.JsonReader.setCurrentBsonType:(Lorg/bson/BsonType;)V
        80: .line 222
            goto 134
      StackMap locals:
      StackMap stack:
        81: ldc "HexData"
            aload 3 /* value */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 85
        82: .line 223
            aload 0 /* this */
            getstatic org.bson.BsonType.BINARY:Lorg/bson/BsonType;
            invokevirtual org.bson.json.JsonReader.setCurrentBsonType:(Lorg/bson/BsonType;)V
        83: .line 224
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.visitHexDataConstructor:()Lorg/bson/BsonBinary;
            putfield org.bson.json.JsonReader.currentValue:Ljava/lang/Object;
        84: .line 225
            goto 134
      StackMap locals:
      StackMap stack:
        85: ldc "ISODate"
            aload 3 /* value */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 89
        86: .line 226
            aload 0 /* this */
            getstatic org.bson.BsonType.DATE_TIME:Lorg/bson/BsonType;
            invokevirtual org.bson.json.JsonReader.setCurrentBsonType:(Lorg/bson/BsonType;)V
        87: .line 227
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.visitISODateTimeConstructor:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            putfield org.bson.json.JsonReader.currentValue:Ljava/lang/Object;
        88: .line 228
            goto 134
      StackMap locals:
      StackMap stack:
        89: ldc "NumberInt"
            aload 3 /* value */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 93
        90: .line 229
            aload 0 /* this */
            getstatic org.bson.BsonType.INT32:Lorg/bson/BsonType;
            invokevirtual org.bson.json.JsonReader.setCurrentBsonType:(Lorg/bson/BsonType;)V
        91: .line 230
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.visitNumberIntConstructor:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            putfield org.bson.json.JsonReader.currentValue:Ljava/lang/Object;
        92: .line 231
            goto 134
      StackMap locals:
      StackMap stack:
        93: ldc "NumberLong"
            aload 3 /* value */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 97
        94: .line 232
            aload 0 /* this */
            getstatic org.bson.BsonType.INT64:Lorg/bson/BsonType;
            invokevirtual org.bson.json.JsonReader.setCurrentBsonType:(Lorg/bson/BsonType;)V
        95: .line 233
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.visitNumberLongConstructor:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            putfield org.bson.json.JsonReader.currentValue:Ljava/lang/Object;
        96: .line 234
            goto 134
      StackMap locals:
      StackMap stack:
        97: ldc "NumberDecimal"
            aload 3 /* value */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 101
        98: .line 235
            aload 0 /* this */
            getstatic org.bson.BsonType.DECIMAL128:Lorg/bson/BsonType;
            invokevirtual org.bson.json.JsonReader.setCurrentBsonType:(Lorg/bson/BsonType;)V
        99: .line 236
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.visitNumberDecimalConstructor:()Lorg/bson/types/Decimal128;
            putfield org.bson.json.JsonReader.currentValue:Ljava/lang/Object;
       100: .line 237
            goto 134
      StackMap locals:
      StackMap stack:
       101: ldc "ObjectId"
            aload 3 /* value */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 105
       102: .line 238
            aload 0 /* this */
            getstatic org.bson.BsonType.OBJECT_ID:Lorg/bson/BsonType;
            invokevirtual org.bson.json.JsonReader.setCurrentBsonType:(Lorg/bson/BsonType;)V
       103: .line 239
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.visitObjectIdConstructor:()Lorg/bson/types/ObjectId;
            putfield org.bson.json.JsonReader.currentValue:Ljava/lang/Object;
       104: .line 240
            goto 134
      StackMap locals:
      StackMap stack:
       105: ldc "Timestamp"
            aload 3 /* value */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 109
       106: .line 241
            aload 0 /* this */
            getstatic org.bson.BsonType.TIMESTAMP:Lorg/bson/BsonType;
            invokevirtual org.bson.json.JsonReader.setCurrentBsonType:(Lorg/bson/BsonType;)V
       107: .line 242
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.visitTimestampConstructor:()Lorg/bson/BsonTimestamp;
            putfield org.bson.json.JsonReader.currentValue:Ljava/lang/Object;
       108: .line 243
            goto 134
      StackMap locals:
      StackMap stack:
       109: ldc "RegExp"
            aload 3 /* value */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 113
       110: .line 244
            aload 0 /* this */
            getstatic org.bson.BsonType.REGULAR_EXPRESSION:Lorg/bson/BsonType;
            invokevirtual org.bson.json.JsonReader.setCurrentBsonType:(Lorg/bson/BsonType;)V
       111: .line 245
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.visitRegularExpressionConstructor:()Lorg/bson/BsonRegularExpression;
            putfield org.bson.json.JsonReader.currentValue:Ljava/lang/Object;
       112: .line 246
            goto 134
      StackMap locals:
      StackMap stack:
       113: ldc "DBPointer"
            aload 3 /* value */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 117
       114: .line 247
            aload 0 /* this */
            getstatic org.bson.BsonType.DB_POINTER:Lorg/bson/BsonType;
            invokevirtual org.bson.json.JsonReader.setCurrentBsonType:(Lorg/bson/BsonType;)V
       115: .line 248
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.visitDBPointerConstructor:()Lorg/bson/BsonDbPointer;
            putfield org.bson.json.JsonReader.currentValue:Ljava/lang/Object;
       116: .line 249
            goto 134
      StackMap locals:
      StackMap stack:
       117: ldc "UUID"
            aload 3 /* value */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 125
       118: .line 250
            ldc "GUID"
            aload 3 /* value */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 125
       119: .line 251
            ldc "CSUUID"
            aload 3 /* value */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 125
       120: .line 252
            ldc "CSGUID"
            aload 3 /* value */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 125
       121: .line 253
            ldc "JUUID"
            aload 3 /* value */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 125
       122: .line 254
            ldc "JGUID"
            aload 3 /* value */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 125
       123: .line 255
            ldc "PYUUID"
            aload 3 /* value */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 125
       124: .line 256
            ldc "PYGUID"
            aload 3 /* value */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 128
       125: .line 257
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic org.bson.BsonType.BINARY:Lorg/bson/BsonType;
            invokevirtual org.bson.json.JsonReader.setCurrentBsonType:(Lorg/bson/BsonType;)V
       126: .line 258
            aload 0 /* this */
            aload 0 /* this */
            aload 3 /* value */
            invokevirtual org.bson.json.JsonReader.visitUUIDConstructor:(Ljava/lang/String;)Lorg/bson/BsonBinary;
            putfield org.bson.json.JsonReader.currentValue:Ljava/lang/Object;
       127: .line 259
            goto 134
      StackMap locals:
      StackMap stack:
       128: ldc "new"
            aload 3 /* value */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 131
       129: .line 260
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.visitNew:()V
       130: .line 261
            goto 134
       131: .line 262
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 2 /* noValueFound */
       132: .line 264
            goto 134
        end local 3 // java.lang.String value
       133: .line 266
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 2 /* noValueFound */
       134: .line 269
      StackMap locals:
      StackMap stack:
            iload 2 /* noValueFound */
            ifeq 136
       135: .line 270
            new org.bson.json.JsonParseException
            dup
            ldc "JSON reader was expecting a value but found '%s'."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* token */
            invokevirtual org.bson.json.JsonToken.getValue:()Ljava/lang/Object;
            aastore
            invokespecial org.bson.json.JsonParseException.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
       136: .line 273
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.getContext:()Lorg/bson/json/JsonReader$Context;
            invokevirtual org.bson.json.JsonReader$Context.getContextType:()Lorg/bson/BsonContextType;
            getstatic org.bson.BsonContextType.ARRAY:Lorg/bson/BsonContextType;
            if_acmpeq 137
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.getContext:()Lorg/bson/json/JsonReader$Context;
            invokevirtual org.bson.json.JsonReader$Context.getContextType:()Lorg/bson/BsonContextType;
            getstatic org.bson.BsonContextType.DOCUMENT:Lorg/bson/BsonContextType;
            if_acmpne 140
       137: .line 274
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.popToken:()Lorg/bson/json/JsonToken;
            astore 3 /* commaToken */
        start local 3 // org.bson.json.JsonToken commaToken
       138: .line 275
            aload 3 /* commaToken */
            invokevirtual org.bson.json.JsonToken.getType:()Lorg/bson/json/JsonTokenType;
            getstatic org.bson.json.JsonTokenType.COMMA:Lorg/bson/json/JsonTokenType;
            if_acmpeq 140
       139: .line 276
            aload 0 /* this */
            aload 3 /* commaToken */
            invokevirtual org.bson.json.JsonReader.pushToken:(Lorg/bson/json/JsonToken;)V
        end local 3 // org.bson.json.JsonToken commaToken
       140: .line 280
      StackMap locals:
      StackMap stack:
            invokestatic org.bson.json.JsonReader.$SWITCH_TABLE$org$bson$BsonContextType:()[I
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.getContext:()Lorg/bson/json/JsonReader$Context;
            invokevirtual org.bson.json.JsonReader$Context.getContextType:()Lorg/bson/BsonContextType;
            invokevirtual org.bson.BsonContextType.ordinal:()I
            iaload
            tableswitch { // 1 - 5
                    1: 143
                    2: 141
                    3: 143
                    4: 143
                    5: 141
              default: 141
          }
       141: .line 284
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic org.bson.AbstractBsonReader$State.NAME:Lorg/bson/AbstractBsonReader$State;
            invokevirtual org.bson.json.JsonReader.setState:(Lorg/bson/AbstractBsonReader$State;)V
       142: .line 285
            goto 144
       143: .line 289
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic org.bson.AbstractBsonReader$State.VALUE:Lorg/bson/AbstractBsonReader$State;
            invokevirtual org.bson.json.JsonReader.setState:(Lorg/bson/AbstractBsonReader$State;)V
       144: .line 292
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.getCurrentBsonType:()Lorg/bson/BsonType;
            areturn
        end local 2 // boolean noValueFound
        end local 1 // org.bson.json.JsonToken token
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0  145     0          this  Lorg/bson/json/JsonReader;
            8   17     1     nameToken  Lorg/bson/json/JsonToken;
           15   17     2    colonToken  Lorg/bson/json/JsonToken;
           18  145     1         token  Lorg/bson/json/JsonToken;
           22  145     2  noValueFound  Z
           45  133     3         value  Ljava/lang/String;
          138  140     3    commaToken  Lorg/bson/json/JsonToken;

  public org.bson.types.Decimal128 doReadDecimal128();
    descriptor: ()Lorg/bson/types/Decimal128;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.json.JsonReader this
         0: .line 298
            aload 0 /* this */
            getfield org.bson.json.JsonReader.currentValue:Ljava/lang/Object;
            checkcast org.bson.types.Decimal128
            areturn
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/json/JsonReader;

  protected long doReadDateTime();
    descriptor: ()J
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.bson.json.JsonReader this
         0: .line 303
            aload 0 /* this */
            getfield org.bson.json.JsonReader.currentValue:Ljava/lang/Object;
            checkcast java.lang.Long
            invokevirtual java.lang.Long.longValue:()J
            lreturn
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/json/JsonReader;

  protected double doReadDouble();
    descriptor: ()D
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.bson.json.JsonReader this
         0: .line 308
            aload 0 /* this */
            getfield org.bson.json.JsonReader.currentValue:Ljava/lang/Object;
            checkcast java.lang.Double
            invokevirtual java.lang.Double.doubleValue:()D
            dreturn
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/json/JsonReader;

  protected void doReadEndArray();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.bson.json.JsonReader this
         0: .line 313
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.getContext:()Lorg/bson/json/JsonReader$Context;
            invokevirtual org.bson.json.JsonReader$Context.getParentContext:()Lorg/bson/json/JsonReader$Context;
            invokevirtual org.bson.json.JsonReader.setContext:(Lorg/bson/AbstractBsonReader$Context;)V
         1: .line 315
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.getContext:()Lorg/bson/json/JsonReader$Context;
            invokevirtual org.bson.json.JsonReader$Context.getContextType:()Lorg/bson/BsonContextType;
            getstatic org.bson.BsonContextType.ARRAY:Lorg/bson/BsonContextType;
            if_acmpeq 2
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.getContext:()Lorg/bson/json/JsonReader$Context;
            invokevirtual org.bson.json.JsonReader$Context.getContextType:()Lorg/bson/BsonContextType;
            getstatic org.bson.BsonContextType.DOCUMENT:Lorg/bson/BsonContextType;
            if_acmpne 5
         2: .line 316
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.popToken:()Lorg/bson/json/JsonToken;
            astore 1 /* commaToken */
        start local 1 // org.bson.json.JsonToken commaToken
         3: .line 317
            aload 1 /* commaToken */
            invokevirtual org.bson.json.JsonToken.getType:()Lorg/bson/json/JsonTokenType;
            getstatic org.bson.json.JsonTokenType.COMMA:Lorg/bson/json/JsonTokenType;
            if_acmpeq 5
         4: .line 318
            aload 0 /* this */
            aload 1 /* commaToken */
            invokevirtual org.bson.json.JsonReader.pushToken:(Lorg/bson/json/JsonToken;)V
        end local 1 // org.bson.json.JsonToken commaToken
         5: .line 321
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lorg/bson/json/JsonReader;
            3    5     1  commaToken  Lorg/bson/json/JsonToken;

  protected void doReadEndDocument();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.bson.json.JsonReader this
         0: .line 325
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.getContext:()Lorg/bson/json/JsonReader$Context;
            invokevirtual org.bson.json.JsonReader$Context.getParentContext:()Lorg/bson/json/JsonReader$Context;
            invokevirtual org.bson.json.JsonReader.setContext:(Lorg/bson/AbstractBsonReader$Context;)V
         1: .line 326
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.getContext:()Lorg/bson/json/JsonReader$Context;
            ifnull 4
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.getContext:()Lorg/bson/json/JsonReader$Context;
            invokevirtual org.bson.json.JsonReader$Context.getContextType:()Lorg/bson/BsonContextType;
            getstatic org.bson.BsonContextType.SCOPE_DOCUMENT:Lorg/bson/BsonContextType;
            if_acmpne 4
         2: .line 327
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.getContext:()Lorg/bson/json/JsonReader$Context;
            invokevirtual org.bson.json.JsonReader$Context.getParentContext:()Lorg/bson/json/JsonReader$Context;
            invokevirtual org.bson.json.JsonReader.setContext:(Lorg/bson/AbstractBsonReader$Context;)V
         3: .line 328
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.END_OBJECT:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         4: .line 331
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.getContext:()Lorg/bson/json/JsonReader$Context;
            ifnonnull 6
         5: .line 332
            new org.bson.json.JsonParseException
            dup
            ldc "Unexpected end of document."
            invokespecial org.bson.json.JsonParseException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 335
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.getContext:()Lorg/bson/json/JsonReader$Context;
            invokevirtual org.bson.json.JsonReader$Context.getContextType:()Lorg/bson/BsonContextType;
            getstatic org.bson.BsonContextType.ARRAY:Lorg/bson/BsonContextType;
            if_acmpeq 7
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.getContext:()Lorg/bson/json/JsonReader$Context;
            invokevirtual org.bson.json.JsonReader$Context.getContextType:()Lorg/bson/BsonContextType;
            getstatic org.bson.BsonContextType.DOCUMENT:Lorg/bson/BsonContextType;
            if_acmpne 10
         7: .line 336
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.popToken:()Lorg/bson/json/JsonToken;
            astore 1 /* commaToken */
        start local 1 // org.bson.json.JsonToken commaToken
         8: .line 337
            aload 1 /* commaToken */
            invokevirtual org.bson.json.JsonToken.getType:()Lorg/bson/json/JsonTokenType;
            getstatic org.bson.json.JsonTokenType.COMMA:Lorg/bson/json/JsonTokenType;
            if_acmpeq 10
         9: .line 338
            aload 0 /* this */
            aload 1 /* commaToken */
            invokevirtual org.bson.json.JsonReader.pushToken:(Lorg/bson/json/JsonToken;)V
        end local 1 // org.bson.json.JsonToken commaToken
        10: .line 341
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   11     0        this  Lorg/bson/json/JsonReader;
            8   10     1  commaToken  Lorg/bson/json/JsonToken;

  protected int doReadInt32();
    descriptor: ()I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.json.JsonReader this
         0: .line 345
            aload 0 /* this */
            getfield org.bson.json.JsonReader.currentValue:Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            ireturn
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/json/JsonReader;

  protected long doReadInt64();
    descriptor: ()J
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.bson.json.JsonReader this
         0: .line 350
            aload 0 /* this */
            getfield org.bson.json.JsonReader.currentValue:Ljava/lang/Object;
            checkcast java.lang.Long
            invokevirtual java.lang.Long.longValue:()J
            lreturn
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/json/JsonReader;

  protected java.lang.String doReadJavaScript();
    descriptor: ()Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.json.JsonReader this
         0: .line 355
            aload 0 /* this */
            getfield org.bson.json.JsonReader.currentValue:Ljava/lang/Object;
            checkcast java.lang.String
            areturn
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/json/JsonReader;

  protected java.lang.String doReadJavaScriptWithScope();
    descriptor: ()Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.json.JsonReader this
         0: .line 360
            aload 0 /* this */
            getfield org.bson.json.JsonReader.currentValue:Ljava/lang/Object;
            checkcast java.lang.String
            areturn
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/json/JsonReader;

  protected void doReadMaxKey();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // org.bson.json.JsonReader this
         0: .line 365
            return
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/json/JsonReader;

  protected void doReadMinKey();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // org.bson.json.JsonReader this
         0: .line 369
            return
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/json/JsonReader;

  protected void doReadNull();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // org.bson.json.JsonReader this
         0: .line 373
            return
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/json/JsonReader;

  protected org.bson.types.ObjectId doReadObjectId();
    descriptor: ()Lorg/bson/types/ObjectId;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.json.JsonReader this
         0: .line 377
            aload 0 /* this */
            getfield org.bson.json.JsonReader.currentValue:Ljava/lang/Object;
            checkcast org.bson.types.ObjectId
            areturn
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/json/JsonReader;

  protected org.bson.BsonRegularExpression doReadRegularExpression();
    descriptor: ()Lorg/bson/BsonRegularExpression;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.json.JsonReader this
         0: .line 382
            aload 0 /* this */
            getfield org.bson.json.JsonReader.currentValue:Ljava/lang/Object;
            checkcast org.bson.BsonRegularExpression
            areturn
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/json/JsonReader;

  protected org.bson.BsonDbPointer doReadDBPointer();
    descriptor: ()Lorg/bson/BsonDbPointer;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.json.JsonReader this
         0: .line 387
            aload 0 /* this */
            getfield org.bson.json.JsonReader.currentValue:Ljava/lang/Object;
            checkcast org.bson.BsonDbPointer
            areturn
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/json/JsonReader;

  protected void doReadStartArray();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // org.bson.json.JsonReader this
         0: .line 392
            aload 0 /* this */
            new org.bson.json.JsonReader$Context
            dup
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.getContext:()Lorg/bson/json/JsonReader$Context;
            getstatic org.bson.BsonContextType.ARRAY:Lorg/bson/BsonContextType;
            invokespecial org.bson.json.JsonReader$Context.<init>:(Lorg/bson/json/JsonReader;Lorg/bson/AbstractBsonReader$Context;Lorg/bson/BsonContextType;)V
            invokevirtual org.bson.json.JsonReader.setContext:(Lorg/bson/AbstractBsonReader$Context;)V
         1: .line 393
            return
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bson/json/JsonReader;

  protected void doReadStartDocument();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // org.bson.json.JsonReader this
         0: .line 397
            aload 0 /* this */
            new org.bson.json.JsonReader$Context
            dup
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.getContext:()Lorg/bson/json/JsonReader$Context;
            getstatic org.bson.BsonContextType.DOCUMENT:Lorg/bson/BsonContextType;
            invokespecial org.bson.json.JsonReader$Context.<init>:(Lorg/bson/json/JsonReader;Lorg/bson/AbstractBsonReader$Context;Lorg/bson/BsonContextType;)V
            invokevirtual org.bson.json.JsonReader.setContext:(Lorg/bson/AbstractBsonReader$Context;)V
         1: .line 398
            return
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/bson/json/JsonReader;

  protected java.lang.String doReadString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.json.JsonReader this
         0: .line 402
            aload 0 /* this */
            getfield org.bson.json.JsonReader.currentValue:Ljava/lang/Object;
            checkcast java.lang.String
            areturn
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/json/JsonReader;

  protected java.lang.String doReadSymbol();
    descriptor: ()Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.json.JsonReader this
         0: .line 407
            aload 0 /* this */
            getfield org.bson.json.JsonReader.currentValue:Ljava/lang/Object;
            checkcast java.lang.String
            areturn
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/json/JsonReader;

  protected org.bson.BsonTimestamp doReadTimestamp();
    descriptor: ()Lorg/bson/BsonTimestamp;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.json.JsonReader this
         0: .line 412
            aload 0 /* this */
            getfield org.bson.json.JsonReader.currentValue:Ljava/lang/Object;
            checkcast org.bson.BsonTimestamp
            areturn
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/json/JsonReader;

  protected void doReadUndefined();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // org.bson.json.JsonReader this
         0: .line 417
            return
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/json/JsonReader;

  protected void doSkipName();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // org.bson.json.JsonReader this
         0: .line 421
            return
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/json/JsonReader;

  protected void doSkipValue();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.bson.json.JsonReader this
         0: .line 425
            invokestatic org.bson.json.JsonReader.$SWITCH_TABLE$org$bson$BsonType:()[I
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.getCurrentBsonType:()Lorg/bson/BsonType;
            invokevirtual org.bson.BsonType.ordinal:()I
            iaload
            tableswitch { // 2 - 22
                    2: 20
                    3: 48
                    4: 13
                    5: 1
                    6: 7
                    7: 54
                    8: 44
                    9: 9
                   10: 11
                   11: 42
                   12: 46
                   13: 55
                   14: 28
                   15: 50
                   16: 30
                   17: 22
                   18: 52
                   19: 24
                   20: 26
                   21: 40
                   22: 38
              default: 55
          }
         1: .line 427
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.readStartArray:()V
         2: .line 428
            goto 4
         3: .line 429
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.skipValue:()V
         4: .line 428
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.readBsonType:()Lorg/bson/BsonType;
            getstatic org.bson.BsonType.END_OF_DOCUMENT:Lorg/bson/BsonType;
            if_acmpne 3
         5: .line 431
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.readEndArray:()V
         6: .line 432
            goto 55
         7: .line 434
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.readBinaryData:()Lorg/bson/BsonBinary;
            pop
         8: .line 435
            goto 55
         9: .line 437
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.readBoolean:()Z
            pop
        10: .line 438
            goto 55
        11: .line 440
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.readDateTime:()J
            pop2
        12: .line 441
            goto 55
        13: .line 443
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.readStartDocument:()V
        14: .line 444
            goto 17
        15: .line 445
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.skipName:()V
        16: .line 446
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.skipValue:()V
        17: .line 444
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.readBsonType:()Lorg/bson/BsonType;
            getstatic org.bson.BsonType.END_OF_DOCUMENT:Lorg/bson/BsonType;
            if_acmpne 15
        18: .line 448
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.readEndDocument:()V
        19: .line 449
            goto 55
        20: .line 451
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.readDouble:()D
            pop2
        21: .line 452
            goto 55
        22: .line 454
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.readInt32:()I
            pop
        23: .line 455
            goto 55
        24: .line 457
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.readInt64:()J
            pop2
        25: .line 458
            goto 55
        26: .line 460
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.readDecimal128:()Lorg/bson/types/Decimal128;
            pop
        27: .line 461
            goto 55
        28: .line 463
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.readJavaScript:()Ljava/lang/String;
            pop
        29: .line 464
            goto 55
        30: .line 466
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.readJavaScriptWithScope:()Ljava/lang/String;
            pop
        31: .line 467
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.readStartDocument:()V
        32: .line 468
            goto 35
        33: .line 469
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.skipName:()V
        34: .line 470
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.skipValue:()V
        35: .line 468
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.readBsonType:()Lorg/bson/BsonType;
            getstatic org.bson.BsonType.END_OF_DOCUMENT:Lorg/bson/BsonType;
            if_acmpne 33
        36: .line 472
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.readEndDocument:()V
        37: .line 473
            goto 55
        38: .line 475
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.readMaxKey:()V
        39: .line 476
            goto 55
        40: .line 478
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.readMinKey:()V
        41: .line 479
            goto 55
        42: .line 481
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.readNull:()V
        43: .line 482
            goto 55
        44: .line 484
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.readObjectId:()Lorg/bson/types/ObjectId;
            pop
        45: .line 485
            goto 55
        46: .line 487
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.readRegularExpression:()Lorg/bson/BsonRegularExpression;
            pop
        47: .line 488
            goto 55
        48: .line 490
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.readString:()Ljava/lang/String;
            pop
        49: .line 491
            goto 55
        50: .line 493
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.readSymbol:()Ljava/lang/String;
            pop
        51: .line 494
            goto 55
        52: .line 496
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.readTimestamp:()Lorg/bson/BsonTimestamp;
            pop
        53: .line 497
            goto 55
        54: .line 499
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.readUndefined:()V
        55: .line 503
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   56     0  this  Lorg/bson/json/JsonReader;

  private org.bson.json.JsonToken popToken();
    descriptor: ()Lorg/bson/json/JsonToken;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.bson.json.JsonReader this
         0: .line 506
            aload 0 /* this */
            getfield org.bson.json.JsonReader.pushedToken:Lorg/bson/json/JsonToken;
            ifnull 4
         1: .line 507
            aload 0 /* this */
            getfield org.bson.json.JsonReader.pushedToken:Lorg/bson/json/JsonToken;
            astore 1 /* token */
        start local 1 // org.bson.json.JsonToken token
         2: .line 508
            aload 0 /* this */
            aconst_null
            putfield org.bson.json.JsonReader.pushedToken:Lorg/bson/json/JsonToken;
         3: .line 509
            aload 1 /* token */
            areturn
        end local 1 // org.bson.json.JsonToken token
         4: .line 511
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bson.json.JsonReader.scanner:Lorg/bson/json/JsonScanner;
            invokevirtual org.bson.json.JsonScanner.nextToken:()Lorg/bson/json/JsonToken;
            areturn
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Lorg/bson/json/JsonReader;
            2    4     1  token  Lorg/bson/json/JsonToken;

  private void pushToken(org.bson.json.JsonToken);
    descriptor: (Lorg/bson/json/JsonToken;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.bson.json.JsonReader this
        start local 1 // org.bson.json.JsonToken token
         0: .line 516
            aload 0 /* this */
            getfield org.bson.json.JsonReader.pushedToken:Lorg/bson/json/JsonToken;
            ifnonnull 3
         1: .line 517
            aload 0 /* this */
            aload 1 /* token */
            putfield org.bson.json.JsonReader.pushedToken:Lorg/bson/json/JsonToken;
         2: .line 518
            goto 4
         3: .line 519
      StackMap locals:
      StackMap stack:
            new org.bson.BsonInvalidOperationException
            dup
            ldc "There is already a pending token."
            invokespecial org.bson.BsonInvalidOperationException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 521
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.bson.json.JsonToken token
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Lorg/bson/json/JsonReader;
            0    5     1  token  Lorg/bson/json/JsonToken;
    MethodParameters:
       Name  Flags
      token  final

  private void verifyToken(org.bson.json.JsonTokenType);
    descriptor: (Lorg/bson/json/JsonTokenType;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=3, args_size=2
        start local 0 // org.bson.json.JsonReader this
        start local 1 // org.bson.json.JsonTokenType expectedType
         0: .line 524
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.popToken:()Lorg/bson/json/JsonToken;
            astore 2 /* token */
        start local 2 // org.bson.json.JsonToken token
         1: .line 525
            aload 1 /* expectedType */
            aload 2 /* token */
            invokevirtual org.bson.json.JsonToken.getType:()Lorg/bson/json/JsonTokenType;
            if_acmpeq 3
         2: .line 526
            new org.bson.json.JsonParseException
            dup
            ldc "JSON reader expected token type '%s' but found '%s'."
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* expectedType */
            aastore
            dup
            iconst_1
            aload 2 /* token */
            invokevirtual org.bson.json.JsonToken.getValue:()Ljava/lang/Object;
            aastore
            invokespecial org.bson.json.JsonParseException.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
         3: .line 528
      StackMap locals: org.bson.json.JsonToken
      StackMap stack:
            return
        end local 2 // org.bson.json.JsonToken token
        end local 1 // org.bson.json.JsonTokenType expectedType
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0          this  Lorg/bson/json/JsonReader;
            0    4     1  expectedType  Lorg/bson/json/JsonTokenType;
            1    4     2         token  Lorg/bson/json/JsonToken;
    MethodParameters:
              Name  Flags
      expectedType  final

  private void verifyToken(org.bson.json.JsonTokenType, java.lang.Object);
    descriptor: (Lorg/bson/json/JsonTokenType;Ljava/lang/Object;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=4, args_size=3
        start local 0 // org.bson.json.JsonReader this
        start local 1 // org.bson.json.JsonTokenType expectedType
        start local 2 // java.lang.Object expectedValue
         0: .line 531
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.popToken:()Lorg/bson/json/JsonToken;
            astore 3 /* token */
        start local 3 // org.bson.json.JsonToken token
         1: .line 532
            aload 1 /* expectedType */
            aload 3 /* token */
            invokevirtual org.bson.json.JsonToken.getType:()Lorg/bson/json/JsonTokenType;
            if_acmpeq 3
         2: .line 533
            new org.bson.json.JsonParseException
            dup
            ldc "JSON reader expected token type '%s' but found '%s'."
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* expectedType */
            aastore
            dup
            iconst_1
            aload 3 /* token */
            invokevirtual org.bson.json.JsonToken.getValue:()Ljava/lang/Object;
            aastore
            invokespecial org.bson.json.JsonParseException.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
         3: .line 535
      StackMap locals: org.bson.json.JsonToken
      StackMap stack:
            aload 2 /* expectedValue */
            aload 3 /* token */
            invokevirtual org.bson.json.JsonToken.getValue:()Ljava/lang/Object;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 5
         4: .line 536
            new org.bson.json.JsonParseException
            dup
            ldc "JSON reader expected '%s' but found '%s'."
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* expectedValue */
            aastore
            dup
            iconst_1
            aload 3 /* token */
            invokevirtual org.bson.json.JsonToken.getValue:()Ljava/lang/Object;
            aastore
            invokespecial org.bson.json.JsonParseException.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
         5: .line 538
      StackMap locals:
      StackMap stack:
            return
        end local 3 // org.bson.json.JsonToken token
        end local 2 // java.lang.Object expectedValue
        end local 1 // org.bson.json.JsonTokenType expectedType
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    6     0           this  Lorg/bson/json/JsonReader;
            0    6     1   expectedType  Lorg/bson/json/JsonTokenType;
            0    6     2  expectedValue  Ljava/lang/Object;
            1    6     3          token  Lorg/bson/json/JsonToken;
    MethodParameters:
               Name  Flags
      expectedType   final
      expectedValue  final

  private void verifyString(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=4, args_size=2
        start local 0 // org.bson.json.JsonReader this
        start local 1 // java.lang.String expected
         0: .line 541
            aload 1 /* expected */
            ifnonnull 2
         1: .line 542
            new java.lang.IllegalArgumentException
            dup
            ldc "Can't be null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 545
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.popToken:()Lorg/bson/json/JsonToken;
            astore 2 /* token */
        start local 2 // org.bson.json.JsonToken token
         3: .line 546
            aload 2 /* token */
            invokevirtual org.bson.json.JsonToken.getType:()Lorg/bson/json/JsonTokenType;
            astore 3 /* type */
        start local 3 // org.bson.json.JsonTokenType type
         4: .line 548
            aload 3 /* type */
            getstatic org.bson.json.JsonTokenType.STRING:Lorg/bson/json/JsonTokenType;
            if_acmpeq 5
            aload 3 /* type */
            getstatic org.bson.json.JsonTokenType.UNQUOTED_STRING:Lorg/bson/json/JsonTokenType;
            if_acmpne 6
      StackMap locals: org.bson.json.JsonToken org.bson.json.JsonTokenType
      StackMap stack:
         5: aload 1 /* expected */
            aload 2 /* token */
            invokevirtual org.bson.json.JsonToken.getValue:()Ljava/lang/Object;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 7
         6: .line 549
      StackMap locals:
      StackMap stack:
            new org.bson.json.JsonParseException
            dup
            ldc "JSON reader expected '%s' but found '%s'."
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* expected */
            aastore
            dup
            iconst_1
            aload 2 /* token */
            invokevirtual org.bson.json.JsonToken.getValue:()Ljava/lang/Object;
            aastore
            invokespecial org.bson.json.JsonParseException.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
         7: .line 551
      StackMap locals:
      StackMap stack:
            return
        end local 3 // org.bson.json.JsonTokenType type
        end local 2 // org.bson.json.JsonToken token
        end local 1 // java.lang.String expected
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      this  Lorg/bson/json/JsonReader;
            0    8     1  expected  Ljava/lang/String;
            3    8     2     token  Lorg/bson/json/JsonToken;
            4    8     3      type  Lorg/bson/json/JsonTokenType;
    MethodParameters:
          Name  Flags
      expected  final

  private void visitNew();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=3, args_size=1
        start local 0 // org.bson.json.JsonReader this
         0: .line 554
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.popToken:()Lorg/bson/json/JsonToken;
            astore 1 /* typeToken */
        start local 1 // org.bson.json.JsonToken typeToken
         1: .line 555
            aload 1 /* typeToken */
            invokevirtual org.bson.json.JsonToken.getType:()Lorg/bson/json/JsonTokenType;
            getstatic org.bson.json.JsonTokenType.UNQUOTED_STRING:Lorg/bson/json/JsonTokenType;
            if_acmpeq 3
         2: .line 556
            new org.bson.json.JsonParseException
            dup
            ldc "JSON reader expected a type name but found '%s'."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* typeToken */
            invokevirtual org.bson.json.JsonToken.getValue:()Ljava/lang/Object;
            aastore
            invokespecial org.bson.json.JsonParseException.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
         3: .line 559
      StackMap locals: org.bson.json.JsonToken
      StackMap stack:
            aload 1 /* typeToken */
            ldc Ljava/lang/String;
            invokevirtual org.bson.json.JsonToken.getValue:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 2 /* value */
        start local 2 // java.lang.String value
         4: .line 561
            ldc "MinKey"
            aload 2 /* value */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 9
         5: .line 562
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.visitEmptyConstructor:()V
         6: .line 563
            aload 0 /* this */
            getstatic org.bson.BsonType.MIN_KEY:Lorg/bson/BsonType;
            invokevirtual org.bson.json.JsonReader.setCurrentBsonType:(Lorg/bson/BsonType;)V
         7: .line 564
            aload 0 /* this */
            new org.bson.types.MinKey
            dup
            invokespecial org.bson.types.MinKey.<init>:()V
            putfield org.bson.json.JsonReader.currentValue:Ljava/lang/Object;
         8: .line 565
            goto 66
      StackMap locals: java.lang.String
      StackMap stack:
         9: ldc "MaxKey"
            aload 2 /* value */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 14
        10: .line 566
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.visitEmptyConstructor:()V
        11: .line 567
            aload 0 /* this */
            getstatic org.bson.BsonType.MAX_KEY:Lorg/bson/BsonType;
            invokevirtual org.bson.json.JsonReader.setCurrentBsonType:(Lorg/bson/BsonType;)V
        12: .line 568
            aload 0 /* this */
            new org.bson.types.MaxKey
            dup
            invokespecial org.bson.types.MaxKey.<init>:()V
            putfield org.bson.json.JsonReader.currentValue:Ljava/lang/Object;
        13: .line 569
            goto 66
      StackMap locals:
      StackMap stack:
        14: ldc "BinData"
            aload 2 /* value */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 18
        15: .line 570
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.visitBinDataConstructor:()Lorg/bson/BsonBinary;
            putfield org.bson.json.JsonReader.currentValue:Ljava/lang/Object;
        16: .line 571
            aload 0 /* this */
            getstatic org.bson.BsonType.BINARY:Lorg/bson/BsonType;
            invokevirtual org.bson.json.JsonReader.setCurrentBsonType:(Lorg/bson/BsonType;)V
        17: .line 572
            goto 66
      StackMap locals:
      StackMap stack:
        18: ldc "Date"
            aload 2 /* value */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 22
        19: .line 573
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.visitDateTimeConstructor:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            putfield org.bson.json.JsonReader.currentValue:Ljava/lang/Object;
        20: .line 574
            aload 0 /* this */
            getstatic org.bson.BsonType.DATE_TIME:Lorg/bson/BsonType;
            invokevirtual org.bson.json.JsonReader.setCurrentBsonType:(Lorg/bson/BsonType;)V
        21: .line 575
            goto 66
      StackMap locals:
      StackMap stack:
        22: ldc "HexData"
            aload 2 /* value */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 26
        23: .line 576
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.visitHexDataConstructor:()Lorg/bson/BsonBinary;
            putfield org.bson.json.JsonReader.currentValue:Ljava/lang/Object;
        24: .line 577
            aload 0 /* this */
            getstatic org.bson.BsonType.BINARY:Lorg/bson/BsonType;
            invokevirtual org.bson.json.JsonReader.setCurrentBsonType:(Lorg/bson/BsonType;)V
        25: .line 578
            goto 66
      StackMap locals:
      StackMap stack:
        26: ldc "ISODate"
            aload 2 /* value */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 30
        27: .line 579
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.visitISODateTimeConstructor:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            putfield org.bson.json.JsonReader.currentValue:Ljava/lang/Object;
        28: .line 580
            aload 0 /* this */
            getstatic org.bson.BsonType.DATE_TIME:Lorg/bson/BsonType;
            invokevirtual org.bson.json.JsonReader.setCurrentBsonType:(Lorg/bson/BsonType;)V
        29: .line 581
            goto 66
      StackMap locals:
      StackMap stack:
        30: ldc "NumberInt"
            aload 2 /* value */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 34
        31: .line 582
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.visitNumberIntConstructor:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            putfield org.bson.json.JsonReader.currentValue:Ljava/lang/Object;
        32: .line 583
            aload 0 /* this */
            getstatic org.bson.BsonType.INT32:Lorg/bson/BsonType;
            invokevirtual org.bson.json.JsonReader.setCurrentBsonType:(Lorg/bson/BsonType;)V
        33: .line 584
            goto 66
      StackMap locals:
      StackMap stack:
        34: ldc "NumberLong"
            aload 2 /* value */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 38
        35: .line 585
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.visitNumberLongConstructor:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            putfield org.bson.json.JsonReader.currentValue:Ljava/lang/Object;
        36: .line 586
            aload 0 /* this */
            getstatic org.bson.BsonType.INT64:Lorg/bson/BsonType;
            invokevirtual org.bson.json.JsonReader.setCurrentBsonType:(Lorg/bson/BsonType;)V
        37: .line 587
            goto 66
      StackMap locals:
      StackMap stack:
        38: ldc "NumberDecimal"
            aload 2 /* value */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 42
        39: .line 588
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.visitNumberDecimalConstructor:()Lorg/bson/types/Decimal128;
            putfield org.bson.json.JsonReader.currentValue:Ljava/lang/Object;
        40: .line 589
            aload 0 /* this */
            getstatic org.bson.BsonType.DECIMAL128:Lorg/bson/BsonType;
            invokevirtual org.bson.json.JsonReader.setCurrentBsonType:(Lorg/bson/BsonType;)V
        41: .line 590
            goto 66
      StackMap locals:
      StackMap stack:
        42: ldc "ObjectId"
            aload 2 /* value */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 46
        43: .line 591
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.visitObjectIdConstructor:()Lorg/bson/types/ObjectId;
            putfield org.bson.json.JsonReader.currentValue:Ljava/lang/Object;
        44: .line 592
            aload 0 /* this */
            getstatic org.bson.BsonType.OBJECT_ID:Lorg/bson/BsonType;
            invokevirtual org.bson.json.JsonReader.setCurrentBsonType:(Lorg/bson/BsonType;)V
        45: .line 593
            goto 66
      StackMap locals:
      StackMap stack:
        46: ldc "RegExp"
            aload 2 /* value */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 50
        47: .line 594
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.visitRegularExpressionConstructor:()Lorg/bson/BsonRegularExpression;
            putfield org.bson.json.JsonReader.currentValue:Ljava/lang/Object;
        48: .line 595
            aload 0 /* this */
            getstatic org.bson.BsonType.REGULAR_EXPRESSION:Lorg/bson/BsonType;
            invokevirtual org.bson.json.JsonReader.setCurrentBsonType:(Lorg/bson/BsonType;)V
        49: .line 596
            goto 66
      StackMap locals:
      StackMap stack:
        50: ldc "DBPointer"
            aload 2 /* value */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 54
        51: .line 597
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.visitDBPointerConstructor:()Lorg/bson/BsonDbPointer;
            putfield org.bson.json.JsonReader.currentValue:Ljava/lang/Object;
        52: .line 598
            aload 0 /* this */
            getstatic org.bson.BsonType.DB_POINTER:Lorg/bson/BsonType;
            invokevirtual org.bson.json.JsonReader.setCurrentBsonType:(Lorg/bson/BsonType;)V
        53: .line 599
            goto 66
      StackMap locals:
      StackMap stack:
        54: ldc "UUID"
            aload 2 /* value */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 62
        55: .line 600
            ldc "GUID"
            aload 2 /* value */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 62
        56: .line 601
            ldc "CSUUID"
            aload 2 /* value */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 62
        57: .line 602
            ldc "CSGUID"
            aload 2 /* value */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 62
        58: .line 603
            ldc "JUUID"
            aload 2 /* value */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 62
        59: .line 604
            ldc "JGUID"
            aload 2 /* value */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 62
        60: .line 605
            ldc "PYUUID"
            aload 2 /* value */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 62
        61: .line 606
            ldc "PYGUID"
            aload 2 /* value */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 65
        62: .line 607
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            aload 2 /* value */
            invokevirtual org.bson.json.JsonReader.visitUUIDConstructor:(Ljava/lang/String;)Lorg/bson/BsonBinary;
            putfield org.bson.json.JsonReader.currentValue:Ljava/lang/Object;
        63: .line 608
            aload 0 /* this */
            getstatic org.bson.BsonType.BINARY:Lorg/bson/BsonType;
            invokevirtual org.bson.json.JsonReader.setCurrentBsonType:(Lorg/bson/BsonType;)V
        64: .line 609
            goto 66
        65: .line 610
      StackMap locals:
      StackMap stack:
            new org.bson.json.JsonParseException
            dup
            ldc "JSON reader expected a type name but found '%s'."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* value */
            aastore
            invokespecial org.bson.json.JsonParseException.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
        66: .line 612
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.String value
        end local 1 // org.bson.json.JsonToken typeToken
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   67     0       this  Lorg/bson/json/JsonReader;
            1   67     1  typeToken  Lorg/bson/json/JsonToken;
            4   67     2      value  Ljava/lang/String;

  private void visitExtendedJSON();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // org.bson.json.JsonReader this
         0: .line 615
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.popToken:()Lorg/bson/json/JsonToken;
            astore 1 /* nameToken */
        start local 1 // org.bson.json.JsonToken nameToken
         1: .line 616
            aload 1 /* nameToken */
            ldc Ljava/lang/String;
            invokevirtual org.bson.json.JsonToken.getValue:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 2 /* value */
        start local 2 // java.lang.String value
         2: .line 617
            aload 1 /* nameToken */
            invokevirtual org.bson.json.JsonToken.getType:()Lorg/bson/json/JsonTokenType;
            astore 3 /* type */
        start local 3 // org.bson.json.JsonTokenType type
         3: .line 619
            aload 3 /* type */
            getstatic org.bson.json.JsonTokenType.STRING:Lorg/bson/json/JsonTokenType;
            if_acmpeq 4
            aload 3 /* type */
            getstatic org.bson.json.JsonTokenType.UNQUOTED_STRING:Lorg/bson/json/JsonTokenType;
            if_acmpne 69
         4: .line 621
      StackMap locals: org.bson.json.JsonToken java.lang.String org.bson.json.JsonTokenType
      StackMap stack:
            ldc "$binary"
            aload 2 /* value */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 5
            ldc "$type"
            aload 2 /* value */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 9
         5: .line 622
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            aload 2 /* value */
            invokevirtual org.bson.json.JsonReader.visitBinDataExtendedJson:(Ljava/lang/String;)Lorg/bson/BsonBinary;
            putfield org.bson.json.JsonReader.currentValue:Ljava/lang/Object;
         6: .line 623
            aload 0 /* this */
            getfield org.bson.json.JsonReader.currentValue:Ljava/lang/Object;
            ifnull 69
         7: .line 624
            aload 0 /* this */
            getstatic org.bson.BsonType.BINARY:Lorg/bson/BsonType;
            invokevirtual org.bson.json.JsonReader.setCurrentBsonType:(Lorg/bson/BsonType;)V
         8: .line 625
            return
         9: .line 627
      StackMap locals:
      StackMap stack:
            ldc "$regex"
            aload 2 /* value */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 10
            ldc "$options"
            aload 2 /* value */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 14
        10: .line 628
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            aload 2 /* value */
            invokevirtual org.bson.json.JsonReader.visitRegularExpressionExtendedJson:(Ljava/lang/String;)Lorg/bson/BsonRegularExpression;
            putfield org.bson.json.JsonReader.currentValue:Ljava/lang/Object;
        11: .line 629
            aload 0 /* this */
            getfield org.bson.json.JsonReader.currentValue:Ljava/lang/Object;
            ifnull 69
        12: .line 630
            aload 0 /* this */
            getstatic org.bson.BsonType.REGULAR_EXPRESSION:Lorg/bson/BsonType;
            invokevirtual org.bson.json.JsonReader.setCurrentBsonType:(Lorg/bson/BsonType;)V
        13: .line 631
            return
        14: .line 633
      StackMap locals:
      StackMap stack:
            ldc "$code"
            aload 2 /* value */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 17
        15: .line 634
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.visitJavaScriptExtendedJson:()V
        16: .line 635
            return
        17: .line 636
      StackMap locals:
      StackMap stack:
            ldc "$date"
            aload 2 /* value */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 21
        18: .line 637
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.visitDateTimeExtendedJson:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            putfield org.bson.json.JsonReader.currentValue:Ljava/lang/Object;
        19: .line 638
            aload 0 /* this */
            getstatic org.bson.BsonType.DATE_TIME:Lorg/bson/BsonType;
            invokevirtual org.bson.json.JsonReader.setCurrentBsonType:(Lorg/bson/BsonType;)V
        20: .line 639
            return
        21: .line 640
      StackMap locals:
      StackMap stack:
            ldc "$maxKey"
            aload 2 /* value */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 25
        22: .line 641
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.visitMaxKeyExtendedJson:()Lorg/bson/types/MaxKey;
            putfield org.bson.json.JsonReader.currentValue:Ljava/lang/Object;
        23: .line 642
            aload 0 /* this */
            getstatic org.bson.BsonType.MAX_KEY:Lorg/bson/BsonType;
            invokevirtual org.bson.json.JsonReader.setCurrentBsonType:(Lorg/bson/BsonType;)V
        24: .line 643
            return
        25: .line 644
      StackMap locals:
      StackMap stack:
            ldc "$minKey"
            aload 2 /* value */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 29
        26: .line 645
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.visitMinKeyExtendedJson:()Lorg/bson/types/MinKey;
            putfield org.bson.json.JsonReader.currentValue:Ljava/lang/Object;
        27: .line 646
            aload 0 /* this */
            getstatic org.bson.BsonType.MIN_KEY:Lorg/bson/BsonType;
            invokevirtual org.bson.json.JsonReader.setCurrentBsonType:(Lorg/bson/BsonType;)V
        28: .line 647
            return
        29: .line 648
      StackMap locals:
      StackMap stack:
            ldc "$oid"
            aload 2 /* value */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 33
        30: .line 649
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.visitObjectIdExtendedJson:()Lorg/bson/types/ObjectId;
            putfield org.bson.json.JsonReader.currentValue:Ljava/lang/Object;
        31: .line 650
            aload 0 /* this */
            getstatic org.bson.BsonType.OBJECT_ID:Lorg/bson/BsonType;
            invokevirtual org.bson.json.JsonReader.setCurrentBsonType:(Lorg/bson/BsonType;)V
        32: .line 651
            return
        33: .line 652
      StackMap locals:
      StackMap stack:
            ldc "$regularExpression"
            aload 2 /* value */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 37
        34: .line 653
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.visitNewRegularExpressionExtendedJson:()Lorg/bson/BsonRegularExpression;
            putfield org.bson.json.JsonReader.currentValue:Ljava/lang/Object;
        35: .line 654
            aload 0 /* this */
            getstatic org.bson.BsonType.REGULAR_EXPRESSION:Lorg/bson/BsonType;
            invokevirtual org.bson.json.JsonReader.setCurrentBsonType:(Lorg/bson/BsonType;)V
        36: .line 655
            return
        37: .line 656
      StackMap locals:
      StackMap stack:
            ldc "$symbol"
            aload 2 /* value */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 41
        38: .line 657
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.visitSymbolExtendedJson:()Ljava/lang/String;
            putfield org.bson.json.JsonReader.currentValue:Ljava/lang/Object;
        39: .line 658
            aload 0 /* this */
            getstatic org.bson.BsonType.SYMBOL:Lorg/bson/BsonType;
            invokevirtual org.bson.json.JsonReader.setCurrentBsonType:(Lorg/bson/BsonType;)V
        40: .line 659
            return
        41: .line 660
      StackMap locals:
      StackMap stack:
            ldc "$timestamp"
            aload 2 /* value */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 45
        42: .line 661
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.visitTimestampExtendedJson:()Lorg/bson/BsonTimestamp;
            putfield org.bson.json.JsonReader.currentValue:Ljava/lang/Object;
        43: .line 662
            aload 0 /* this */
            getstatic org.bson.BsonType.TIMESTAMP:Lorg/bson/BsonType;
            invokevirtual org.bson.json.JsonReader.setCurrentBsonType:(Lorg/bson/BsonType;)V
        44: .line 663
            return
        45: .line 664
      StackMap locals:
      StackMap stack:
            ldc "$undefined"
            aload 2 /* value */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 49
        46: .line 665
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.visitUndefinedExtendedJson:()Lorg/bson/BsonUndefined;
            putfield org.bson.json.JsonReader.currentValue:Ljava/lang/Object;
        47: .line 666
            aload 0 /* this */
            getstatic org.bson.BsonType.UNDEFINED:Lorg/bson/BsonType;
            invokevirtual org.bson.json.JsonReader.setCurrentBsonType:(Lorg/bson/BsonType;)V
        48: .line 667
            return
        49: .line 668
      StackMap locals:
      StackMap stack:
            ldc "$numberLong"
            aload 2 /* value */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 53
        50: .line 669
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.visitNumberLongExtendedJson:()Ljava/lang/Long;
            putfield org.bson.json.JsonReader.currentValue:Ljava/lang/Object;
        51: .line 670
            aload 0 /* this */
            getstatic org.bson.BsonType.INT64:Lorg/bson/BsonType;
            invokevirtual org.bson.json.JsonReader.setCurrentBsonType:(Lorg/bson/BsonType;)V
        52: .line 671
            return
        53: .line 672
      StackMap locals:
      StackMap stack:
            ldc "$numberInt"
            aload 2 /* value */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 57
        54: .line 673
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.visitNumberIntExtendedJson:()Ljava/lang/Integer;
            putfield org.bson.json.JsonReader.currentValue:Ljava/lang/Object;
        55: .line 674
            aload 0 /* this */
            getstatic org.bson.BsonType.INT32:Lorg/bson/BsonType;
            invokevirtual org.bson.json.JsonReader.setCurrentBsonType:(Lorg/bson/BsonType;)V
        56: .line 675
            return
        57: .line 676
      StackMap locals:
      StackMap stack:
            ldc "$numberDouble"
            aload 2 /* value */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 61
        58: .line 677
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.visitNumberDoubleExtendedJson:()Ljava/lang/Double;
            putfield org.bson.json.JsonReader.currentValue:Ljava/lang/Object;
        59: .line 678
            aload 0 /* this */
            getstatic org.bson.BsonType.DOUBLE:Lorg/bson/BsonType;
            invokevirtual org.bson.json.JsonReader.setCurrentBsonType:(Lorg/bson/BsonType;)V
        60: .line 679
            return
        61: .line 680
      StackMap locals:
      StackMap stack:
            ldc "$numberDecimal"
            aload 2 /* value */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 65
        62: .line 681
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.visitNumberDecimalExtendedJson:()Lorg/bson/types/Decimal128;
            putfield org.bson.json.JsonReader.currentValue:Ljava/lang/Object;
        63: .line 682
            aload 0 /* this */
            getstatic org.bson.BsonType.DECIMAL128:Lorg/bson/BsonType;
            invokevirtual org.bson.json.JsonReader.setCurrentBsonType:(Lorg/bson/BsonType;)V
        64: .line 683
            return
        65: .line 684
      StackMap locals:
      StackMap stack:
            ldc "$dbPointer"
            aload 2 /* value */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 69
        66: .line 685
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.visitDbPointerExtendedJson:()Lorg/bson/BsonDbPointer;
            putfield org.bson.json.JsonReader.currentValue:Ljava/lang/Object;
        67: .line 686
            aload 0 /* this */
            getstatic org.bson.BsonType.DB_POINTER:Lorg/bson/BsonType;
            invokevirtual org.bson.json.JsonReader.setCurrentBsonType:(Lorg/bson/BsonType;)V
        68: .line 687
            return
        69: .line 691
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* nameToken */
            invokevirtual org.bson.json.JsonReader.pushToken:(Lorg/bson/json/JsonToken;)V
        70: .line 692
            aload 0 /* this */
            getstatic org.bson.BsonType.DOCUMENT:Lorg/bson/BsonType;
            invokevirtual org.bson.json.JsonReader.setCurrentBsonType:(Lorg/bson/BsonType;)V
        71: .line 693
            return
        end local 3 // org.bson.json.JsonTokenType type
        end local 2 // java.lang.String value
        end local 1 // org.bson.json.JsonToken nameToken
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   72     0       this  Lorg/bson/json/JsonReader;
            1   72     1  nameToken  Lorg/bson/json/JsonToken;
            2   72     2      value  Ljava/lang/String;
            3   72     3       type  Lorg/bson/json/JsonTokenType;

  private void visitEmptyConstructor();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.bson.json.JsonReader this
         0: .line 696
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.popToken:()Lorg/bson/json/JsonToken;
            astore 1 /* nextToken */
        start local 1 // org.bson.json.JsonToken nextToken
         1: .line 697
            aload 1 /* nextToken */
            invokevirtual org.bson.json.JsonToken.getType:()Lorg/bson/json/JsonTokenType;
            getstatic org.bson.json.JsonTokenType.LEFT_PAREN:Lorg/bson/json/JsonTokenType;
            if_acmpne 4
         2: .line 698
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.RIGHT_PAREN:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         3: .line 699
            goto 5
         4: .line 700
      StackMap locals: org.bson.json.JsonToken
      StackMap stack:
            aload 0 /* this */
            aload 1 /* nextToken */
            invokevirtual org.bson.json.JsonReader.pushToken:(Lorg/bson/json/JsonToken;)V
         5: .line 702
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.bson.json.JsonToken nextToken
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       this  Lorg/bson/json/JsonReader;
            1    6     1  nextToken  Lorg/bson/json/JsonToken;

  private org.bson.BsonBinary visitBinDataConstructor();
    descriptor: ()Lorg/bson/BsonBinary;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=4, args_size=1
        start local 0 // org.bson.json.JsonReader this
         0: .line 705
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.LEFT_PAREN:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         1: .line 706
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.popToken:()Lorg/bson/json/JsonToken;
            astore 1 /* subTypeToken */
        start local 1 // org.bson.json.JsonToken subTypeToken
         2: .line 707
            aload 1 /* subTypeToken */
            invokevirtual org.bson.json.JsonToken.getType:()Lorg/bson/json/JsonTokenType;
            getstatic org.bson.json.JsonTokenType.INT32:Lorg/bson/json/JsonTokenType;
            if_acmpeq 4
         3: .line 708
            new org.bson.json.JsonParseException
            dup
            ldc "JSON reader expected a binary subtype but found '%s'."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* subTypeToken */
            invokevirtual org.bson.json.JsonToken.getValue:()Ljava/lang/Object;
            aastore
            invokespecial org.bson.json.JsonParseException.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
         4: .line 710
      StackMap locals: org.bson.json.JsonToken
      StackMap stack:
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.COMMA:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         5: .line 711
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.popToken:()Lorg/bson/json/JsonToken;
            astore 2 /* bytesToken */
        start local 2 // org.bson.json.JsonToken bytesToken
         6: .line 712
            aload 2 /* bytesToken */
            invokevirtual org.bson.json.JsonToken.getType:()Lorg/bson/json/JsonTokenType;
            getstatic org.bson.json.JsonTokenType.UNQUOTED_STRING:Lorg/bson/json/JsonTokenType;
            if_acmpeq 8
            aload 2 /* bytesToken */
            invokevirtual org.bson.json.JsonToken.getType:()Lorg/bson/json/JsonTokenType;
            getstatic org.bson.json.JsonTokenType.STRING:Lorg/bson/json/JsonTokenType;
            if_acmpeq 8
         7: .line 713
            new org.bson.json.JsonParseException
            dup
            ldc "JSON reader expected a string but found '%s'."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* bytesToken */
            invokevirtual org.bson.json.JsonToken.getValue:()Ljava/lang/Object;
            aastore
            invokespecial org.bson.json.JsonParseException.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
         8: .line 715
      StackMap locals: org.bson.json.JsonToken
      StackMap stack:
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.RIGHT_PAREN:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         9: .line 717
            aload 2 /* bytesToken */
            ldc Ljava/lang/String;
            invokevirtual org.bson.json.JsonToken.getValue:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast java.lang.String
            invokestatic org.bson.internal.Base64.decode:(Ljava/lang/String;)[B
            astore 3 /* bytes */
        start local 3 // byte[] bytes
        10: .line 718
            new org.bson.BsonBinary
            dup
            aload 1 /* subTypeToken */
            ldc Ljava/lang/Integer;
            invokevirtual org.bson.json.JsonToken.getValue:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.byteValue:()B
            aload 3 /* bytes */
            invokespecial org.bson.BsonBinary.<init>:(B[B)V
            areturn
        end local 3 // byte[] bytes
        end local 2 // org.bson.json.JsonToken bytesToken
        end local 1 // org.bson.json.JsonToken subTypeToken
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   11     0          this  Lorg/bson/json/JsonReader;
            2   11     1  subTypeToken  Lorg/bson/json/JsonToken;
            6   11     2    bytesToken  Lorg/bson/json/JsonToken;
           10   11     3         bytes  [B

  private org.bson.BsonBinary visitUUIDConstructor(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/bson/BsonBinary;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // org.bson.json.JsonReader this
        start local 1 // java.lang.String uuidConstructorName
         0: .line 722
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.LEFT_PAREN:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         1: .line 723
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.readStringFromExtendedJson:()Ljava/lang/String;
            ldc "\\{"
            ldc ""
            invokevirtual java.lang.String.replaceAll:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            ldc "}"
            ldc ""
            invokevirtual java.lang.String.replaceAll:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            ldc "-"
            ldc ""
            invokevirtual java.lang.String.replaceAll:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* hexString */
        start local 2 // java.lang.String hexString
         2: .line 724
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.RIGHT_PAREN:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         3: .line 725
            aload 2 /* hexString */
            invokestatic org.bson.json.JsonReader.decodeHex:(Ljava/lang/String;)[B
            astore 3 /* bytes */
        start local 3 // byte[] bytes
         4: .line 726
            getstatic org.bson.BsonBinarySubType.UUID_STANDARD:Lorg/bson/BsonBinarySubType;
            astore 4 /* subType */
        start local 4 // org.bson.BsonBinarySubType subType
         5: .line 727
            ldc "UUID"
            aload 1 /* uuidConstructorName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 6
            ldc "GUID"
            aload 1 /* uuidConstructorName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 7
         6: .line 728
      StackMap locals: java.lang.String byte[] org.bson.BsonBinarySubType
      StackMap stack:
            getstatic org.bson.BsonBinarySubType.UUID_LEGACY:Lorg/bson/BsonBinarySubType;
            astore 4 /* subType */
         7: .line 730
      StackMap locals:
      StackMap stack:
            new org.bson.BsonBinary
            dup
            aload 4 /* subType */
            aload 3 /* bytes */
            invokespecial org.bson.BsonBinary.<init>:(Lorg/bson/BsonBinarySubType;[B)V
            areturn
        end local 4 // org.bson.BsonBinarySubType subType
        end local 3 // byte[] bytes
        end local 2 // java.lang.String hexString
        end local 1 // java.lang.String uuidConstructorName
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    8     0                 this  Lorg/bson/json/JsonReader;
            0    8     1  uuidConstructorName  Ljava/lang/String;
            2    8     2            hexString  Ljava/lang/String;
            4    8     3                bytes  [B
            5    8     4              subType  Lorg/bson/BsonBinarySubType;
    MethodParameters:
                     Name  Flags
      uuidConstructorName  final

  private org.bson.BsonRegularExpression visitRegularExpressionConstructor();
    descriptor: ()Lorg/bson/BsonRegularExpression;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // org.bson.json.JsonReader this
         0: .line 734
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.LEFT_PAREN:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         1: .line 735
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.readStringFromExtendedJson:()Ljava/lang/String;
            astore 1 /* pattern */
        start local 1 // java.lang.String pattern
         2: .line 736
            ldc ""
            astore 2 /* options */
        start local 2 // java.lang.String options
         3: .line 737
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.popToken:()Lorg/bson/json/JsonToken;
            astore 3 /* commaToken */
        start local 3 // org.bson.json.JsonToken commaToken
         4: .line 738
            aload 3 /* commaToken */
            invokevirtual org.bson.json.JsonToken.getType:()Lorg/bson/json/JsonTokenType;
            getstatic org.bson.json.JsonTokenType.COMMA:Lorg/bson/json/JsonTokenType;
            if_acmpne 7
         5: .line 739
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.readStringFromExtendedJson:()Ljava/lang/String;
            astore 2 /* options */
         6: .line 740
            goto 8
         7: .line 741
      StackMap locals: java.lang.String java.lang.String org.bson.json.JsonToken
      StackMap stack:
            aload 0 /* this */
            aload 3 /* commaToken */
            invokevirtual org.bson.json.JsonReader.pushToken:(Lorg/bson/json/JsonToken;)V
         8: .line 743
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.RIGHT_PAREN:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         9: .line 744
            new org.bson.BsonRegularExpression
            dup
            aload 1 /* pattern */
            aload 2 /* options */
            invokespecial org.bson.BsonRegularExpression.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            areturn
        end local 3 // org.bson.json.JsonToken commaToken
        end local 2 // java.lang.String options
        end local 1 // java.lang.String pattern
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0        this  Lorg/bson/json/JsonReader;
            2   10     1     pattern  Ljava/lang/String;
            3   10     2     options  Ljava/lang/String;
            4   10     3  commaToken  Lorg/bson/json/JsonToken;

  private org.bson.types.ObjectId visitObjectIdConstructor();
    descriptor: ()Lorg/bson/types/ObjectId;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.bson.json.JsonReader this
         0: .line 748
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.LEFT_PAREN:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         1: .line 749
            new org.bson.types.ObjectId
            dup
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.readStringFromExtendedJson:()Ljava/lang/String;
            invokespecial org.bson.types.ObjectId.<init>:(Ljava/lang/String;)V
            astore 1 /* objectId */
        start local 1 // org.bson.types.ObjectId objectId
         2: .line 750
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.RIGHT_PAREN:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         3: .line 751
            aload 1 /* objectId */
            areturn
        end local 1 // org.bson.types.ObjectId objectId
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lorg/bson/json/JsonReader;
            2    4     1  objectId  Lorg/bson/types/ObjectId;

  private org.bson.BsonTimestamp visitTimestampConstructor();
    descriptor: ()Lorg/bson/BsonTimestamp;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=5, args_size=1
        start local 0 // org.bson.json.JsonReader this
         0: .line 755
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.LEFT_PAREN:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         1: .line 756
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.popToken:()Lorg/bson/json/JsonToken;
            astore 1 /* timeToken */
        start local 1 // org.bson.json.JsonToken timeToken
         2: .line 758
            aload 1 /* timeToken */
            invokevirtual org.bson.json.JsonToken.getType:()Lorg/bson/json/JsonTokenType;
            getstatic org.bson.json.JsonTokenType.INT32:Lorg/bson/json/JsonTokenType;
            if_acmpeq 4
         3: .line 759
            new org.bson.json.JsonParseException
            dup
            ldc "JSON reader expected an integer but found '%s'."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* timeToken */
            invokevirtual org.bson.json.JsonToken.getValue:()Ljava/lang/Object;
            aastore
            invokespecial org.bson.json.JsonParseException.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
         4: .line 761
      StackMap locals: org.bson.json.JsonToken
      StackMap stack:
            aload 1 /* timeToken */
            ldc Ljava/lang/Integer;
            invokevirtual org.bson.json.JsonToken.getValue:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            istore 2 /* time */
        start local 2 // int time
         5: .line 763
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.COMMA:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         6: .line 764
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.popToken:()Lorg/bson/json/JsonToken;
            astore 3 /* incrementToken */
        start local 3 // org.bson.json.JsonToken incrementToken
         7: .line 766
            aload 3 /* incrementToken */
            invokevirtual org.bson.json.JsonToken.getType:()Lorg/bson/json/JsonTokenType;
            getstatic org.bson.json.JsonTokenType.INT32:Lorg/bson/json/JsonTokenType;
            if_acmpeq 9
         8: .line 767
            new org.bson.json.JsonParseException
            dup
            ldc "JSON reader expected an integer but found '%s'."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* timeToken */
            invokevirtual org.bson.json.JsonToken.getValue:()Ljava/lang/Object;
            aastore
            invokespecial org.bson.json.JsonParseException.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
         9: .line 769
      StackMap locals: int org.bson.json.JsonToken
      StackMap stack:
            aload 3 /* incrementToken */
            ldc Ljava/lang/Integer;
            invokevirtual org.bson.json.JsonToken.getValue:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            istore 4 /* increment */
        start local 4 // int increment
        10: .line 772
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.RIGHT_PAREN:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
        11: .line 773
            new org.bson.BsonTimestamp
            dup
            iload 2 /* time */
            iload 4 /* increment */
            invokespecial org.bson.BsonTimestamp.<init>:(II)V
            areturn
        end local 4 // int increment
        end local 3 // org.bson.json.JsonToken incrementToken
        end local 2 // int time
        end local 1 // org.bson.json.JsonToken timeToken
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   12     0            this  Lorg/bson/json/JsonReader;
            2   12     1       timeToken  Lorg/bson/json/JsonToken;
            5   12     2            time  I
            7   12     3  incrementToken  Lorg/bson/json/JsonToken;
           10   12     4       increment  I

  private org.bson.BsonDbPointer visitDBPointerConstructor();
    descriptor: ()Lorg/bson/BsonDbPointer;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // org.bson.json.JsonReader this
         0: .line 777
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.LEFT_PAREN:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         1: .line 778
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.readStringFromExtendedJson:()Ljava/lang/String;
            astore 1 /* namespace */
        start local 1 // java.lang.String namespace
         2: .line 779
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.COMMA:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         3: .line 780
            new org.bson.types.ObjectId
            dup
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.readStringFromExtendedJson:()Ljava/lang/String;
            invokespecial org.bson.types.ObjectId.<init>:(Ljava/lang/String;)V
            astore 2 /* id */
        start local 2 // org.bson.types.ObjectId id
         4: .line 781
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.RIGHT_PAREN:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         5: .line 782
            new org.bson.BsonDbPointer
            dup
            aload 1 /* namespace */
            aload 2 /* id */
            invokespecial org.bson.BsonDbPointer.<init>:(Ljava/lang/String;Lorg/bson/types/ObjectId;)V
            areturn
        end local 2 // org.bson.types.ObjectId id
        end local 1 // java.lang.String namespace
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       this  Lorg/bson/json/JsonReader;
            2    6     1  namespace  Ljava/lang/String;
            4    6     2         id  Lorg/bson/types/ObjectId;

  private int visitNumberIntConstructor();
    descriptor: ()I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=3, args_size=1
        start local 0 // org.bson.json.JsonReader this
         0: .line 786
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.LEFT_PAREN:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         1: .line 787
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.popToken:()Lorg/bson/json/JsonToken;
            astore 1 /* valueToken */
        start local 1 // org.bson.json.JsonToken valueToken
         2: .line 789
            aload 1 /* valueToken */
            invokevirtual org.bson.json.JsonToken.getType:()Lorg/bson/json/JsonTokenType;
            getstatic org.bson.json.JsonTokenType.INT32:Lorg/bson/json/JsonTokenType;
            if_acmpne 5
         3: .line 790
            aload 1 /* valueToken */
            ldc Ljava/lang/Integer;
            invokevirtual org.bson.json.JsonToken.getValue:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            istore 2 /* value */
        start local 2 // int value
         4: .line 791
            goto 9
        end local 2 // int value
      StackMap locals: org.bson.json.JsonToken
      StackMap stack:
         5: aload 1 /* valueToken */
            invokevirtual org.bson.json.JsonToken.getType:()Lorg/bson/json/JsonTokenType;
            getstatic org.bson.json.JsonTokenType.STRING:Lorg/bson/json/JsonTokenType;
            if_acmpne 8
         6: .line 792
            aload 1 /* valueToken */
            ldc Ljava/lang/String;
            invokevirtual org.bson.json.JsonToken.getValue:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast java.lang.String
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            istore 2 /* value */
        start local 2 // int value
         7: .line 793
            goto 9
        end local 2 // int value
         8: .line 794
      StackMap locals:
      StackMap stack:
            new org.bson.json.JsonParseException
            dup
            ldc "JSON reader expected an integer or a string but found '%s'."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* valueToken */
            invokevirtual org.bson.json.JsonToken.getValue:()Ljava/lang/Object;
            aastore
            invokespecial org.bson.json.JsonParseException.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
        start local 2 // int value
         9: .line 796
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.RIGHT_PAREN:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
        10: .line 797
            iload 2 /* value */
            ireturn
        end local 2 // int value
        end local 1 // org.bson.json.JsonToken valueToken
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   11     0        this  Lorg/bson/json/JsonReader;
            2   11     1  valueToken  Lorg/bson/json/JsonToken;
            4    5     2       value  I
            7    8     2       value  I
            9   11     2       value  I

  private long visitNumberLongConstructor();
    descriptor: ()J
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=4, args_size=1
        start local 0 // org.bson.json.JsonReader this
         0: .line 801
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.LEFT_PAREN:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         1: .line 802
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.popToken:()Lorg/bson/json/JsonToken;
            astore 1 /* valueToken */
        start local 1 // org.bson.json.JsonToken valueToken
         2: .line 804
            aload 1 /* valueToken */
            invokevirtual org.bson.json.JsonToken.getType:()Lorg/bson/json/JsonTokenType;
            getstatic org.bson.json.JsonTokenType.INT32:Lorg/bson/json/JsonTokenType;
            if_acmpeq 3
            aload 1 /* valueToken */
            invokevirtual org.bson.json.JsonToken.getType:()Lorg/bson/json/JsonTokenType;
            getstatic org.bson.json.JsonTokenType.INT64:Lorg/bson/json/JsonTokenType;
            if_acmpne 5
         3: .line 805
      StackMap locals: org.bson.json.JsonToken
      StackMap stack:
            aload 1 /* valueToken */
            ldc Ljava/lang/Long;
            invokevirtual org.bson.json.JsonToken.getValue:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast java.lang.Long
            invokevirtual java.lang.Long.longValue:()J
            lstore 2 /* value */
        start local 2 // long value
         4: .line 806
            goto 9
        end local 2 // long value
      StackMap locals:
      StackMap stack:
         5: aload 1 /* valueToken */
            invokevirtual org.bson.json.JsonToken.getType:()Lorg/bson/json/JsonTokenType;
            getstatic org.bson.json.JsonTokenType.STRING:Lorg/bson/json/JsonTokenType;
            if_acmpne 8
         6: .line 807
            aload 1 /* valueToken */
            ldc Ljava/lang/String;
            invokevirtual org.bson.json.JsonToken.getValue:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast java.lang.String
            invokestatic java.lang.Long.parseLong:(Ljava/lang/String;)J
            lstore 2 /* value */
        start local 2 // long value
         7: .line 808
            goto 9
        end local 2 // long value
         8: .line 809
      StackMap locals:
      StackMap stack:
            new org.bson.json.JsonParseException
            dup
            ldc "JSON reader expected an integer or a string but found '%s'."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* valueToken */
            invokevirtual org.bson.json.JsonToken.getValue:()Ljava/lang/Object;
            aastore
            invokespecial org.bson.json.JsonParseException.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
        start local 2 // long value
         9: .line 811
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.RIGHT_PAREN:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
        10: .line 812
            lload 2 /* value */
            lreturn
        end local 2 // long value
        end local 1 // org.bson.json.JsonToken valueToken
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   11     0        this  Lorg/bson/json/JsonReader;
            2   11     1  valueToken  Lorg/bson/json/JsonToken;
            4    5     2       value  J
            7    8     2       value  J
            9   11     2       value  J

  private org.bson.types.Decimal128 visitNumberDecimalConstructor();
    descriptor: ()Lorg/bson/types/Decimal128;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=3, args_size=1
        start local 0 // org.bson.json.JsonReader this
         0: .line 816
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.LEFT_PAREN:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         1: .line 817
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.popToken:()Lorg/bson/json/JsonToken;
            astore 1 /* valueToken */
        start local 1 // org.bson.json.JsonToken valueToken
         2: .line 819
            aload 1 /* valueToken */
            invokevirtual org.bson.json.JsonToken.getType:()Lorg/bson/json/JsonTokenType;
            getstatic org.bson.json.JsonTokenType.INT32:Lorg/bson/json/JsonTokenType;
            if_acmpeq 4
            aload 1 /* valueToken */
            invokevirtual org.bson.json.JsonToken.getType:()Lorg/bson/json/JsonTokenType;
            getstatic org.bson.json.JsonTokenType.INT64:Lorg/bson/json/JsonTokenType;
            if_acmpeq 4
         3: .line 820
            aload 1 /* valueToken */
            invokevirtual org.bson.json.JsonToken.getType:()Lorg/bson/json/JsonTokenType;
            getstatic org.bson.json.JsonTokenType.DOUBLE:Lorg/bson/json/JsonTokenType;
            if_acmpne 6
         4: .line 821
      StackMap locals: org.bson.json.JsonToken
      StackMap stack:
            aload 1 /* valueToken */
            ldc Lorg/bson/types/Decimal128;
            invokevirtual org.bson.json.JsonToken.getValue:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast org.bson.types.Decimal128
            astore 2 /* value */
        start local 2 // org.bson.types.Decimal128 value
         5: .line 822
            goto 10
        end local 2 // org.bson.types.Decimal128 value
      StackMap locals:
      StackMap stack:
         6: aload 1 /* valueToken */
            invokevirtual org.bson.json.JsonToken.getType:()Lorg/bson/json/JsonTokenType;
            getstatic org.bson.json.JsonTokenType.STRING:Lorg/bson/json/JsonTokenType;
            if_acmpne 9
         7: .line 823
            aload 1 /* valueToken */
            ldc Ljava/lang/String;
            invokevirtual org.bson.json.JsonToken.getValue:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast java.lang.String
            invokestatic org.bson.types.Decimal128.parse:(Ljava/lang/String;)Lorg/bson/types/Decimal128;
            astore 2 /* value */
        start local 2 // org.bson.types.Decimal128 value
         8: .line 824
            goto 10
        end local 2 // org.bson.types.Decimal128 value
         9: .line 825
      StackMap locals:
      StackMap stack:
            new org.bson.json.JsonParseException
            dup
            ldc "JSON reader expected a number or a string but found '%s'."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* valueToken */
            invokevirtual org.bson.json.JsonToken.getValue:()Ljava/lang/Object;
            aastore
            invokespecial org.bson.json.JsonParseException.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
        start local 2 // org.bson.types.Decimal128 value
        10: .line 827
      StackMap locals: org.bson.types.Decimal128
      StackMap stack:
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.RIGHT_PAREN:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
        11: .line 828
            aload 2 /* value */
            areturn
        end local 2 // org.bson.types.Decimal128 value
        end local 1 // org.bson.json.JsonToken valueToken
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   12     0        this  Lorg/bson/json/JsonReader;
            2   12     1  valueToken  Lorg/bson/json/JsonToken;
            5    6     2       value  Lorg/bson/types/Decimal128;
            8    9     2       value  Lorg/bson/types/Decimal128;
           10   12     2       value  Lorg/bson/types/Decimal128;

  private long visitISODateTimeConstructor();
    descriptor: ()J
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=11, args_size=1
        start local 0 // org.bson.json.JsonReader this
         0: .line 832
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.LEFT_PAREN:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         1: .line 834
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.popToken:()Lorg/bson/json/JsonToken;
            astore 1 /* token */
        start local 1 // org.bson.json.JsonToken token
         2: .line 835
            aload 1 /* token */
            invokevirtual org.bson.json.JsonToken.getType:()Lorg/bson/json/JsonTokenType;
            getstatic org.bson.json.JsonTokenType.RIGHT_PAREN:Lorg/bson/json/JsonTokenType;
            if_acmpne 4
         3: .line 836
            new java.util.Date
            dup
            invokespecial java.util.Date.<init>:()V
            invokevirtual java.util.Date.getTime:()J
            lreturn
         4: .line 837
      StackMap locals: org.bson.json.JsonToken
      StackMap stack:
            aload 1 /* token */
            invokevirtual org.bson.json.JsonToken.getType:()Lorg/bson/json/JsonTokenType;
            getstatic org.bson.json.JsonTokenType.STRING:Lorg/bson/json/JsonTokenType;
            if_acmpeq 6
         5: .line 838
            new org.bson.json.JsonParseException
            dup
            ldc "JSON reader expected a string but found '%s'."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* token */
            invokevirtual org.bson.json.JsonToken.getValue:()Ljava/lang/Object;
            aastore
            invokespecial org.bson.json.JsonParseException.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
         6: .line 841
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.RIGHT_PAREN:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         7: .line 842
            iconst_3
            anewarray java.lang.String
            dup
            iconst_0
            ldc "yyyy-MM-dd"
            aastore
            dup
            iconst_1
            ldc "yyyy-MM-dd'T'HH:mm:ssz"
            aastore
            dup
            iconst_2
            ldc "yyyy-MM-dd'T'HH:mm:ss.SSSz"
            aastore
            astore 2 /* patterns */
        start local 2 // java.lang.String[] patterns
         8: .line 844
            new java.text.SimpleDateFormat
            dup
            aload 2 /* patterns */
            iconst_0
            aaload
            getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
            invokespecial java.text.SimpleDateFormat.<init>:(Ljava/lang/String;Ljava/util/Locale;)V
            astore 3 /* format */
        start local 3 // java.text.SimpleDateFormat format
         9: .line 845
            new java.text.ParsePosition
            dup
            iconst_0
            invokespecial java.text.ParsePosition.<init>:(I)V
            astore 4 /* pos */
        start local 4 // java.text.ParsePosition pos
        10: .line 846
            aload 1 /* token */
            ldc Ljava/lang/String;
            invokevirtual org.bson.json.JsonToken.getValue:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 5 /* s */
        start local 5 // java.lang.String s
        11: .line 848
            aload 5 /* s */
            ldc "Z"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 13
        12: .line 849
            new java.lang.StringBuilder
            dup
            aload 5 /* s */
            iconst_0
            aload 5 /* s */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "GMT-00:00"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 5 /* s */
        13: .line 852
      StackMap locals: org.bson.json.JsonReader org.bson.json.JsonToken java.lang.String[] java.text.SimpleDateFormat java.text.ParsePosition java.lang.String
      StackMap stack:
            aload 2 /* patterns */
            dup
            astore 9
            arraylength
            istore 8
            iconst_0
            istore 7
            goto 22
      StackMap locals: org.bson.json.JsonReader org.bson.json.JsonToken java.lang.String[] java.text.SimpleDateFormat java.text.ParsePosition java.lang.String top int int java.lang.String[]
      StackMap stack:
        14: aload 9
            iload 7
            aaload
            astore 6 /* pattern */
        start local 6 // java.lang.String pattern
        15: .line 853
            aload 3 /* format */
            aload 6 /* pattern */
            invokevirtual java.text.SimpleDateFormat.applyPattern:(Ljava/lang/String;)V
        16: .line 854
            aload 3 /* format */
            iconst_1
            invokevirtual java.text.SimpleDateFormat.setLenient:(Z)V
        17: .line 855
            aload 4 /* pos */
            iconst_0
            invokevirtual java.text.ParsePosition.setIndex:(I)V
        18: .line 857
            aload 3 /* format */
            aload 5 /* s */
            aload 4 /* pos */
            invokevirtual java.text.SimpleDateFormat.parse:(Ljava/lang/String;Ljava/text/ParsePosition;)Ljava/util/Date;
            astore 10 /* date */
        start local 10 // java.util.Date date
        19: .line 859
            aload 10 /* date */
            ifnull 21
            aload 4 /* pos */
            invokevirtual java.text.ParsePosition.getIndex:()I
            aload 5 /* s */
            invokevirtual java.lang.String.length:()I
            if_icmpne 21
        20: .line 860
            aload 10 /* date */
            invokevirtual java.util.Date.getTime:()J
            lreturn
        end local 10 // java.util.Date date
        end local 6 // java.lang.String pattern
        21: .line 852
      StackMap locals:
      StackMap stack:
            iinc 7 1
      StackMap locals:
      StackMap stack:
        22: iload 7
            iload 8
            if_icmplt 14
        23: .line 863
            new org.bson.json.JsonParseException
            dup
            ldc "Invalid date format."
            invokespecial org.bson.json.JsonParseException.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // java.lang.String s
        end local 4 // java.text.ParsePosition pos
        end local 3 // java.text.SimpleDateFormat format
        end local 2 // java.lang.String[] patterns
        end local 1 // org.bson.json.JsonToken token
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   24     0      this  Lorg/bson/json/JsonReader;
            2   24     1     token  Lorg/bson/json/JsonToken;
            8   24     2  patterns  [Ljava/lang/String;
            9   24     3    format  Ljava/text/SimpleDateFormat;
           10   24     4       pos  Ljava/text/ParsePosition;
           11   24     5         s  Ljava/lang/String;
           15   21     6   pattern  Ljava/lang/String;
           19   21    10      date  Ljava/util/Date;

  private org.bson.BsonBinary visitHexDataConstructor();
    descriptor: ()Lorg/bson/BsonBinary;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=7, args_size=1
        start local 0 // org.bson.json.JsonReader this
         0: .line 867
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.LEFT_PAREN:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         1: .line 868
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.popToken:()Lorg/bson/json/JsonToken;
            astore 1 /* subTypeToken */
        start local 1 // org.bson.json.JsonToken subTypeToken
         2: .line 869
            aload 1 /* subTypeToken */
            invokevirtual org.bson.json.JsonToken.getType:()Lorg/bson/json/JsonTokenType;
            getstatic org.bson.json.JsonTokenType.INT32:Lorg/bson/json/JsonTokenType;
            if_acmpeq 4
         3: .line 870
            new org.bson.json.JsonParseException
            dup
            ldc "JSON reader expected a binary subtype but found '%s'."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* subTypeToken */
            invokevirtual org.bson.json.JsonToken.getValue:()Ljava/lang/Object;
            aastore
            invokespecial org.bson.json.JsonParseException.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
         4: .line 872
      StackMap locals: org.bson.json.JsonToken
      StackMap stack:
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.COMMA:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         5: .line 873
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.readStringFromExtendedJson:()Ljava/lang/String;
            astore 2 /* hex */
        start local 2 // java.lang.String hex
         6: .line 874
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.RIGHT_PAREN:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         7: .line 876
            aload 2 /* hex */
            invokevirtual java.lang.String.length:()I
            iconst_1
            iand
            ifeq 9
         8: .line 877
            new java.lang.StringBuilder
            dup
            ldc "0"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* hex */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* hex */
         9: .line 880
      StackMap locals: java.lang.String
      StackMap stack:
            invokestatic org.bson.BsonBinarySubType.values:()[Lorg/bson/BsonBinarySubType;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 14
      StackMap locals: org.bson.json.JsonReader org.bson.json.JsonToken java.lang.String top int int org.bson.BsonBinarySubType[]
      StackMap stack:
        10: aload 6
            iload 4
            aaload
            astore 3 /* subType */
        start local 3 // org.bson.BsonBinarySubType subType
        11: .line 881
            aload 3 /* subType */
            invokevirtual org.bson.BsonBinarySubType.getValue:()B
            aload 1 /* subTypeToken */
            ldc Ljava/lang/Integer;
            invokevirtual org.bson.json.JsonToken.getValue:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            if_icmpne 13
        12: .line 882
            new org.bson.BsonBinary
            dup
            aload 3 /* subType */
            aload 2 /* hex */
            invokestatic org.bson.json.JsonReader.decodeHex:(Ljava/lang/String;)[B
            invokespecial org.bson.BsonBinary.<init>:(Lorg/bson/BsonBinarySubType;[B)V
            areturn
        end local 3 // org.bson.BsonBinarySubType subType
        13: .line 880
      StackMap locals:
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
        14: iload 4
            iload 5
            if_icmplt 10
        15: .line 885
            new org.bson.BsonBinary
            dup
            aload 2 /* hex */
            invokestatic org.bson.json.JsonReader.decodeHex:(Ljava/lang/String;)[B
            invokespecial org.bson.BsonBinary.<init>:([B)V
            areturn
        end local 2 // java.lang.String hex
        end local 1 // org.bson.json.JsonToken subTypeToken
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   16     0          this  Lorg/bson/json/JsonReader;
            2   16     1  subTypeToken  Lorg/bson/json/JsonToken;
            6   16     2           hex  Ljava/lang/String;
           11   13     3       subType  Lorg/bson/BsonBinarySubType;

  private long visitDateTimeConstructor();
    descriptor: ()J
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=6, args_size=1
        start local 0 // org.bson.json.JsonReader this
         0: .line 889
            new java.text.SimpleDateFormat
            dup
            ldc "EEE MMM dd yyyy HH:mm:ss z"
            getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
            invokespecial java.text.SimpleDateFormat.<init>:(Ljava/lang/String;Ljava/util/Locale;)V
            astore 1 /* format */
        start local 1 // java.text.DateFormat format
         1: .line 891
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.LEFT_PAREN:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         2: .line 893
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.popToken:()Lorg/bson/json/JsonToken;
            astore 2 /* token */
        start local 2 // org.bson.json.JsonToken token
         3: .line 894
            aload 2 /* token */
            invokevirtual org.bson.json.JsonToken.getType:()Lorg/bson/json/JsonTokenType;
            getstatic org.bson.json.JsonTokenType.RIGHT_PAREN:Lorg/bson/json/JsonTokenType;
            if_acmpne 5
         4: .line 895
            new java.util.Date
            dup
            invokespecial java.util.Date.<init>:()V
            invokevirtual java.util.Date.getTime:()J
            lreturn
         5: .line 896
      StackMap locals: java.text.DateFormat org.bson.json.JsonToken
      StackMap stack:
            aload 2 /* token */
            invokevirtual org.bson.json.JsonToken.getType:()Lorg/bson/json/JsonTokenType;
            getstatic org.bson.json.JsonTokenType.STRING:Lorg/bson/json/JsonTokenType;
            if_acmpne 13
         6: .line 897
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.RIGHT_PAREN:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         7: .line 898
            aload 2 /* token */
            ldc Ljava/lang/String;
            invokevirtual org.bson.json.JsonToken.getValue:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 3 /* s */
        start local 3 // java.lang.String s
         8: .line 899
            new java.text.ParsePosition
            dup
            iconst_0
            invokespecial java.text.ParsePosition.<init>:(I)V
            astore 4 /* pos */
        start local 4 // java.text.ParsePosition pos
         9: .line 900
            aload 1 /* format */
            aload 3 /* s */
            aload 4 /* pos */
            invokevirtual java.text.DateFormat.parse:(Ljava/lang/String;Ljava/text/ParsePosition;)Ljava/util/Date;
            astore 5 /* dateTime */
        start local 5 // java.util.Date dateTime
        10: .line 901
            aload 5 /* dateTime */
            ifnull 12
            aload 4 /* pos */
            invokevirtual java.text.ParsePosition.getIndex:()I
            aload 3 /* s */
            invokevirtual java.lang.String.length:()I
            if_icmpne 12
        11: .line 902
            aload 5 /* dateTime */
            invokevirtual java.util.Date.getTime:()J
            lreturn
        12: .line 904
      StackMap locals: java.lang.String java.text.ParsePosition java.util.Date
      StackMap stack:
            new org.bson.json.JsonParseException
            dup
            ldc "JSON reader expected a date in 'EEE MMM dd yyyy HH:mm:ss z' format but found '%s'."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* s */
            aastore
            invokespecial org.bson.json.JsonParseException.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
        end local 5 // java.util.Date dateTime
        end local 4 // java.text.ParsePosition pos
        end local 3 // java.lang.String s
        13: .line 907
      StackMap locals:
      StackMap stack:
            aload 2 /* token */
            invokevirtual org.bson.json.JsonToken.getType:()Lorg/bson/json/JsonTokenType;
            getstatic org.bson.json.JsonTokenType.INT32:Lorg/bson/json/JsonTokenType;
            if_acmpeq 14
            aload 2 /* token */
            invokevirtual org.bson.json.JsonToken.getType:()Lorg/bson/json/JsonTokenType;
            getstatic org.bson.json.JsonTokenType.INT64:Lorg/bson/json/JsonTokenType;
            if_acmpne 39
        14: .line 908
      StackMap locals:
      StackMap stack:
            bipush 7
            newarray 11
            astore 3 /* values */
        start local 3 // long[] values
        15: .line 909
            iconst_0
            istore 4 /* pos */
        start local 4 // int pos
        16: .line 911
      StackMap locals: long[] int
      StackMap stack:
            iload 4 /* pos */
            aload 3 /* values */
            arraylength
            if_icmpge 18
        17: .line 912
            aload 3 /* values */
            iload 4 /* pos */
            iinc 4 /* pos */ 1
            aload 2 /* token */
            ldc Ljava/lang/Long;
            invokevirtual org.bson.json.JsonToken.getValue:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast java.lang.Long
            invokevirtual java.lang.Long.longValue:()J
            lastore
        18: .line 914
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.popToken:()Lorg/bson/json/JsonToken;
            astore 2 /* token */
        19: .line 915
            aload 2 /* token */
            invokevirtual org.bson.json.JsonToken.getType:()Lorg/bson/json/JsonTokenType;
            getstatic org.bson.json.JsonTokenType.RIGHT_PAREN:Lorg/bson/json/JsonTokenType;
            if_acmpne 21
        20: .line 916
            goto 26
        21: .line 918
      StackMap locals:
      StackMap stack:
            aload 2 /* token */
            invokevirtual org.bson.json.JsonToken.getType:()Lorg/bson/json/JsonTokenType;
            getstatic org.bson.json.JsonTokenType.COMMA:Lorg/bson/json/JsonTokenType;
            if_acmpeq 23
        22: .line 919
            new org.bson.json.JsonParseException
            dup
            ldc "JSON reader expected a ',' or a ')' but found '%s'."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* token */
            invokevirtual org.bson.json.JsonToken.getValue:()Ljava/lang/Object;
            aastore
            invokespecial org.bson.json.JsonParseException.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
        23: .line 921
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.popToken:()Lorg/bson/json/JsonToken;
            astore 2 /* token */
        24: .line 922
            aload 2 /* token */
            invokevirtual org.bson.json.JsonToken.getType:()Lorg/bson/json/JsonTokenType;
            getstatic org.bson.json.JsonTokenType.INT32:Lorg/bson/json/JsonTokenType;
            if_acmpeq 16
            aload 2 /* token */
            invokevirtual org.bson.json.JsonToken.getType:()Lorg/bson/json/JsonTokenType;
            getstatic org.bson.json.JsonTokenType.INT64:Lorg/bson/json/JsonTokenType;
            if_acmpeq 16
        25: .line 923
            new org.bson.json.JsonParseException
            dup
            ldc "JSON reader expected an integer but found '%s'."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* token */
            invokevirtual org.bson.json.JsonToken.getValue:()Ljava/lang/Object;
            aastore
            invokespecial org.bson.json.JsonParseException.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
        26: .line 926
      StackMap locals:
      StackMap stack:
            iload 4 /* pos */
            iconst_1
            if_icmpne 28
        27: .line 927
            aload 3 /* values */
            iconst_0
            laload
            lreturn
        28: .line 928
      StackMap locals:
      StackMap stack:
            iload 4 /* pos */
            iconst_3
            if_icmplt 29
            iload 4 /* pos */
            bipush 7
            if_icmple 30
        29: .line 929
      StackMap locals:
      StackMap stack:
            new org.bson.json.JsonParseException
            dup
            ldc "JSON reader expected 1 or 3-7 integers but found %d."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            iload 4 /* pos */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokespecial org.bson.json.JsonParseException.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
        30: .line 932
      StackMap locals:
      StackMap stack:
            ldc "UTC"
            invokestatic java.util.TimeZone.getTimeZone:(Ljava/lang/String;)Ljava/util/TimeZone;
            invokestatic java.util.Calendar.getInstance:(Ljava/util/TimeZone;)Ljava/util/Calendar;
            astore 5 /* calendar */
        start local 5 // java.util.Calendar calendar
        31: .line 933
            aload 5 /* calendar */
            iconst_1
            aload 3 /* values */
            iconst_0
            laload
            l2i
            invokevirtual java.util.Calendar.set:(II)V
        32: .line 934
            aload 5 /* calendar */
            iconst_2
            aload 3 /* values */
            iconst_1
            laload
            l2i
            invokevirtual java.util.Calendar.set:(II)V
        33: .line 935
            aload 5 /* calendar */
            iconst_5
            aload 3 /* values */
            iconst_2
            laload
            l2i
            invokevirtual java.util.Calendar.set:(II)V
        34: .line 936
            aload 5 /* calendar */
            bipush 11
            aload 3 /* values */
            iconst_3
            laload
            l2i
            invokevirtual java.util.Calendar.set:(II)V
        35: .line 937
            aload 5 /* calendar */
            bipush 12
            aload 3 /* values */
            iconst_4
            laload
            l2i
            invokevirtual java.util.Calendar.set:(II)V
        36: .line 938
            aload 5 /* calendar */
            bipush 13
            aload 3 /* values */
            iconst_5
            laload
            l2i
            invokevirtual java.util.Calendar.set:(II)V
        37: .line 939
            aload 5 /* calendar */
            bipush 14
            aload 3 /* values */
            bipush 6
            laload
            l2i
            invokevirtual java.util.Calendar.set:(II)V
        38: .line 940
            aload 5 /* calendar */
            invokevirtual java.util.Calendar.getTimeInMillis:()J
            lreturn
        end local 5 // java.util.Calendar calendar
        end local 4 // int pos
        end local 3 // long[] values
        39: .line 942
      StackMap locals:
      StackMap stack:
            new org.bson.json.JsonParseException
            dup
            ldc "JSON reader expected an integer or a string but found '%s'."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* token */
            invokevirtual org.bson.json.JsonToken.getValue:()Ljava/lang/Object;
            aastore
            invokespecial org.bson.json.JsonParseException.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
        end local 2 // org.bson.json.JsonToken token
        end local 1 // java.text.DateFormat format
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   40     0      this  Lorg/bson/json/JsonReader;
            1   40     1    format  Ljava/text/DateFormat;
            3   40     2     token  Lorg/bson/json/JsonToken;
            8   13     3         s  Ljava/lang/String;
            9   13     4       pos  Ljava/text/ParsePosition;
           10   13     5  dateTime  Ljava/util/Date;
           15   39     3    values  [J
           16   39     4       pos  I
           31   39     5  calendar  Ljava/util/Calendar;

  private java.lang.String visitDateTimeConstructorWithOutNew();
    descriptor: ()Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=3, args_size=1
        start local 0 // org.bson.json.JsonReader this
         0: .line 947
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.LEFT_PAREN:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         1: .line 948
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.popToken:()Lorg/bson/json/JsonToken;
            astore 1 /* token */
        start local 1 // org.bson.json.JsonToken token
         2: .line 949
            aload 1 /* token */
            invokevirtual org.bson.json.JsonToken.getType:()Lorg/bson/json/JsonTokenType;
            getstatic org.bson.json.JsonTokenType.RIGHT_PAREN:Lorg/bson/json/JsonTokenType;
            if_acmpeq 10
         3: .line 950
            goto 7
         4: .line 951
      StackMap locals: org.bson.json.JsonToken
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.popToken:()Lorg/bson/json/JsonToken;
            astore 1 /* token */
         5: .line 952
            aload 1 /* token */
            invokevirtual org.bson.json.JsonToken.getType:()Lorg/bson/json/JsonTokenType;
            getstatic org.bson.json.JsonTokenType.RIGHT_PAREN:Lorg/bson/json/JsonTokenType;
            if_acmpne 7
         6: .line 953
            goto 8
         7: .line 950
      StackMap locals:
      StackMap stack:
            aload 1 /* token */
            invokevirtual org.bson.json.JsonToken.getType:()Lorg/bson/json/JsonTokenType;
            getstatic org.bson.json.JsonTokenType.END_OF_FILE:Lorg/bson/json/JsonTokenType;
            if_acmpne 4
         8: .line 956
      StackMap locals:
      StackMap stack:
            aload 1 /* token */
            invokevirtual org.bson.json.JsonToken.getType:()Lorg/bson/json/JsonTokenType;
            getstatic org.bson.json.JsonTokenType.RIGHT_PAREN:Lorg/bson/json/JsonTokenType;
            if_acmpeq 10
         9: .line 957
            new org.bson.json.JsonParseException
            dup
            ldc "JSON reader expected a ')' but found '%s'."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* token */
            invokevirtual org.bson.json.JsonToken.getValue:()Ljava/lang/Object;
            aastore
            invokespecial org.bson.json.JsonParseException.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
        10: .line 961
      StackMap locals:
      StackMap stack:
            new java.text.SimpleDateFormat
            dup
            ldc "EEE MMM dd yyyy HH:mm:ss z"
            getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
            invokespecial java.text.SimpleDateFormat.<init>:(Ljava/lang/String;Ljava/util/Locale;)V
            astore 2 /* df */
        start local 2 // java.text.DateFormat df
        11: .line 962
            aload 2 /* df */
            new java.util.Date
            dup
            invokespecial java.util.Date.<init>:()V
            invokevirtual java.text.DateFormat.format:(Ljava/util/Date;)Ljava/lang/String;
            areturn
        end local 2 // java.text.DateFormat df
        end local 1 // org.bson.json.JsonToken token
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   12     0   this  Lorg/bson/json/JsonReader;
            2   12     1  token  Lorg/bson/json/JsonToken;
           11   12     2     df  Ljava/text/DateFormat;

  private org.bson.BsonBinary visitBinDataExtendedJson(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/bson/BsonBinary;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=10, args_size=2
        start local 0 // org.bson.json.JsonReader this
        start local 1 // java.lang.String firstKey
         0: .line 967
            new org.bson.json.JsonReader$Mark
            dup
            aload 0 /* this */
            invokespecial org.bson.json.JsonReader$Mark.<init>:(Lorg/bson/json/JsonReader;)V
            astore 2 /* mark */
        start local 2 // org.bson.json.JsonReader$Mark mark
         1: .line 970
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.COLON:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         2: .line 972
            aload 1 /* firstKey */
            ldc "$binary"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 33
         3: .line 973
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.popToken:()Lorg/bson/json/JsonToken;
            astore 3 /* nextToken */
        start local 3 // org.bson.json.JsonToken nextToken
         4: .line 974
            aload 3 /* nextToken */
            invokevirtual org.bson.json.JsonToken.getType:()Lorg/bson/json/JsonTokenType;
            getstatic org.bson.json.JsonTokenType.BEGIN_OBJECT:Lorg/bson/json/JsonTokenType;
            if_acmpne 29
         5: .line 975
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.popToken:()Lorg/bson/json/JsonToken;
            astore 4 /* nameToken */
        start local 4 // org.bson.json.JsonToken nameToken
         6: .line 976
            aload 4 /* nameToken */
            ldc Ljava/lang/String;
            invokevirtual org.bson.json.JsonToken.getValue:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 5 /* firstNestedKey */
        start local 5 // java.lang.String firstNestedKey
         7: .line 979
            aload 5 /* firstNestedKey */
            ldc "base64"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 15
         8: .line 980
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.COLON:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         9: .line 981
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.readStringFromExtendedJson:()Ljava/lang/String;
            invokestatic org.bson.internal.Base64.decode:(Ljava/lang/String;)[B
            astore 6 /* data */
        start local 6 // byte[] data
        10: .line 982
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.COMMA:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
        11: .line 983
            aload 0 /* this */
            ldc "subType"
            invokevirtual org.bson.json.JsonReader.verifyString:(Ljava/lang/String;)V
        12: .line 984
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.COLON:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
        13: .line 985
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.readBinarySubtypeFromExtendedJson:()B
            istore 7 /* type */
        start local 7 // byte type
        14: .line 986
            goto 24
        end local 7 // byte type
        end local 6 // byte[] data
      StackMap locals: org.bson.json.JsonReader java.lang.String org.bson.json.JsonReader$Mark org.bson.json.JsonToken org.bson.json.JsonToken java.lang.String
      StackMap stack:
        15: aload 5 /* firstNestedKey */
            ldc "subType"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 23
        16: .line 987
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.COLON:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
        17: .line 988
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.readBinarySubtypeFromExtendedJson:()B
            istore 7 /* type */
        start local 7 // byte type
        18: .line 989
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.COMMA:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
        19: .line 990
            aload 0 /* this */
            ldc "base64"
            invokevirtual org.bson.json.JsonReader.verifyString:(Ljava/lang/String;)V
        20: .line 991
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.COLON:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
        21: .line 992
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.readStringFromExtendedJson:()Ljava/lang/String;
            invokestatic org.bson.internal.Base64.decode:(Ljava/lang/String;)[B
            astore 6 /* data */
        start local 6 // byte[] data
        22: .line 993
            goto 24
        end local 7 // byte type
        end local 6 // byte[] data
        23: .line 994
      StackMap locals:
      StackMap stack:
            new org.bson.json.JsonParseException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unexpected key for $binary: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* firstNestedKey */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.bson.json.JsonParseException.<init>:(Ljava/lang/String;)V
            athrow
        start local 6 // byte[] data
        start local 7 // byte type
        24: .line 996
      StackMap locals: byte[] int
      StackMap stack:
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.END_OBJECT:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
        25: .line 997
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.END_OBJECT:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
        26: .line 998
            new org.bson.BsonBinary
            dup
            iload 7 /* type */
            aload 6 /* data */
            invokespecial org.bson.BsonBinary.<init>:(B[B)V
            astore 9
        27: .line 1008
            aload 2 /* mark */
            invokevirtual org.bson.json.JsonReader$Mark.discard:()V
        28: .line 998
            aload 9
            areturn
        end local 7 // byte type
        end local 6 // byte[] data
        end local 5 // java.lang.String firstNestedKey
        end local 4 // org.bson.json.JsonToken nameToken
        29: .line 1000
      StackMap locals: org.bson.json.JsonReader java.lang.String org.bson.json.JsonReader$Mark org.bson.json.JsonToken
      StackMap stack:
            aload 2 /* mark */
            invokevirtual org.bson.json.JsonReader$Mark.reset:()V
        30: .line 1001
            aload 0 /* this */
            aload 1 /* firstKey */
            invokevirtual org.bson.json.JsonReader.visitLegacyBinaryExtendedJson:(Ljava/lang/String;)Lorg/bson/BsonBinary;
            astore 9
        31: .line 1008
            aload 2 /* mark */
            invokevirtual org.bson.json.JsonReader$Mark.discard:()V
        32: .line 1001
            aload 9
            areturn
        end local 3 // org.bson.json.JsonToken nextToken
        33: .line 1004
      StackMap locals:
      StackMap stack:
            aload 2 /* mark */
            invokevirtual org.bson.json.JsonReader$Mark.reset:()V
        34: .line 1005
            aload 0 /* this */
            aload 1 /* firstKey */
            invokevirtual org.bson.json.JsonReader.visitLegacyBinaryExtendedJson:(Ljava/lang/String;)Lorg/bson/BsonBinary;
            astore 9
        35: .line 1008
            aload 2 /* mark */
            invokevirtual org.bson.json.JsonReader$Mark.discard:()V
        36: .line 1005
            aload 9
            areturn
        37: .line 1007
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 8
        38: .line 1008
            aload 2 /* mark */
            invokevirtual org.bson.json.JsonReader$Mark.discard:()V
        39: .line 1009
            aload 8
            athrow
        end local 2 // org.bson.json.JsonReader$Mark mark
        end local 1 // java.lang.String firstKey
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   40     0            this  Lorg/bson/json/JsonReader;
            0   40     1        firstKey  Ljava/lang/String;
            1   40     2            mark  Lorg/bson/json/JsonReader$Mark;
            4   33     3       nextToken  Lorg/bson/json/JsonToken;
            6   29     4       nameToken  Lorg/bson/json/JsonToken;
            7   29     5  firstNestedKey  Ljava/lang/String;
           10   15     6            data  [B
           22   23     6            data  [B
           24   29     6            data  [B
           14   15     7            type  B
           18   23     7            type  B
           24   29     7            type  B
      Exception table:
        from    to  target  type
           1    27      37  any
          29    31      37  any
          33    35      37  any
    MethodParameters:
          Name  Flags
      firstKey  final

  private org.bson.BsonBinary visitLegacyBinaryExtendedJson(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/bson/BsonBinary;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // org.bson.json.JsonReader this
        start local 1 // java.lang.String firstKey
         0: .line 1014
            new org.bson.json.JsonReader$Mark
            dup
            aload 0 /* this */
            invokespecial org.bson.json.JsonReader$Mark.<init>:(Lorg/bson/json/JsonReader;)V
            astore 2 /* mark */
        start local 2 // org.bson.json.JsonReader$Mark mark
         1: .line 1017
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.COLON:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         2: .line 1022
            aload 1 /* firstKey */
            ldc "$binary"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 9
         3: .line 1023
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.readStringFromExtendedJson:()Ljava/lang/String;
            invokestatic org.bson.internal.Base64.decode:(Ljava/lang/String;)[B
            astore 3 /* data */
        start local 3 // byte[] data
         4: .line 1024
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.COMMA:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         5: .line 1025
            aload 0 /* this */
            ldc "$type"
            invokevirtual org.bson.json.JsonReader.verifyString:(Ljava/lang/String;)V
         6: .line 1026
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.COLON:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         7: .line 1027
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.readBinarySubtypeFromExtendedJson:()B
            istore 4 /* type */
        start local 4 // byte type
         8: .line 1028
            goto 14
        end local 4 // byte type
        end local 3 // byte[] data
         9: .line 1029
      StackMap locals: org.bson.json.JsonReader$Mark
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.readBinarySubtypeFromExtendedJson:()B
            istore 4 /* type */
        start local 4 // byte type
        10: .line 1030
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.COMMA:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
        11: .line 1031
            aload 0 /* this */
            ldc "$binary"
            invokevirtual org.bson.json.JsonReader.verifyString:(Ljava/lang/String;)V
        12: .line 1032
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.COLON:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
        13: .line 1033
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.readStringFromExtendedJson:()Ljava/lang/String;
            invokestatic org.bson.internal.Base64.decode:(Ljava/lang/String;)[B
            astore 3 /* data */
        start local 3 // byte[] data
        14: .line 1035
      StackMap locals: byte[] int
      StackMap stack:
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.END_OBJECT:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
        15: .line 1037
            new org.bson.BsonBinary
            dup
            iload 4 /* type */
            aload 3 /* data */
            invokespecial org.bson.BsonBinary.<init>:(B[B)V
            astore 6
        16: .line 1045
            aload 2 /* mark */
            invokevirtual org.bson.json.JsonReader$Mark.discard:()V
        17: .line 1037
            aload 6
            areturn
        end local 4 // byte type
        end local 3 // byte[] data
        18: .line 1038
      StackMap locals: org.bson.json.JsonReader java.lang.String org.bson.json.JsonReader$Mark
      StackMap stack: org.bson.json.JsonParseException
            pop
        19: .line 1039
            aload 2 /* mark */
            invokevirtual org.bson.json.JsonReader$Mark.reset:()V
        20: .line 1045
            aload 2 /* mark */
            invokevirtual org.bson.json.JsonReader$Mark.discard:()V
        21: .line 1040
            aconst_null
            areturn
        22: .line 1041
      StackMap locals:
      StackMap stack: java.lang.NumberFormatException
            pop
        23: .line 1042
            aload 2 /* mark */
            invokevirtual org.bson.json.JsonReader$Mark.reset:()V
        24: .line 1045
            aload 2 /* mark */
            invokevirtual org.bson.json.JsonReader$Mark.discard:()V
        25: .line 1043
            aconst_null
            areturn
        26: .line 1044
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 5
        27: .line 1045
            aload 2 /* mark */
            invokevirtual org.bson.json.JsonReader$Mark.discard:()V
        28: .line 1046
            aload 5
            athrow
        end local 2 // org.bson.json.JsonReader$Mark mark
        end local 1 // java.lang.String firstKey
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   29     0      this  Lorg/bson/json/JsonReader;
            0   29     1  firstKey  Ljava/lang/String;
            1   29     2      mark  Lorg/bson/json/JsonReader$Mark;
            4    9     3      data  [B
           14   18     3      data  [B
            8    9     4      type  B
           10   18     4      type  B
      Exception table:
        from    to  target  type
           1    16      18  Class org.bson.json.JsonParseException
           1    16      22  Class java.lang.NumberFormatException
           1    16      26  any
          18    20      26  any
          22    24      26  any
    MethodParameters:
          Name  Flags
      firstKey  final

  private byte readBinarySubtypeFromExtendedJson();
    descriptor: ()B
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=2, args_size=1
        start local 0 // org.bson.json.JsonReader this
         0: .line 1050
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.popToken:()Lorg/bson/json/JsonToken;
            astore 1 /* subTypeToken */
        start local 1 // org.bson.json.JsonToken subTypeToken
         1: .line 1051
            aload 1 /* subTypeToken */
            invokevirtual org.bson.json.JsonToken.getType:()Lorg/bson/json/JsonTokenType;
            getstatic org.bson.json.JsonTokenType.STRING:Lorg/bson/json/JsonTokenType;
            if_acmpeq 3
            aload 1 /* subTypeToken */
            invokevirtual org.bson.json.JsonToken.getType:()Lorg/bson/json/JsonTokenType;
            getstatic org.bson.json.JsonTokenType.INT32:Lorg/bson/json/JsonTokenType;
            if_acmpeq 3
         2: .line 1052
            new org.bson.json.JsonParseException
            dup
            ldc "JSON reader expected a string or number but found '%s'."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* subTypeToken */
            invokevirtual org.bson.json.JsonToken.getValue:()Ljava/lang/Object;
            aastore
            invokespecial org.bson.json.JsonParseException.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
         3: .line 1055
      StackMap locals: org.bson.json.JsonToken
      StackMap stack:
            aload 1 /* subTypeToken */
            invokevirtual org.bson.json.JsonToken.getType:()Lorg/bson/json/JsonTokenType;
            getstatic org.bson.json.JsonTokenType.STRING:Lorg/bson/json/JsonTokenType;
            if_acmpne 5
         4: .line 1056
            aload 1 /* subTypeToken */
            ldc Ljava/lang/String;
            invokevirtual org.bson.json.JsonToken.getValue:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast java.lang.String
            bipush 16
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;I)I
            i2b
            ireturn
         5: .line 1058
      StackMap locals:
      StackMap stack:
            aload 1 /* subTypeToken */
            ldc Ljava/lang/Integer;
            invokevirtual org.bson.json.JsonToken.getValue:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.byteValue:()B
            ireturn
        end local 1 // org.bson.json.JsonToken subTypeToken
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    6     0          this  Lorg/bson/json/JsonReader;
            1    6     1  subTypeToken  Lorg/bson/json/JsonToken;

  private long visitDateTimeExtendedJson();
    descriptor: ()J
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=6, args_size=1
        start local 0 // org.bson.json.JsonReader this
         0: .line 1064
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.COLON:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         1: .line 1065
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.popToken:()Lorg/bson/json/JsonToken;
            astore 3 /* valueToken */
        start local 3 // org.bson.json.JsonToken valueToken
         2: .line 1066
            aload 3 /* valueToken */
            invokevirtual org.bson.json.JsonToken.getType:()Lorg/bson/json/JsonTokenType;
            getstatic org.bson.json.JsonTokenType.BEGIN_OBJECT:Lorg/bson/json/JsonTokenType;
            if_acmpne 10
         3: .line 1067
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.popToken:()Lorg/bson/json/JsonToken;
            astore 4 /* nameToken */
        start local 4 // org.bson.json.JsonToken nameToken
         4: .line 1068
            aload 4 /* nameToken */
            ldc Ljava/lang/String;
            invokevirtual org.bson.json.JsonToken.getValue:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 5 /* name */
        start local 5 // java.lang.String name
         5: .line 1069
            aload 5 /* name */
            ldc "$numberLong"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 7
         6: .line 1070
            new org.bson.json.JsonParseException
            dup
            ldc "JSON reader expected $numberLong within $date, but found %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 5 /* name */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial org.bson.json.JsonParseException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 1072
      StackMap locals: org.bson.json.JsonReader top top org.bson.json.JsonToken org.bson.json.JsonToken java.lang.String
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.visitNumberLongExtendedJson:()Ljava/lang/Long;
            invokevirtual java.lang.Long.longValue:()J
            lstore 1 /* value */
        start local 1 // long value
         8: .line 1073
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.END_OBJECT:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
        end local 5 // java.lang.String name
        end local 4 // org.bson.json.JsonToken nameToken
         9: .line 1074
            goto 21
        end local 1 // long value
        10: .line 1075
      StackMap locals:
      StackMap stack:
            aload 3 /* valueToken */
            invokevirtual org.bson.json.JsonToken.getType:()Lorg/bson/json/JsonTokenType;
            getstatic org.bson.json.JsonTokenType.INT32:Lorg/bson/json/JsonTokenType;
            if_acmpeq 11
            aload 3 /* valueToken */
            invokevirtual org.bson.json.JsonToken.getType:()Lorg/bson/json/JsonTokenType;
            getstatic org.bson.json.JsonTokenType.INT64:Lorg/bson/json/JsonTokenType;
            if_acmpne 13
        11: .line 1076
      StackMap locals:
      StackMap stack:
            aload 3 /* valueToken */
            ldc Ljava/lang/Long;
            invokevirtual org.bson.json.JsonToken.getValue:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast java.lang.Long
            invokevirtual java.lang.Long.longValue:()J
            lstore 1 /* value */
        start local 1 // long value
        12: .line 1077
            goto 20
        end local 1 // long value
      StackMap locals:
      StackMap stack:
        13: aload 3 /* valueToken */
            invokevirtual org.bson.json.JsonToken.getType:()Lorg/bson/json/JsonTokenType;
            getstatic org.bson.json.JsonTokenType.STRING:Lorg/bson/json/JsonTokenType;
            if_acmpne 19
        14: .line 1078
            aload 3 /* valueToken */
            ldc Ljava/lang/String;
            invokevirtual org.bson.json.JsonToken.getValue:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 4 /* dateTimeString */
        start local 4 // java.lang.String dateTimeString
        15: .line 1080
            aload 4 /* dateTimeString */
            invokestatic org.bson.json.DateTimeFormatter.parse:(Ljava/lang/String;)J
            lstore 1 /* value */
        start local 1 // long value
        16: .line 1081
            goto 20
        end local 1 // long value
      StackMap locals: org.bson.json.JsonReader top top org.bson.json.JsonToken java.lang.String
      StackMap stack: java.lang.IllegalArgumentException
        17: astore 5 /* e */
        start local 5 // java.lang.IllegalArgumentException e
        18: .line 1082
            new org.bson.json.JsonParseException
            dup
            ldc "Failed to parse string as a date"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 5 /* e */
            aastore
            invokespecial org.bson.json.JsonParseException.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
        end local 5 // java.lang.IllegalArgumentException e
        end local 4 // java.lang.String dateTimeString
        19: .line 1085
      StackMap locals:
      StackMap stack:
            new org.bson.json.JsonParseException
            dup
            ldc "JSON reader expected an integer or string but found '%s'."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* valueToken */
            invokevirtual org.bson.json.JsonToken.getValue:()Ljava/lang/Object;
            aastore
            invokespecial org.bson.json.JsonParseException.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
        start local 1 // long value
        20: .line 1087
      StackMap locals: org.bson.json.JsonReader long org.bson.json.JsonToken
      StackMap stack:
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.END_OBJECT:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
        21: .line 1089
      StackMap locals:
      StackMap stack:
            lload 1 /* value */
            lreturn
        end local 3 // org.bson.json.JsonToken valueToken
        end local 1 // long value
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   22     0            this  Lorg/bson/json/JsonReader;
            8   10     1           value  J
           12   13     1           value  J
           16   17     1           value  J
           20   22     1           value  J
            2   22     3      valueToken  Lorg/bson/json/JsonToken;
            4    9     4       nameToken  Lorg/bson/json/JsonToken;
            5    9     5            name  Ljava/lang/String;
           15   19     4  dateTimeString  Ljava/lang/String;
           18   19     5               e  Ljava/lang/IllegalArgumentException;
      Exception table:
        from    to  target  type
          15    16      17  Class java.lang.IllegalArgumentException

  private org.bson.types.MaxKey visitMaxKeyExtendedJson();
    descriptor: ()Lorg/bson/types/MaxKey;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.bson.json.JsonReader this
         0: .line 1093
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.COLON:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         1: .line 1094
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.INT32:Lorg/bson/json/JsonTokenType;
            iconst_1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;Ljava/lang/Object;)V
         2: .line 1095
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.END_OBJECT:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         3: .line 1096
            new org.bson.types.MaxKey
            dup
            invokespecial org.bson.types.MaxKey.<init>:()V
            areturn
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/bson/json/JsonReader;

  private org.bson.types.MinKey visitMinKeyExtendedJson();
    descriptor: ()Lorg/bson/types/MinKey;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.bson.json.JsonReader this
         0: .line 1100
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.COLON:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         1: .line 1101
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.INT32:Lorg/bson/json/JsonTokenType;
            iconst_1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;Ljava/lang/Object;)V
         2: .line 1102
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.END_OBJECT:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         3: .line 1103
            new org.bson.types.MinKey
            dup
            invokespecial org.bson.types.MinKey.<init>:()V
            areturn
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/bson/json/JsonReader;

  private org.bson.types.ObjectId visitObjectIdExtendedJson();
    descriptor: ()Lorg/bson/types/ObjectId;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.bson.json.JsonReader this
         0: .line 1107
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.COLON:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         1: .line 1108
            new org.bson.types.ObjectId
            dup
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.readStringFromExtendedJson:()Ljava/lang/String;
            invokespecial org.bson.types.ObjectId.<init>:(Ljava/lang/String;)V
            astore 1 /* objectId */
        start local 1 // org.bson.types.ObjectId objectId
         2: .line 1109
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.END_OBJECT:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         3: .line 1110
            aload 1 /* objectId */
            areturn
        end local 1 // org.bson.types.ObjectId objectId
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lorg/bson/json/JsonReader;
            2    4     1  objectId  Lorg/bson/types/ObjectId;

  private org.bson.BsonRegularExpression visitNewRegularExpressionExtendedJson();
    descriptor: ()Lorg/bson/BsonRegularExpression;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // org.bson.json.JsonReader this
         0: .line 1114
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.COLON:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         1: .line 1115
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.BEGIN_OBJECT:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         2: .line 1118
            ldc ""
            astore 2 /* options */
        start local 2 // java.lang.String options
         3: .line 1120
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.readStringFromExtendedJson:()Ljava/lang/String;
            astore 3 /* firstKey */
        start local 3 // java.lang.String firstKey
         4: .line 1121
            aload 3 /* firstKey */
            ldc "pattern"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 12
         5: .line 1122
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.COLON:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         6: .line 1123
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.readStringFromExtendedJson:()Ljava/lang/String;
            astore 1 /* pattern */
        start local 1 // java.lang.String pattern
         7: .line 1124
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.COMMA:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         8: .line 1125
            aload 0 /* this */
            ldc "options"
            invokevirtual org.bson.json.JsonReader.verifyString:(Ljava/lang/String;)V
         9: .line 1126
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.COLON:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
        10: .line 1127
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.readStringFromExtendedJson:()Ljava/lang/String;
            astore 2 /* options */
        11: .line 1128
            goto 21
        end local 1 // java.lang.String pattern
      StackMap locals: org.bson.json.JsonReader top java.lang.String java.lang.String
      StackMap stack:
        12: aload 3 /* firstKey */
            ldc "options"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 20
        13: .line 1129
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.COLON:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
        14: .line 1130
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.readStringFromExtendedJson:()Ljava/lang/String;
            astore 2 /* options */
        15: .line 1131
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.COMMA:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
        16: .line 1132
            aload 0 /* this */
            ldc "pattern"
            invokevirtual org.bson.json.JsonReader.verifyString:(Ljava/lang/String;)V
        17: .line 1133
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.COLON:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
        18: .line 1134
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.readStringFromExtendedJson:()Ljava/lang/String;
            astore 1 /* pattern */
        start local 1 // java.lang.String pattern
        19: .line 1135
            goto 21
        end local 1 // java.lang.String pattern
        20: .line 1136
      StackMap locals:
      StackMap stack:
            new org.bson.json.JsonParseException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Expected 't' and 'i' fields in $timestamp document but found "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* firstKey */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.bson.json.JsonParseException.<init>:(Ljava/lang/String;)V
            athrow
        start local 1 // java.lang.String pattern
        21: .line 1139
      StackMap locals: org.bson.json.JsonReader java.lang.String java.lang.String java.lang.String
      StackMap stack:
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.END_OBJECT:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
        22: .line 1140
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.END_OBJECT:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
        23: .line 1141
            new org.bson.BsonRegularExpression
            dup
            aload 1 /* pattern */
            aload 2 /* options */
            invokespecial org.bson.BsonRegularExpression.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            areturn
        end local 3 // java.lang.String firstKey
        end local 2 // java.lang.String options
        end local 1 // java.lang.String pattern
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   24     0      this  Lorg/bson/json/JsonReader;
            7   12     1   pattern  Ljava/lang/String;
           19   20     1   pattern  Ljava/lang/String;
           21   24     1   pattern  Ljava/lang/String;
            3   24     2   options  Ljava/lang/String;
            4   24     3  firstKey  Ljava/lang/String;

  private org.bson.BsonRegularExpression visitRegularExpressionExtendedJson(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/bson/BsonRegularExpression;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // org.bson.json.JsonReader this
        start local 1 // java.lang.String firstKey
         0: .line 1145
            new org.bson.json.JsonReader$Mark
            dup
            aload 0 /* this */
            invokespecial org.bson.json.JsonReader$Mark.<init>:(Lorg/bson/json/JsonReader;)V
            astore 2 /* extendedJsonMark */
        start local 2 // org.bson.json.JsonReader$Mark extendedJsonMark
         1: .line 1148
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.COLON:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         2: .line 1151
            ldc ""
            astore 4 /* options */
        start local 4 // java.lang.String options
         3: .line 1152
            aload 1 /* firstKey */
            ldc "$regex"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 10
         4: .line 1153
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.readStringFromExtendedJson:()Ljava/lang/String;
            astore 3 /* pattern */
        start local 3 // java.lang.String pattern
         5: .line 1154
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.COMMA:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         6: .line 1155
            aload 0 /* this */
            ldc "$options"
            invokevirtual org.bson.json.JsonReader.verifyString:(Ljava/lang/String;)V
         7: .line 1156
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.COLON:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         8: .line 1157
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.readStringFromExtendedJson:()Ljava/lang/String;
            astore 4 /* options */
         9: .line 1158
            goto 15
        end local 3 // java.lang.String pattern
        10: .line 1159
      StackMap locals: org.bson.json.JsonReader java.lang.String org.bson.json.JsonReader$Mark top java.lang.String
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.readStringFromExtendedJson:()Ljava/lang/String;
            astore 4 /* options */
        11: .line 1160
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.COMMA:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
        12: .line 1161
            aload 0 /* this */
            ldc "$regex"
            invokevirtual org.bson.json.JsonReader.verifyString:(Ljava/lang/String;)V
        13: .line 1162
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.COLON:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
        14: .line 1163
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.readStringFromExtendedJson:()Ljava/lang/String;
            astore 3 /* pattern */
        start local 3 // java.lang.String pattern
        15: .line 1165
      StackMap locals: org.bson.json.JsonReader java.lang.String org.bson.json.JsonReader$Mark java.lang.String java.lang.String
      StackMap stack:
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.END_OBJECT:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
        16: .line 1166
            new org.bson.BsonRegularExpression
            dup
            aload 3 /* pattern */
            aload 4 /* options */
            invokespecial org.bson.BsonRegularExpression.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            astore 6
        17: .line 1171
            aload 2 /* extendedJsonMark */
            invokevirtual org.bson.json.JsonReader$Mark.discard:()V
        18: .line 1166
            aload 6
            areturn
        end local 4 // java.lang.String options
        end local 3 // java.lang.String pattern
        19: .line 1167
      StackMap locals: org.bson.json.JsonReader java.lang.String org.bson.json.JsonReader$Mark
      StackMap stack: org.bson.json.JsonParseException
            pop
        20: .line 1168
            aload 2 /* extendedJsonMark */
            invokevirtual org.bson.json.JsonReader$Mark.reset:()V
        21: .line 1171
            aload 2 /* extendedJsonMark */
            invokevirtual org.bson.json.JsonReader$Mark.discard:()V
        22: .line 1169
            aconst_null
            areturn
        23: .line 1170
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 5
        24: .line 1171
            aload 2 /* extendedJsonMark */
            invokevirtual org.bson.json.JsonReader$Mark.discard:()V
        25: .line 1172
            aload 5
            athrow
        end local 2 // org.bson.json.JsonReader$Mark extendedJsonMark
        end local 1 // java.lang.String firstKey
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   26     0              this  Lorg/bson/json/JsonReader;
            0   26     1          firstKey  Ljava/lang/String;
            1   26     2  extendedJsonMark  Lorg/bson/json/JsonReader$Mark;
            5   10     3           pattern  Ljava/lang/String;
           15   19     3           pattern  Ljava/lang/String;
            3   19     4           options  Ljava/lang/String;
      Exception table:
        from    to  target  type
           1    17      19  Class org.bson.json.JsonParseException
           1    17      23  any
          19    21      23  any
    MethodParameters:
          Name  Flags
      firstKey  final

  private java.lang.String readStringFromExtendedJson();
    descriptor: ()Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=2, args_size=1
        start local 0 // org.bson.json.JsonReader this
         0: .line 1176
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.popToken:()Lorg/bson/json/JsonToken;
            astore 1 /* patternToken */
        start local 1 // org.bson.json.JsonToken patternToken
         1: .line 1177
            aload 1 /* patternToken */
            invokevirtual org.bson.json.JsonToken.getType:()Lorg/bson/json/JsonTokenType;
            getstatic org.bson.json.JsonTokenType.STRING:Lorg/bson/json/JsonTokenType;
            if_acmpeq 3
         2: .line 1178
            new org.bson.json.JsonParseException
            dup
            ldc "JSON reader expected a string but found '%s'."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* patternToken */
            invokevirtual org.bson.json.JsonToken.getValue:()Ljava/lang/Object;
            aastore
            invokespecial org.bson.json.JsonParseException.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
         3: .line 1180
      StackMap locals: org.bson.json.JsonToken
      StackMap stack:
            aload 1 /* patternToken */
            ldc Ljava/lang/String;
            invokevirtual org.bson.json.JsonToken.getValue:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast java.lang.String
            areturn
        end local 1 // org.bson.json.JsonToken patternToken
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0          this  Lorg/bson/json/JsonReader;
            1    4     1  patternToken  Lorg/bson/json/JsonToken;

  private java.lang.String visitSymbolExtendedJson();
    descriptor: ()Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.bson.json.JsonReader this
         0: .line 1185
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.COLON:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         1: .line 1186
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.readStringFromExtendedJson:()Ljava/lang/String;
            astore 1 /* symbol */
        start local 1 // java.lang.String symbol
         2: .line 1187
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.END_OBJECT:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         3: .line 1188
            aload 1 /* symbol */
            areturn
        end local 1 // java.lang.String symbol
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lorg/bson/json/JsonReader;
            2    4     1  symbol  Ljava/lang/String;

  private org.bson.BsonTimestamp visitTimestampExtendedJson();
    descriptor: ()Lorg/bson/BsonTimestamp;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // org.bson.json.JsonReader this
         0: .line 1192
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.COLON:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         1: .line 1193
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.BEGIN_OBJECT:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         2: .line 1198
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.readStringFromExtendedJson:()Ljava/lang/String;
            astore 3 /* firstKey */
        start local 3 // java.lang.String firstKey
         3: .line 1199
            aload 3 /* firstKey */
            ldc "t"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 11
         4: .line 1200
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.COLON:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         5: .line 1201
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.readIntFromExtendedJson:()I
            istore 1 /* time */
        start local 1 // int time
         6: .line 1202
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.COMMA:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         7: .line 1203
            aload 0 /* this */
            ldc "i"
            invokevirtual org.bson.json.JsonReader.verifyString:(Ljava/lang/String;)V
         8: .line 1204
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.COLON:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         9: .line 1205
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.readIntFromExtendedJson:()I
            istore 2 /* increment */
        start local 2 // int increment
        10: .line 1206
            goto 20
        end local 2 // int increment
        end local 1 // int time
      StackMap locals: org.bson.json.JsonReader top top java.lang.String
      StackMap stack:
        11: aload 3 /* firstKey */
            ldc "i"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 19
        12: .line 1207
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.COLON:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
        13: .line 1208
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.readIntFromExtendedJson:()I
            istore 2 /* increment */
        start local 2 // int increment
        14: .line 1209
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.COMMA:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
        15: .line 1210
            aload 0 /* this */
            ldc "t"
            invokevirtual org.bson.json.JsonReader.verifyString:(Ljava/lang/String;)V
        16: .line 1211
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.COLON:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
        17: .line 1212
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.readIntFromExtendedJson:()I
            istore 1 /* time */
        start local 1 // int time
        18: .line 1213
            goto 20
        end local 2 // int increment
        end local 1 // int time
        19: .line 1214
      StackMap locals:
      StackMap stack:
            new org.bson.json.JsonParseException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Expected 't' and 'i' fields in $timestamp document but found "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* firstKey */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.bson.json.JsonParseException.<init>:(Ljava/lang/String;)V
            athrow
        start local 1 // int time
        start local 2 // int increment
        20: .line 1217
      StackMap locals: org.bson.json.JsonReader int int java.lang.String
      StackMap stack:
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.END_OBJECT:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
        21: .line 1218
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.END_OBJECT:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
        22: .line 1219
            new org.bson.BsonTimestamp
            dup
            iload 1 /* time */
            iload 2 /* increment */
            invokespecial org.bson.BsonTimestamp.<init>:(II)V
            areturn
        end local 3 // java.lang.String firstKey
        end local 2 // int increment
        end local 1 // int time
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   23     0       this  Lorg/bson/json/JsonReader;
            6   11     1       time  I
           18   19     1       time  I
           20   23     1       time  I
           10   11     2  increment  I
           14   19     2  increment  I
           20   23     2  increment  I
            3   23     3   firstKey  Ljava/lang/String;

  private int readIntFromExtendedJson();
    descriptor: ()I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=3, args_size=1
        start local 0 // org.bson.json.JsonReader this
         0: .line 1223
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.popToken:()Lorg/bson/json/JsonToken;
            astore 1 /* nextToken */
        start local 1 // org.bson.json.JsonToken nextToken
         1: .line 1225
            aload 1 /* nextToken */
            invokevirtual org.bson.json.JsonToken.getType:()Lorg/bson/json/JsonTokenType;
            getstatic org.bson.json.JsonTokenType.INT32:Lorg/bson/json/JsonTokenType;
            if_acmpne 4
         2: .line 1226
            aload 1 /* nextToken */
            ldc Ljava/lang/Integer;
            invokevirtual org.bson.json.JsonToken.getValue:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            istore 2 /* value */
        start local 2 // int value
         3: .line 1227
            goto 8
        end local 2 // int value
      StackMap locals: org.bson.json.JsonToken
      StackMap stack:
         4: aload 1 /* nextToken */
            invokevirtual org.bson.json.JsonToken.getType:()Lorg/bson/json/JsonTokenType;
            getstatic org.bson.json.JsonTokenType.INT64:Lorg/bson/json/JsonTokenType;
            if_acmpne 7
         5: .line 1228
            aload 1 /* nextToken */
            ldc Ljava/lang/Long;
            invokevirtual org.bson.json.JsonToken.getValue:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast java.lang.Long
            invokevirtual java.lang.Long.intValue:()I
            istore 2 /* value */
        start local 2 // int value
         6: .line 1229
            goto 8
        end local 2 // int value
         7: .line 1230
      StackMap locals:
      StackMap stack:
            new org.bson.json.JsonParseException
            dup
            ldc "JSON reader expected an integer but found '%s'."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* nextToken */
            invokevirtual org.bson.json.JsonToken.getValue:()Ljava/lang/Object;
            aastore
            invokespecial org.bson.json.JsonParseException.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
        start local 2 // int value
         8: .line 1232
      StackMap locals: int
      StackMap stack:
            iload 2 /* value */
            ireturn
        end local 2 // int value
        end local 1 // org.bson.json.JsonToken nextToken
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    9     0       this  Lorg/bson/json/JsonReader;
            1    9     1  nextToken  Lorg/bson/json/JsonToken;
            3    4     2      value  I
            6    7     2      value  I
            8    9     2      value  I

  private void visitJavaScriptExtendedJson();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=3, args_size=1
        start local 0 // org.bson.json.JsonReader this
         0: .line 1236
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.COLON:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         1: .line 1237
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.readStringFromExtendedJson:()Ljava/lang/String;
            astore 1 /* code */
        start local 1 // java.lang.String code
         2: .line 1238
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.popToken:()Lorg/bson/json/JsonToken;
            astore 2 /* nextToken */
        start local 2 // org.bson.json.JsonToken nextToken
         3: .line 1239
            invokestatic org.bson.json.JsonReader.$SWITCH_TABLE$org$bson$json$JsonTokenType:()[I
            aload 2 /* nextToken */
            invokevirtual org.bson.json.JsonToken.getType:()Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonTokenType.ordinal:()I
            iaload
            tableswitch { // 7 - 9
                    7: 11
                    8: 14
                    9: 4
              default: 14
          }
         4: .line 1241
      StackMap locals: java.lang.String org.bson.json.JsonToken
      StackMap stack:
            aload 0 /* this */
            ldc "$scope"
            invokevirtual org.bson.json.JsonReader.verifyString:(Ljava/lang/String;)V
         5: .line 1242
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.COLON:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         6: .line 1243
            aload 0 /* this */
            getstatic org.bson.AbstractBsonReader$State.VALUE:Lorg/bson/AbstractBsonReader$State;
            invokevirtual org.bson.json.JsonReader.setState:(Lorg/bson/AbstractBsonReader$State;)V
         7: .line 1244
            aload 0 /* this */
            aload 1 /* code */
            putfield org.bson.json.JsonReader.currentValue:Ljava/lang/Object;
         8: .line 1245
            aload 0 /* this */
            getstatic org.bson.BsonType.JAVASCRIPT_WITH_SCOPE:Lorg/bson/BsonType;
            invokevirtual org.bson.json.JsonReader.setCurrentBsonType:(Lorg/bson/BsonType;)V
         9: .line 1246
            aload 0 /* this */
            new org.bson.json.JsonReader$Context
            dup
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.getContext:()Lorg/bson/json/JsonReader$Context;
            getstatic org.bson.BsonContextType.SCOPE_DOCUMENT:Lorg/bson/BsonContextType;
            invokespecial org.bson.json.JsonReader$Context.<init>:(Lorg/bson/json/JsonReader;Lorg/bson/AbstractBsonReader$Context;Lorg/bson/BsonContextType;)V
            invokevirtual org.bson.json.JsonReader.setContext:(Lorg/bson/AbstractBsonReader$Context;)V
        10: .line 1247
            goto 15
        11: .line 1249
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* code */
            putfield org.bson.json.JsonReader.currentValue:Ljava/lang/Object;
        12: .line 1250
            aload 0 /* this */
            getstatic org.bson.BsonType.JAVASCRIPT:Lorg/bson/BsonType;
            invokevirtual org.bson.json.JsonReader.setCurrentBsonType:(Lorg/bson/BsonType;)V
        13: .line 1251
            goto 15
        14: .line 1253
      StackMap locals:
      StackMap stack:
            new org.bson.json.JsonParseException
            dup
            ldc "JSON reader expected ',' or '}' but found '%s'."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* nextToken */
            aastore
            invokespecial org.bson.json.JsonParseException.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
        15: .line 1255
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.bson.json.JsonToken nextToken
        end local 1 // java.lang.String code
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   16     0       this  Lorg/bson/json/JsonReader;
            2   16     1       code  Ljava/lang/String;
            3   16     2  nextToken  Lorg/bson/json/JsonToken;

  private org.bson.BsonUndefined visitUndefinedExtendedJson();
    descriptor: ()Lorg/bson/BsonUndefined;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=2, args_size=1
        start local 0 // org.bson.json.JsonReader this
         0: .line 1258
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.COLON:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         1: .line 1259
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.popToken:()Lorg/bson/json/JsonToken;
            astore 1 /* valueToken */
        start local 1 // org.bson.json.JsonToken valueToken
         2: .line 1260
            aload 1 /* valueToken */
            ldc Ljava/lang/String;
            invokevirtual org.bson.json.JsonToken.getValue:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast java.lang.String
            ldc "true"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 6
         3: .line 1261
            new org.bson.json.JsonParseException
            dup
            ldc "JSON reader requires $undefined to have the value of true but found '%s'."
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
         4: .line 1262
            aload 1 /* valueToken */
            invokevirtual org.bson.json.JsonToken.getValue:()Ljava/lang/Object;
         5: .line 1261
            aastore
            invokespecial org.bson.json.JsonParseException.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
         6: .line 1264
      StackMap locals: org.bson.json.JsonToken
      StackMap stack:
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.END_OBJECT:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         7: .line 1265
            new org.bson.BsonUndefined
            dup
            invokespecial org.bson.BsonUndefined.<init>:()V
            areturn
        end local 1 // org.bson.json.JsonToken valueToken
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    8     0        this  Lorg/bson/json/JsonReader;
            2    8     1  valueToken  Lorg/bson/json/JsonToken;

  private java.lang.Long visitNumberLongExtendedJson();
    descriptor: ()Ljava/lang/Long;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=4, args_size=1
        start local 0 // org.bson.json.JsonReader this
         0: .line 1269
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.COLON:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         1: .line 1271
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.readStringFromExtendedJson:()Ljava/lang/String;
            astore 2 /* longAsString */
        start local 2 // java.lang.String longAsString
         2: .line 1273
            aload 2 /* longAsString */
            invokestatic java.lang.Long.valueOf:(Ljava/lang/String;)Ljava/lang/Long;
            astore 1 /* value */
        start local 1 // java.lang.Long value
         3: .line 1274
            goto 6
        end local 1 // java.lang.Long value
      StackMap locals: org.bson.json.JsonReader top java.lang.String
      StackMap stack: java.lang.NumberFormatException
         4: astore 3 /* e */
        start local 3 // java.lang.NumberFormatException e
         5: .line 1275
            new org.bson.json.JsonParseException
            dup
            ldc "Exception converting value '%s' to type %s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* longAsString */
            aastore
            dup
            iconst_1
            ldc Ljava/lang/Long;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* e */
            aastore
            invokespecial org.bson.json.JsonParseException.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
        end local 3 // java.lang.NumberFormatException e
        start local 1 // java.lang.Long value
         6: .line 1277
      StackMap locals: org.bson.json.JsonReader java.lang.Long java.lang.String
      StackMap stack:
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.END_OBJECT:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         7: .line 1278
            aload 1 /* value */
            areturn
        end local 2 // java.lang.String longAsString
        end local 1 // java.lang.Long value
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    8     0          this  Lorg/bson/json/JsonReader;
            3    4     1         value  Ljava/lang/Long;
            6    8     1         value  Ljava/lang/Long;
            2    8     2  longAsString  Ljava/lang/String;
            5    6     3             e  Ljava/lang/NumberFormatException;
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NumberFormatException

  private java.lang.Integer visitNumberIntExtendedJson();
    descriptor: ()Ljava/lang/Integer;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=4, args_size=1
        start local 0 // org.bson.json.JsonReader this
         0: .line 1282
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.COLON:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         1: .line 1284
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.readStringFromExtendedJson:()Ljava/lang/String;
            astore 2 /* intAsString */
        start local 2 // java.lang.String intAsString
         2: .line 1286
            aload 2 /* intAsString */
            invokestatic java.lang.Integer.valueOf:(Ljava/lang/String;)Ljava/lang/Integer;
            astore 1 /* value */
        start local 1 // java.lang.Integer value
         3: .line 1287
            goto 6
        end local 1 // java.lang.Integer value
      StackMap locals: org.bson.json.JsonReader top java.lang.String
      StackMap stack: java.lang.NumberFormatException
         4: astore 3 /* e */
        start local 3 // java.lang.NumberFormatException e
         5: .line 1288
            new org.bson.json.JsonParseException
            dup
            ldc "Exception converting value '%s' to type %s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* intAsString */
            aastore
            dup
            iconst_1
            ldc Ljava/lang/Integer;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* e */
            aastore
            invokespecial org.bson.json.JsonParseException.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
        end local 3 // java.lang.NumberFormatException e
        start local 1 // java.lang.Integer value
         6: .line 1290
      StackMap locals: org.bson.json.JsonReader java.lang.Integer java.lang.String
      StackMap stack:
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.END_OBJECT:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         7: .line 1291
            aload 1 /* value */
            areturn
        end local 2 // java.lang.String intAsString
        end local 1 // java.lang.Integer value
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    8     0         this  Lorg/bson/json/JsonReader;
            3    4     1        value  Ljava/lang/Integer;
            6    8     1        value  Ljava/lang/Integer;
            2    8     2  intAsString  Ljava/lang/String;
            5    6     3            e  Ljava/lang/NumberFormatException;
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NumberFormatException

  private java.lang.Double visitNumberDoubleExtendedJson();
    descriptor: ()Ljava/lang/Double;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=4, args_size=1
        start local 0 // org.bson.json.JsonReader this
         0: .line 1295
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.COLON:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         1: .line 1297
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.readStringFromExtendedJson:()Ljava/lang/String;
            astore 2 /* doubleAsString */
        start local 2 // java.lang.String doubleAsString
         2: .line 1299
            aload 2 /* doubleAsString */
            invokestatic java.lang.Double.valueOf:(Ljava/lang/String;)Ljava/lang/Double;
            astore 1 /* value */
        start local 1 // java.lang.Double value
         3: .line 1300
            goto 6
        end local 1 // java.lang.Double value
      StackMap locals: org.bson.json.JsonReader top java.lang.String
      StackMap stack: java.lang.NumberFormatException
         4: astore 3 /* e */
        start local 3 // java.lang.NumberFormatException e
         5: .line 1301
            new org.bson.json.JsonParseException
            dup
            ldc "Exception converting value '%s' to type %s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* doubleAsString */
            aastore
            dup
            iconst_1
            ldc Ljava/lang/Double;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* e */
            aastore
            invokespecial org.bson.json.JsonParseException.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
        end local 3 // java.lang.NumberFormatException e
        start local 1 // java.lang.Double value
         6: .line 1303
      StackMap locals: org.bson.json.JsonReader java.lang.Double java.lang.String
      StackMap stack:
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.END_OBJECT:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         7: .line 1304
            aload 1 /* value */
            areturn
        end local 2 // java.lang.String doubleAsString
        end local 1 // java.lang.Double value
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    8     0            this  Lorg/bson/json/JsonReader;
            3    4     1           value  Ljava/lang/Double;
            6    8     1           value  Ljava/lang/Double;
            2    8     2  doubleAsString  Ljava/lang/String;
            5    6     3               e  Ljava/lang/NumberFormatException;
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NumberFormatException

  private org.bson.types.Decimal128 visitNumberDecimalExtendedJson();
    descriptor: ()Lorg/bson/types/Decimal128;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=4, args_size=1
        start local 0 // org.bson.json.JsonReader this
         0: .line 1308
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.COLON:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         1: .line 1310
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.readStringFromExtendedJson:()Ljava/lang/String;
            astore 2 /* decimal128AsString */
        start local 2 // java.lang.String decimal128AsString
         2: .line 1312
            aload 2 /* decimal128AsString */
            invokestatic org.bson.types.Decimal128.parse:(Ljava/lang/String;)Lorg/bson/types/Decimal128;
            astore 1 /* value */
        start local 1 // org.bson.types.Decimal128 value
         3: .line 1313
            goto 10
        end local 1 // org.bson.types.Decimal128 value
      StackMap locals: org.bson.json.JsonReader top java.lang.String
      StackMap stack: java.lang.NumberFormatException
         4: astore 3 /* e */
        start local 3 // java.lang.NumberFormatException e
         5: .line 1314
            new org.bson.json.JsonParseException
            dup
            ldc "Exception converting value '%s' to type %s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* decimal128AsString */
            aastore
            dup
            iconst_1
         6: .line 1315
            ldc Lorg/bson/types/Decimal128;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
         7: .line 1314
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
         8: .line 1315
            aload 3 /* e */
         9: .line 1314
            aastore
            invokespecial org.bson.json.JsonParseException.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
        end local 3 // java.lang.NumberFormatException e
        start local 1 // org.bson.types.Decimal128 value
        10: .line 1317
      StackMap locals: org.bson.json.JsonReader org.bson.types.Decimal128 java.lang.String
      StackMap stack:
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.END_OBJECT:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
        11: .line 1318
            aload 1 /* value */
            areturn
        end local 2 // java.lang.String decimal128AsString
        end local 1 // org.bson.types.Decimal128 value
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   12     0                this  Lorg/bson/json/JsonReader;
            3    4     1               value  Lorg/bson/types/Decimal128;
           10   12     1               value  Lorg/bson/types/Decimal128;
            2   12     2  decimal128AsString  Ljava/lang/String;
            5   10     3                   e  Ljava/lang/NumberFormatException;
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NumberFormatException

  private org.bson.BsonDbPointer visitDbPointerExtendedJson();
    descriptor: ()Lorg/bson/BsonDbPointer;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // org.bson.json.JsonReader this
         0: .line 1322
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.COLON:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         1: .line 1323
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.BEGIN_OBJECT:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         2: .line 1328
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.readStringFromExtendedJson:()Ljava/lang/String;
            astore 3 /* firstKey */
        start local 3 // java.lang.String firstKey
         3: .line 1329
            aload 3 /* firstKey */
            ldc "$ref"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 11
         4: .line 1330
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.COLON:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         5: .line 1331
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.readStringFromExtendedJson:()Ljava/lang/String;
            astore 1 /* ref */
        start local 1 // java.lang.String ref
         6: .line 1332
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.COMMA:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         7: .line 1333
            aload 0 /* this */
            ldc "$id"
            invokevirtual org.bson.json.JsonReader.verifyString:(Ljava/lang/String;)V
         8: .line 1334
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.readDbPointerIdFromExtendedJson:()Lorg/bson/types/ObjectId;
            astore 2 /* oid */
        start local 2 // org.bson.types.ObjectId oid
         9: .line 1335
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.END_OBJECT:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
        10: .line 1336
            goto 19
        end local 2 // org.bson.types.ObjectId oid
        end local 1 // java.lang.String ref
      StackMap locals: org.bson.json.JsonReader top top java.lang.String
      StackMap stack:
        11: aload 3 /* firstKey */
            ldc "$id"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 18
        12: .line 1337
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.readDbPointerIdFromExtendedJson:()Lorg/bson/types/ObjectId;
            astore 2 /* oid */
        start local 2 // org.bson.types.ObjectId oid
        13: .line 1338
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.COMMA:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
        14: .line 1339
            aload 0 /* this */
            ldc "$ref"
            invokevirtual org.bson.json.JsonReader.verifyString:(Ljava/lang/String;)V
        15: .line 1340
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.COLON:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
        16: .line 1341
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.readStringFromExtendedJson:()Ljava/lang/String;
            astore 1 /* ref */
        start local 1 // java.lang.String ref
        17: .line 1343
            goto 19
        end local 2 // org.bson.types.ObjectId oid
        end local 1 // java.lang.String ref
        18: .line 1344
      StackMap locals:
      StackMap stack:
            new org.bson.json.JsonParseException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Expected $ref and $id fields in $dbPointer document but found "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* firstKey */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.bson.json.JsonParseException.<init>:(Ljava/lang/String;)V
            athrow
        start local 1 // java.lang.String ref
        start local 2 // org.bson.types.ObjectId oid
        19: .line 1346
      StackMap locals: org.bson.json.JsonReader java.lang.String org.bson.types.ObjectId java.lang.String
      StackMap stack:
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.END_OBJECT:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
        20: .line 1347
            new org.bson.BsonDbPointer
            dup
            aload 1 /* ref */
            aload 2 /* oid */
            invokespecial org.bson.BsonDbPointer.<init>:(Ljava/lang/String;Lorg/bson/types/ObjectId;)V
            areturn
        end local 3 // java.lang.String firstKey
        end local 2 // org.bson.types.ObjectId oid
        end local 1 // java.lang.String ref
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   21     0      this  Lorg/bson/json/JsonReader;
            6   11     1       ref  Ljava/lang/String;
           17   18     1       ref  Ljava/lang/String;
           19   21     1       ref  Ljava/lang/String;
            9   11     2       oid  Lorg/bson/types/ObjectId;
           13   18     2       oid  Lorg/bson/types/ObjectId;
           19   21     2       oid  Lorg/bson/types/ObjectId;
            3   21     3  firstKey  Ljava/lang/String;

  private org.bson.types.ObjectId readDbPointerIdFromExtendedJson();
    descriptor: ()Lorg/bson/types/ObjectId;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.bson.json.JsonReader this
         0: .line 1352
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.COLON:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         1: .line 1353
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.BEGIN_OBJECT:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;)V
         2: .line 1354
            aload 0 /* this */
            getstatic org.bson.json.JsonTokenType.STRING:Lorg/bson/json/JsonTokenType;
            ldc "$oid"
            invokevirtual org.bson.json.JsonReader.verifyToken:(Lorg/bson/json/JsonTokenType;Ljava/lang/Object;)V
         3: .line 1355
            aload 0 /* this */
            invokevirtual org.bson.json.JsonReader.visitObjectIdExtendedJson:()Lorg/bson/types/ObjectId;
            astore 1 /* oid */
        start local 1 // org.bson.types.ObjectId oid
         4: .line 1356
            aload 1 /* oid */
            areturn
        end local 1 // org.bson.types.ObjectId oid
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/bson/json/JsonReader;
            4    5     1   oid  Lorg/bson/types/ObjectId;

  public void mark();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.bson.json.JsonReader this
         0: .line 1362
            aload 0 /* this */
            getfield org.bson.json.JsonReader.mark:Lorg/bson/json/JsonReader$Mark;
            ifnull 2
         1: .line 1363
            new org.bson.BSONException
            dup
            ldc "A mark already exists; it needs to be reset before creating a new one"
            invokespecial org.bson.BSONException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1365
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new org.bson.json.JsonReader$Mark
            dup
            aload 0 /* this */
            invokespecial org.bson.json.JsonReader$Mark.<init>:(Lorg/bson/json/JsonReader;)V
            putfield org.bson.json.JsonReader.mark:Lorg/bson/json/JsonReader$Mark;
         3: .line 1366
            return
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/bson/json/JsonReader;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public org.bson.BsonReaderMark getMark();
    descriptor: ()Lorg/bson/BsonReaderMark;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.bson.json.JsonReader this
         0: .line 1370
            new org.bson.json.JsonReader$Mark
            dup
            aload 0 /* this */
            invokespecial org.bson.json.JsonReader$Mark.<init>:(Lorg/bson/json/JsonReader;)V
            areturn
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/json/JsonReader;

  public void reset();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.bson.json.JsonReader this
         0: .line 1376
            aload 0 /* this */
            getfield org.bson.json.JsonReader.mark:Lorg/bson/json/JsonReader$Mark;
            ifnonnull 2
         1: .line 1377
            new org.bson.BSONException
            dup
            ldc "trying to reset a mark before creating it"
            invokespecial org.bson.BSONException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1379
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.bson.json.JsonReader.mark:Lorg/bson/json/JsonReader$Mark;
            invokevirtual org.bson.json.JsonReader$Mark.reset:()V
         3: .line 1380
            aload 0 /* this */
            aconst_null
            putfield org.bson.json.JsonReader.mark:Lorg/bson/json/JsonReader$Mark;
         4: .line 1381
            return
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/bson/json/JsonReader;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  protected org.bson.json.JsonReader$Context getContext();
    descriptor: ()Lorg/bson/json/JsonReader$Context;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.bson.json.JsonReader this
         0: .line 1385
            aload 0 /* this */
            invokespecial org.bson.AbstractBsonReader.getContext:()Lorg/bson/AbstractBsonReader$Context;
            checkcast org.bson.json.JsonReader$Context
            areturn
        end local 0 // org.bson.json.JsonReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/bson/json/JsonReader;

  private static byte[] decodeHex(java.lang.String);
    descriptor: (Ljava/lang/String;)[B
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=1
        start local 0 // java.lang.String hex
         0: .line 1429
            aload 0 /* hex */
            invokevirtual java.lang.String.length:()I
            iconst_2
            irem
            ifeq 2
         1: .line 1430
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "A hex string must contain an even number of characters: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* hex */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1433
      StackMap locals:
      StackMap stack:
            aload 0 /* hex */
            invokevirtual java.lang.String.length:()I
            iconst_2
            idiv
            newarray 8
            astore 1 /* out */
        start local 1 // byte[] out
         3: .line 1435
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         4: goto 11
         5: .line 1436
      StackMap locals: byte[] int
      StackMap stack:
            aload 0 /* hex */
            iload 2 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            bipush 16
            invokestatic java.lang.Character.digit:(CI)I
            istore 3 /* high */
        start local 3 // int high
         6: .line 1437
            aload 0 /* hex */
            iload 2 /* i */
            iconst_1
            iadd
            invokevirtual java.lang.String.charAt:(I)C
            bipush 16
            invokestatic java.lang.Character.digit:(CI)I
            istore 4 /* low */
        start local 4 // int low
         7: .line 1438
            iload 3 /* high */
            iconst_m1
            if_icmpeq 8
            iload 4 /* low */
            iconst_m1
            if_icmpne 9
         8: .line 1439
      StackMap locals: int int
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "A hex string can only contain the characters 0-9, A-F, a-f: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* hex */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 1442
      StackMap locals:
      StackMap stack:
            aload 1 /* out */
            iload 2 /* i */
            iconst_2
            idiv
            iload 3 /* high */
            bipush 16
            imul
            iload 4 /* low */
            iadd
            i2b
            bastore
        end local 4 // int low
        end local 3 // int high
        10: .line 1435
            iinc 2 /* i */ 2
      StackMap locals:
      StackMap stack:
        11: iload 2 /* i */
            aload 0 /* hex */
            invokevirtual java.lang.String.length:()I
            if_icmplt 5
        end local 2 // int i
        12: .line 1445
            aload 1 /* out */
            areturn
        end local 1 // byte[] out
        end local 0 // java.lang.String hex
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0   hex  Ljava/lang/String;
            3   13     1   out  [B
            4   12     2     i  I
            6   10     3  high  I
            7   10     4   low  I
    MethodParameters:
      Name  Flags
      hex   final

  protected org.bson.AbstractBsonReader$Context getContext();
    descriptor: ()Lorg/bson/AbstractBsonReader$Context;
    flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual org.bson.json.JsonReader.getContext:()Lorg/bson/json/JsonReader$Context;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  static void access$1(org.bson.json.JsonReader, org.bson.AbstractBsonReader$Context);
    descriptor: (Lorg/bson/json/JsonReader;Lorg/bson/AbstractBsonReader$Context;)V
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual org.bson.json.JsonReader.setContext:(Lorg/bson/AbstractBsonReader$Context;)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  static int[] $SWITCH_TABLE$org$bson$json$JsonTokenType();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 65
            getstatic org.bson.json.JsonReader.$SWITCH_TABLE$org$bson$json$JsonTokenType:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic org.bson.json.JsonTokenType.values:()[Lorg/bson/json/JsonTokenType;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic org.bson.json.JsonTokenType.BEGIN_ARRAY:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonTokenType.ordinal:()I
            iconst_2
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic org.bson.json.JsonTokenType.BEGIN_OBJECT:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonTokenType.ordinal:()I
            iconst_3
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic org.bson.json.JsonTokenType.COLON:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonTokenType.ordinal:()I
            bipush 8
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic org.bson.json.JsonTokenType.COMMA:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonTokenType.ordinal:()I
            bipush 9
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic org.bson.json.JsonTokenType.DOUBLE:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonTokenType.ordinal:()I
            bipush 10
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            getstatic org.bson.json.JsonTokenType.END_ARRAY:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonTokenType.ordinal:()I
            iconst_4
            iastore
        18: goto 20
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        19: pop
      StackMap locals:
      StackMap stack:
        20: aload 0
            getstatic org.bson.json.JsonTokenType.END_OBJECT:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonTokenType.ordinal:()I
            bipush 7
            iastore
        21: goto 23
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        22: pop
      StackMap locals:
      StackMap stack:
        23: aload 0
            getstatic org.bson.json.JsonTokenType.END_OF_FILE:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonTokenType.ordinal:()I
            bipush 16
            iastore
        24: goto 26
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        25: pop
      StackMap locals:
      StackMap stack:
        26: aload 0
            getstatic org.bson.json.JsonTokenType.INT32:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonTokenType.ordinal:()I
            bipush 11
            iastore
        27: goto 29
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        28: pop
      StackMap locals:
      StackMap stack:
        29: aload 0
            getstatic org.bson.json.JsonTokenType.INT64:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonTokenType.ordinal:()I
            bipush 12
            iastore
        30: goto 32
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        31: pop
      StackMap locals:
      StackMap stack:
        32: aload 0
            getstatic org.bson.json.JsonTokenType.INVALID:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonTokenType.ordinal:()I
            iconst_1
            iastore
        33: goto 35
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        34: pop
      StackMap locals:
      StackMap stack:
        35: aload 0
            getstatic org.bson.json.JsonTokenType.LEFT_PAREN:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonTokenType.ordinal:()I
            iconst_5
            iastore
        36: goto 38
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        37: pop
      StackMap locals:
      StackMap stack:
        38: aload 0
            getstatic org.bson.json.JsonTokenType.REGULAR_EXPRESSION:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonTokenType.ordinal:()I
            bipush 13
            iastore
        39: goto 41
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        40: pop
      StackMap locals:
      StackMap stack:
        41: aload 0
            getstatic org.bson.json.JsonTokenType.RIGHT_PAREN:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonTokenType.ordinal:()I
            bipush 6
            iastore
        42: goto 44
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        43: pop
      StackMap locals:
      StackMap stack:
        44: aload 0
            getstatic org.bson.json.JsonTokenType.STRING:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonTokenType.ordinal:()I
            bipush 14
            iastore
        45: goto 47
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        46: pop
      StackMap locals:
      StackMap stack:
        47: aload 0
            getstatic org.bson.json.JsonTokenType.UNQUOTED_STRING:Lorg/bson/json/JsonTokenType;
            invokevirtual org.bson.json.JsonTokenType.ordinal:()I
            bipush 15
            iastore
        48: goto 50
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        49: pop
      StackMap locals:
      StackMap stack:
        50: aload 0
            dup
            putstatic org.bson.json.JsonReader.$SWITCH_TABLE$org$bson$json$JsonTokenType:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
          14    15      16  Class java.lang.NoSuchFieldError
          17    18      19  Class java.lang.NoSuchFieldError
          20    21      22  Class java.lang.NoSuchFieldError
          23    24      25  Class java.lang.NoSuchFieldError
          26    27      28  Class java.lang.NoSuchFieldError
          29    30      31  Class java.lang.NoSuchFieldError
          32    33      34  Class java.lang.NoSuchFieldError
          35    36      37  Class java.lang.NoSuchFieldError
          38    39      40  Class java.lang.NoSuchFieldError
          41    42      43  Class java.lang.NoSuchFieldError
          44    45      46  Class java.lang.NoSuchFieldError
          47    48      49  Class java.lang.NoSuchFieldError

  static int[] $SWITCH_TABLE$org$bson$BsonContextType();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 65
            getstatic org.bson.json.JsonReader.$SWITCH_TABLE$org$bson$BsonContextType:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic org.bson.BsonContextType.values:()[Lorg/bson/BsonContextType;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic org.bson.BsonContextType.ARRAY:Lorg/bson/BsonContextType;
            invokevirtual org.bson.BsonContextType.ordinal:()I
            iconst_3
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic org.bson.BsonContextType.DOCUMENT:Lorg/bson/BsonContextType;
            invokevirtual org.bson.BsonContextType.ordinal:()I
            iconst_2
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic org.bson.BsonContextType.JAVASCRIPT_WITH_SCOPE:Lorg/bson/BsonContextType;
            invokevirtual org.bson.BsonContextType.ordinal:()I
            iconst_4
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic org.bson.BsonContextType.SCOPE_DOCUMENT:Lorg/bson/BsonContextType;
            invokevirtual org.bson.BsonContextType.ordinal:()I
            iconst_5
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic org.bson.BsonContextType.TOP_LEVEL:Lorg/bson/BsonContextType;
            invokevirtual org.bson.BsonContextType.ordinal:()I
            iconst_1
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            dup
            putstatic org.bson.json.JsonReader.$SWITCH_TABLE$org$bson$BsonContextType:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
          14    15      16  Class java.lang.NoSuchFieldError

  static int[] $SWITCH_TABLE$org$bson$BsonType();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 65
            getstatic org.bson.json.JsonReader.$SWITCH_TABLE$org$bson$BsonType:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic org.bson.BsonType.values:()[Lorg/bson/BsonType;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic org.bson.BsonType.ARRAY:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonType.ordinal:()I
            iconst_5
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic org.bson.BsonType.BINARY:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonType.ordinal:()I
            bipush 6
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic org.bson.BsonType.BOOLEAN:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonType.ordinal:()I
            bipush 9
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic org.bson.BsonType.DATE_TIME:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonType.ordinal:()I
            bipush 10
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic org.bson.BsonType.DB_POINTER:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonType.ordinal:()I
            bipush 13
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            getstatic org.bson.BsonType.DECIMAL128:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonType.ordinal:()I
            bipush 20
            iastore
        18: goto 20
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        19: pop
      StackMap locals:
      StackMap stack:
        20: aload 0
            getstatic org.bson.BsonType.DOCUMENT:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonType.ordinal:()I
            iconst_4
            iastore
        21: goto 23
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        22: pop
      StackMap locals:
      StackMap stack:
        23: aload 0
            getstatic org.bson.BsonType.DOUBLE:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonType.ordinal:()I
            iconst_2
            iastore
        24: goto 26
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        25: pop
      StackMap locals:
      StackMap stack:
        26: aload 0
            getstatic org.bson.BsonType.END_OF_DOCUMENT:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonType.ordinal:()I
            iconst_1
            iastore
        27: goto 29
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        28: pop
      StackMap locals:
      StackMap stack:
        29: aload 0
            getstatic org.bson.BsonType.INT32:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonType.ordinal:()I
            bipush 17
            iastore
        30: goto 32
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        31: pop
      StackMap locals:
      StackMap stack:
        32: aload 0
            getstatic org.bson.BsonType.INT64:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonType.ordinal:()I
            bipush 19
            iastore
        33: goto 35
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        34: pop
      StackMap locals:
      StackMap stack:
        35: aload 0
            getstatic org.bson.BsonType.JAVASCRIPT:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonType.ordinal:()I
            bipush 14
            iastore
        36: goto 38
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        37: pop
      StackMap locals:
      StackMap stack:
        38: aload 0
            getstatic org.bson.BsonType.JAVASCRIPT_WITH_SCOPE:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonType.ordinal:()I
            bipush 16
            iastore
        39: goto 41
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        40: pop
      StackMap locals:
      StackMap stack:
        41: aload 0
            getstatic org.bson.BsonType.MAX_KEY:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonType.ordinal:()I
            bipush 22
            iastore
        42: goto 44
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        43: pop
      StackMap locals:
      StackMap stack:
        44: aload 0
            getstatic org.bson.BsonType.MIN_KEY:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonType.ordinal:()I
            bipush 21
            iastore
        45: goto 47
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        46: pop
      StackMap locals:
      StackMap stack:
        47: aload 0
            getstatic org.bson.BsonType.NULL:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonType.ordinal:()I
            bipush 11
            iastore
        48: goto 50
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        49: pop
      StackMap locals:
      StackMap stack:
        50: aload 0
            getstatic org.bson.BsonType.OBJECT_ID:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonType.ordinal:()I
            bipush 8
            iastore
        51: goto 53
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        52: pop
      StackMap locals:
      StackMap stack:
        53: aload 0
            getstatic org.bson.BsonType.REGULAR_EXPRESSION:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonType.ordinal:()I
            bipush 12
            iastore
        54: goto 56
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        55: pop
      StackMap locals:
      StackMap stack:
        56: aload 0
            getstatic org.bson.BsonType.STRING:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonType.ordinal:()I
            iconst_3
            iastore
        57: goto 59
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        58: pop
      StackMap locals:
      StackMap stack:
        59: aload 0
            getstatic org.bson.BsonType.SYMBOL:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonType.ordinal:()I
            bipush 15
            iastore
        60: goto 62
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        61: pop
      StackMap locals:
      StackMap stack:
        62: aload 0
            getstatic org.bson.BsonType.TIMESTAMP:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonType.ordinal:()I
            bipush 18
            iastore
        63: goto 65
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        64: pop
      StackMap locals:
      StackMap stack:
        65: aload 0
            getstatic org.bson.BsonType.UNDEFINED:Lorg/bson/BsonType;
            invokevirtual org.bson.BsonType.ordinal:()I
            bipush 7
            iastore
        66: goto 68
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        67: pop
      StackMap locals:
      StackMap stack:
        68: aload 0
            dup
            putstatic org.bson.json.JsonReader.$SWITCH_TABLE$org$bson$BsonType:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
          14    15      16  Class java.lang.NoSuchFieldError
          17    18      19  Class java.lang.NoSuchFieldError
          20    21      22  Class java.lang.NoSuchFieldError
          23    24      25  Class java.lang.NoSuchFieldError
          26    27      28  Class java.lang.NoSuchFieldError
          29    30      31  Class java.lang.NoSuchFieldError
          32    33      34  Class java.lang.NoSuchFieldError
          35    36      37  Class java.lang.NoSuchFieldError
          38    39      40  Class java.lang.NoSuchFieldError
          41    42      43  Class java.lang.NoSuchFieldError
          44    45      46  Class java.lang.NoSuchFieldError
          47    48      49  Class java.lang.NoSuchFieldError
          50    51      52  Class java.lang.NoSuchFieldError
          53    54      55  Class java.lang.NoSuchFieldError
          56    57      58  Class java.lang.NoSuchFieldError
          59    60      61  Class java.lang.NoSuchFieldError
          62    63      64  Class java.lang.NoSuchFieldError
          65    66      67  Class java.lang.NoSuchFieldError
}
SourceFile: "JsonReader.java"
NestMembers:
  org.bson.json.JsonReader$Context  org.bson.json.JsonReader$Mark
InnerClasses:
  protected abstract Context = org.bson.AbstractBsonReader$Context of org.bson.AbstractBsonReader
  public final State = org.bson.AbstractBsonReader$State of org.bson.AbstractBsonReader
  protected Context = org.bson.json.JsonReader$Context of org.bson.json.JsonReader
  protected Mark = org.bson.json.JsonReader$Mark of org.bson.json.JsonReader