final class org.jvnet.mimepull.BASE64DecoderStream extends java.io.FilterInputStream
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: org.jvnet.mimepull.BASE64DecoderStream
  super_class: java.io.FilterInputStream
{
  private byte[] buffer;
    descriptor: [B
    flags: (0x0002) ACC_PRIVATE

  private int bufsize;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int index;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

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

  private int input_pos;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int input_len;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private boolean ignoreErrors;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private static final char[] pem_array;
    descriptor: [C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final byte[] pem_convert_array;
    descriptor: [B
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=1, args_size=0
         0: .line 186
            bipush 64
            newarray 5
            dup
            iconst_0
         1: .line 187
            bipush 65
            castore
            dup
            iconst_1
            bipush 66
            castore
            dup
            iconst_2
            bipush 67
            castore
            dup
            iconst_3
            bipush 68
            castore
            dup
            iconst_4
            bipush 69
            castore
            dup
            iconst_5
            bipush 70
            castore
            dup
            bipush 6
            bipush 71
            castore
            dup
            bipush 7
            bipush 72
            castore
            dup
            bipush 8
         2: .line 188
            bipush 73
            castore
            dup
            bipush 9
            bipush 74
            castore
            dup
            bipush 10
            bipush 75
            castore
            dup
            bipush 11
            bipush 76
            castore
            dup
            bipush 12
            bipush 77
            castore
            dup
            bipush 13
            bipush 78
            castore
            dup
            bipush 14
            bipush 79
            castore
            dup
            bipush 15
            bipush 80
            castore
            dup
            bipush 16
         3: .line 189
            bipush 81
            castore
            dup
            bipush 17
            bipush 82
            castore
            dup
            bipush 18
            bipush 83
            castore
            dup
            bipush 19
            bipush 84
            castore
            dup
            bipush 20
            bipush 85
            castore
            dup
            bipush 21
            bipush 86
            castore
            dup
            bipush 22
            bipush 87
            castore
            dup
            bipush 23
            bipush 88
            castore
            dup
            bipush 24
         4: .line 190
            bipush 89
            castore
            dup
            bipush 25
            bipush 90
            castore
            dup
            bipush 26
            bipush 97
            castore
            dup
            bipush 27
            bipush 98
            castore
            dup
            bipush 28
            bipush 99
            castore
            dup
            bipush 29
            bipush 100
            castore
            dup
            bipush 30
            bipush 101
            castore
            dup
            bipush 31
            bipush 102
            castore
            dup
            bipush 32
         5: .line 191
            bipush 103
            castore
            dup
            bipush 33
            bipush 104
            castore
            dup
            bipush 34
            bipush 105
            castore
            dup
            bipush 35
            bipush 106
            castore
            dup
            bipush 36
            bipush 107
            castore
            dup
            bipush 37
            bipush 108
            castore
            dup
            bipush 38
            bipush 109
            castore
            dup
            bipush 39
            bipush 110
            castore
            dup
            bipush 40
         6: .line 192
            bipush 111
            castore
            dup
            bipush 41
            bipush 112
            castore
            dup
            bipush 42
            bipush 113
            castore
            dup
            bipush 43
            bipush 114
            castore
            dup
            bipush 44
            bipush 115
            castore
            dup
            bipush 45
            bipush 116
            castore
            dup
            bipush 46
            bipush 117
            castore
            dup
            bipush 47
            bipush 118
            castore
            dup
            bipush 48
         7: .line 193
            bipush 119
            castore
            dup
            bipush 49
            bipush 120
            castore
            dup
            bipush 50
            bipush 121
            castore
            dup
            bipush 51
            bipush 122
            castore
            dup
            bipush 52
            bipush 48
            castore
            dup
            bipush 53
            bipush 49
            castore
            dup
            bipush 54
            bipush 50
            castore
            dup
            bipush 55
            bipush 51
            castore
            dup
            bipush 56
         8: .line 194
            bipush 52
            castore
            dup
            bipush 57
            bipush 53
            castore
            dup
            bipush 58
            bipush 54
            castore
            dup
            bipush 59
            bipush 55
            castore
            dup
            bipush 60
            bipush 56
            castore
            dup
            bipush 61
            bipush 57
            castore
            dup
            bipush 62
            bipush 43
            castore
            dup
            bipush 63
            bipush 47
            castore
         9: .line 186
            putstatic org.jvnet.mimepull.BASE64DecoderStream.pem_array:[C
        10: .line 197
            sipush 256
            newarray 8
            putstatic org.jvnet.mimepull.BASE64DecoderStream.pem_convert_array:[B
        11: .line 200
            iconst_0
            istore 0 /* i */
        start local 0 // int i
        12: goto 15
        13: .line 201
      StackMap locals: int
      StackMap stack:
            getstatic org.jvnet.mimepull.BASE64DecoderStream.pem_convert_array:[B
            iload 0 /* i */
            iconst_m1
            bastore
        14: .line 200
            iinc 0 /* i */ 1
      StackMap locals:
      StackMap stack:
        15: iload 0 /* i */
            sipush 255
            if_icmplt 13
        end local 0 // int i
        16: .line 203
            iconst_0
            istore 0 /* i */
        start local 0 // int i
        17: goto 20
        18: .line 204
      StackMap locals:
      StackMap stack:
            getstatic org.jvnet.mimepull.BASE64DecoderStream.pem_convert_array:[B
            getstatic org.jvnet.mimepull.BASE64DecoderStream.pem_array:[C
            iload 0 /* i */
            caload
            iload 0 /* i */
            i2b
            bastore
        19: .line 203
            iinc 0 /* i */ 1
      StackMap locals:
      StackMap stack:
        20: iload 0 /* i */
            getstatic org.jvnet.mimepull.BASE64DecoderStream.pem_array:[C
            arraylength
            if_icmplt 18
        end local 0 // int i
        21: .line 206
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
           12   16     0     i  I
           17   21     0     i  I

  public void <init>(java.io.InputStream);
    descriptor: (Ljava/io/InputStream;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.jvnet.mimepull.BASE64DecoderStream this
        start local 1 // java.io.InputStream in
         0: .line 49
            aload 0 /* this */
            aload 1 /* in */
            invokespecial java.io.FilterInputStream.<init>:(Ljava/io/InputStream;)V
         1: .line 28
            aload 0 /* this */
            iconst_3
            newarray 8
            putfield org.jvnet.mimepull.BASE64DecoderStream.buffer:[B
         2: .line 29
            aload 0 /* this */
            iconst_0
            putfield org.jvnet.mimepull.BASE64DecoderStream.bufsize:I
         3: .line 30
            aload 0 /* this */
            iconst_0
            putfield org.jvnet.mimepull.BASE64DecoderStream.index:I
         4: .line 34
            aload 0 /* this */
            sipush 8190
            newarray 8
            putfield org.jvnet.mimepull.BASE64DecoderStream.input_buffer:[B
         5: .line 35
            aload 0 /* this */
            iconst_0
            putfield org.jvnet.mimepull.BASE64DecoderStream.input_pos:I
         6: .line 36
            aload 0 /* this */
            iconst_0
            putfield org.jvnet.mimepull.BASE64DecoderStream.input_len:I
         7: .line 38
            aload 0 /* this */
            iconst_0
            putfield org.jvnet.mimepull.BASE64DecoderStream.ignoreErrors:Z
         8: .line 51
            aload 0 /* this */
         9: .line 52
            ldc "mail.mime.base64.ignoreerrors"
            iconst_0
        10: .line 51
            invokestatic org.jvnet.mimepull.PropUtil.getBooleanSystemProperty:(Ljava/lang/String;Z)Z
            putfield org.jvnet.mimepull.BASE64DecoderStream.ignoreErrors:Z
        11: .line 53
            return
        end local 1 // java.io.InputStream in
        end local 0 // org.jvnet.mimepull.BASE64DecoderStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lorg/jvnet/mimepull/BASE64DecoderStream;
            0   12     1    in  Ljava/io/InputStream;
    MethodParameters:
      Name  Flags
      in    

  public void <init>(java.io.InputStream, boolean);
    descriptor: (Ljava/io/InputStream;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.jvnet.mimepull.BASE64DecoderStream this
        start local 1 // java.io.InputStream in
        start local 2 // boolean ignoreErrors
         0: .line 62
            aload 0 /* this */
            aload 1 /* in */
            invokespecial java.io.FilterInputStream.<init>:(Ljava/io/InputStream;)V
         1: .line 28
            aload 0 /* this */
            iconst_3
            newarray 8
            putfield org.jvnet.mimepull.BASE64DecoderStream.buffer:[B
         2: .line 29
            aload 0 /* this */
            iconst_0
            putfield org.jvnet.mimepull.BASE64DecoderStream.bufsize:I
         3: .line 30
            aload 0 /* this */
            iconst_0
            putfield org.jvnet.mimepull.BASE64DecoderStream.index:I
         4: .line 34
            aload 0 /* this */
            sipush 8190
            newarray 8
            putfield org.jvnet.mimepull.BASE64DecoderStream.input_buffer:[B
         5: .line 35
            aload 0 /* this */
            iconst_0
            putfield org.jvnet.mimepull.BASE64DecoderStream.input_pos:I
         6: .line 36
            aload 0 /* this */
            iconst_0
            putfield org.jvnet.mimepull.BASE64DecoderStream.input_len:I
         7: .line 38
            aload 0 /* this */
            iconst_0
            putfield org.jvnet.mimepull.BASE64DecoderStream.ignoreErrors:Z
         8: .line 63
            aload 0 /* this */
            iload 2 /* ignoreErrors */
            putfield org.jvnet.mimepull.BASE64DecoderStream.ignoreErrors:Z
         9: .line 64
            return
        end local 2 // boolean ignoreErrors
        end local 1 // java.io.InputStream in
        end local 0 // org.jvnet.mimepull.BASE64DecoderStream this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   10     0          this  Lorg/jvnet/mimepull/BASE64DecoderStream;
            0   10     1            in  Ljava/io/InputStream;
            0   10     2  ignoreErrors  Z
    MethodParameters:
              Name  Flags
      in            
      ignoreErrors  

  public int read();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // org.jvnet.mimepull.BASE64DecoderStream this
         0: .line 81
            aload 0 /* this */
            getfield org.jvnet.mimepull.BASE64DecoderStream.index:I
            aload 0 /* this */
            getfield org.jvnet.mimepull.BASE64DecoderStream.bufsize:I
            if_icmplt 5
         1: .line 82
            aload 0 /* this */
            aload 0 /* this */
            aload 0 /* this */
            getfield org.jvnet.mimepull.BASE64DecoderStream.buffer:[B
            iconst_0
            aload 0 /* this */
            getfield org.jvnet.mimepull.BASE64DecoderStream.buffer:[B
            arraylength
            invokevirtual org.jvnet.mimepull.BASE64DecoderStream.decode:([BII)I
            putfield org.jvnet.mimepull.BASE64DecoderStream.bufsize:I
         2: .line 83
            aload 0 /* this */
            getfield org.jvnet.mimepull.BASE64DecoderStream.bufsize:I
            ifgt 4
         3: .line 84
            iconst_m1
            ireturn
         4: .line 86
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield org.jvnet.mimepull.BASE64DecoderStream.index:I
         5: .line 88
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jvnet.mimepull.BASE64DecoderStream.buffer:[B
            aload 0 /* this */
            dup
            getfield org.jvnet.mimepull.BASE64DecoderStream.index:I
            dup_x1
            iconst_1
            iadd
            putfield org.jvnet.mimepull.BASE64DecoderStream.index:I
            baload
            sipush 255
            iand
            ireturn
        end local 0 // org.jvnet.mimepull.BASE64DecoderStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/jvnet/mimepull/BASE64DecoderStream;
    Exceptions:
      throws java.io.IOException

  public int read(byte[], int, int);
    descriptor: ([BII)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=7, args_size=4
        start local 0 // org.jvnet.mimepull.BASE64DecoderStream this
        start local 1 // byte[] buf
        start local 2 // int off
        start local 3 // int len
         0: .line 108
            iload 2 /* off */
            istore 4 /* off0 */
        start local 4 // int off0
         1: .line 109
            goto 4
         2: .line 110
      StackMap locals: int
      StackMap stack:
            aload 1 /* buf */
            iload 2 /* off */
            iinc 2 /* off */ 1
            aload 0 /* this */
            getfield org.jvnet.mimepull.BASE64DecoderStream.buffer:[B
            aload 0 /* this */
            dup
            getfield org.jvnet.mimepull.BASE64DecoderStream.index:I
            dup_x1
            iconst_1
            iadd
            putfield org.jvnet.mimepull.BASE64DecoderStream.index:I
            baload
            bastore
         3: .line 111
            iinc 3 /* len */ -1
         4: .line 109
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jvnet.mimepull.BASE64DecoderStream.index:I
            aload 0 /* this */
            getfield org.jvnet.mimepull.BASE64DecoderStream.bufsize:I
            if_icmpge 5
            iload 3 /* len */
            ifgt 2
         5: .line 113
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jvnet.mimepull.BASE64DecoderStream.index:I
            aload 0 /* this */
            getfield org.jvnet.mimepull.BASE64DecoderStream.bufsize:I
            if_icmplt 7
         6: .line 114
            aload 0 /* this */
            aload 0 /* this */
            iconst_0
            dup_x1
            putfield org.jvnet.mimepull.BASE64DecoderStream.index:I
            putfield org.jvnet.mimepull.BASE64DecoderStream.bufsize:I
         7: .line 117
      StackMap locals:
      StackMap stack:
            iload 3 /* len */
            iconst_3
            idiv
            iconst_3
            imul
            istore 5 /* bsize */
        start local 5 // int bsize
         8: .line 118
            iload 5 /* bsize */
            ifle 21
         9: .line 119
            aload 0 /* this */
            aload 1 /* buf */
            iload 2 /* off */
            iload 5 /* bsize */
            invokevirtual org.jvnet.mimepull.BASE64DecoderStream.decode:([BII)I
            istore 6 /* size */
        start local 6 // int size
        10: .line 120
            iload 2 /* off */
            iload 6 /* size */
            iadd
            istore 2 /* off */
        11: .line 121
            iload 3 /* len */
            iload 6 /* size */
            isub
            istore 3 /* len */
        12: .line 123
            iload 6 /* size */
            iload 5 /* bsize */
            if_icmpeq 21
        13: .line 124
            iload 2 /* off */
            iload 4 /* off0 */
            if_icmpne 15
        14: .line 125
            iconst_m1
            ireturn
        15: .line 127
      StackMap locals: int int
      StackMap stack:
            iload 2 /* off */
            iload 4 /* off0 */
            isub
            ireturn
        end local 6 // int size
        16: .line 134
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jvnet.mimepull.BASE64DecoderStream.read:()I
            istore 6 /* c */
        start local 6 // int c
        17: .line 135
            iload 6 /* c */
            iconst_m1
            if_icmpne 19
        18: .line 136
            goto 22
        19: .line 138
      StackMap locals: int
      StackMap stack:
            aload 1 /* buf */
            iload 2 /* off */
            iinc 2 /* off */ 1
            iload 6 /* c */
            i2b
            bastore
        end local 6 // int c
        20: .line 133
            iinc 3 /* len */ -1
      StackMap locals:
      StackMap stack:
        21: iload 3 /* len */
            ifgt 16
        22: .line 141
      StackMap locals:
      StackMap stack:
            iload 2 /* off */
            iload 4 /* off0 */
            if_icmpne 24
        23: .line 142
            iconst_m1
            ireturn
        24: .line 144
      StackMap locals:
      StackMap stack:
            iload 2 /* off */
            iload 4 /* off0 */
            isub
            ireturn
        end local 5 // int bsize
        end local 4 // int off0
        end local 3 // int len
        end local 2 // int off
        end local 1 // byte[] buf
        end local 0 // org.jvnet.mimepull.BASE64DecoderStream this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   25     0   this  Lorg/jvnet/mimepull/BASE64DecoderStream;
            0   25     1    buf  [B
            0   25     2    off  I
            0   25     3    len  I
            1   25     4   off0  I
            8   25     5  bsize  I
           10   16     6   size  I
           17   20     6      c  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      buf   
      off   
      len   

  public long skip(long);
    descriptor: (J)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=2
        start local 0 // org.jvnet.mimepull.BASE64DecoderStream this
        start local 1 // long n
         0: .line 153
            lconst_0
            lstore 3 /* skipped */
        start local 3 // long skipped
         1: .line 154
            goto 3
         2: .line 155
      StackMap locals: long
      StackMap stack:
            lload 3 /* skipped */
            lconst_1
            ladd
            lstore 3 /* skipped */
         3: .line 154
      StackMap locals:
      StackMap stack:
            lload 1 /* n */
            dup2
            lconst_1
            lsub
            lstore 1 /* n */
            lconst_0
            lcmp
            ifle 4
            aload 0 /* this */
            invokevirtual org.jvnet.mimepull.BASE64DecoderStream.read:()I
            ifge 2
         4: .line 157
      StackMap locals:
      StackMap stack:
            lload 3 /* skipped */
            lreturn
        end local 3 // long skipped
        end local 1 // long n
        end local 0 // org.jvnet.mimepull.BASE64DecoderStream this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lorg/jvnet/mimepull/BASE64DecoderStream;
            0    5     1        n  J
            1    5     3  skipped  J
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      n     

  public boolean markSupported();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jvnet.mimepull.BASE64DecoderStream this
         0: .line 166
            iconst_0
            ireturn
        end local 0 // org.jvnet.mimepull.BASE64DecoderStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jvnet/mimepull/BASE64DecoderStream;

  public int available();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.jvnet.mimepull.BASE64DecoderStream this
         0: .line 179
            aload 0 /* this */
            getfield org.jvnet.mimepull.BASE64DecoderStream.in:Ljava/io/InputStream;
            invokevirtual java.io.InputStream.available:()I
            iconst_3
            imul
            iconst_4
            idiv
            aload 0 /* this */
            getfield org.jvnet.mimepull.BASE64DecoderStream.bufsize:I
            aload 0 /* this */
            getfield org.jvnet.mimepull.BASE64DecoderStream.index:I
            isub
            iadd
            ireturn
        end local 0 // org.jvnet.mimepull.BASE64DecoderStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jvnet/mimepull/BASE64DecoderStream;
    Exceptions:
      throws java.io.IOException

  private int decode(byte[], int, int);
    descriptor: ([BII)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=10, args_size=4
        start local 0 // org.jvnet.mimepull.BASE64DecoderStream this
        start local 1 // byte[] outbuf
        start local 2 // int pos
        start local 3 // int len
         0: .line 223
            iload 2 /* pos */
            istore 4 /* pos0 */
        start local 4 // int pos0
         1: .line 224
            goto 73
         2: .line 230
      StackMap locals: int
      StackMap stack:
            iconst_0
            istore 5 /* got */
        start local 5 // int got
         3: .line 231
            iconst_0
            istore 6 /* val */
        start local 6 // int val
         4: .line 232
            goto 65
         5: .line 233
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.jvnet.mimepull.BASE64DecoderStream.getByte:()I
            istore 7 /* i */
        start local 7 // int i
         6: .line 234
            iload 7 /* i */
            iconst_m1
            if_icmpeq 7
            iload 7 /* i */
            bipush -2
            if_icmpne 62
         7: .line 236
      StackMap locals: int
      StackMap stack:
            iload 7 /* i */
            iconst_m1
            if_icmpne 19
         8: .line 237
            iload 5 /* got */
            ifne 10
         9: .line 238
            iload 2 /* pos */
            iload 4 /* pos0 */
            isub
            ireturn
        10: .line 240
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jvnet.mimepull.BASE64DecoderStream.ignoreErrors:Z
            ifne 17
        11: .line 241
            new org.jvnet.mimepull.DecodingException
            dup
        12: .line 242
            new java.lang.StringBuilder
            dup
            ldc "BASE64Decoder: Error in encoded stream: needed 4 valid base64 characters but only got "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        13: .line 244
            iload 5 /* got */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " before EOF"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        14: .line 245
            aload 0 /* this */
            invokevirtual org.jvnet.mimepull.BASE64DecoderStream.recentChars:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        15: .line 242
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        16: .line 241
            invokespecial org.jvnet.mimepull.DecodingException.<init>:(Ljava/lang/String;)V
            athrow
        17: .line 247
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 8 /* atEOF */
        start local 8 // boolean atEOF
        18: .line 248
            goto 30
        end local 8 // boolean atEOF
        19: .line 251
      StackMap locals:
      StackMap stack:
            iload 5 /* got */
            iconst_2
            if_icmpge 27
            aload 0 /* this */
            getfield org.jvnet.mimepull.BASE64DecoderStream.ignoreErrors:Z
            ifne 27
        20: .line 252
            new org.jvnet.mimepull.DecodingException
            dup
        21: .line 253
            new java.lang.StringBuilder
            dup
            ldc "BASE64Decoder: Error in encoded stream: needed at least 2 valid base64 characters, but only got "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        22: .line 255
            iload 5 /* got */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        23: .line 256
            ldc " before padding character (=)"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        24: .line 257
            aload 0 /* this */
            invokevirtual org.jvnet.mimepull.BASE64DecoderStream.recentChars:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        25: .line 253
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        26: .line 252
            invokespecial org.jvnet.mimepull.DecodingException.<init>:(Ljava/lang/String;)V
            athrow
        27: .line 261
      StackMap locals:
      StackMap stack:
            iload 5 /* got */
            ifne 29
        28: .line 262
            iload 2 /* pos */
            iload 4 /* pos0 */
            isub
            ireturn
        29: .line 264
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 8 /* atEOF */
        start local 8 // boolean atEOF
        30: .line 271
      StackMap locals: int
      StackMap stack:
            iload 5 /* got */
            iconst_1
            isub
            istore 9 /* size */
        start local 9 // int size
        31: .line 272
            iload 9 /* size */
            ifne 33
        32: .line 273
            iconst_1
            istore 9 /* size */
        33: .line 277
      StackMap locals: int
      StackMap stack:
            iinc 5 /* got */ 1
        34: .line 278
            iload 6 /* val */
            bipush 6
            ishl
            istore 6 /* val */
        35: .line 280
            goto 54
        36: .line 281
      StackMap locals:
      StackMap stack:
            iload 8 /* atEOF */
            ifne 52
        37: .line 284
            aload 0 /* this */
            invokevirtual org.jvnet.mimepull.BASE64DecoderStream.getByte:()I
            istore 7 /* i */
        38: .line 285
            iload 7 /* i */
            iconst_m1
            if_icmpne 45
        39: .line 286
            aload 0 /* this */
            getfield org.jvnet.mimepull.BASE64DecoderStream.ignoreErrors:Z
            ifne 52
        40: .line 287
            new org.jvnet.mimepull.DecodingException
            dup
        41: .line 288
            new java.lang.StringBuilder
            dup
            ldc "BASE64Decoder: Error in encoded stream: hit EOF while looking for padding characters (=)"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        42: .line 291
            aload 0 /* this */
            invokevirtual org.jvnet.mimepull.BASE64DecoderStream.recentChars:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        43: .line 288
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        44: .line 287
            invokespecial org.jvnet.mimepull.DecodingException.<init>:(Ljava/lang/String;)V
            athrow
        45: .line 293
      StackMap locals:
      StackMap stack:
            iload 7 /* i */
            bipush -2
            if_icmpeq 52
        46: .line 294
            aload 0 /* this */
            getfield org.jvnet.mimepull.BASE64DecoderStream.ignoreErrors:Z
            ifne 52
        47: .line 295
            new org.jvnet.mimepull.DecodingException
            dup
        48: .line 296
            new java.lang.StringBuilder
            dup
            ldc "BASE64Decoder: Error in encoded stream: found valid base64 character after a padding character (=)"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        49: .line 299
            aload 0 /* this */
            invokevirtual org.jvnet.mimepull.BASE64DecoderStream.recentChars:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        50: .line 296
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        51: .line 295
            invokespecial org.jvnet.mimepull.DecodingException.<init>:(Ljava/lang/String;)V
            athrow
        52: .line 303
      StackMap locals:
      StackMap stack:
            iload 6 /* val */
            bipush 6
            ishl
            istore 6 /* val */
        53: .line 304
            iinc 5 /* got */ 1
        54: .line 280
      StackMap locals:
      StackMap stack:
            iload 5 /* got */
            iconst_4
            if_icmplt 36
        55: .line 308
            iload 6 /* val */
            bipush 8
            ishr
            istore 6 /* val */
        56: .line 309
            iload 9 /* size */
            iconst_2
            if_icmpne 58
        57: .line 310
            aload 1 /* outbuf */
            iload 2 /* pos */
            iconst_1
            iadd
            iload 6 /* val */
            sipush 255
            iand
            i2b
            bastore
        58: .line 312
      StackMap locals:
      StackMap stack:
            iload 6 /* val */
            bipush 8
            ishr
            istore 6 /* val */
        59: .line 313
            aload 1 /* outbuf */
            iload 2 /* pos */
            iload 6 /* val */
            sipush 255
            iand
            i2b
            bastore
        60: .line 315
            iload 2 /* pos */
            iload 9 /* size */
            iadd
            istore 2 /* pos */
        61: .line 316
            iload 2 /* pos */
            iload 4 /* pos0 */
            isub
            ireturn
        end local 9 // int size
        end local 8 // boolean atEOF
        62: .line 319
      StackMap locals:
      StackMap stack:
            iload 6 /* val */
            bipush 6
            ishl
            istore 6 /* val */
        63: .line 320
            iinc 5 /* got */ 1
        64: .line 321
            iload 6 /* val */
            iload 7 /* i */
            ior
            istore 6 /* val */
        end local 7 // int i
        65: .line 232
      StackMap locals:
      StackMap stack:
            iload 5 /* got */
            iconst_4
            if_icmplt 5
        66: .line 326
            aload 1 /* outbuf */
            iload 2 /* pos */
            iconst_2
            iadd
            iload 6 /* val */
            sipush 255
            iand
            i2b
            bastore
        67: .line 327
            iload 6 /* val */
            bipush 8
            ishr
            istore 6 /* val */
        68: .line 328
            aload 1 /* outbuf */
            iload 2 /* pos */
            iconst_1
            iadd
            iload 6 /* val */
            sipush 255
            iand
            i2b
            bastore
        69: .line 329
            iload 6 /* val */
            bipush 8
            ishr
            istore 6 /* val */
        70: .line 330
            aload 1 /* outbuf */
            iload 2 /* pos */
            iload 6 /* val */
            sipush 255
            iand
            i2b
            bastore
        71: .line 331
            iinc 3 /* len */ -3
        72: .line 332
            iinc 2 /* pos */ 3
        end local 6 // int val
        end local 5 // int got
        73: .line 224
      StackMap locals:
      StackMap stack:
            iload 3 /* len */
            iconst_3
            if_icmpge 2
        74: .line 334
            iload 2 /* pos */
            iload 4 /* pos0 */
            isub
            ireturn
        end local 4 // int pos0
        end local 3 // int len
        end local 2 // int pos
        end local 1 // byte[] outbuf
        end local 0 // org.jvnet.mimepull.BASE64DecoderStream this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   75     0    this  Lorg/jvnet/mimepull/BASE64DecoderStream;
            0   75     1  outbuf  [B
            0   75     2     pos  I
            0   75     3     len  I
            1   75     4    pos0  I
            3   73     5     got  I
            4   73     6     val  I
            6   65     7       i  I
           18   19     8   atEOF  Z
           30   62     8   atEOF  Z
           31   62     9    size  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      outbuf  
      pos     
      len     

  private int getByte();
    descriptor: ()I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // org.jvnet.mimepull.BASE64DecoderStream this
         0: .line 348
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jvnet.mimepull.BASE64DecoderStream.input_pos:I
            aload 0 /* this */
            getfield org.jvnet.mimepull.BASE64DecoderStream.input_len:I
            if_icmplt 8
         1: .line 350
            aload 0 /* this */
            aload 0 /* this */
            getfield org.jvnet.mimepull.BASE64DecoderStream.in:Ljava/io/InputStream;
            aload 0 /* this */
            getfield org.jvnet.mimepull.BASE64DecoderStream.input_buffer:[B
            invokevirtual java.io.InputStream.read:([B)I
            putfield org.jvnet.mimepull.BASE64DecoderStream.input_len:I
         2: .line 351
            goto 5
      StackMap locals:
      StackMap stack: java.io.EOFException
         3: pop
         4: .line 352
            iconst_m1
            ireturn
         5: .line 354
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jvnet.mimepull.BASE64DecoderStream.input_len:I
            ifgt 7
         6: .line 355
            iconst_m1
            ireturn
         7: .line 357
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield org.jvnet.mimepull.BASE64DecoderStream.input_pos:I
         8: .line 360
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jvnet.mimepull.BASE64DecoderStream.input_buffer:[B
            aload 0 /* this */
            dup
            getfield org.jvnet.mimepull.BASE64DecoderStream.input_pos:I
            dup_x1
            iconst_1
            iadd
            putfield org.jvnet.mimepull.BASE64DecoderStream.input_pos:I
            baload
            sipush 255
            iand
            istore 1 /* c */
        start local 1 // int c
         9: .line 362
            iload 1 /* c */
            bipush 61
            if_icmpne 11
        10: .line 363
            bipush -2
            ireturn
        11: .line 366
      StackMap locals: int
      StackMap stack:
            getstatic org.jvnet.mimepull.BASE64DecoderStream.pem_convert_array:[B
            iload 1 /* c */
            baload
            istore 1 /* c */
        12: .line 368
            iload 1 /* c */
            iconst_m1
            if_icmpeq 0
        13: .line 369
            iload 1 /* c */
            ireturn
        end local 1 // int c
        end local 0 // org.jvnet.mimepull.BASE64DecoderStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0  this  Lorg/jvnet/mimepull/BASE64DecoderStream;
            9   14     1     c  I
      Exception table:
        from    to  target  type
           1     2       3  Class java.io.EOFException
    Exceptions:
      throws java.io.IOException

  private java.lang.String recentChars();
    descriptor: ()Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=5, args_size=1
        start local 0 // org.jvnet.mimepull.BASE64DecoderStream this
         0: .line 378
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 1 /* errstr */
        start local 1 // java.lang.StringBuilder errstr
         1: .line 379
            aload 0 /* this */
            getfield org.jvnet.mimepull.BASE64DecoderStream.input_pos:I
            bipush 10
            if_icmple 2
            bipush 10
            goto 3
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
         2: aload 0 /* this */
            getfield org.jvnet.mimepull.BASE64DecoderStream.input_pos:I
      StackMap locals:
      StackMap stack: int
         3: istore 2 /* nc */
        start local 2 // int nc
         4: .line 380
            iload 2 /* nc */
            ifle 20
         5: .line 381
            aload 1 /* errstr */
            ldc ", the "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 2 /* nc */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " most recent characters were: \""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         6: .line 382
            aload 0 /* this */
            getfield org.jvnet.mimepull.BASE64DecoderStream.input_pos:I
            iload 2 /* nc */
            isub
            istore 3 /* k */
        start local 3 // int k
         7: goto 18
         8: .line 383
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield org.jvnet.mimepull.BASE64DecoderStream.input_buffer:[B
            iload 3 /* k */
            baload
            sipush 255
            iand
            i2c
            istore 4 /* c */
        start local 4 // char c
         9: .line 384
            iload 4 /* c */
            tableswitch { // 9 - 13
                    9: 12
                   10: 11
                   11: 13
                   12: 13
                   13: 10
              default: 13
          }
        10: .line 385
      StackMap locals: int
      StackMap stack:
            aload 1 /* errstr */
            ldc "\\r"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
            goto 17
        11: .line 386
      StackMap locals:
      StackMap stack:
            aload 1 /* errstr */
            ldc "\\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
            goto 17
        12: .line 387
      StackMap locals:
      StackMap stack:
            aload 1 /* errstr */
            ldc "\\t"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
            goto 17
        13: .line 389
      StackMap locals:
      StackMap stack:
            iload 4 /* c */
            bipush 32
            if_icmplt 16
            iload 4 /* c */
            bipush 127
            if_icmpge 16
        14: .line 390
            aload 1 /* errstr */
            iload 4 /* c */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        15: .line 391
            goto 17
        16: .line 392
      StackMap locals:
      StackMap stack:
            aload 1 /* errstr */
            ldc "\\"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 4 /* c */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            pop
        end local 4 // char c
        17: .line 382
      StackMap locals:
      StackMap stack:
            iinc 3 /* k */ 1
      StackMap locals:
      StackMap stack:
        18: iload 3 /* k */
            aload 0 /* this */
            getfield org.jvnet.mimepull.BASE64DecoderStream.input_pos:I
            if_icmplt 8
        end local 3 // int k
        19: .line 396
            aload 1 /* errstr */
            ldc "\""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        20: .line 398
      StackMap locals:
      StackMap stack:
            aload 1 /* errstr */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 2 // int nc
        end local 1 // java.lang.StringBuilder errstr
        end local 0 // org.jvnet.mimepull.BASE64DecoderStream this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   21     0    this  Lorg/jvnet/mimepull/BASE64DecoderStream;
            1   21     1  errstr  Ljava/lang/StringBuilder;
            4   21     2      nc  I
            7   19     3       k  I
            9   17     4       c  C

  public static byte[] decode(byte[]);
    descriptor: ([B)[B
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=1
        start local 0 // byte[] inbuf
         0: .line 411
            aload 0 /* inbuf */
            arraylength
            iconst_4
            idiv
            iconst_3
            imul
            istore 1 /* size */
        start local 1 // int size
         1: .line 412
            iload 1 /* size */
            ifne 3
         2: .line 413
            aload 0 /* inbuf */
            areturn
         3: .line 416
      StackMap locals: int
      StackMap stack:
            aload 0 /* inbuf */
            aload 0 /* inbuf */
            arraylength
            iconst_1
            isub
            baload
            bipush 61
            if_icmpne 7
         4: .line 417
            iinc 1 /* size */ -1
         5: .line 418
            aload 0 /* inbuf */
            aload 0 /* inbuf */
            arraylength
            iconst_2
            isub
            baload
            bipush 61
            if_icmpne 7
         6: .line 419
            iinc 1 /* size */ -1
         7: .line 422
      StackMap locals:
      StackMap stack:
            iload 1 /* size */
            newarray 8
            astore 2 /* outbuf */
        start local 2 // byte[] outbuf
         8: .line 424
            iconst_0
            istore 3 /* inpos */
        start local 3 // int inpos
         9: iconst_0
            istore 4 /* outpos */
        start local 4 // int outpos
        10: .line 425
            aload 0 /* inbuf */
            arraylength
            istore 1 /* size */
        11: .line 426
            goto 35
        12: .line 428
      StackMap locals: byte[] int int
      StackMap stack:
            iconst_3
            istore 6 /* osize */
        start local 6 // int osize
        13: .line 429
            getstatic org.jvnet.mimepull.BASE64DecoderStream.pem_convert_array:[B
            aload 0 /* inbuf */
            iload 3 /* inpos */
            iinc 3 /* inpos */ 1
            baload
            sipush 255
            iand
            baload
            istore 5 /* val */
        start local 5 // int val
        14: .line 430
            iload 5 /* val */
            bipush 6
            ishl
            istore 5 /* val */
        15: .line 431
            iload 5 /* val */
            getstatic org.jvnet.mimepull.BASE64DecoderStream.pem_convert_array:[B
            aload 0 /* inbuf */
            iload 3 /* inpos */
            iinc 3 /* inpos */ 1
            baload
            sipush 255
            iand
            baload
            ior
            istore 5 /* val */
        16: .line 432
            iload 5 /* val */
            bipush 6
            ishl
            istore 5 /* val */
        17: .line 433
            aload 0 /* inbuf */
            iload 3 /* inpos */
            baload
            bipush 61
            if_icmpeq 20
        18: .line 434
            iload 5 /* val */
            getstatic org.jvnet.mimepull.BASE64DecoderStream.pem_convert_array:[B
            aload 0 /* inbuf */
            iload 3 /* inpos */
            iinc 3 /* inpos */ 1
            baload
            sipush 255
            iand
            baload
            ior
            istore 5 /* val */
        19: .line 435
            goto 21
        20: .line 436
      StackMap locals: int int
      StackMap stack:
            iinc 6 /* osize */ -1
        21: .line 438
      StackMap locals:
      StackMap stack:
            iload 5 /* val */
            bipush 6
            ishl
            istore 5 /* val */
        22: .line 439
            aload 0 /* inbuf */
            iload 3 /* inpos */
            baload
            bipush 61
            if_icmpeq 25
        23: .line 440
            iload 5 /* val */
            getstatic org.jvnet.mimepull.BASE64DecoderStream.pem_convert_array:[B
            aload 0 /* inbuf */
            iload 3 /* inpos */
            iinc 3 /* inpos */ 1
            baload
            sipush 255
            iand
            baload
            ior
            istore 5 /* val */
        24: .line 441
            goto 26
        25: .line 442
      StackMap locals:
      StackMap stack:
            iinc 6 /* osize */ -1
        26: .line 444
      StackMap locals:
      StackMap stack:
            iload 6 /* osize */
            iconst_2
            if_icmple 28
        27: .line 445
            aload 2 /* outbuf */
            iload 4 /* outpos */
            iconst_2
            iadd
            iload 5 /* val */
            sipush 255
            iand
            i2b
            bastore
        28: .line 447
      StackMap locals:
      StackMap stack:
            iload 5 /* val */
            bipush 8
            ishr
            istore 5 /* val */
        29: .line 448
            iload 6 /* osize */
            iconst_1
            if_icmple 31
        30: .line 449
            aload 2 /* outbuf */
            iload 4 /* outpos */
            iconst_1
            iadd
            iload 5 /* val */
            sipush 255
            iand
            i2b
            bastore
        31: .line 451
      StackMap locals:
      StackMap stack:
            iload 5 /* val */
            bipush 8
            ishr
            istore 5 /* val */
        32: .line 452
            aload 2 /* outbuf */
            iload 4 /* outpos */
            iload 5 /* val */
            sipush 255
            iand
            i2b
            bastore
        33: .line 453
            iload 4 /* outpos */
            iload 6 /* osize */
            iadd
            istore 4 /* outpos */
        34: .line 454
            iinc 1 /* size */ -4
        end local 6 // int osize
        end local 5 // int val
        35: .line 426
      StackMap locals:
      StackMap stack:
            iload 1 /* size */
            ifgt 12
        36: .line 456
            aload 2 /* outbuf */
            areturn
        end local 4 // int outpos
        end local 3 // int inpos
        end local 2 // byte[] outbuf
        end local 1 // int size
        end local 0 // byte[] inbuf
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   37     0   inbuf  [B
            1   37     1    size  I
            8   37     2  outbuf  [B
            9   37     3   inpos  I
           10   37     4  outpos  I
           14   35     5     val  I
           13   35     6   osize  I
    MethodParameters:
       Name  Flags
      inbuf  
}
SourceFile: "BASE64DecoderStream.java"