public class com.datastax.oss.driver.internal.core.config.cloud.CloudConfigFactory
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.datastax.oss.driver.internal.core.config.cloud.CloudConfigFactory
  super_class: java.lang.Object
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.datastax.oss.driver.internal.core.config.cloud.CloudConfigFactory this
         0: .line 56
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.datastax.oss.driver.internal.core.config.cloud.CloudConfigFactory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/datastax/oss/driver/internal/core/config/cloud/CloudConfigFactory;

  public com.datastax.oss.driver.internal.core.config.cloud.CloudConfig createCloudConfig(java.net.URL);
    descriptor: (Ljava/net/URL;)Lcom/datastax/oss/driver/internal/core/config/cloud/CloudConfig;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.datastax.oss.driver.internal.core.config.cloud.CloudConfigFactory this
        start local 1 // java.net.URL cloudConfigUrl
         0: .line 71
            aload 1 /* cloudConfigUrl */
            ldc "cloudConfigUrl cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         1: .line 72
            aload 0 /* this */
            aload 1 /* cloudConfigUrl */
            invokevirtual java.net.URL.openStream:()Ljava/io/InputStream;
            invokevirtual com.datastax.oss.driver.internal.core.config.cloud.CloudConfigFactory.createCloudConfig:(Ljava/io/InputStream;)Lcom/datastax/oss/driver/internal/core/config/cloud/CloudConfig;
            areturn
        end local 1 // java.net.URL cloudConfigUrl
        end local 0 // com.datastax.oss.driver.internal.core.config.cloud.CloudConfigFactory this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lcom/datastax/oss/driver/internal/core/config/cloud/CloudConfigFactory;
            0    2     1  cloudConfigUrl  Ljava/net/URL;
    Exceptions:
      throws java.io.IOException, java.security.GeneralSecurityException
    RuntimeInvisibleAnnotations: 
      edu.umd.cs.findbugs.annotations.NonNull()
    RuntimeInvisibleParameterAnnotations: 
      0:
        edu.umd.cs.findbugs.annotations.NonNull()
    MethodParameters:
                Name  Flags
      cloudConfigUrl  

  public com.datastax.oss.driver.internal.core.config.cloud.CloudConfig createCloudConfig(java.io.InputStream);
    descriptor: (Ljava/io/InputStream;)Lcom/datastax/oss/driver/internal/core/config/cloud/CloudConfig;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=18, args_size=2
        start local 0 // com.datastax.oss.driver.internal.core.config.cloud.CloudConfigFactory this
        start local 1 // java.io.InputStream cloudConfig
         0: .line 88
            aload 1 /* cloudConfig */
            ldc "cloudConfig cannot be null"
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         1: .line 89
            aconst_null
            astore 2 /* configJson */
        start local 2 // com.fasterxml.jackson.databind.JsonNode configJson
         2: .line 90
            aconst_null
            astore 3 /* keyStoreOutputStream */
        start local 3 // java.io.ByteArrayOutputStream keyStoreOutputStream
         3: .line 91
            aconst_null
            astore 4 /* trustStoreOutputStream */
        start local 4 // java.io.ByteArrayOutputStream trustStoreOutputStream
         4: .line 92
            new com.fasterxml.jackson.databind.ObjectMapper
            dup
            invokespecial com.fasterxml.jackson.databind.ObjectMapper.<init>:()V
            getstatic com.fasterxml.jackson.core.JsonParser$Feature.AUTO_CLOSE_SOURCE:Lcom/fasterxml/jackson/core/JsonParser$Feature;
            iconst_0
            invokevirtual com.fasterxml.jackson.databind.ObjectMapper.configure:(Lcom/fasterxml/jackson/core/JsonParser$Feature;Z)Lcom/fasterxml/jackson/databind/ObjectMapper;
            astore 5 /* mapper */
        start local 5 // com.fasterxml.jackson.databind.ObjectMapper mapper
         5: .line 93
            aconst_null
            astore 6
            aconst_null
            astore 7
         6: new java.util.zip.ZipInputStream
            dup
            aload 1 /* cloudConfig */
            invokespecial java.util.zip.ZipInputStream.<init>:(Ljava/io/InputStream;)V
            astore 8 /* zipInputStream */
        start local 8 // java.util.zip.ZipInputStream zipInputStream
         7: .line 95
            goto 20
        start local 9 // java.util.zip.ZipEntry entry
         8: .line 96
      StackMap locals: com.datastax.oss.driver.internal.core.config.cloud.CloudConfigFactory java.io.InputStream com.fasterxml.jackson.databind.JsonNode java.io.ByteArrayOutputStream java.io.ByteArrayOutputStream com.fasterxml.jackson.databind.ObjectMapper java.lang.Throwable java.lang.Throwable java.util.zip.ZipInputStream java.util.zip.ZipEntry
      StackMap stack:
            aload 9 /* entry */
            invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
            astore 10 /* fileName */
        start local 10 // java.lang.String fileName
         9: .line 97
            aload 10 /* fileName */
            dup
            astore 11
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 3
          -2092521139: 10
           -121870814: 11
            -28025836: 12
              default: 20
          }
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
        10: aload 11
            ldc "trustStore.jks"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 18
            goto 20
      StackMap locals:
      StackMap stack:
        11: aload 11
            ldc "identity.jks"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 15
            goto 20
      StackMap locals:
      StackMap stack:
        12: aload 11
            ldc "config.json"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 13
            goto 20
        13: .line 99
      StackMap locals:
      StackMap stack:
            aload 5 /* mapper */
            aload 8 /* zipInputStream */
            invokevirtual com.fasterxml.jackson.databind.ObjectMapper.readTree:(Ljava/io/InputStream;)Lcom/fasterxml/jackson/databind/JsonNode;
            astore 2 /* configJson */
        14: .line 100
            goto 20
        15: .line 102
      StackMap locals:
      StackMap stack:
            new java.io.ByteArrayOutputStream
            dup
            invokespecial java.io.ByteArrayOutputStream.<init>:()V
            astore 3 /* keyStoreOutputStream */
        16: .line 103
            aload 8 /* zipInputStream */
            aload 3 /* keyStoreOutputStream */
            invokestatic com.datastax.oss.driver.shaded.guava.common.io.ByteStreams.copy:(Ljava/io/InputStream;Ljava/io/OutputStream;)J
            pop2
        17: .line 104
            goto 20
        18: .line 106
      StackMap locals:
      StackMap stack:
            new java.io.ByteArrayOutputStream
            dup
            invokespecial java.io.ByteArrayOutputStream.<init>:()V
            astore 4 /* trustStoreOutputStream */
        19: .line 107
            aload 8 /* zipInputStream */
            aload 4 /* trustStoreOutputStream */
            invokestatic com.datastax.oss.driver.shaded.guava.common.io.ByteStreams.copy:(Ljava/io/InputStream;Ljava/io/OutputStream;)J
            pop2
        end local 10 // java.lang.String fileName
        end local 9 // java.util.zip.ZipEntry entry
        20: .line 95
      StackMap locals:
      StackMap stack:
            aload 8 /* zipInputStream */
            invokevirtual java.util.zip.ZipInputStream.getNextEntry:()Ljava/util/zip/ZipEntry;
            dup
            astore 9 /* entry */
        start local 9 // java.util.zip.ZipEntry entry
        21: ifnonnull 8
        end local 9 // java.util.zip.ZipEntry entry
        22: .line 111
            aload 8 /* zipInputStream */
            ifnull 28
            aload 8 /* zipInputStream */
            invokevirtual java.util.zip.ZipInputStream.close:()V
            goto 28
      StackMap locals:
      StackMap stack: java.lang.Throwable
        23: astore 6
            aload 8 /* zipInputStream */
            ifnull 24
            aload 8 /* zipInputStream */
            invokevirtual java.util.zip.ZipInputStream.close:()V
        end local 8 // java.util.zip.ZipInputStream zipInputStream
      StackMap locals:
      StackMap stack:
        24: aload 6
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        25: astore 7
            aload 6
            ifnonnull 26
            aload 7
            astore 6
            goto 27
      StackMap locals:
      StackMap stack:
        26: aload 6
            aload 7
            if_acmpeq 27
            aload 6
            aload 7
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        27: aload 6
            athrow
        28: .line 112
      StackMap locals:
      StackMap stack:
            aload 2 /* configJson */
            ifnonnull 30
        29: .line 113
            new java.lang.IllegalStateException
            dup
            ldc "Invalid bundle: missing file config.json"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        30: .line 115
      StackMap locals:
      StackMap stack:
            aload 3 /* keyStoreOutputStream */
            ifnonnull 32
        31: .line 116
            new java.lang.IllegalStateException
            dup
            ldc "Invalid bundle: missing file identity.jks"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        32: .line 118
      StackMap locals:
      StackMap stack:
            aload 4 /* trustStoreOutputStream */
            ifnonnull 34
        33: .line 119
            new java.lang.IllegalStateException
            dup
            ldc "Invalid bundle: missing file trustStore.jks"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        34: .line 121
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* configJson */
            invokevirtual com.datastax.oss.driver.internal.core.config.cloud.CloudConfigFactory.getKeyStorePassword:(Lcom/fasterxml/jackson/databind/JsonNode;)[C
            astore 6 /* keyStorePassword */
        start local 6 // char[] keyStorePassword
        35: .line 122
            aload 0 /* this */
            aload 2 /* configJson */
            invokevirtual com.datastax.oss.driver.internal.core.config.cloud.CloudConfigFactory.getTrustStorePassword:(Lcom/fasterxml/jackson/databind/JsonNode;)[C
            astore 7 /* trustStorePassword */
        start local 7 // char[] trustStorePassword
        36: .line 124
            new java.io.ByteArrayInputStream
            dup
            aload 3 /* keyStoreOutputStream */
            invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
            invokespecial java.io.ByteArrayInputStream.<init>:([B)V
        37: .line 123
            astore 8 /* keyStoreInputStream */
        start local 8 // java.io.ByteArrayInputStream keyStoreInputStream
        38: .line 126
            new java.io.ByteArrayInputStream
            dup
            aload 4 /* trustStoreOutputStream */
            invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
            invokespecial java.io.ByteArrayInputStream.<init>:([B)V
        39: .line 125
            astore 9 /* trustStoreInputStream */
        start local 9 // java.io.ByteArrayInputStream trustStoreInputStream
        40: .line 128
            aload 0 /* this */
        41: .line 129
            aload 8 /* keyStoreInputStream */
            aload 6 /* keyStorePassword */
            aload 9 /* trustStoreInputStream */
            aload 7 /* trustStorePassword */
        42: .line 128
            invokevirtual com.datastax.oss.driver.internal.core.config.cloud.CloudConfigFactory.createSslContext:(Ljava/io/ByteArrayInputStream;[CLjava/io/ByteArrayInputStream;[C)Ljavax/net/ssl/SSLContext;
        43: .line 127
            astore 10 /* sslContext */
        start local 10 // javax.net.ssl.SSLContext sslContext
        44: .line 130
            aload 0 /* this */
            aload 2 /* configJson */
            invokevirtual com.datastax.oss.driver.internal.core.config.cloud.CloudConfigFactory.getMetadataServiceUrl:(Lcom/fasterxml/jackson/databind/JsonNode;)Ljava/net/URL;
            astore 11 /* metadataServiceUrl */
        start local 11 // java.net.URL metadataServiceUrl
        45: .line 132
            aconst_null
            astore 13
            aconst_null
            astore 14
        46: aload 0 /* this */
            aload 11 /* metadataServiceUrl */
            aload 10 /* sslContext */
            invokevirtual com.datastax.oss.driver.internal.core.config.cloud.CloudConfigFactory.fetchProxyMetadata:(Ljava/net/URL;Ljavax/net/ssl/SSLContext;)Ljava/io/BufferedReader;
            astore 15 /* proxyMetadata */
        start local 15 // java.io.BufferedReader proxyMetadata
        47: .line 133
            aload 5 /* mapper */
            aload 15 /* proxyMetadata */
            invokevirtual com.fasterxml.jackson.databind.ObjectMapper.readTree:(Ljava/io/Reader;)Lcom/fasterxml/jackson/databind/JsonNode;
            astore 12 /* proxyMetadataJson */
        start local 12 // com.fasterxml.jackson.databind.JsonNode proxyMetadataJson
        48: .line 134
            aload 15 /* proxyMetadata */
            ifnull 54
            aload 15 /* proxyMetadata */
            invokevirtual java.io.BufferedReader.close:()V
            goto 54
        end local 12 // com.fasterxml.jackson.databind.JsonNode proxyMetadataJson
      StackMap locals: com.datastax.oss.driver.internal.core.config.cloud.CloudConfigFactory java.io.InputStream com.fasterxml.jackson.databind.JsonNode java.io.ByteArrayOutputStream java.io.ByteArrayOutputStream com.fasterxml.jackson.databind.ObjectMapper char[] char[] java.io.ByteArrayInputStream java.io.ByteArrayInputStream javax.net.ssl.SSLContext java.net.URL top java.lang.Throwable java.lang.Throwable java.io.BufferedReader
      StackMap stack: java.lang.Throwable
        49: astore 13
            aload 15 /* proxyMetadata */
            ifnull 50
            aload 15 /* proxyMetadata */
            invokevirtual java.io.BufferedReader.close:()V
        end local 15 // java.io.BufferedReader proxyMetadata
      StackMap locals:
      StackMap stack:
        50: aload 13
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        51: astore 14
            aload 13
            ifnonnull 52
            aload 14
            astore 13
            goto 53
      StackMap locals:
      StackMap stack:
        52: aload 13
            aload 14
            if_acmpeq 53
            aload 13
            aload 14
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        53: aload 13
            athrow
        start local 12 // com.fasterxml.jackson.databind.JsonNode proxyMetadataJson
        54: .line 135
      StackMap locals: com.datastax.oss.driver.internal.core.config.cloud.CloudConfigFactory java.io.InputStream com.fasterxml.jackson.databind.JsonNode java.io.ByteArrayOutputStream java.io.ByteArrayOutputStream com.fasterxml.jackson.databind.ObjectMapper char[] char[] java.io.ByteArrayInputStream java.io.ByteArrayInputStream javax.net.ssl.SSLContext java.net.URL com.fasterxml.jackson.databind.JsonNode
      StackMap stack:
            aload 0 /* this */
            aload 12 /* proxyMetadataJson */
            invokevirtual com.datastax.oss.driver.internal.core.config.cloud.CloudConfigFactory.getSniProxyAddress:(Lcom/fasterxml/jackson/databind/JsonNode;)Ljava/net/InetSocketAddress;
            astore 13 /* sniProxyAddress */
        start local 13 // java.net.InetSocketAddress sniProxyAddress
        55: .line 136
            aload 0 /* this */
            aload 12 /* proxyMetadataJson */
            aload 13 /* sniProxyAddress */
            invokevirtual com.datastax.oss.driver.internal.core.config.cloud.CloudConfigFactory.getEndPoints:(Lcom/fasterxml/jackson/databind/JsonNode;Ljava/net/InetSocketAddress;)Ljava/util/List;
            astore 14 /* endPoints */
        start local 14 // java.util.List endPoints
        56: .line 137
            aload 0 /* this */
            aload 12 /* proxyMetadataJson */
            invokevirtual com.datastax.oss.driver.internal.core.config.cloud.CloudConfigFactory.getLocalDatacenter:(Lcom/fasterxml/jackson/databind/JsonNode;)Ljava/lang/String;
            astore 15 /* localDatacenter */
        start local 15 // java.lang.String localDatacenter
        57: .line 138
            new com.datastax.oss.driver.internal.core.ssl.SniSslEngineFactory
            dup
            aload 10 /* sslContext */
            invokespecial com.datastax.oss.driver.internal.core.ssl.SniSslEngineFactory.<init>:(Ljavax/net/ssl/SSLContext;)V
            astore 16 /* sslEngineFactory */
        start local 16 // com.datastax.oss.driver.internal.core.ssl.SniSslEngineFactory sslEngineFactory
        58: .line 139
            aload 0 /* this */
            aload 2 /* configJson */
            invokevirtual com.datastax.oss.driver.internal.core.config.cloud.CloudConfigFactory.getAuthProvider:(Lcom/fasterxml/jackson/databind/JsonNode;)Lcom/datastax/oss/driver/api/core/auth/AuthProvider;
            astore 17 /* authProvider */
        start local 17 // com.datastax.oss.driver.api.core.auth.AuthProvider authProvider
        59: .line 140
            new com.datastax.oss.driver.internal.core.config.cloud.CloudConfig
            dup
        60: .line 141
            aload 13 /* sniProxyAddress */
            aload 14 /* endPoints */
            aload 15 /* localDatacenter */
            aload 16 /* sslEngineFactory */
            aload 17 /* authProvider */
        61: .line 140
            invokespecial com.datastax.oss.driver.internal.core.config.cloud.CloudConfig.<init>:(Ljava/net/InetSocketAddress;Ljava/util/List;Ljava/lang/String;Lcom/datastax/oss/driver/api/core/ssl/SslEngineFactory;Lcom/datastax/oss/driver/api/core/auth/AuthProvider;)V
            areturn
        end local 17 // com.datastax.oss.driver.api.core.auth.AuthProvider authProvider
        end local 16 // com.datastax.oss.driver.internal.core.ssl.SniSslEngineFactory sslEngineFactory
        end local 15 // java.lang.String localDatacenter
        end local 14 // java.util.List endPoints
        end local 13 // java.net.InetSocketAddress sniProxyAddress
        end local 12 // com.fasterxml.jackson.databind.JsonNode proxyMetadataJson
        end local 11 // java.net.URL metadataServiceUrl
        end local 10 // javax.net.ssl.SSLContext sslContext
        end local 9 // java.io.ByteArrayInputStream trustStoreInputStream
        end local 8 // java.io.ByteArrayInputStream keyStoreInputStream
        end local 7 // char[] trustStorePassword
        end local 6 // char[] keyStorePassword
        end local 5 // com.fasterxml.jackson.databind.ObjectMapper mapper
        end local 4 // java.io.ByteArrayOutputStream trustStoreOutputStream
        end local 3 // java.io.ByteArrayOutputStream keyStoreOutputStream
        end local 2 // com.fasterxml.jackson.databind.JsonNode configJson
        end local 1 // java.io.InputStream cloudConfig
        end local 0 // com.datastax.oss.driver.internal.core.config.cloud.CloudConfigFactory this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   62     0                    this  Lcom/datastax/oss/driver/internal/core/config/cloud/CloudConfigFactory;
            0   62     1             cloudConfig  Ljava/io/InputStream;
            2   62     2              configJson  Lcom/fasterxml/jackson/databind/JsonNode;
            3   62     3    keyStoreOutputStream  Ljava/io/ByteArrayOutputStream;
            4   62     4  trustStoreOutputStream  Ljava/io/ByteArrayOutputStream;
            5   62     5                  mapper  Lcom/fasterxml/jackson/databind/ObjectMapper;
            7   24     8          zipInputStream  Ljava/util/zip/ZipInputStream;
            8   20     9                   entry  Ljava/util/zip/ZipEntry;
           21   22     9                   entry  Ljava/util/zip/ZipEntry;
            9   20    10                fileName  Ljava/lang/String;
           35   62     6        keyStorePassword  [C
           36   62     7      trustStorePassword  [C
           38   62     8     keyStoreInputStream  Ljava/io/ByteArrayInputStream;
           40   62     9   trustStoreInputStream  Ljava/io/ByteArrayInputStream;
           44   62    10              sslContext  Ljavax/net/ssl/SSLContext;
           45   62    11      metadataServiceUrl  Ljava/net/URL;
           48   49    12       proxyMetadataJson  Lcom/fasterxml/jackson/databind/JsonNode;
           54   62    12       proxyMetadataJson  Lcom/fasterxml/jackson/databind/JsonNode;
           47   50    15           proxyMetadata  Ljava/io/BufferedReader;
           55   62    13         sniProxyAddress  Ljava/net/InetSocketAddress;
           56   62    14               endPoints  Ljava/util/List<Lcom/datastax/oss/driver/api/core/metadata/EndPoint;>;
           57   62    15         localDatacenter  Ljava/lang/String;
           58   62    16        sslEngineFactory  Lcom/datastax/oss/driver/internal/core/ssl/SniSslEngineFactory;
           59   62    17            authProvider  Lcom/datastax/oss/driver/api/core/auth/AuthProvider;
      Exception table:
        from    to  target  type
           7    22      23  any
           6    25      25  any
          47    48      49  any
          46    51      51  any
    Exceptions:
      throws java.io.IOException, java.security.GeneralSecurityException
    RuntimeInvisibleAnnotations: 
      edu.umd.cs.findbugs.annotations.NonNull()
    RuntimeInvisibleParameterAnnotations: 
      0:
        edu.umd.cs.findbugs.annotations.NonNull()
    MethodParameters:
             Name  Flags
      cloudConfig  

  protected char[] getKeyStorePassword(com.fasterxml.jackson.databind.JsonNode);
    descriptor: (Lcom/fasterxml/jackson/databind/JsonNode;)[C
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.datastax.oss.driver.internal.core.config.cloud.CloudConfigFactory this
        start local 1 // com.fasterxml.jackson.databind.JsonNode configFile
         0: .line 146
            aload 1 /* configFile */
            ldc "keyStorePassword"
            invokevirtual com.fasterxml.jackson.databind.JsonNode.has:(Ljava/lang/String;)Z
            ifeq 2
         1: .line 147
            aload 1 /* configFile */
            ldc "keyStorePassword"
            invokevirtual com.fasterxml.jackson.databind.JsonNode.get:(Ljava/lang/String;)Lcom/fasterxml/jackson/databind/JsonNode;
            invokevirtual com.fasterxml.jackson.databind.JsonNode.asText:()Ljava/lang/String;
            invokevirtual java.lang.String.toCharArray:()[C
            areturn
         2: .line 149
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalStateException
            dup
            ldc "Invalid config.json: missing field keyStorePassword"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // com.fasterxml.jackson.databind.JsonNode configFile
        end local 0 // com.datastax.oss.driver.internal.core.config.cloud.CloudConfigFactory this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lcom/datastax/oss/driver/internal/core/config/cloud/CloudConfigFactory;
            0    3     1  configFile  Lcom/fasterxml/jackson/databind/JsonNode;
    RuntimeInvisibleAnnotations: 
      edu.umd.cs.findbugs.annotations.NonNull()
    MethodParameters:
            Name  Flags
      configFile  

  protected char[] getTrustStorePassword(com.fasterxml.jackson.databind.JsonNode);
    descriptor: (Lcom/fasterxml/jackson/databind/JsonNode;)[C
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.datastax.oss.driver.internal.core.config.cloud.CloudConfigFactory this
        start local 1 // com.fasterxml.jackson.databind.JsonNode configFile
         0: .line 155
            aload 1 /* configFile */
            ldc "trustStorePassword"
            invokevirtual com.fasterxml.jackson.databind.JsonNode.has:(Ljava/lang/String;)Z
            ifeq 2
         1: .line 156
            aload 1 /* configFile */
            ldc "trustStorePassword"
            invokevirtual com.fasterxml.jackson.databind.JsonNode.get:(Ljava/lang/String;)Lcom/fasterxml/jackson/databind/JsonNode;
            invokevirtual com.fasterxml.jackson.databind.JsonNode.asText:()Ljava/lang/String;
            invokevirtual java.lang.String.toCharArray:()[C
            areturn
         2: .line 158
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalStateException
            dup
            ldc "Invalid config.json: missing field trustStorePassword"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // com.fasterxml.jackson.databind.JsonNode configFile
        end local 0 // com.datastax.oss.driver.internal.core.config.cloud.CloudConfigFactory this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lcom/datastax/oss/driver/internal/core/config/cloud/CloudConfigFactory;
            0    3     1  configFile  Lcom/fasterxml/jackson/databind/JsonNode;
    RuntimeInvisibleAnnotations: 
      edu.umd.cs.findbugs.annotations.NonNull()
    MethodParameters:
            Name  Flags
      configFile  

  protected java.net.URL getMetadataServiceUrl(com.fasterxml.jackson.databind.JsonNode);
    descriptor: (Lcom/fasterxml/jackson/databind/JsonNode;)Ljava/net/URL;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // com.datastax.oss.driver.internal.core.config.cloud.CloudConfigFactory this
        start local 1 // com.fasterxml.jackson.databind.JsonNode configFile
         0: .line 164
            aload 1 /* configFile */
            ldc "host"
            invokevirtual com.fasterxml.jackson.databind.JsonNode.has:(Ljava/lang/String;)Z
            ifeq 6
         1: .line 165
            aload 1 /* configFile */
            ldc "host"
            invokevirtual com.fasterxml.jackson.databind.JsonNode.get:(Ljava/lang/String;)Lcom/fasterxml/jackson/databind/JsonNode;
            invokevirtual com.fasterxml.jackson.databind.JsonNode.asText:()Ljava/lang/String;
            astore 2 /* metadataServiceHost */
        start local 2 // java.lang.String metadataServiceHost
         2: .line 166
            aload 1 /* configFile */
            ldc "port"
            invokevirtual com.fasterxml.jackson.databind.JsonNode.has:(Ljava/lang/String;)Z
            ifeq 5
         3: .line 167
            aload 1 /* configFile */
            ldc "port"
            invokevirtual com.fasterxml.jackson.databind.JsonNode.get:(Ljava/lang/String;)Lcom/fasterxml/jackson/databind/JsonNode;
            invokevirtual com.fasterxml.jackson.databind.JsonNode.asInt:()I
            istore 3 /* metadataServicePort */
        start local 3 // int metadataServicePort
         4: .line 168
            new java.net.URL
            dup
            ldc "https"
            aload 2 /* metadataServiceHost */
            iload 3 /* metadataServicePort */
            ldc "/metadata"
            invokespecial java.net.URL.<init>:(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V
            areturn
        end local 3 // int metadataServicePort
         5: .line 170
      StackMap locals: java.lang.String
      StackMap stack:
            new java.lang.IllegalStateException
            dup
            ldc "Invalid config.json: missing field port"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.lang.String metadataServiceHost
         6: .line 173
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalStateException
            dup
            ldc "Invalid config.json: missing field host"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // com.fasterxml.jackson.databind.JsonNode configFile
        end local 0 // com.datastax.oss.driver.internal.core.config.cloud.CloudConfigFactory this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    7     0                 this  Lcom/datastax/oss/driver/internal/core/config/cloud/CloudConfigFactory;
            0    7     1           configFile  Lcom/fasterxml/jackson/databind/JsonNode;
            2    6     2  metadataServiceHost  Ljava/lang/String;
            4    5     3  metadataServicePort  I
    Exceptions:
      throws java.net.MalformedURLException
    RuntimeInvisibleAnnotations: 
      edu.umd.cs.findbugs.annotations.NonNull()
    MethodParameters:
            Name  Flags
      configFile  

  protected com.datastax.oss.driver.api.core.auth.AuthProvider getAuthProvider(com.fasterxml.jackson.databind.JsonNode);
    descriptor: (Lcom/fasterxml/jackson/databind/JsonNode;)Lcom/datastax/oss/driver/api/core/auth/AuthProvider;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // com.datastax.oss.driver.internal.core.config.cloud.CloudConfigFactory this
        start local 1 // com.fasterxml.jackson.databind.JsonNode configFile
         0: .line 179
            aload 1 /* configFile */
            ldc "username"
            invokevirtual com.fasterxml.jackson.databind.JsonNode.has:(Ljava/lang/String;)Z
            ifeq 5
         1: .line 180
            aload 1 /* configFile */
            ldc "username"
            invokevirtual com.fasterxml.jackson.databind.JsonNode.get:(Ljava/lang/String;)Lcom/fasterxml/jackson/databind/JsonNode;
            invokevirtual com.fasterxml.jackson.databind.JsonNode.asText:()Ljava/lang/String;
            astore 2 /* username */
        start local 2 // java.lang.String username
         2: .line 181
            aload 1 /* configFile */
            ldc "password"
            invokevirtual com.fasterxml.jackson.databind.JsonNode.has:(Ljava/lang/String;)Z
            ifeq 5
         3: .line 182
            aload 1 /* configFile */
            ldc "password"
            invokevirtual com.fasterxml.jackson.databind.JsonNode.get:(Ljava/lang/String;)Lcom/fasterxml/jackson/databind/JsonNode;
            invokevirtual com.fasterxml.jackson.databind.JsonNode.asText:()Ljava/lang/String;
            astore 3 /* password */
        start local 3 // java.lang.String password
         4: .line 183
            new com.datastax.oss.driver.internal.core.auth.ProgrammaticPlainTextAuthProvider
            dup
            aload 2 /* username */
            aload 3 /* password */
            invokespecial com.datastax.oss.driver.internal.core.auth.ProgrammaticPlainTextAuthProvider.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            areturn
        end local 3 // java.lang.String password
        end local 2 // java.lang.String username
         5: .line 186
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // com.fasterxml.jackson.databind.JsonNode configFile
        end local 0 // com.datastax.oss.driver.internal.core.config.cloud.CloudConfigFactory this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lcom/datastax/oss/driver/internal/core/config/cloud/CloudConfigFactory;
            0    6     1  configFile  Lcom/fasterxml/jackson/databind/JsonNode;
            2    5     2    username  Ljava/lang/String;
            4    5     3    password  Ljava/lang/String;
    RuntimeInvisibleAnnotations: 
      edu.umd.cs.findbugs.annotations.Nullable()
    MethodParameters:
            Name  Flags
      configFile  

  protected javax.net.ssl.SSLContext createSslContext(java.io.ByteArrayInputStream, char[], java.io.ByteArrayInputStream, char[]);
    descriptor: (Ljava/io/ByteArrayInputStream;[CLjava/io/ByteArrayInputStream;[C)Ljavax/net/ssl/SSLContext;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=8, args_size=5
        start local 0 // com.datastax.oss.driver.internal.core.config.cloud.CloudConfigFactory this
        start local 1 // java.io.ByteArrayInputStream keyStoreInputStream
        start local 2 // char[] keyStorePassword
        start local 3 // java.io.ByteArrayInputStream trustStoreInputStream
        start local 4 // char[] trustStorePassword
         0: .line 196
            aload 0 /* this */
            aload 1 /* keyStoreInputStream */
            aload 2 /* keyStorePassword */
            invokevirtual com.datastax.oss.driver.internal.core.config.cloud.CloudConfigFactory.createKeyManagerFactory:(Ljava/io/InputStream;[C)Ljavax/net/ssl/KeyManagerFactory;
            astore 5 /* kmf */
        start local 5 // javax.net.ssl.KeyManagerFactory kmf
         1: .line 197
            aload 0 /* this */
            aload 3 /* trustStoreInputStream */
            aload 4 /* trustStorePassword */
            invokevirtual com.datastax.oss.driver.internal.core.config.cloud.CloudConfigFactory.createTrustManagerFactory:(Ljava/io/InputStream;[C)Ljavax/net/ssl/TrustManagerFactory;
            astore 6 /* tmf */
        start local 6 // javax.net.ssl.TrustManagerFactory tmf
         2: .line 198
            ldc "SSL"
            invokestatic javax.net.ssl.SSLContext.getInstance:(Ljava/lang/String;)Ljavax/net/ssl/SSLContext;
            astore 7 /* sslContext */
        start local 7 // javax.net.ssl.SSLContext sslContext
         3: .line 199
            aload 7 /* sslContext */
            aload 5 /* kmf */
            invokevirtual javax.net.ssl.KeyManagerFactory.getKeyManagers:()[Ljavax/net/ssl/KeyManager;
            aload 6 /* tmf */
            invokevirtual javax.net.ssl.TrustManagerFactory.getTrustManagers:()[Ljavax/net/ssl/TrustManager;
            new java.security.SecureRandom
            dup
            invokespecial java.security.SecureRandom.<init>:()V
            invokevirtual javax.net.ssl.SSLContext.init:([Ljavax/net/ssl/KeyManager;[Ljavax/net/ssl/TrustManager;Ljava/security/SecureRandom;)V
         4: .line 200
            aload 7 /* sslContext */
            areturn
        end local 7 // javax.net.ssl.SSLContext sslContext
        end local 6 // javax.net.ssl.TrustManagerFactory tmf
        end local 5 // javax.net.ssl.KeyManagerFactory kmf
        end local 4 // char[] trustStorePassword
        end local 3 // java.io.ByteArrayInputStream trustStoreInputStream
        end local 2 // char[] keyStorePassword
        end local 1 // java.io.ByteArrayInputStream keyStoreInputStream
        end local 0 // com.datastax.oss.driver.internal.core.config.cloud.CloudConfigFactory this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    5     0                   this  Lcom/datastax/oss/driver/internal/core/config/cloud/CloudConfigFactory;
            0    5     1    keyStoreInputStream  Ljava/io/ByteArrayInputStream;
            0    5     2       keyStorePassword  [C
            0    5     3  trustStoreInputStream  Ljava/io/ByteArrayInputStream;
            0    5     4     trustStorePassword  [C
            1    5     5                    kmf  Ljavax/net/ssl/KeyManagerFactory;
            2    5     6                    tmf  Ljavax/net/ssl/TrustManagerFactory;
            3    5     7             sslContext  Ljavax/net/ssl/SSLContext;
    Exceptions:
      throws java.io.IOException, java.security.GeneralSecurityException
    RuntimeInvisibleAnnotations: 
      edu.umd.cs.findbugs.annotations.NonNull()
    RuntimeInvisibleParameterAnnotations: 
      0:
        edu.umd.cs.findbugs.annotations.NonNull()
      1:
        edu.umd.cs.findbugs.annotations.NonNull()
      2:
        edu.umd.cs.findbugs.annotations.NonNull()
      3:
        edu.umd.cs.findbugs.annotations.NonNull()
    MethodParameters:
                       Name  Flags
      keyStoreInputStream    
      keyStorePassword       
      trustStoreInputStream  
      trustStorePassword     

  protected javax.net.ssl.KeyManagerFactory createKeyManagerFactory(java.io.InputStream, char[]);
    descriptor: (Ljava/io/InputStream;[C)Ljavax/net/ssl/KeyManagerFactory;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // com.datastax.oss.driver.internal.core.config.cloud.CloudConfigFactory this
        start local 1 // java.io.InputStream keyStoreInputStream
        start local 2 // char[] keyStorePassword
         0: .line 207
            ldc "JKS"
            invokestatic java.security.KeyStore.getInstance:(Ljava/lang/String;)Ljava/security/KeyStore;
            astore 3 /* ks */
        start local 3 // java.security.KeyStore ks
         1: .line 208
            aload 3 /* ks */
            aload 1 /* keyStoreInputStream */
            aload 2 /* keyStorePassword */
            invokevirtual java.security.KeyStore.load:(Ljava/io/InputStream;[C)V
         2: .line 209
            invokestatic javax.net.ssl.KeyManagerFactory.getDefaultAlgorithm:()Ljava/lang/String;
            invokestatic javax.net.ssl.KeyManagerFactory.getInstance:(Ljava/lang/String;)Ljavax/net/ssl/KeyManagerFactory;
            astore 4 /* kmf */
        start local 4 // javax.net.ssl.KeyManagerFactory kmf
         3: .line 210
            aload 4 /* kmf */
            aload 3 /* ks */
            aload 2 /* keyStorePassword */
            invokevirtual javax.net.ssl.KeyManagerFactory.init:(Ljava/security/KeyStore;[C)V
         4: .line 211
            aload 2 /* keyStorePassword */
            iconst_0
            invokestatic java.util.Arrays.fill:([CC)V
         5: .line 212
            aload 4 /* kmf */
            areturn
        end local 4 // javax.net.ssl.KeyManagerFactory kmf
        end local 3 // java.security.KeyStore ks
        end local 2 // char[] keyStorePassword
        end local 1 // java.io.InputStream keyStoreInputStream
        end local 0 // com.datastax.oss.driver.internal.core.config.cloud.CloudConfigFactory this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    6     0                 this  Lcom/datastax/oss/driver/internal/core/config/cloud/CloudConfigFactory;
            0    6     1  keyStoreInputStream  Ljava/io/InputStream;
            0    6     2     keyStorePassword  [C
            1    6     3                   ks  Ljava/security/KeyStore;
            3    6     4                  kmf  Ljavax/net/ssl/KeyManagerFactory;
    Exceptions:
      throws java.io.IOException, java.security.GeneralSecurityException
    RuntimeInvisibleAnnotations: 
      edu.umd.cs.findbugs.annotations.NonNull()
    RuntimeInvisibleParameterAnnotations: 
      0:
        edu.umd.cs.findbugs.annotations.NonNull()
      1:
        edu.umd.cs.findbugs.annotations.NonNull()
    MethodParameters:
                     Name  Flags
      keyStoreInputStream  
      keyStorePassword     

  protected javax.net.ssl.TrustManagerFactory createTrustManagerFactory(java.io.InputStream, char[]);
    descriptor: (Ljava/io/InputStream;[C)Ljavax/net/ssl/TrustManagerFactory;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // com.datastax.oss.driver.internal.core.config.cloud.CloudConfigFactory this
        start local 1 // java.io.InputStream trustStoreInputStream
        start local 2 // char[] trustStorePassword
         0: .line 219
            ldc "JKS"
            invokestatic java.security.KeyStore.getInstance:(Ljava/lang/String;)Ljava/security/KeyStore;
            astore 3 /* ts */
        start local 3 // java.security.KeyStore ts
         1: .line 220
            aload 3 /* ts */
            aload 1 /* trustStoreInputStream */
            aload 2 /* trustStorePassword */
            invokevirtual java.security.KeyStore.load:(Ljava/io/InputStream;[C)V
         2: .line 222
            invokestatic javax.net.ssl.TrustManagerFactory.getDefaultAlgorithm:()Ljava/lang/String;
            invokestatic javax.net.ssl.TrustManagerFactory.getInstance:(Ljava/lang/String;)Ljavax/net/ssl/TrustManagerFactory;
         3: .line 221
            astore 4 /* tmf */
        start local 4 // javax.net.ssl.TrustManagerFactory tmf
         4: .line 223
            aload 4 /* tmf */
            aload 3 /* ts */
            invokevirtual javax.net.ssl.TrustManagerFactory.init:(Ljava/security/KeyStore;)V
         5: .line 224
            aload 2 /* trustStorePassword */
            iconst_0
            invokestatic java.util.Arrays.fill:([CC)V
         6: .line 225
            aload 4 /* tmf */
            areturn
        end local 4 // javax.net.ssl.TrustManagerFactory tmf
        end local 3 // java.security.KeyStore ts
        end local 2 // char[] trustStorePassword
        end local 1 // java.io.InputStream trustStoreInputStream
        end local 0 // com.datastax.oss.driver.internal.core.config.cloud.CloudConfigFactory this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    7     0                   this  Lcom/datastax/oss/driver/internal/core/config/cloud/CloudConfigFactory;
            0    7     1  trustStoreInputStream  Ljava/io/InputStream;
            0    7     2     trustStorePassword  [C
            1    7     3                     ts  Ljava/security/KeyStore;
            4    7     4                    tmf  Ljavax/net/ssl/TrustManagerFactory;
    Exceptions:
      throws java.io.IOException, java.security.GeneralSecurityException
    RuntimeInvisibleAnnotations: 
      edu.umd.cs.findbugs.annotations.NonNull()
    RuntimeInvisibleParameterAnnotations: 
      0:
        edu.umd.cs.findbugs.annotations.NonNull()
      1:
        edu.umd.cs.findbugs.annotations.NonNull()
    MethodParameters:
                       Name  Flags
      trustStoreInputStream  
      trustStorePassword     

  protected java.io.BufferedReader fetchProxyMetadata(java.net.URL, javax.net.ssl.SSLContext);
    descriptor: (Ljava/net/URL;Ljavax/net/ssl/SSLContext;)Ljava/io/BufferedReader;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // com.datastax.oss.driver.internal.core.config.cloud.CloudConfigFactory this
        start local 1 // java.net.URL metadataServiceUrl
        start local 2 // javax.net.ssl.SSLContext sslContext
         0: .line 231
            aload 1 /* metadataServiceUrl */
            invokevirtual java.net.URL.openConnection:()Ljava/net/URLConnection;
            checkcast javax.net.ssl.HttpsURLConnection
            astore 3 /* connection */
        start local 3 // javax.net.ssl.HttpsURLConnection connection
         1: .line 232
            aload 3 /* connection */
            aload 2 /* sslContext */
            invokevirtual javax.net.ssl.SSLContext.getSocketFactory:()Ljavax/net/ssl/SSLSocketFactory;
            invokevirtual javax.net.ssl.HttpsURLConnection.setSSLSocketFactory:(Ljavax/net/ssl/SSLSocketFactory;)V
         2: .line 233
            aload 3 /* connection */
            ldc "GET"
            invokevirtual javax.net.ssl.HttpsURLConnection.setRequestMethod:(Ljava/lang/String;)V
         3: .line 234
            aload 3 /* connection */
            ldc "host"
            ldc "localhost"
            invokevirtual javax.net.ssl.HttpsURLConnection.setRequestProperty:(Ljava/lang/String;Ljava/lang/String;)V
         4: .line 235
            new java.io.BufferedReader
            dup
         5: .line 236
            new java.io.InputStreamReader
            dup
            aload 3 /* connection */
            invokevirtual javax.net.ssl.HttpsURLConnection.getInputStream:()Ljava/io/InputStream;
            getstatic java.nio.charset.StandardCharsets.UTF_8:Ljava/nio/charset/Charset;
            invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;Ljava/nio/charset/Charset;)V
         6: .line 235
            invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
            areturn
        end local 3 // javax.net.ssl.HttpsURLConnection connection
        end local 2 // javax.net.ssl.SSLContext sslContext
        end local 1 // java.net.URL metadataServiceUrl
        end local 0 // com.datastax.oss.driver.internal.core.config.cloud.CloudConfigFactory this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    7     0                this  Lcom/datastax/oss/driver/internal/core/config/cloud/CloudConfigFactory;
            0    7     1  metadataServiceUrl  Ljava/net/URL;
            0    7     2          sslContext  Ljavax/net/ssl/SSLContext;
            1    7     3          connection  Ljavax/net/ssl/HttpsURLConnection;
    Exceptions:
      throws java.io.IOException
    RuntimeInvisibleAnnotations: 
      edu.umd.cs.findbugs.annotations.NonNull()
    RuntimeInvisibleParameterAnnotations: 
      0:
        edu.umd.cs.findbugs.annotations.NonNull()
      1:
        edu.umd.cs.findbugs.annotations.NonNull()
    MethodParameters:
                    Name  Flags
      metadataServiceUrl  
      sslContext          

  protected java.lang.String getLocalDatacenter(com.fasterxml.jackson.databind.JsonNode);
    descriptor: (Lcom/fasterxml/jackson/databind/JsonNode;)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.datastax.oss.driver.internal.core.config.cloud.CloudConfigFactory this
        start local 1 // com.fasterxml.jackson.databind.JsonNode proxyMetadata
         0: .line 241
            aload 0 /* this */
            aload 1 /* proxyMetadata */
            invokevirtual com.datastax.oss.driver.internal.core.config.cloud.CloudConfigFactory.getContactInfo:(Lcom/fasterxml/jackson/databind/JsonNode;)Lcom/fasterxml/jackson/databind/JsonNode;
            astore 2 /* contactInfo */
        start local 2 // com.fasterxml.jackson.databind.JsonNode contactInfo
         1: .line 242
            aload 2 /* contactInfo */
            ldc "local_dc"
            invokevirtual com.fasterxml.jackson.databind.JsonNode.has:(Ljava/lang/String;)Z
            ifeq 3
         2: .line 243
            aload 2 /* contactInfo */
            ldc "local_dc"
            invokevirtual com.fasterxml.jackson.databind.JsonNode.get:(Ljava/lang/String;)Lcom/fasterxml/jackson/databind/JsonNode;
            invokevirtual com.fasterxml.jackson.databind.JsonNode.asText:()Ljava/lang/String;
            areturn
         3: .line 245
      StackMap locals: com.fasterxml.jackson.databind.JsonNode
      StackMap stack:
            new java.lang.IllegalStateException
            dup
            ldc "Invalid proxy metadata: missing field local_dc"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // com.fasterxml.jackson.databind.JsonNode contactInfo
        end local 1 // com.fasterxml.jackson.databind.JsonNode proxyMetadata
        end local 0 // com.datastax.oss.driver.internal.core.config.cloud.CloudConfigFactory this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Lcom/datastax/oss/driver/internal/core/config/cloud/CloudConfigFactory;
            0    4     1  proxyMetadata  Lcom/fasterxml/jackson/databind/JsonNode;
            1    4     2    contactInfo  Lcom/fasterxml/jackson/databind/JsonNode;
    RuntimeInvisibleAnnotations: 
      edu.umd.cs.findbugs.annotations.NonNull()
    RuntimeInvisibleParameterAnnotations: 
      0:
        edu.umd.cs.findbugs.annotations.NonNull()
    MethodParameters:
               Name  Flags
      proxyMetadata  

  protected java.net.InetSocketAddress getSniProxyAddress(com.fasterxml.jackson.databind.JsonNode);
    descriptor: (Lcom/fasterxml/jackson/databind/JsonNode;)Ljava/net/InetSocketAddress;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // com.datastax.oss.driver.internal.core.config.cloud.CloudConfigFactory this
        start local 1 // com.fasterxml.jackson.databind.JsonNode proxyMetadata
         0: .line 251
            aload 0 /* this */
            aload 1 /* proxyMetadata */
            invokevirtual com.datastax.oss.driver.internal.core.config.cloud.CloudConfigFactory.getContactInfo:(Lcom/fasterxml/jackson/databind/JsonNode;)Lcom/fasterxml/jackson/databind/JsonNode;
            astore 2 /* contactInfo */
        start local 2 // com.fasterxml.jackson.databind.JsonNode contactInfo
         1: .line 252
            aload 2 /* contactInfo */
            ldc "sni_proxy_address"
            invokevirtual com.fasterxml.jackson.databind.JsonNode.has:(Ljava/lang/String;)Z
            ifeq 10
         2: .line 254
            aload 2 /* contactInfo */
            ldc "sni_proxy_address"
            invokevirtual com.fasterxml.jackson.databind.JsonNode.get:(Ljava/lang/String;)Lcom/fasterxml/jackson/databind/JsonNode;
            invokevirtual com.fasterxml.jackson.databind.JsonNode.asText:()Ljava/lang/String;
            invokestatic com.datastax.oss.driver.shaded.guava.common.net.HostAndPort.fromString:(Ljava/lang/String;)Lcom/datastax/oss/driver/shaded/guava/common/net/HostAndPort;
         3: .line 253
            astore 3 /* sniProxyHostAndPort */
        start local 3 // com.datastax.oss.driver.shaded.guava.common.net.HostAndPort sniProxyHostAndPort
         4: .line 255
            aload 3 /* sniProxyHostAndPort */
            invokevirtual com.datastax.oss.driver.shaded.guava.common.net.HostAndPort.hasPort:()Z
            ifne 8
         5: .line 256
            new java.lang.IllegalStateException
            dup
         6: .line 257
            ldc "Invalid proxy metadata: missing port from field sni_proxy_address"
         7: .line 256
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 260
      StackMap locals: com.fasterxml.jackson.databind.JsonNode com.datastax.oss.driver.shaded.guava.common.net.HostAndPort
      StackMap stack:
            aload 3 /* sniProxyHostAndPort */
            invokevirtual com.datastax.oss.driver.shaded.guava.common.net.HostAndPort.getHost:()Ljava/lang/String;
            aload 3 /* sniProxyHostAndPort */
            invokevirtual com.datastax.oss.driver.shaded.guava.common.net.HostAndPort.getPort:()I
         9: .line 259
            invokestatic java.net.InetSocketAddress.createUnresolved:(Ljava/lang/String;I)Ljava/net/InetSocketAddress;
            areturn
        end local 3 // com.datastax.oss.driver.shaded.guava.common.net.HostAndPort sniProxyHostAndPort
        10: .line 262
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalStateException
            dup
            ldc "Invalid proxy metadata: missing field sni_proxy_address"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // com.fasterxml.jackson.databind.JsonNode contactInfo
        end local 1 // com.fasterxml.jackson.databind.JsonNode proxyMetadata
        end local 0 // com.datastax.oss.driver.internal.core.config.cloud.CloudConfigFactory this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   11     0                 this  Lcom/datastax/oss/driver/internal/core/config/cloud/CloudConfigFactory;
            0   11     1        proxyMetadata  Lcom/fasterxml/jackson/databind/JsonNode;
            1   11     2          contactInfo  Lcom/fasterxml/jackson/databind/JsonNode;
            4   10     3  sniProxyHostAndPort  Lcom/datastax/oss/driver/shaded/guava/common/net/HostAndPort;
    RuntimeInvisibleAnnotations: 
      edu.umd.cs.findbugs.annotations.NonNull()
    RuntimeInvisibleParameterAnnotations: 
      0:
        edu.umd.cs.findbugs.annotations.NonNull()
    MethodParameters:
               Name  Flags
      proxyMetadata  

  protected java.util.List<com.datastax.oss.driver.api.core.metadata.EndPoint> getEndPoints(com.fasterxml.jackson.databind.JsonNode, java.net.InetSocketAddress);
    descriptor: (Lcom/fasterxml/jackson/databind/JsonNode;Ljava/net/InetSocketAddress;)Ljava/util/List;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=7, args_size=3
        start local 0 // com.datastax.oss.driver.internal.core.config.cloud.CloudConfigFactory this
        start local 1 // com.fasterxml.jackson.databind.JsonNode proxyMetadata
        start local 2 // java.net.InetSocketAddress sniProxyAddress
         0: .line 269
            aload 0 /* this */
            aload 1 /* proxyMetadata */
            invokevirtual com.datastax.oss.driver.internal.core.config.cloud.CloudConfigFactory.getContactInfo:(Lcom/fasterxml/jackson/databind/JsonNode;)Lcom/fasterxml/jackson/databind/JsonNode;
            astore 3 /* contactInfo */
        start local 3 // com.fasterxml.jackson.databind.JsonNode contactInfo
         1: .line 270
            aload 3 /* contactInfo */
            ldc "contact_points"
            invokevirtual com.fasterxml.jackson.databind.JsonNode.has:(Ljava/lang/String;)Z
            ifeq 10
         2: .line 271
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 4 /* endPoints */
        start local 4 // java.util.List endPoints
         3: .line 272
            aload 3 /* contactInfo */
            ldc "contact_points"
            invokevirtual com.fasterxml.jackson.databind.JsonNode.get:(Ljava/lang/String;)Lcom/fasterxml/jackson/databind/JsonNode;
            astore 5 /* hostIdsJson */
        start local 5 // com.fasterxml.jackson.databind.JsonNode hostIdsJson
         4: .line 273
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         5: goto 8
         6: .line 274
      StackMap locals: com.datastax.oss.driver.internal.core.config.cloud.CloudConfigFactory com.fasterxml.jackson.databind.JsonNode java.net.InetSocketAddress com.fasterxml.jackson.databind.JsonNode java.util.List com.fasterxml.jackson.databind.JsonNode int
      StackMap stack:
            aload 4 /* endPoints */
            new com.datastax.oss.driver.internal.core.metadata.SniEndPoint
            dup
            aload 2 /* sniProxyAddress */
            aload 5 /* hostIdsJson */
            iload 6 /* i */
            invokevirtual com.fasterxml.jackson.databind.JsonNode.get:(I)Lcom/fasterxml/jackson/databind/JsonNode;
            invokevirtual com.fasterxml.jackson.databind.JsonNode.asText:()Ljava/lang/String;
            invokespecial com.datastax.oss.driver.internal.core.metadata.SniEndPoint.<init>:(Ljava/net/InetSocketAddress;Ljava/lang/String;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         7: .line 273
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 6 /* i */
            aload 5 /* hostIdsJson */
            invokevirtual com.fasterxml.jackson.databind.JsonNode.size:()I
            if_icmplt 6
        end local 6 // int i
         9: .line 276
            aload 4 /* endPoints */
            areturn
        end local 5 // com.fasterxml.jackson.databind.JsonNode hostIdsJson
        end local 4 // java.util.List endPoints
        10: .line 278
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalStateException
            dup
            ldc "Invalid proxy metadata: missing field contact_points"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // com.fasterxml.jackson.databind.JsonNode contactInfo
        end local 2 // java.net.InetSocketAddress sniProxyAddress
        end local 1 // com.fasterxml.jackson.databind.JsonNode proxyMetadata
        end local 0 // com.datastax.oss.driver.internal.core.config.cloud.CloudConfigFactory this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   11     0             this  Lcom/datastax/oss/driver/internal/core/config/cloud/CloudConfigFactory;
            0   11     1    proxyMetadata  Lcom/fasterxml/jackson/databind/JsonNode;
            0   11     2  sniProxyAddress  Ljava/net/InetSocketAddress;
            1   11     3      contactInfo  Lcom/fasterxml/jackson/databind/JsonNode;
            3   10     4        endPoints  Ljava/util/List<Lcom/datastax/oss/driver/api/core/metadata/EndPoint;>;
            4   10     5      hostIdsJson  Lcom/fasterxml/jackson/databind/JsonNode;
            5    9     6                i  I
    Signature: (Lcom/fasterxml/jackson/databind/JsonNode;Ljava/net/InetSocketAddress;)Ljava/util/List<Lcom/datastax/oss/driver/api/core/metadata/EndPoint;>;
    RuntimeInvisibleAnnotations: 
      edu.umd.cs.findbugs.annotations.NonNull()
    RuntimeInvisibleParameterAnnotations: 
      0:
        edu.umd.cs.findbugs.annotations.NonNull()
      1:
        edu.umd.cs.findbugs.annotations.NonNull()
    MethodParameters:
                 Name  Flags
      proxyMetadata    
      sniProxyAddress  

  protected com.fasterxml.jackson.databind.JsonNode getContactInfo(com.fasterxml.jackson.databind.JsonNode);
    descriptor: (Lcom/fasterxml/jackson/databind/JsonNode;)Lcom/fasterxml/jackson/databind/JsonNode;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.datastax.oss.driver.internal.core.config.cloud.CloudConfigFactory this
        start local 1 // com.fasterxml.jackson.databind.JsonNode proxyMetadata
         0: .line 284
            aload 1 /* proxyMetadata */
            ldc "contact_info"
            invokevirtual com.fasterxml.jackson.databind.JsonNode.has:(Ljava/lang/String;)Z
            ifeq 2
         1: .line 285
            aload 1 /* proxyMetadata */
            ldc "contact_info"
            invokevirtual com.fasterxml.jackson.databind.JsonNode.get:(Ljava/lang/String;)Lcom/fasterxml/jackson/databind/JsonNode;
            areturn
         2: .line 287
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalStateException
            dup
            ldc "Invalid proxy metadata: missing field contact_info"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // com.fasterxml.jackson.databind.JsonNode proxyMetadata
        end local 0 // com.datastax.oss.driver.internal.core.config.cloud.CloudConfigFactory this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lcom/datastax/oss/driver/internal/core/config/cloud/CloudConfigFactory;
            0    3     1  proxyMetadata  Lcom/fasterxml/jackson/databind/JsonNode;
    RuntimeInvisibleAnnotations: 
      edu.umd.cs.findbugs.annotations.NonNull()
    RuntimeInvisibleParameterAnnotations: 
      0:
        edu.umd.cs.findbugs.annotations.NonNull()
    MethodParameters:
               Name  Flags
      proxyMetadata  
}
SourceFile: "CloudConfigFactory.java"
InnerClasses:
  public final Feature = com.fasterxml.jackson.core.JsonParser$Feature of com.fasterxml.jackson.core.JsonParser
    RuntimeVisibleAnnotations: 
      net.jcip.annotations.ThreadSafe()