public final class io.vertx.ext.auth.impl.jose.JWT
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: io.vertx.ext.auth.impl.jose.JWT
  super_class: java.lang.Object
{
  private final io.vertx.core.impl.logging.Logger logger;
    descriptor: Lio/vertx/core/impl/logging/Logger;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private static final java.util.Random RND;
    descriptor: Ljava/util/Random;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.nio.charset.Charset UTF8;
    descriptor: Ljava/nio/charset/Charset;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.util.Base64$Encoder urlEncoder;
    descriptor: Ljava/util/Base64$Encoder;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.util.Base64$Decoder urlDecoder;
    descriptor: Ljava/util/Base64$Decoder;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.util.Base64$Decoder decoder;
    descriptor: Ljava/util/Base64$Decoder;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

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

  private final java.util.Map<java.lang.String, java.util.List<io.vertx.ext.auth.impl.jose.Crypto>> SIGN;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Lio/vertx/ext/auth/impl/jose/Crypto;>;>;

  private final java.util.Map<java.lang.String, java.util.List<io.vertx.ext.auth.impl.jose.Crypto>> VERIFY;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Lio/vertx/ext/auth/impl/jose/Crypto;>;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 47
            new java.util.Random
            dup
            invokespecial java.util.Random.<init>:()V
            putstatic io.vertx.ext.auth.impl.jose.JWT.RND:Ljava/util/Random;
         1: .line 49
            getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
            putstatic io.vertx.ext.auth.impl.jose.JWT.UTF8:Ljava/nio/charset/Charset;
         2: .line 52
            invokestatic java.util.Base64.getUrlEncoder:()Ljava/util/Base64$Encoder;
            invokevirtual java.util.Base64$Encoder.withoutPadding:()Ljava/util/Base64$Encoder;
            putstatic io.vertx.ext.auth.impl.jose.JWT.urlEncoder:Ljava/util/Base64$Encoder;
         3: .line 53
            invokestatic java.util.Base64.getUrlDecoder:()Ljava/util/Base64$Decoder;
            putstatic io.vertx.ext.auth.impl.jose.JWT.urlDecoder:Ljava/util/Base64$Decoder;
         4: .line 54
            invokestatic java.util.Base64.getDecoder:()Ljava/util/Base64$Decoder;
            putstatic io.vertx.ext.auth.impl.jose.JWT.decoder:Ljava/util/Base64$Decoder;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // io.vertx.ext.auth.impl.jose.JWT this
         0: .line 62
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 44
            aload 0 /* this */
            ldc Lio/vertx/ext/auth/impl/jose/JWT;
            invokestatic io.vertx.core.impl.logging.LoggerFactory.getLogger:(Ljava/lang/Class;)Lio/vertx/core/impl/logging/Logger;
            putfield io.vertx.ext.auth.impl.jose.JWT.logger:Lio/vertx/core/impl/logging/Logger;
         2: .line 56
            aload 0 /* this */
            iconst_0
            putfield io.vertx.ext.auth.impl.jose.JWT.allowEmbeddedKey:Z
         3: .line 59
            aload 0 /* this */
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
            putfield io.vertx.ext.auth.impl.jose.JWT.SIGN:Ljava/util/Map;
         4: .line 60
            aload 0 /* this */
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
            putfield io.vertx.ext.auth.impl.jose.JWT.VERIFY:Ljava/util/Map;
         5: .line 64
            aload 0 /* this */
            getfield io.vertx.ext.auth.impl.jose.JWT.SIGN:Ljava/util/Map;
            ldc "none"
            new io.vertx.ext.auth.impl.jose.CryptoNone
            dup
            invokespecial io.vertx.ext.auth.impl.jose.CryptoNone.<init>:()V
            invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 65
            aload 0 /* this */
            getfield io.vertx.ext.auth.impl.jose.JWT.VERIFY:Ljava/util/Map;
            ldc "none"
            new io.vertx.ext.auth.impl.jose.CryptoNone
            dup
            invokespecial io.vertx.ext.auth.impl.jose.CryptoNone.<init>:()V
            invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         7: .line 66
            return
        end local 0 // io.vertx.ext.auth.impl.jose.JWT this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lio/vertx/ext/auth/impl/jose/JWT;

  public io.vertx.ext.auth.impl.jose.JWT addJWK(io.vertx.ext.auth.impl.jose.JWK);
    descriptor: (Lio/vertx/ext/auth/impl/jose/JWK;)Lio/vertx/ext/auth/impl/jose/JWT;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // io.vertx.ext.auth.impl.jose.JWT this
        start local 1 // io.vertx.ext.auth.impl.jose.JWK jwk
         0: .line 76
            aconst_null
            astore 2 /* current */
        start local 2 // java.util.List current
         1: .line 78
            aload 1 /* jwk */
            iconst_2
            invokevirtual io.vertx.ext.auth.impl.jose.JWK.isFor:(I)Z
            ifeq 4
         2: .line 79
            aload 0 /* this */
            getfield io.vertx.ext.auth.impl.jose.JWT.VERIFY:Ljava/util/Map;
            aload 1 /* jwk */
            invokevirtual io.vertx.ext.auth.impl.jose.JWK.getAlgorithm:()Ljava/lang/String;
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  io/vertx/ext/auth/impl/jose/JWT.lambda$0(Ljava/lang/String;)Ljava/util/List; (6)
                  (Ljava/lang/String;)Ljava/util/List;
            invokeinterface java.util.Map.computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
            checkcast java.util.List
            astore 2 /* current */
         3: .line 80
            aload 0 /* this */
            aload 2 /* current */
            aload 1 /* jwk */
            invokevirtual io.vertx.ext.auth.impl.jose.JWT.addJWK:(Ljava/util/List;Lio/vertx/ext/auth/impl/jose/JWK;)V
         4: .line 83
      StackMap locals: java.util.List
      StackMap stack:
            aload 1 /* jwk */
            iconst_1
            invokevirtual io.vertx.ext.auth.impl.jose.JWK.isFor:(I)Z
            ifeq 7
         5: .line 84
            aload 0 /* this */
            getfield io.vertx.ext.auth.impl.jose.JWT.SIGN:Ljava/util/Map;
            aload 1 /* jwk */
            invokevirtual io.vertx.ext.auth.impl.jose.JWK.getAlgorithm:()Ljava/lang/String;
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  io/vertx/ext/auth/impl/jose/JWT.lambda$1(Ljava/lang/String;)Ljava/util/List; (6)
                  (Ljava/lang/String;)Ljava/util/List;
            invokeinterface java.util.Map.computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
            checkcast java.util.List
            astore 2 /* current */
         6: .line 85
            aload 0 /* this */
            aload 2 /* current */
            aload 1 /* jwk */
            invokevirtual io.vertx.ext.auth.impl.jose.JWT.addJWK:(Ljava/util/List;Lio/vertx/ext/auth/impl/jose/JWK;)V
         7: .line 88
      StackMap locals:
      StackMap stack:
            aload 2 /* current */
            ifnonnull 9
         8: .line 89
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "unknown JWK use: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* jwk */
            invokevirtual io.vertx.ext.auth.impl.jose.JWK.getUse:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 92
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 2 // java.util.List current
        end local 1 // io.vertx.ext.auth.impl.jose.JWK jwk
        end local 0 // io.vertx.ext.auth.impl.jose.JWT this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0     this  Lio/vertx/ext/auth/impl/jose/JWT;
            0   10     1      jwk  Lio/vertx/ext/auth/impl/jose/JWK;
            1   10     2  current  Ljava/util/List<Lio/vertx/ext/auth/impl/jose/Crypto;>;
    MethodParameters:
      Name  Flags
      jwk   

  public io.vertx.ext.auth.impl.jose.JWT allowEmbeddedKey(boolean);
    descriptor: (Z)Lio/vertx/ext/auth/impl/jose/JWT;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.ext.auth.impl.jose.JWT this
        start local 1 // boolean allowEmbeddedKey
         0: .line 109
            aload 0 /* this */
            iload 1 /* allowEmbeddedKey */
            putfield io.vertx.ext.auth.impl.jose.JWT.allowEmbeddedKey:Z
         1: .line 110
            aload 0 /* this */
            areturn
        end local 1 // boolean allowEmbeddedKey
        end local 0 // io.vertx.ext.auth.impl.jose.JWT this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    2     0              this  Lio/vertx/ext/auth/impl/jose/JWT;
            0    2     1  allowEmbeddedKey  Z
    MethodParameters:
                  Name  Flags
      allowEmbeddedKey  

  private void addJWK(java.util.List<io.vertx.ext.auth.impl.jose.Crypto>, io.vertx.ext.auth.impl.jose.JWK);
    descriptor: (Ljava/util/List;Lio/vertx/ext/auth/impl/jose/JWK;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // io.vertx.ext.auth.impl.jose.JWT this
        start local 1 // java.util.List current
        start local 2 // io.vertx.ext.auth.impl.jose.JWK jwk
         0: .line 114
            iconst_0
            istore 3 /* replaced */
        start local 3 // boolean replaced
         1: .line 115
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         2: goto 8
         3: .line 116
      StackMap locals: int int
      StackMap stack:
            aload 1 /* current */
            iload 4 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast io.vertx.ext.auth.impl.jose.Crypto
            invokeinterface io.vertx.ext.auth.impl.jose.Crypto.getLabel:()Ljava/lang/String;
            aload 2 /* jwk */
            invokevirtual io.vertx.ext.auth.impl.jose.JWK.getLabel:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 7
         4: .line 118
            aload 1 /* current */
            iload 4 /* i */
            aload 2 /* jwk */
            invokeinterface java.util.List.set:(ILjava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 119
            iconst_1
            istore 3 /* replaced */
         6: .line 120
            goto 9
         7: .line 115
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 4 /* i */
            aload 1 /* current */
            invokeinterface java.util.List.size:()I
            if_icmplt 3
        end local 4 // int i
         9: .line 124
      StackMap locals:
      StackMap stack:
            iload 3 /* replaced */
            ifne 11
        10: .line 126
            aload 1 /* current */
            aload 2 /* jwk */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        11: .line 128
      StackMap locals:
      StackMap stack:
            return
        end local 3 // boolean replaced
        end local 2 // io.vertx.ext.auth.impl.jose.JWK jwk
        end local 1 // java.util.List current
        end local 0 // io.vertx.ext.auth.impl.jose.JWT this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   12     0      this  Lio/vertx/ext/auth/impl/jose/JWT;
            0   12     1   current  Ljava/util/List<Lio/vertx/ext/auth/impl/jose/Crypto;>;
            0   12     2       jwk  Lio/vertx/ext/auth/impl/jose/JWK;
            1   12     3  replaced  Z
            2    9     4         i  I
    Signature: (Ljava/util/List<Lio/vertx/ext/auth/impl/jose/Crypto;>;Lio/vertx/ext/auth/impl/jose/JWK;)V
    MethodParameters:
         Name  Flags
      current  
      jwk      

  public static io.vertx.core.json.JsonObject parse(byte[]);
    descriptor: ([B)Lio/vertx/core/json/JsonObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // byte[] token
         0: .line 131
            new java.lang.String
            dup
            aload 0 /* token */
            getstatic io.vertx.ext.auth.impl.jose.JWT.UTF8:Ljava/nio/charset/Charset;
            invokespecial java.lang.String.<init>:([BLjava/nio/charset/Charset;)V
            invokestatic io.vertx.ext.auth.impl.jose.JWT.parse:(Ljava/lang/String;)Lio/vertx/core/json/JsonObject;
            areturn
        end local 0 // byte[] token
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  token  [B
    MethodParameters:
       Name  Flags
      token  final

  public static io.vertx.core.json.JsonObject parse(java.lang.String);
    descriptor: (Ljava/lang/String;)Lio/vertx/core/json/JsonObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=7, args_size=1
        start local 0 // java.lang.String token
         0: .line 135
            aload 0 /* token */
            ldc "\\."
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 1 /* segments */
        start local 1 // java.lang.String[] segments
         1: .line 136
            aload 1 /* segments */
            arraylength
            iconst_2
            if_icmplt 2
            aload 1 /* segments */
            arraylength
            iconst_3
            if_icmple 3
         2: .line 137
      StackMap locals: java.lang.String[]
      StackMap stack:
            new java.lang.RuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Not enough or too many segments ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* segments */
            arraylength
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 141
      StackMap locals:
      StackMap stack:
            aload 1 /* segments */
            iconst_0
            aaload
            astore 2 /* headerSeg */
        start local 2 // java.lang.String headerSeg
         4: .line 142
            aload 1 /* segments */
            iconst_1
            aaload
            astore 3 /* payloadSeg */
        start local 3 // java.lang.String payloadSeg
         5: .line 143
            aload 1 /* segments */
            arraylength
            iconst_2
            if_icmpne 6
            aconst_null
            goto 7
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
         6: aload 1 /* segments */
            iconst_2
            aaload
      StackMap locals:
      StackMap stack: java.lang.String
         7: astore 4 /* signatureSeg */
        start local 4 // java.lang.String signatureSeg
         8: .line 146
            new io.vertx.core.json.JsonObject
            dup
            new java.lang.String
            dup
            aload 2 /* headerSeg */
            invokestatic io.vertx.ext.auth.impl.jose.JWT.base64urlDecode:(Ljava/lang/String;)[B
            getstatic io.vertx.ext.auth.impl.jose.JWT.UTF8:Ljava/nio/charset/Charset;
            invokespecial java.lang.String.<init>:([BLjava/nio/charset/Charset;)V
            invokespecial io.vertx.core.json.JsonObject.<init>:(Ljava/lang/String;)V
            astore 5 /* header */
        start local 5 // io.vertx.core.json.JsonObject header
         9: .line 147
            new io.vertx.core.json.JsonObject
            dup
            new java.lang.String
            dup
            aload 3 /* payloadSeg */
            invokestatic io.vertx.ext.auth.impl.jose.JWT.base64urlDecode:(Ljava/lang/String;)[B
            getstatic io.vertx.ext.auth.impl.jose.JWT.UTF8:Ljava/nio/charset/Charset;
            invokespecial java.lang.String.<init>:([BLjava/nio/charset/Charset;)V
            invokespecial io.vertx.core.json.JsonObject.<init>:(Ljava/lang/String;)V
            astore 6 /* payload */
        start local 6 // io.vertx.core.json.JsonObject payload
        10: .line 149
            new io.vertx.core.json.JsonObject
            dup
            invokespecial io.vertx.core.json.JsonObject.<init>:()V
        11: .line 150
            ldc "header"
            aload 5 /* header */
            invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/Object;)Lio/vertx/core/json/JsonObject;
        12: .line 151
            ldc "payload"
            aload 6 /* payload */
            invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/Object;)Lio/vertx/core/json/JsonObject;
        13: .line 152
            ldc "signatureBase"
            new java.lang.StringBuilder
            dup
            aload 2 /* headerSeg */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* payloadSeg */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/Object;)Lio/vertx/core/json/JsonObject;
        14: .line 153
            ldc "signature"
            aload 4 /* signatureSeg */
            invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/Object;)Lio/vertx/core/json/JsonObject;
        15: .line 149
            areturn
        end local 6 // io.vertx.core.json.JsonObject payload
        end local 5 // io.vertx.core.json.JsonObject header
        end local 4 // java.lang.String signatureSeg
        end local 3 // java.lang.String payloadSeg
        end local 2 // java.lang.String headerSeg
        end local 1 // java.lang.String[] segments
        end local 0 // java.lang.String token
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   16     0         token  Ljava/lang/String;
            1   16     1      segments  [Ljava/lang/String;
            4   16     2     headerSeg  Ljava/lang/String;
            5   16     3    payloadSeg  Ljava/lang/String;
            8   16     4  signatureSeg  Ljava/lang/String;
            9   16     5        header  Lio/vertx/core/json/JsonObject;
           10   16     6       payload  Lio/vertx/core/json/JsonObject;
    MethodParameters:
       Name  Flags
      token  final

  public io.vertx.core.json.JsonObject decode(java.lang.String);
    descriptor: (Ljava/lang/String;)Lio/vertx/core/json/JsonObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.vertx.ext.auth.impl.jose.JWT this
        start local 1 // java.lang.String token
         0: .line 157
            aload 0 /* this */
            aload 1 /* token */
            iconst_0
            invokevirtual io.vertx.ext.auth.impl.jose.JWT.decode:(Ljava/lang/String;Z)Lio/vertx/core/json/JsonObject;
            areturn
        end local 1 // java.lang.String token
        end local 0 // io.vertx.ext.auth.impl.jose.JWT this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lio/vertx/ext/auth/impl/jose/JWT;
            0    1     1  token  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      token  final

  public io.vertx.core.json.JsonObject decode(java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Z)Lio/vertx/core/json/JsonObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=18, args_size=3
        start local 0 // io.vertx.ext.auth.impl.jose.JWT this
        start local 1 // java.lang.String token
        start local 2 // boolean full
         0: .line 162
            aload 1 /* token */
            ldc "\\."
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 3 /* segments */
        start local 3 // java.lang.String[] segments
         1: .line 164
            aload 3 /* segments */
            arraylength
            iconst_2
            if_icmpge 3
         2: .line 165
            new java.lang.IllegalStateException
            dup
            ldc "Invalid format for JWT"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 169
      StackMap locals: java.lang.String[]
      StackMap stack:
            aload 3 /* segments */
            iconst_0
            aaload
            astore 4 /* headerSeg */
        start local 4 // java.lang.String headerSeg
         4: .line 170
            aload 3 /* segments */
            iconst_1
            aaload
            astore 5 /* payloadSeg */
        start local 5 // java.lang.String payloadSeg
         5: .line 171
            aload 3 /* segments */
            arraylength
            iconst_3
            if_icmpne 6
            aload 3 /* segments */
            iconst_2
            aaload
            goto 7
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
         6: aconst_null
      StackMap locals:
      StackMap stack: java.lang.String
         7: astore 6 /* signatureSeg */
        start local 6 // java.lang.String signatureSeg
         8: .line 174
            ldc ""
            aload 6 /* signatureSeg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 10
         9: .line 175
            new java.lang.IllegalStateException
            dup
            ldc "Signature is required"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 179
      StackMap locals: java.lang.String
      StackMap stack:
            new io.vertx.core.json.JsonObject
            dup
            aload 4 /* headerSeg */
            invokestatic io.vertx.ext.auth.impl.jose.JWT.base64urlDecode:(Ljava/lang/String;)[B
            invokestatic io.vertx.core.buffer.Buffer.buffer:([B)Lio/vertx/core/buffer/Buffer;
            invokespecial io.vertx.core.json.JsonObject.<init>:(Lio/vertx/core/buffer/Buffer;)V
            astore 7 /* header */
        start local 7 // io.vertx.core.json.JsonObject header
        11: .line 181
            aload 0 /* this */
            invokevirtual io.vertx.ext.auth.impl.jose.JWT.isUnsecure:()Z
            istore 8 /* unsecure */
        start local 8 // boolean unsecure
        12: .line 182
            iload 8 /* unsecure */
            ifeq 15
        13: .line 187
            aload 0 /* this */
            getfield io.vertx.ext.auth.impl.jose.JWT.allowEmbeddedKey:Z
            ifne 17
            aload 3 /* segments */
            arraylength
            iconst_2
            if_icmpeq 17
        14: .line 188
            new java.lang.IllegalStateException
            dup
            ldc "JWT is in unsecured mode but token is signed."
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        15: .line 191
      StackMap locals: io.vertx.core.json.JsonObject int
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.ext.auth.impl.jose.JWT.allowEmbeddedKey:Z
            ifne 17
            aload 3 /* segments */
            arraylength
            iconst_3
            if_icmpeq 17
        16: .line 192
            new java.lang.IllegalStateException
            dup
            ldc "JWT is in secure mode but token is not signed."
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        17: .line 196
      StackMap locals:
      StackMap stack:
            new io.vertx.core.json.JsonObject
            dup
            aload 5 /* payloadSeg */
            invokestatic io.vertx.ext.auth.impl.jose.JWT.base64urlDecode:(Ljava/lang/String;)[B
            invokestatic io.vertx.core.buffer.Buffer.buffer:([B)Lio/vertx/core/buffer/Buffer;
            invokespecial io.vertx.core.json.JsonObject.<init>:(Lio/vertx/core/buffer/Buffer;)V
            astore 9 /* payload */
        start local 9 // io.vertx.core.json.JsonObject payload
        18: .line 198
            aload 7 /* header */
            ldc "alg"
            invokevirtual io.vertx.core.json.JsonObject.getString:(Ljava/lang/String;)Ljava/lang/String;
            astore 10 /* alg */
        start local 10 // java.lang.String alg
        19: .line 201
            iload 8 /* unsecure */
            ifne 21
            ldc "none"
            aload 10 /* alg */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 21
        20: .line 202
            new java.lang.IllegalStateException
            dup
            ldc "Algorithm \"none\" not allowed"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        21: .line 206
      StackMap locals: io.vertx.core.json.JsonObject java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.ext.auth.impl.jose.JWT.allowEmbeddedKey:Z
            ifeq 41
            aload 7 /* header */
            ldc "x5c"
            invokevirtual io.vertx.core.json.JsonObject.containsKey:(Ljava/lang/String;)Z
            ifeq 41
        22: .line 208
            aload 6 /* signatureSeg */
            ifnonnull 24
        23: .line 209
            new java.lang.IllegalStateException
            dup
            ldc "missing signature segment"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        24: .line 213
      StackMap locals:
      StackMap stack:
            aload 7 /* header */
            ldc "x5c"
            invokevirtual io.vertx.core.json.JsonObject.getJsonArray:(Ljava/lang/String;)Lio/vertx/core/json/JsonArray;
            astore 11 /* chain */
        start local 11 // io.vertx.core.json.JsonArray chain
        25: .line 214
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 12 /* certChain */
        start local 12 // java.util.List certChain
        26: .line 216
            aload 11 /* chain */
            ifnull 27
            aload 11 /* chain */
            invokevirtual io.vertx.core.json.JsonArray.size:()I
            ifne 28
        27: .line 217
      StackMap locals: io.vertx.core.json.JsonArray java.util.List
      StackMap stack:
            new java.lang.IllegalStateException
            dup
            ldc "x5c chain is null or empty"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        28: .line 220
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 13 /* i */
        start local 13 // int i
        29: goto 32
        30: .line 226
      StackMap locals: int
      StackMap stack:
            aload 12 /* certChain */
            getstatic io.vertx.ext.auth.impl.jose.JWT.decoder:Ljava/util/Base64$Decoder;
            aload 11 /* chain */
            iload 13 /* i */
            invokevirtual io.vertx.core.json.JsonArray.getString:(I)Ljava/lang/String;
            getstatic io.vertx.ext.auth.impl.jose.JWT.UTF8:Ljava/nio/charset/Charset;
            invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
            invokevirtual java.util.Base64$Decoder.decode:([B)[B
            invokestatic io.vertx.ext.auth.impl.jose.JWS.parseX5c:([B)Ljava/security/cert/X509Certificate;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        31: .line 220
            iinc 13 /* i */ 1
      StackMap locals:
      StackMap stack:
        32: iload 13 /* i */
            aload 11 /* chain */
            invokevirtual io.vertx.core.json.JsonArray.size:()I
            if_icmplt 30
        end local 13 // int i
        33: .line 229
            aload 12 /* certChain */
            iconst_0
            aconst_null
            invokestatic io.vertx.ext.auth.impl.CertificateHelper.checkValidity:(Ljava/util/List;ZLjava/util/List;)V
        34: .line 231
            aload 10 /* alg */
            aload 12 /* certChain */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.security.cert.X509Certificate
            aload 6 /* signatureSeg */
            invokestatic io.vertx.ext.auth.impl.jose.JWT.base64urlDecode:(Ljava/lang/String;)[B
            new java.lang.StringBuilder
            dup
            aload 4 /* headerSeg */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* payloadSeg */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            getstatic io.vertx.ext.auth.impl.jose.JWT.UTF8:Ljava/nio/charset/Charset;
            invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
            invokestatic io.vertx.ext.auth.impl.jose.JWS.verifySignature:(Ljava/lang/String;Ljava/security/cert/X509Certificate;[B[B)Z
            ifeq 38
        35: .line 233
            iload 2 /* full */
            ifeq 36
            new io.vertx.core.json.JsonObject
            dup
            invokespecial io.vertx.core.json.JsonObject.<init>:()V
            ldc "header"
            aload 7 /* header */
            invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/Object;)Lio/vertx/core/json/JsonObject;
            ldc "payload"
            aload 9 /* payload */
            invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/Object;)Lio/vertx/core/json/JsonObject;
            goto 37
      StackMap locals:
      StackMap stack:
        36: aload 9 /* payload */
      StackMap locals:
      StackMap stack: io.vertx.core.json.JsonObject
        37: areturn
        38: .line 235
      StackMap locals:
      StackMap stack:
            new java.lang.RuntimeException
            dup
            ldc "Signature verification failed"
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 12 // java.util.List certChain
        end local 11 // io.vertx.core.json.JsonArray chain
        39: .line 237
      StackMap locals: io.vertx.ext.auth.impl.jose.JWT java.lang.String int java.lang.String[] java.lang.String java.lang.String java.lang.String io.vertx.core.json.JsonObject int io.vertx.core.json.JsonObject java.lang.String
      StackMap stack: java.security.GeneralSecurityException
            astore 11 /* e */
        start local 11 // java.security.GeneralSecurityException e
        40: .line 238
            new java.lang.RuntimeException
            dup
            ldc "Signature verification failed"
            aload 11 /* e */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 11 // java.security.GeneralSecurityException e
        41: .line 242
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.ext.auth.impl.jose.JWT.VERIFY:Ljava/util/Map;
            aload 10 /* alg */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.List
            astore 11 /* cryptos */
        start local 11 // java.util.List cryptos
        42: .line 244
            aload 11 /* cryptos */
            ifnull 43
            aload 11 /* cryptos */
            invokeinterface java.util.List.size:()I
            ifne 44
        43: .line 245
      StackMap locals: java.util.List
      StackMap stack:
            new io.vertx.ext.auth.NoSuchKeyIdException
            dup
            aload 10 /* alg */
            invokespecial io.vertx.ext.auth.NoSuchKeyIdException.<init>:(Ljava/lang/String;)V
            athrow
        44: .line 249
      StackMap locals:
      StackMap stack:
            iload 8 /* unsecure */
            ifne 64
        45: .line 251
            aload 6 /* signatureSeg */
            ifnonnull 47
        46: .line 252
            new java.lang.IllegalStateException
            dup
            ldc "missing signature segment"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        47: .line 254
      StackMap locals:
      StackMap stack:
            aload 6 /* signatureSeg */
            invokestatic io.vertx.ext.auth.impl.jose.JWT.base64urlDecode:(Ljava/lang/String;)[B
            astore 12 /* payloadInput */
        start local 12 // byte[] payloadInput
        48: .line 255
            new java.lang.StringBuilder
            dup
            aload 4 /* headerSeg */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* payloadSeg */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            getstatic io.vertx.ext.auth.impl.jose.JWT.UTF8:Ljava/nio/charset/Charset;
            invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
            astore 13 /* signingInput */
        start local 13 // byte[] signingInput
        49: .line 257
            aload 7 /* header */
            ldc "kid"
            invokevirtual io.vertx.core.json.JsonObject.getString:(Ljava/lang/String;)Ljava/lang/String;
            astore 14 /* kid */
        start local 14 // java.lang.String kid
        50: .line 258
            iconst_0
            istore 15 /* hasKey */
        start local 15 // boolean hasKey
        51: .line 260
            aload 11 /* cryptos */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 17
            goto 60
      StackMap locals: io.vertx.ext.auth.impl.jose.JWT java.lang.String int java.lang.String[] java.lang.String java.lang.String java.lang.String io.vertx.core.json.JsonObject int io.vertx.core.json.JsonObject java.lang.String java.util.List byte[] byte[] java.lang.String int top java.util.Iterator
      StackMap stack:
        52: aload 17
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast io.vertx.ext.auth.impl.jose.Crypto
            astore 16 /* c */
        start local 16 // io.vertx.ext.auth.impl.jose.Crypto c
        53: .line 262
            aload 14 /* kid */
            ifnull 55
            aload 16 /* c */
            invokeinterface io.vertx.ext.auth.impl.jose.Crypto.getId:()Ljava/lang/String;
            ifnull 55
            aload 14 /* kid */
            aload 16 /* c */
            invokeinterface io.vertx.ext.auth.impl.jose.Crypto.getId:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 55
        54: .line 263
            goto 60
        55: .line 266
      StackMap locals: io.vertx.ext.auth.impl.jose.JWT java.lang.String int java.lang.String[] java.lang.String java.lang.String java.lang.String io.vertx.core.json.JsonObject int io.vertx.core.json.JsonObject java.lang.String java.util.List byte[] byte[] java.lang.String int io.vertx.ext.auth.impl.jose.Crypto java.util.Iterator
      StackMap stack:
            iconst_1
            istore 15 /* hasKey */
        56: .line 267
            aload 16 /* c */
            aload 12 /* payloadInput */
            aload 13 /* signingInput */
            invokeinterface io.vertx.ext.auth.impl.jose.Crypto.verify:([B[B)Z
            ifeq 60
        57: .line 268
            iload 2 /* full */
            ifeq 58
            new io.vertx.core.json.JsonObject
            dup
            invokespecial io.vertx.core.json.JsonObject.<init>:()V
            ldc "header"
            aload 7 /* header */
            invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/Object;)Lio/vertx/core/json/JsonObject;
            ldc "payload"
            aload 9 /* payload */
            invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/Object;)Lio/vertx/core/json/JsonObject;
            goto 59
      StackMap locals:
      StackMap stack:
        58: aload 9 /* payload */
      StackMap locals:
      StackMap stack: io.vertx.core.json.JsonObject
        59: areturn
        end local 16 // io.vertx.ext.auth.impl.jose.Crypto c
        60: .line 260
      StackMap locals: io.vertx.ext.auth.impl.jose.JWT java.lang.String int java.lang.String[] java.lang.String java.lang.String java.lang.String io.vertx.core.json.JsonObject int io.vertx.core.json.JsonObject java.lang.String java.util.List byte[] byte[] java.lang.String int top java.util.Iterator
      StackMap stack:
            aload 17
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 52
        61: .line 272
            iload 15 /* hasKey */
            ifeq 63
        62: .line 273
            new java.lang.RuntimeException
            dup
            ldc "Signature verification failed"
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        63: .line 275
      StackMap locals: io.vertx.ext.auth.impl.jose.JWT java.lang.String int java.lang.String[] java.lang.String java.lang.String java.lang.String io.vertx.core.json.JsonObject int io.vertx.core.json.JsonObject java.lang.String java.util.List byte[] byte[] java.lang.String int
      StackMap stack:
            new io.vertx.ext.auth.NoSuchKeyIdException
            dup
            aload 10 /* alg */
            aload 14 /* kid */
            invokespecial io.vertx.ext.auth.NoSuchKeyIdException.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            athrow
        end local 15 // boolean hasKey
        end local 14 // java.lang.String kid
        end local 13 // byte[] signingInput
        end local 12 // byte[] payloadInput
        64: .line 279
      StackMap locals: io.vertx.ext.auth.impl.jose.JWT java.lang.String int java.lang.String[] java.lang.String java.lang.String java.lang.String io.vertx.core.json.JsonObject int io.vertx.core.json.JsonObject java.lang.String java.util.List
      StackMap stack:
            iload 2 /* full */
            ifeq 65
            new io.vertx.core.json.JsonObject
            dup
            invokespecial io.vertx.core.json.JsonObject.<init>:()V
            ldc "header"
            aload 7 /* header */
            invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/Object;)Lio/vertx/core/json/JsonObject;
            ldc "payload"
            aload 9 /* payload */
            invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/Object;)Lio/vertx/core/json/JsonObject;
            goto 66
      StackMap locals:
      StackMap stack:
        65: aload 9 /* payload */
      StackMap locals:
      StackMap stack: io.vertx.core.json.JsonObject
        66: areturn
        end local 11 // java.util.List cryptos
        end local 10 // java.lang.String alg
        end local 9 // io.vertx.core.json.JsonObject payload
        end local 8 // boolean unsecure
        end local 7 // io.vertx.core.json.JsonObject header
        end local 6 // java.lang.String signatureSeg
        end local 5 // java.lang.String payloadSeg
        end local 4 // java.lang.String headerSeg
        end local 3 // java.lang.String[] segments
        end local 2 // boolean full
        end local 1 // java.lang.String token
        end local 0 // io.vertx.ext.auth.impl.jose.JWT this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   67     0          this  Lio/vertx/ext/auth/impl/jose/JWT;
            0   67     1         token  Ljava/lang/String;
            0   67     2          full  Z
            1   67     3      segments  [Ljava/lang/String;
            4   67     4     headerSeg  Ljava/lang/String;
            5   67     5    payloadSeg  Ljava/lang/String;
            8   67     6  signatureSeg  Ljava/lang/String;
           11   67     7        header  Lio/vertx/core/json/JsonObject;
           12   67     8      unsecure  Z
           18   67     9       payload  Lio/vertx/core/json/JsonObject;
           19   67    10           alg  Ljava/lang/String;
           25   39    11         chain  Lio/vertx/core/json/JsonArray;
           26   39    12     certChain  Ljava/util/List<Ljava/security/cert/X509Certificate;>;
           29   33    13             i  I
           40   41    11             e  Ljava/security/GeneralSecurityException;
           42   67    11       cryptos  Ljava/util/List<Lio/vertx/ext/auth/impl/jose/Crypto;>;
           48   64    12  payloadInput  [B
           49   64    13  signingInput  [B
           50   64    14           kid  Ljava/lang/String;
           51   64    15        hasKey  Z
           53   60    16             c  Lio/vertx/ext/auth/impl/jose/Crypto;
      Exception table:
        from    to  target  type
          24    37      39  Class java.security.cert.CertificateException
          38    39      39  Class java.security.cert.CertificateException
          24    37      39  Class java.security.NoSuchAlgorithmException
          38    39      39  Class java.security.NoSuchAlgorithmException
          24    37      39  Class java.security.InvalidKeyException
          38    39      39  Class java.security.InvalidKeyException
          24    37      39  Class java.security.SignatureException
          38    39      39  Class java.security.SignatureException
          24    37      39  Class java.security.InvalidAlgorithmParameterException
          38    39      39  Class java.security.InvalidAlgorithmParameterException
          24    37      39  Class java.security.NoSuchProviderException
          38    39      39  Class java.security.NoSuchProviderException
    MethodParameters:
       Name  Flags
      token  final
      full   

  public boolean isScopeGranted(io.vertx.core.json.JsonObject, io.vertx.ext.auth.JWTOptions);
    descriptor: (Lio/vertx/core/json/JsonObject;Lio/vertx/ext/auth/JWTOptions;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // io.vertx.ext.auth.impl.jose.JWT this
        start local 1 // io.vertx.core.json.JsonObject jwt
        start local 2 // io.vertx.ext.auth.JWTOptions options
         0: .line 292
            aload 1 /* jwt */
            ifnonnull 2
         1: .line 293
            iconst_0
            ireturn
         2: .line 296
      StackMap locals:
      StackMap stack:
            aload 2 /* options */
            invokevirtual io.vertx.ext.auth.JWTOptions.getScopes:()Ljava/util/List;
            ifnull 3
            aload 2 /* options */
            invokevirtual io.vertx.ext.auth.JWTOptions.getScopes:()Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 4
         3: .line 297
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         4: .line 300
      StackMap locals:
      StackMap stack:
            aload 1 /* jwt */
            ldc "scope"
            invokevirtual io.vertx.core.json.JsonObject.getValue:(Ljava/lang/String;)Ljava/lang/Object;
            ifnonnull 8
         5: .line 301
            aload 0 /* this */
            getfield io.vertx.ext.auth.impl.jose.JWT.logger:Lio/vertx/core/impl/logging/Logger;
            invokeinterface io.vertx.core.impl.logging.Logger.isDebugEnabled:()Z
            ifeq 7
         6: .line 302
            aload 0 /* this */
            getfield io.vertx.ext.auth.impl.jose.JWT.logger:Lio/vertx/core/impl/logging/Logger;
            ldc "Invalid JWT: scope claim is required"
            invokeinterface io.vertx.core.impl.logging.Logger.debug:(Ljava/lang/Object;)V
         7: .line 304
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         8: .line 308
      StackMap locals:
      StackMap stack:
            aload 1 /* jwt */
            ldc "scope"
            invokevirtual io.vertx.core.json.JsonObject.getValue:(Ljava/lang/String;)Ljava/lang/Object;
            instanceof java.lang.String
            ifeq 16
         9: .line 309
            new io.vertx.core.json.JsonArray
            dup
        10: .line 310
            aload 1 /* jwt */
            ldc "scope"
            invokevirtual io.vertx.core.json.JsonObject.getString:(Ljava/lang/String;)Ljava/lang/String;
        11: .line 311
            aload 2 /* options */
            invokevirtual io.vertx.ext.auth.JWTOptions.getScopeDelimiter:()Ljava/lang/String;
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
        12: .line 310
            invokestatic java.util.stream.Stream.of:([Ljava/lang/Object;)Ljava/util/stream/Stream;
        13: .line 312
            invokestatic java.util.stream.Collectors.toList:()Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.util.List
        14: .line 309
            invokespecial io.vertx.core.json.JsonArray.<init>:(Ljava/util/List;)V
            astore 3 /* target */
        start local 3 // io.vertx.core.json.JsonArray target
        15: .line 314
            goto 17
        end local 3 // io.vertx.core.json.JsonArray target
        16: .line 315
      StackMap locals:
      StackMap stack:
            aload 1 /* jwt */
            ldc "scope"
            invokevirtual io.vertx.core.json.JsonObject.getJsonArray:(Ljava/lang/String;)Lio/vertx/core/json/JsonArray;
            astore 3 /* target */
        start local 3 // io.vertx.core.json.JsonArray target
        17: .line 318
      StackMap locals: io.vertx.core.json.JsonArray
      StackMap stack:
            aload 3 /* target */
            invokevirtual io.vertx.core.json.JsonArray.getList:()Ljava/util/List;
            aload 2 /* options */
            invokevirtual io.vertx.ext.auth.JWTOptions.getScopes:()Ljava/util/List;
            invokeinterface java.util.List.containsAll:(Ljava/util/Collection;)Z
            ifne 21
        18: .line 319
            aload 0 /* this */
            getfield io.vertx.ext.auth.impl.jose.JWT.logger:Lio/vertx/core/impl/logging/Logger;
            invokeinterface io.vertx.core.impl.logging.Logger.isDebugEnabled:()Z
            ifeq 20
        19: .line 320
            aload 0 /* this */
            getfield io.vertx.ext.auth.impl.jose.JWT.logger:Lio/vertx/core/impl/logging/Logger;
            ldc "Invalid JWT scopes expected[%s] actual[%s]"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* options */
            invokevirtual io.vertx.ext.auth.JWTOptions.getScopes:()Ljava/util/List;
            aastore
            dup
            iconst_1
            aload 3 /* target */
            invokevirtual io.vertx.core.json.JsonArray.getList:()Ljava/util/List;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokeinterface io.vertx.core.impl.logging.Logger.debug:(Ljava/lang/Object;)V
        20: .line 322
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        21: .line 325
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 3 // io.vertx.core.json.JsonArray target
        end local 2 // io.vertx.ext.auth.JWTOptions options
        end local 1 // io.vertx.core.json.JsonObject jwt
        end local 0 // io.vertx.ext.auth.impl.jose.JWT this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   22     0     this  Lio/vertx/ext/auth/impl/jose/JWT;
            0   22     1      jwt  Lio/vertx/core/json/JsonObject;
            0   22     2  options  Lio/vertx/ext/auth/JWTOptions;
           15   16     3   target  Lio/vertx/core/json/JsonArray;
           17   22     3   target  Lio/vertx/core/json/JsonArray;
    MethodParameters:
         Name  Flags
      jwt      
      options  

  public java.lang.String sign(io.vertx.core.json.JsonObject, io.vertx.ext.auth.JWTOptions);
    descriptor: (Lio/vertx/core/json/JsonObject;Lio/vertx/ext/auth/JWTOptions;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=13, args_size=3
        start local 0 // io.vertx.ext.auth.impl.jose.JWT this
        start local 1 // io.vertx.core.json.JsonObject payload
        start local 2 // io.vertx.ext.auth.JWTOptions options
         0: .line 329
            aload 2 /* options */
            invokevirtual io.vertx.ext.auth.JWTOptions.getAlgorithm:()Ljava/lang/String;
            astore 3 /* algorithm */
        start local 3 // java.lang.String algorithm
         1: .line 331
            aload 0 /* this */
            getfield io.vertx.ext.auth.impl.jose.JWT.SIGN:Ljava/util/Map;
            aload 3 /* algorithm */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.List
            astore 4 /* cryptos */
        start local 4 // java.util.List cryptos
         2: .line 333
            aload 4 /* cryptos */
            ifnull 3
            aload 4 /* cryptos */
            invokeinterface java.util.List.size:()I
            ifne 4
         3: .line 334
      StackMap locals: java.lang.String java.util.List
      StackMap stack:
            new java.lang.RuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Algorithm not supported: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* algorithm */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 338
      StackMap locals:
      StackMap stack:
            aload 4 /* cryptos */
            getstatic io.vertx.ext.auth.impl.jose.JWT.RND:Ljava/util/Random;
            aload 4 /* cryptos */
            invokeinterface java.util.List.size:()I
            invokevirtual java.util.Random.nextInt:(I)I
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast io.vertx.ext.auth.impl.jose.Crypto
            astore 5 /* crypto */
        start local 5 // io.vertx.ext.auth.impl.jose.Crypto crypto
         5: .line 341
            new io.vertx.core.json.JsonObject
            dup
            invokespecial io.vertx.core.json.JsonObject.<init>:()V
         6: .line 342
            aload 2 /* options */
            invokevirtual io.vertx.ext.auth.JWTOptions.getHeader:()Lio/vertx/core/json/JsonObject;
            invokevirtual io.vertx.core.json.JsonObject.mergeIn:(Lio/vertx/core/json/JsonObject;)Lio/vertx/core/json/JsonObject;
         7: .line 343
            ldc "typ"
            ldc "JWT"
            invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/Object;)Lio/vertx/core/json/JsonObject;
         8: .line 344
            ldc "alg"
            aload 3 /* algorithm */
            invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/Object;)Lio/vertx/core/json/JsonObject;
         9: .line 341
            astore 6 /* header */
        start local 6 // io.vertx.core.json.JsonObject header
        10: .line 347
            aload 5 /* crypto */
            invokeinterface io.vertx.ext.auth.impl.jose.Crypto.getId:()Ljava/lang/String;
            ifnull 12
        11: .line 348
            aload 6 /* header */
            ldc "kid"
            aload 5 /* crypto */
            invokeinterface io.vertx.ext.auth.impl.jose.Crypto.getId:()Ljava/lang/String;
            invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/Object;)Lio/vertx/core/json/JsonObject;
            pop
        12: .line 352
      StackMap locals: io.vertx.ext.auth.impl.jose.Crypto io.vertx.core.json.JsonObject
      StackMap stack:
            invokestatic java.lang.System.currentTimeMillis:()J
            ldc 1000
            ldiv
            lstore 7 /* timestamp */
        start local 7 // long timestamp
        13: .line 354
            aload 2 /* options */
            invokevirtual io.vertx.ext.auth.JWTOptions.isNoTimestamp:()Z
            ifne 15
        14: .line 355
            aload 1 /* payload */
            ldc "iat"
            aload 1 /* payload */
            ldc "iat"
            lload 7 /* timestamp */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokevirtual io.vertx.core.json.JsonObject.getValue:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/Object;)Lio/vertx/core/json/JsonObject;
            pop
        15: .line 358
      StackMap locals: long
      StackMap stack:
            aload 2 /* options */
            invokevirtual io.vertx.ext.auth.JWTOptions.getExpiresInSeconds:()I
            ifle 17
        16: .line 359
            aload 1 /* payload */
            ldc "exp"
            lload 7 /* timestamp */
            aload 2 /* options */
            invokevirtual io.vertx.ext.auth.JWTOptions.getExpiresInSeconds:()I
            i2l
            ladd
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/Object;)Lio/vertx/core/json/JsonObject;
            pop
        17: .line 362
      StackMap locals:
      StackMap stack:
            aload 2 /* options */
            invokevirtual io.vertx.ext.auth.JWTOptions.getAudience:()Ljava/util/List;
            ifnull 22
            aload 2 /* options */
            invokevirtual io.vertx.ext.auth.JWTOptions.getAudience:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            iconst_1
            if_icmplt 22
        18: .line 363
            aload 2 /* options */
            invokevirtual io.vertx.ext.auth.JWTOptions.getAudience:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            iconst_1
            if_icmple 21
        19: .line 364
            aload 1 /* payload */
            ldc "aud"
            new io.vertx.core.json.JsonArray
            dup
            aload 2 /* options */
            invokevirtual io.vertx.ext.auth.JWTOptions.getAudience:()Ljava/util/List;
            invokespecial io.vertx.core.json.JsonArray.<init>:(Ljava/util/List;)V
            invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/Object;)Lio/vertx/core/json/JsonObject;
            pop
        20: .line 365
            goto 22
        21: .line 366
      StackMap locals:
      StackMap stack:
            aload 1 /* payload */
            ldc "aud"
            aload 2 /* options */
            invokevirtual io.vertx.ext.auth.JWTOptions.getAudience:()Ljava/util/List;
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/Object;)Lio/vertx/core/json/JsonObject;
            pop
        22: .line 370
      StackMap locals:
      StackMap stack:
            aload 2 /* options */
            invokevirtual io.vertx.ext.auth.JWTOptions.getScopes:()Ljava/util/List;
            ifnull 27
            aload 2 /* options */
            invokevirtual io.vertx.ext.auth.JWTOptions.getScopes:()Ljava/util/List;
            invokeinterface java.util.List.size:()I
            iconst_1
            if_icmplt 27
        23: .line 371
            aload 2 /* options */
            invokevirtual io.vertx.ext.auth.JWTOptions.hasScopeDelimiter:()Z
            ifeq 26
        24: .line 372
            aload 1 /* payload */
            ldc "scope"
            aload 2 /* options */
            invokevirtual io.vertx.ext.auth.JWTOptions.getScopeDelimiter:()Ljava/lang/String;
            aload 2 /* options */
            invokevirtual io.vertx.ext.auth.JWTOptions.getScopes:()Ljava/util/List;
            invokestatic java.lang.String.join:(Ljava/lang/CharSequence;Ljava/lang/Iterable;)Ljava/lang/String;
            invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/Object;)Lio/vertx/core/json/JsonObject;
            pop
        25: .line 373
            goto 27
        26: .line 374
      StackMap locals:
      StackMap stack:
            aload 1 /* payload */
            ldc "scope"
            new io.vertx.core.json.JsonArray
            dup
            aload 2 /* options */
            invokevirtual io.vertx.ext.auth.JWTOptions.getScopes:()Ljava/util/List;
            invokespecial io.vertx.core.json.JsonArray.<init>:(Ljava/util/List;)V
            invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/Object;)Lio/vertx/core/json/JsonObject;
            pop
        27: .line 378
      StackMap locals:
      StackMap stack:
            aload 2 /* options */
            invokevirtual io.vertx.ext.auth.JWTOptions.getIssuer:()Ljava/lang/String;
            ifnull 29
        28: .line 379
            aload 1 /* payload */
            ldc "iss"
            aload 2 /* options */
            invokevirtual io.vertx.ext.auth.JWTOptions.getIssuer:()Ljava/lang/String;
            invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/Object;)Lio/vertx/core/json/JsonObject;
            pop
        29: .line 382
      StackMap locals:
      StackMap stack:
            aload 2 /* options */
            invokevirtual io.vertx.ext.auth.JWTOptions.getSubject:()Ljava/lang/String;
            ifnull 31
        30: .line 383
            aload 1 /* payload */
            ldc "sub"
            aload 2 /* options */
            invokevirtual io.vertx.ext.auth.JWTOptions.getSubject:()Ljava/lang/String;
            invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/Object;)Lio/vertx/core/json/JsonObject;
            pop
        31: .line 387
      StackMap locals:
      StackMap stack:
            aload 6 /* header */
            invokevirtual io.vertx.core.json.JsonObject.encode:()Ljava/lang/String;
            invokestatic io.vertx.ext.auth.impl.jose.JWT.base64urlEncode:(Ljava/lang/String;)Ljava/lang/String;
            astore 9 /* headerSegment */
        start local 9 // java.lang.String headerSegment
        32: .line 388
            aload 1 /* payload */
            invokevirtual io.vertx.core.json.JsonObject.encode:()Ljava/lang/String;
            invokestatic io.vertx.ext.auth.impl.jose.JWT.base64urlEncode:(Ljava/lang/String;)Ljava/lang/String;
            astore 10 /* payloadSegment */
        start local 10 // java.lang.String payloadSegment
        33: .line 389
            new java.lang.StringBuilder
            dup
            aload 9 /* headerSegment */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 10 /* payloadSegment */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 11 /* signingInput */
        start local 11 // java.lang.String signingInput
        34: .line 390
            aload 5 /* crypto */
            aload 11 /* signingInput */
            getstatic io.vertx.ext.auth.impl.jose.JWT.UTF8:Ljava/nio/charset/Charset;
            invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
            invokeinterface io.vertx.ext.auth.impl.jose.Crypto.sign:([B)[B
            invokestatic io.vertx.ext.auth.impl.jose.JWT.base64urlEncode:([B)Ljava/lang/String;
            astore 12 /* signSegment */
        start local 12 // java.lang.String signSegment
        35: .line 392
            new java.lang.StringBuilder
            dup
            aload 9 /* headerSegment */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 10 /* payloadSegment */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 12 /* signSegment */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 12 // java.lang.String signSegment
        end local 11 // java.lang.String signingInput
        end local 10 // java.lang.String payloadSegment
        end local 9 // java.lang.String headerSegment
        end local 7 // long timestamp
        end local 6 // io.vertx.core.json.JsonObject header
        end local 5 // io.vertx.ext.auth.impl.jose.Crypto crypto
        end local 4 // java.util.List cryptos
        end local 3 // java.lang.String algorithm
        end local 2 // io.vertx.ext.auth.JWTOptions options
        end local 1 // io.vertx.core.json.JsonObject payload
        end local 0 // io.vertx.ext.auth.impl.jose.JWT this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   36     0            this  Lio/vertx/ext/auth/impl/jose/JWT;
            0   36     1         payload  Lio/vertx/core/json/JsonObject;
            0   36     2         options  Lio/vertx/ext/auth/JWTOptions;
            1   36     3       algorithm  Ljava/lang/String;
            2   36     4         cryptos  Ljava/util/List<Lio/vertx/ext/auth/impl/jose/Crypto;>;
            5   36     5          crypto  Lio/vertx/ext/auth/impl/jose/Crypto;
           10   36     6          header  Lio/vertx/core/json/JsonObject;
           13   36     7       timestamp  J
           32   36     9   headerSegment  Ljava/lang/String;
           33   36    10  payloadSegment  Ljava/lang/String;
           34   36    11    signingInput  Ljava/lang/String;
           35   36    12     signSegment  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      payload  
      options  

  private static byte[] base64urlDecode(java.lang.String);
    descriptor: (Ljava/lang/String;)[B
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.String str
         0: .line 396
            getstatic io.vertx.ext.auth.impl.jose.JWT.urlDecoder:Ljava/util/Base64$Decoder;
            aload 0 /* str */
            getstatic io.vertx.ext.auth.impl.jose.JWT.UTF8:Ljava/nio/charset/Charset;
            invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
            invokevirtual java.util.Base64$Decoder.decode:([B)[B
            areturn
        end local 0 // java.lang.String str
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   str  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      str   

  private static java.lang.String base64urlEncode(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String str
         0: .line 400
            aload 0 /* str */
            getstatic io.vertx.ext.auth.impl.jose.JWT.UTF8:Ljava/nio/charset/Charset;
            invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
            invokestatic io.vertx.ext.auth.impl.jose.JWT.base64urlEncode:([B)Ljava/lang/String;
            areturn
        end local 0 // java.lang.String str
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   str  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      str   

  private static java.lang.String base64urlEncode(byte[]);
    descriptor: ([B)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // byte[] bytes
         0: .line 404
            getstatic io.vertx.ext.auth.impl.jose.JWT.urlEncoder:Ljava/util/Base64$Encoder;
            aload 0 /* bytes */
            invokevirtual java.util.Base64$Encoder.encodeToString:([B)Ljava/lang/String;
            areturn
        end local 0 // byte[] bytes
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  bytes  [B
    MethodParameters:
       Name  Flags
      bytes  

  public boolean isUnsecure();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.vertx.ext.auth.impl.jose.JWT this
         0: .line 408
            aload 0 /* this */
            getfield io.vertx.ext.auth.impl.jose.JWT.VERIFY:Ljava/util/Map;
            invokeinterface java.util.Map.size:()I
            iconst_1
            if_icmpne 1
            aload 0 /* this */
            getfield io.vertx.ext.auth.impl.jose.JWT.SIGN:Ljava/util/Map;
            invokeinterface java.util.Map.size:()I
            iconst_1
            if_icmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // io.vertx.ext.auth.impl.jose.JWT this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/vertx/ext/auth/impl/jose/JWT;

  public java.util.Collection<java.lang.String> availableAlgorithms();
    descriptor: ()Ljava/util/Collection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // io.vertx.ext.auth.impl.jose.JWT this
         0: .line 412
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 1 /* algorithms */
        start local 1 // java.util.Set algorithms
         1: .line 414
            aload 1 /* algorithms */
            aload 0 /* this */
            getfield io.vertx.ext.auth.impl.jose.JWT.VERIFY:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
         2: .line 415
            aload 1 /* algorithms */
            aload 0 /* this */
            getfield io.vertx.ext.auth.impl.jose.JWT.SIGN:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
         3: .line 417
            aload 1 /* algorithms */
            areturn
        end local 1 // java.util.Set algorithms
        end local 0 // io.vertx.ext.auth.impl.jose.JWT this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lio/vertx/ext/auth/impl/jose/JWT;
            1    4     1  algorithms  Ljava/util/Set<Ljava/lang/String;>;
    Signature: ()Ljava/util/Collection<Ljava/lang/String;>;

  private static java.util.List lambda$0(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/List;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String k
         0: .line 79
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            areturn
        end local 0 // java.lang.String k
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     k  Ljava/lang/String;

  private static java.util.List lambda$1(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/List;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String k
         0: .line 84
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            areturn
        end local 0 // java.lang.String k
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     k  Ljava/lang/String;
}
SourceFile: "JWT.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public Decoder = java.util.Base64$Decoder of java.util.Base64
  public Encoder = java.util.Base64$Encoder of java.util.Base64